Описание языка Turbo Pascal
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
«Забайкальский государственный
университет»
Кафедра ИВТиПМ
ИНФОРМАТИКА
Контрольная работа
Выполнил:
Ст. гр. РГз-11
(вариант 88)
Вороной А.Ю.
Проверил:
Иваненкова А.П.
Чита 2012
Описание языка Turbo Pascal
Язык Паскаль, названный в честь французского математика и философа Блеза Паскаля (1623-1662), был создан как учебный язык программирования в 1968-71 годах швейцарским ученым Никлаусом Виртом на кафедре информатики Стэнфордского университета (Цюрих). В настоящее время это язык имеет более широкую сферу применения, чем предусматривалось при его создании. Свое признание Паскаль получил с появлением пакета Турбо Паскаль (Turbo Pascal). Этот язык отличается простотой понимания, стройностью и структурностью алгоритмов, быстротой компилятора и удобными средствами создания и отладки программ.
Достоинствами языка Паскаль являются:
Простой синтаксис языка. Небольшое число базовых понятий. Программы на Паскале достаточно легко читаемы.
Достаточно низкие аппаратные и системные требования как самого компилятора, так и программ, написанных на Паскале.
Универсальность языка. Язык Паскаль применим для решения практически всех задач программирования.
Поддержка структурного програмирования, программирования "сверху-вниз", а также объектно-ориентированного программирования.
Среда разработчика Turbo Pascal
Базовыми компонентами система программирования Турбо Паскаль являются компилятор языка Паскаль, средства создания и редактирования исходных текстов программ и средства их отладки (поиска ошибок). Все эти компоненты объединены в единую интегрированную среду разработчика, с которой как раз и работает программист, создавая свои программы.
Запуск программы
Будем считать, что компьютер для работы с Турбо Паскаль настроен так, как это сказано в приложении.
Для начала работы с Турбо Паскаль удобнее всего поступить следующим образом:
Запустить Norton Commander;
Зайти в каталог, в котором планируется сохранять файлы с исходными текстами программы, а также вспомогательные файлы вашей прграммы;
Вызвать горячее меню Norton Commander (нажав клавишу F2);
Выбрать строку "Turbo Pascal ";
Если окно редактирования не открылось, то открыть его через пункт меню "File" (нажать Alt+F, выбрать New).
Если у вас уже есть некоторый файл с исходным текстом программы (файл с расширением pas), с которым вы хотите продолжить работу, то достаточно навести на него указатель Norton Commander и нажать Enter. В этом случае запустится Turbo Pascal и сразу откроется текст выбранной вами программы.
Окно среды разработчика
Основной экран интегрированной среды разработчика Turbo Pascal выглядит следующим образом:
По функциональному назначению выделяется три области экрана:
Строка меню
Рабочая область
Строка состояния
Строка меню активизируется нажатием клавиши F10. В меню содержатся следующие разделы:
File. Позволяет выполнять все основные действия с файлами (создание, открытие, сохранение ..)
Edit. Позволяет выполнять все основные операции редактирования текста (копирование, вставка, удаление фрагментов, отмена последних изменений ..)
Search. Позволяет осуществлять поиск и замену фрагментов текста.
Run. Позволяет запускать программу, в том числе в пошаговом режиме.
Compile. Позволяет осуществлять компиляцию программы.
Debug. Содержит команды, облегчающие процесс поиска ошибок в программе.
Tools. Содержит некоторые дополнительные средства Турбо Паскаль.
Options. Позволяет установить необходимые для работы параметры компилятора и среды разработчика.
Window. Позволяет выполнять все основные операции с окнами (открывать, закрывать, перемещать, изменять размер).
Help. Позволяет получить имеющуюся в системе справочную информацию.
Все пункты меню доступны через горячие клавиши. Для этого надо нажать клавишу Alt и ту букву, которая выделена красной в названии пункта меню. Меню также позволяет работать с мышью.
В рабочей области имеется возможность открывать различные окна программы - окна редактируемого текста, окна помощи, отладки и настройки. В вышеприведенном примере открыто только одно окно - окно текста программы. В заголовке окна написано имя файла - исходного текста программы.
Строка состояния демонстрирует некоторые доступные и важные в данный момент операции и соответствующие им комбинации клавиш.
Основные команды и горячие клавиши
Ниже приведены основные команды среды раработчика Турбо Паскаль и соответствующие им горячие клавиши. Более полный перечень горячих клавиш вы можете найти в приложении.
Ctrl+F9 - запуск программы
Alt+F5 - просмотр пользовательского экрана
F2 - сохранение программы
F3 - открытие сохраненной программы
Alt+F3 - закрытие активного окна
Alt+X - выход из Турбо Паскаль
F1 - контекстная помощь
Ctrl+F1 - справка об операторе, на котором установлен курсор
Alt+Backspace - отмена последнео изменения
Ctrl+Y - удаление строки
Shift+стрелки - выделение блока текста
Ctrl+Insert - копирование выделенного блока в буфер
Shift+Insert - вставка из буфера
Типы данных
Для обработки ЭВМ данные представляются в виде величин и их совокупностей. С понятием величины связаны такая важная характеристика, как ее тип.
Тип определяет:
возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;
внутреннюю форму представления данных в ЭВМ;
операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.
В языке Паскаль тип величины задают заранее. Все переменные, используемые в программе, должны быть объявлены в разделе описания с указанием их типа. Обязательное описание типа приводит к избыточности в тексте программ, но такая избыточность является важным вспомогательным средством разработки программ и рассматривается как необходимое свойство современных алгоритмических языков высокого уровня.
Иерархия типов в языке Паскаль такая:
Простые
Порядковые
Целые
Логические
Символьные
Перечисляемые
Интервальные
Вещественные
Структуированные
Массивы
Строки
Множества
Записи
Файлы
Указатели
Простые типы данных
В таблице приведены простые типы данных Турбо Паскаль, объем памяти, необходимый для хранения одной переменной указанного типа, множество допустимых значений и применимые операции.
Понятие типа данных в Турбо Паскаль
Идентификатор |
Длина (байт) |
Диапазон значений |
Операции |
Целые типы | |||
integer |
2 |
-32768..32767 |
+, -, /, *, Div, Mod, |
byte |
1 |
0..255 |
+, -, /, *, Div, Mod, |
word |
2 |
0..65535 |
+, -, /, *, Div, Mod, |
shortint |
1 |
-128..127 |
+, -, /, *, Div, Mod, |
longint |
4 |
-2147483648..2147483647 |
+, -, /, *, Div, Mod, |
Вещественные типы | |||
real |
6 |
2,9x10-39 - 1,7x1038 |
+, -, /, *, |
single |
4 |
1,5x10-45 - 3,4x1038 |
+, -, /, *, |
double |
8 |
5x10-324 - 1,7x10308 |
+, -, /, *, |
extended |
10 |
3,4x10-4932 - 1,1x104932 |
+, -, /, *, |
Логический тип | |||
boolean |
1 |
true, false |
Not, And, Or, Xor, |
Символьный тип | |||
char |
1 |
все символы кода ASCII |
+, |
Порядковые типы, выделяемые из группы простых типов, характеризуются следующими свойствами:
все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество;
к любому порядковому типу может быть применена стандартная функция Ord, которая в качестве результата возвращает порядковый номер конкретного значения в данном типе;
к любому порядковому типу могут быть применены стандартные функции Pred и Succ, которые возвращают предыдущее и последующее значения соответственно;
к любому порядковому типу могут быть применены стандартные функции Low и High, которые возвращают наименьшее и наибольшее значения величин данного типа.
В языке Паскаль введены понятия эквивалентности и совместимости типов. Два типа Т1 и Т2 являются эквивалентными (идентичными), если выполняется одно из двух условий:
Т1 и Т2 представляют собой одно и то же имя типа;
тип Т2 описан с использованием типа Т1 с помощью равенства или последовательности равенств. Например:
type
T1 = Integer;
T2 = T1;
T3 = T2;
Менее строгие ограничения накладываются на совместимость типов. Так, типы являются совместимыми, если:
они эквивалентны;
являются оба либо целыми, либо действительными;
один тип - интервальный, другой - его базовый;
оба интервальные с общим базовым;
один тип - строковый, другой - символьный.
В Турбо Паскаль ограничения на совместимость типов можно обойти с помощью приведения типов. Приведение типов позволяет рассматривать одну и ту же величину в памяти ЭВМ как принадлежащую разным типам. Для этого используется конструкция
Имя_Типа(переменная или значение)
Напрмер, Integer('Z') представляет собой значение кода символа 'Z' в двухбайтном представлении целого числа, а Byte(534) даст значение 22, поскольку целое число 534 имеет тип Word и занимает два байта, а тип Byte занимает один байт, и в процессе приведения старший байт будет отброшен.
Операторы ввода и вывода
Рассмотрим организацию ввода и вывода данных с терминального устройства. Терминальное устройство - это устройство, с которым работает пользователь, обычно это клавиатура и экран (дисплей).
Ввод данных
Для ввода исходных данных чаще всего используется процедура ReadLn:
ReadLn(A1,A2,...AK);
Процедура производит чтение К значений исходных данных и присваивает эти значения переменным А1, А2, ..., АК.
При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую типом переменных. Переменные, образующие список ввода, могут принадлежать либо к целому, либо к действительному, либо к символьному типам. Чтение исходных данных логического типа в языке Паскаль недопустимо.
Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter.
Не допускается разделение вводимых чисел запятыми!
Вывод данных
Для вывода результатов работы программы на экран используются процедуры:
Write(A1,A2,...AK);
WriteLn(A1,A2,...AK);
Первый из этих операторов производит вывод значений переменных А1, А2,...,АК в строку экрана. Второй оператор, в отличие от первого, не только производит вывод данных на экран, но и производит переход к началу следующей экранной строки. Если процедура writeln используется без параметров, то она просто производит пропуск строки и переход к началу следующей строки.
Переменные, составляющие список вывода, могут относиться к целому, действительному, символьному или булевскому типам. В качестве элемента списка вывода кроме имен переменных могут использоваться выражения и строки.
Форма представления значений в поле вывода соответствует типу переменных и выражений: величины целого типа выводятся как целые десятичные числа, действительного типа - как действительные десятичные числа с десятичным порядком, символьного типа и строки - в виде символов, логического типа - в виде логических констант TRUE и FALSE.
Оператор вывода позволяет задать ширину поля вывода для каждого элемента списка вывода. В этом случае элемент списка вывода имеет вид А:К, где А - выражение или строка, К - выражение либо константа целого типа. Если выводимое значение занимает в поле вывода меньше позиций, чем К, то перед этим значением располагаются пробелы. Если выводимое значение не помещается в ширину поля К, то для этого значения будет отведено необходимое количество позиций.
Для величин действительного типа элемент списка вывода может иметь вид А:К:М, где А - переменная или выражение действительного типа, К - ширина поля вывода, М - число цифр дробной части выводимого значения. К и М - выражения или константы целого типа. В этом случае действительные значения выводятся в форме десятичного числа с фиксированной точкой.
Пример записи операторов вывода:
var rA, rB: Real;
iP,iQ:Integer;
bR, bS: Boolean;
chT, chV, chU, chW: Char;
begin
. . .
WriteLn(rA, rB:10:2);
WriteLn(iP, iQ:8);
WriteLn(bR, bS:8);
WriteLn(chT, chV, chU, chW);
end.
Организция ветвлений в программе.
В языке Паскаль используется два оператора для реализации условных переходов - IF и CASE, а также оператор безусловного перехода GOTO. Они позволяют нарушить последовательный порядок выполнения инструкций программы.
Оператор условного перехода
Оператор условного перехода в Турбо Паскаль имеет вид:
if условие then оператор 1 else оператор 2;
условие - это логическое выражение, в зависимости от которого выбирается одна из двух альтернативных ветвей алгоритма. Если значение условия истинно (TRUE), то будет выполняться оператор 1, записанный после ключевого слова then. В противном случае будет выполнен оператор 2, следующий за словом else, при этом оператор 1 пропускается. После выполнения указанных операторов программа переходит к выполеннию команды, стоящей непосредственно после оператора if.
Необходимо помнить, что перед ключевым словом else точка с запятой никогда не ставится!
else - часть в операторе if может отсутствовать:
if условие then оператор 1;
Тогда в случае невыполнения логического условия управление сразу передается оператору, стоящему в программе после конструкции if.
Следует помнить, что синтаксис языка допускает запись только одного оператора после ключевых слов then и else, поэтому группу инструкций обязательно надо объединять в составной оператор (окаймлять операторными скобками begin ... end). В противном случае возникает чаще всего логическая ошибка программы, когда компилятор языка ошибок не выдает, но программа тем не менее работает неправильно.
Примеры.
if x > 0 then modul := x else modul := -x;
if k > 0 then WriteLn('k - число положительное');
if min > max then begin
t := min;
min := max;
max := t;
end;
Оператор выбора
Часто возникают ситуации, когда приходится осуществлять выбор одного из нескольких альтернативных путей выполнения программы. Несмотря на то, что такой выбор можно организовать с помощью оператора if .. then, удобнее воспользоваться специальным оператором выбора. Его формат:
case выражение of
вариант : оператор;
...
вариант : оператор;
end;
или
case выражение of
вариант : оператор;
...
вариант : оператор;
else оператор
end;
выражение, которое записывается после ключевого слова case, называется селектором, оно может быть любого перечисляемого типа. вариант состоит из одной или большего количества констант или диапазонов, разделенных запятыми. Они должны принадлежать к тому же типу, что и селектор, причем недопустимо более одного упоминания вариантав записи инструкции case. Из перечисленного множества операторов будет выбран только тот, перед которым записан вариант, совпадающий со значением селектора. Если такого варианта нет, выполняется оператор, следующий за словом else (если он есть).
Пример
case ch of
'A'..'Z', 'a'..'z' : WriteLn('Буква');
'0'..'9' : WriteLn('Цифра');
'+', '-', '*', '/' : WriteLn('Оператор');
else WriteLn('Специальный символ')
end;
Оператор безусловного перехода
Помимо операторов условного перехода существует также оператор безусловного перехода goto. Формат:
goto метка
Оператор goto переходит при выполнении программы к определенному оператору программы, перед которым находится метка. Метка должна быть описана в разделе описания меток той программы (процедуры или функции), в которой она используется. Нельзя перейти из одной процедуры или функции в другую.
Необходимо, чтобы в программе существовал оператор, отмеченный указанной меткой. Она записывается перед оператором и отделяется от него двоеточием.
Пример
label 1;
begin
...
goto 1;
...
1: WriteLn('Переход к метке 1');
end.
Само понятие структурного программирования и общепринятый стиль программирования на структурных языках не присутствует применение меток и операторов перехода в программах. Это затрудняет понимание программы как автором, так и потребителями, кроме того, применение меток отрицательно сказывается на эффективности генерируемого кода.
Циклы
В большинстве задач, встречающихся на практике, необходимо производить многократное выполнение некоторого действия. Такой многократно повторяющийся участок вычислительного процесса называется циклом.
Если заранее известно количество необходимых повторений, то цикл называется арифметическим. Если же количество повторений заранее неизвестно, то говорят об итерационном цикле.
В итерационных циклах производится проверка некоторого условия, и в зависимости от результата этой проверки происходит либо выход из цикла, либо повторение выполнения тела цикла. Если проверка условия производится перед выполнением блока операторов, то такой итерационный цикл называется циклом с предусловием (цикл "пока"), а если проверка производится после выполнения тела цикла, то это цикл с постусловием (цикл "до").
Особенность этих циклов заключается в том, что тело цикла с постусловием всегда выполняется хотя бы один раз, а тело цикла с предусловием может ни разу не выполниться. В зависимости от решаемой задачи необходимо использовать тот или иной вид итерационных циклов.