Средства программирования Pascal .Основные инструменты. Ключевые слова языка Pascal. Типы данных Pascal. Исполнитель
- Скачано: 49
- Размер: 75 Kb
Средства программирования Pascal .Основные инструменты. Ключевые слова языка Pascal. Типы данных Pascal.
Цель: Формирование умений, навыков и знаний по изучению средства программирования Pascal. Основные инструменты. Ключевые слова Pascal. Типы данных Pascal.
План:
- Заголовок программы.
- Блок программы.
- Операторы языка.
- Операторы ввода-вывода данных.
{spoiler=Подробнее}
Программа на языке ПАСКАЛЬ состоит из заголовка и блока, после которого ставится точка. Заголовок программы записывается всегда как первая строка программы и начинается с ключевого слова PROGRAM. В нём определяются имя программы и файлы, доступные программе.
В качестве стандартных файлов применяются INPUT, OUTPUT, использующиеся для связи программы с исходными данными результатами обработки данных. Например, program summa (input, output);
Программа с именем Summa выбирает данные из стандартного файла Input и направляет получаемые результаты в стандартный файл Output, из которого они выводятся на устройство отображения информации.
При работе с микроЭВМ пользователь, как правило, вводит исходные данные с экрана дисплея, а получает результаты вычисления на печатающем устройстве или экране дисплея. Данные, поступающие с дисплея, размещаются в строках экрана. Информация каждой строки заканчивается признаком конца строки. Входной файл содержит необходимое количество строк. При выводе информация размещается построчно на печатающем устройстве или на экране дисплея. Конец файла отмечается специальным признаком, зависящим от типа ЭВМ.
Блок программы состоит из шести разделов записываемых в следующем порядке: описание меток, определение констант, определение типов, описание переменных, описание процедур и функций, раздел операторов. Каждое описание и определение заканчивается символом – точкой с запятой.
Раздел описания меток начинается с ключевого слова LABEL, за которым следует перечисление меток, использующихся в программе. В качестве меток используется целые числа без знака. Метки, назначаемые пользователем не должны содержать более четырёх цифр. Метками снабжаются операторы, которым передаётся управлением оператора перехода. Метка отделяются от оператора двоеточием. Пример описание меток, использующихся в блоке: LABEL 2, 25, 4816, 642.
В разделе определения констант, который начинается с ключевого слова CONST, приводится перечень имён, используемых констант и их значений. Имя и значение константы разделены символом =. Каждое определение константы заканчивается точкой с запятой. Пример определения констант; CONST PI=3.141592.
NMIN=1; NMAX=100;
LIM=C;
Первые три константы имеют числовые значения, константа LIM- значение константы с именем C.
Тип константы определяется типом соответствующего значения константы. В определении каждому значению константы ставится в соответствие имя, которое используется в дальнейшем в программе. Удачно выбранные имена констант значительно улучшают её восприятие при просмотре. Кроме того, и использование имен констант облегчает проведение изменений в программе. В этом случае пользователь вносит изменение только в определения констант. При этом отпадет необходимость поиска и изменения константы по всей программе, так как транслятор каждое имя заменяет на соответствующее значение. Если в программе не предполагается использование констант, то раздел определения констант не приводится.
Раздел описания переменных начинается с ключевого слова VAR, за которым перечисляются имена переменных и их типы. В общем, виде описание переменных выглядит следующим образом:
VAR v1,v2,…, vn:T;
где v1,v2,…,vn–имена переменных данного типа;T-тип переменных (REAL, INTEGER, CHAR, BOOLEAN).
Примеры описания переменных:
VAR
A,D,W,C:REAL;
N,M, T: INTEGER;
P,Q:CHAR;
B,S,V:BOOLEAN;
В общем, виде простейшее описание массивов выполняется следующим образом: V:ARRAY[N..M] OF T;где V-имя массива;T-тип массива, записываемый аналогично типу простых переменных.
Пределы изменения индексов можно задавать в описании константами или именами целого типа. Так, массив A, состоящий из 50 элементов, описывается двумя способами.
VAR
1) A:ARRAY[1..50] OF REAL;
2)CONST NMAX=50;
VAR A:ARRAY[1..NMAX] OF REAL;
В описании массивов большей размерности пределы изменения по каждой размерности отделяются друг от друга запятой.
Описание количества строк и столбцов в матрице удобнее задавать именами констант. Тогда при изменении количества строк и столбцов матрицы в программе потребуется заменить только определение констант. Так, матрицу C целого типа, расположенную в 10 строках 15 столбцах, можно описать как:
CONST IMAX=10;JMAX=15;
VAR C:ARRAY[1..IMAX,1..JMAX] OF INTEGER;
Описание всех переменных составляют существенную часть программы и в значительной степени облегчают её чтение. Введение новой переменной должно сопровождаться спецификацией возможных значений. Знание диапазона значений переменных помогает пониманию алгоритма и, в свою очередь, способствует отысканию ошибок, а также определяет правомерность и корректность использования программы. В зависимости от диапазона значений переменной определяется необходимое количество элементов памяти.
Раздел операторов состоит из составного оператора, включающего в себя выполняемые операторы, записанные в соответствии с алгоритмом решения задачи. Операторы отделяются друг от друга точкой с запятой.
Синтаксические диаграммы раздела операторов и составного оператора приведены соответственно на рис.
Операторы языка. С помощью операторов описываются действия над данными, выполняемые для реализации алгоритма решения задачи. По функциональному назначению операторы языка можно подразделить на группы: присваивания, ввода-вывода, управления, определения функций и процедур.
Операторы присваивания вызывают выполнение выражений и присваивание значения выражения имени результата.
Операторы ввода-вывода позволяют вводить в основную память исходные данные и на устройствах вывода информации получать результаты вычислений.
Операторы управления организуют управление последовательностью выполнения операторов программы.
Операторы определения функций и процедур дают возможность разбивать программу на части, определять и именовать их.
В языке ПАСКАЛЬ по своему составу определены операторы двух типов: простые и структурные. Простым считается оператор, который не содержит других операторов, а структурным – оператор, содержащий в качестве компонентов один или несколько операторов. К простым операторам относятся операторы присваивания, перехода, процедуры. К структурным операторам относятся операторы условные, выбора цикла, составные. Составной оператор представляет собой последовательность операторов, заключенную в ключевые слова BEGIN и END.
Программы, разработанные в соответствии с алгоритмами, имеют различный вычислительный характер. Однако среди выполняемых последовательностей операторов выделяются типовые структуры, из которых состоят программы: линейная, разветвляющаяся, циклическая, вложенных циклов. Сложные программы включают в себя все типы структур.
Организация программ линейной структуры. Программы линейной не содержат никаких условий; операторы такой программы выполняются в той последовательности, в которой они записаны. Для организации рассматриваемых программ требуются операторы ввода информации, присваивания и вывода результатов вычислений.
Операторы присваивания служат для вычисления значения выражения и присваивания его переменной, расположенной слева от символа: =.
Общий вид записи оператора: A:=B;где A- имя переменной, B-выражение.
Примеры записи операторов: X:=0.25;X:=X+0.25;T:=-10.6;A:=T;
Переменная и выражение должны принадлежать одному типу. Допускаются два исключения:
- переменная действительного типа, а выражение целого или ограниченного целого типа;
- выражения ограниченного по отношению к переменной типа и наоборот.
Операторы ввода и вывода данных обеспечивают программу исходными данными, необходимыми для решения задачи, и осуществляют вывод результатов решения. Поэтому практически любая программа должна содержать эти операторы, выполненные в языке ПАСКАЛЬ как процедуры.
Для ввода используются операторы:
READ (b1, b2,…, bn);
READLN(b1,b2,…, bn);
READLN;
где b1, b2,…, bn – имена переменных, подлежащих вводу.
Оператор READ(b1,b2,…,bn); обеспечивает выборку данных из стандартного входного файла INPUT, в результате которой имена переменных b1, b2,…,bn получают соответствующие значения. Типы вводимых переменных должны соответствовать типам вводимых значений.
При вводе литерных данных все литеры, включая пробелы и переходы к новой строке, являются значимыми. Пробел воспринимается как литера. Поэтому после считывания последней литеры в строке следующая литера является недоступной. Попытка прочитать литеру приводит к чтению пробела.
Оператор READLN (b1, b2,…,bn); обеспечивает выборку данных из стандартного файла INPUT, но после окончания выборки последней переменной осуществляет переход к началу новой строки файла.
При вводе значений переменных целого действительного типов операторы READ и READLN пропускают пробелы между значениями. Оператор READLN; обеспечивает пропуск одной строки в стандартном файле INPUT и переход к началу новой строки.
Значения переменных, соответствующие именам переменных в списке ввода, могут принадлежать типу целому, действительному или символьному. Ввод переменных логического типа недопустим. Примеры записи операторов:
READ (A,B,C);
READLN (A,B,C);
Для вывода информации используются операторы:
WRITE (b1,b2,…,bn);
WRITELN (b1,b2,…,bn);
WRITELN;
где b1,b2,…,bn – имена переменных, подлежащих выводу.
Оператор WRITE (b1,b2,…,bn); выполняет вывод значений, соответствующих именам b1,b2,…,bn, в стандартный выходной файл OUTPUT. Выводимые значения размещаются в одной строке.
Оператор WRITELN (b1,b2,…,bn); выполняет вывод значений, соответствующих именам b1,b2,…,bn, в стандартный файл OUTPUT и после вывода последнего значения осуществляет переход к новой строке файла OUTPUT.
Оператор WRITELN; обеспечивает пропуск строки в файле и переход к началу следующей строки.
Имена переменных, записанные в операторе вывода, могут принадлежать целому, действительному, символьному или логическому типу. Примеры записи операторов:
WRITE (A,B,C);
WRITELN (A,B,C);
Ширина поля вывода определяется типом устройства, использующегося в данной ЭВМ. Форма представления выводимых переменных определяется типом переменных: значения величин целого типа выводятся в обычной форме; значения величин действительного типа – в виде нормализованного числа действительного типа с порядком; значения логического типа - в виде логических значений TRUE и FALSE; значения символьных переменных – в виде соответствующих символов.
Операторы вывода допускают использование указания о ширине поля, отводимого под значение, в явном виде. Общий вид записи операторов при выводе значений целого типа:
WRITE (b: m);
WRITELN (b: m);
где b – имя выводимой переменной; m – константа или выражение целого типа.
Пример записи:
WRITE (D: 6, IR: 8);
Значения переменных D и IR размещаются в одной строке и занимают соответственно шесть и восемь позиций. Каждое значение размещается в отведённом поле и занимает крайние правые позиции. При этом незаполненные позиции остаются свободными и образуют пробелы. Если значение переменной не размещается в отведённом поле, то число позиций увеличивается.
При выводе значений действительного типа с фиксированной точкой указывается ширина поля, отводимого под все значение и дробную часть числа. Общий вид записи операторов имеет следующий вид:
WRITE (b: m: n);
WRITELN (b: m: n);
где m – поле, отводимое под запись значения; n – часть поля, отводимого под дробную часть числа.
Пример записи:
WRITE (A: 8: 3);
В этом случае под значение А выделяются восемь позиций, три из которых отводятся под дробную часть числа.
Если при выводе действительных значений количество позиций, отводимых под дробную часть числа, не указывается, то результат получается в нормализованном виде с десятичным порядком.
При выводе нескольких значений на одной строке для наглядности задаются необходимым количеством пробелов. Для этого записывают оператор вывода в виде WRITE (‘ ‘: q); где q – константа целого типа, указывающая число пробелов. Например,
WRITE (A, ‘ ‘ : 4, B);
Между значениями А и В обеспечивается гарантированный интервал в четыре пробела.
Приведенные ниже примеры демонстрируют различные виды размещения информации при выводе:
PROGRAM PRIM1 (OUTPUT);
CONST PI =3.141592;
T=401;
W=TRUE;
SIM = ‘ D ‘;
BEGIN
WRITELN (PI : 8 : 6);
WRITELN (T : 6, ‘ ‘ : 5, W : 4, ‘ ‘ : 6, SIM : 1);
END.
Информация выводится в две строки в виде:
3.141592
401 TRUE D
Имя стандартного файла OUTPUT включается в программу даже в том случаи, если в ней не предусматривается вывод результатов. Это объясняется тем, что вывод текста программы и сообщений об ошибках осуществляется с использованием стандартного файла OUTPUT.
КОНТРОЛЬНЫЕ ВОПРОСЫ:
1.Из чего состоит программа в языке Паскаль?
2.Из скольких разделов состоят блок программы?
3.Какие существуют операторы языка?
4.Какие операторы ввода-вывода данных вы знаете?
ОПОРНЫЕ СЛОВА:
Заголовок, блок, программа, переменные, данные, метка, константа, файл, тип, процедура, функция, массив, оператор, ввод данных, вывод данных, линейная, выражение, имя.
ИСПОЛЬЗУЕМАЯ ЛИТЕРАТУРА:
- Персональный компьютер: Диалог и программные средства. Москва – 1991 г. УДН. В.М.Матюшок и др.
- Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль. Томск МП ’’Раско’’ 1992 г. А.Е.Мудров.
- Программирование на языке Паскаль. Радио и связи. Москва 1998 г. О.Н.Перминов.
- Программирование на алгоритмических языках Бейсик, Фортран, Паскаль. Москва. ’’Просвещение 1991г.Б.И.Чернов.
- Языки программирования (ПАСКАЛЬ, ПЛ/М). Москва «Высшая школа» 1987. В.Е.Алексеев, А.С. Ваулин.
- comp-science.narod.ru
{/spoilers}