Обратите внимание на то, что определяемые константы относятся к различным типам: real, integer, string. Эти типы указывать не надо: ЭВМ сама растащит значения по типам.
Замечание. В Паскаль “вшита” лишь одна константа Pi равная 3.1415926….
5.Определение типов ‘TYPE’
Все, не относящиеся к “вшитым” стандартным типам, подлежит определению в разделе Type. Создаваемый тип может быть ПРОСТЫМ или СОСТАВНЫМ. По способу определения простые типы делятся на перечисляемые и диапазонные. При определение перечисляемого типа следует перечислить все возможные значения переменной:
Type
Personages=(TIti, PRpr, ICic);
Boolean2=(false, true, no_info);
Color=(Red, Green, Blue, Orange);
Для определения диапазонного типа указываются крайние значения переменной:
Type
Digits=0..9;
Century=1..20;
RusLetters=’A’..’Я’;
При определение составного типа в структуры определяются данные известных машине типов. Самые известные такие структуры – МАССИВ и ЗАПИСЬ (рассмотрим в дальнейших лекциях).
6.Описание переменных ‘VAR’- переменные, которые будут фигурировать в программе, должны быть описаны в разделе VAR. При описании указывается имя и ее тип. Пример:
Var
i: byte;q : real;c:char;
7. Begin {начало работы программы}
Основной блок программы {группа операторов, отделенных друг от друга точкой запятой}
End. {конец программы}
Оператор перехода GOTO <метки>
Обычно операторы в программе выполняются в том порядке, в каком они записаны. Оператор перехода прерывает естественный порядок выполнения программы и указывает, что дальнейшее выполнение должно продолжаться, начиная с оператора, помеченного меткой, указанной в операторе перехода. Пример записи оператора перехода: goto 218;
Оператор присваивания имеет следующую структуру:
ИМЯ_ПЕРЕМЕННОЙ:=АРИФМЕТИЧЕСКОЕ ВЫРАЖЕНИЕ;
Оператор выполняется следующим образом:
1) В арифметическое выражение подставляются текущие значения переменных, хранящиеся в оперативной памяти ЭВМ.
2) Вычисляется значение арифметического выражения.
3) Результат записывается в ячейку, где хранится переменная, чье имя стоит в операторе слева. При этом прежнее значение этой переменной затирается.
Пример: x:=5; x:=x+2;
Количество операторов присваивания в одной строчке неограниченно.
Отметим:
1. Нельзя присваивать переменной значение не родственного типа (например, строковой переменной – целое значение; целой переменной – логическое и т. п.).
2. Нельзя присваивать переменной значение родственного типа, занимающее в памяти больший объем (например, символьной переменной – строковое значение; байтовой переменной – целое со знаком значение; целой переменной – вещественное значение и т. п.).
Стандарты ввода – вывода данных
Оператор печать, т.е. вывода на экран на Паскале имеет вид:
Write(список вывода); Writeln(список вывода);
Различие между ними заключается в том, что после выполнения печати списка вывода в первом случае курсор остается в той же строке (и, следовательно, последующая печать или ввод будут осуществляться в этой же строке, сразу за предыдущими), а во втором случае в данной строке уже ничего не будет напечатано, и курсор перескочит на начало следующей строки.
В списке вывода могут быть перечисленные через запятую переменные и константы, вызванные как своими именами, так и значениями:
Writeln(a,b,c);
Write(‘Вывести х ‘);Writeln(‘x’,x);
Переменная вещественного типа (х) будет выведена на печать в Е-форме( с плавающей точкой), что сделает ее трудночитаемой.
Пример: x=4.91E-0008 ( )
Для того чтобы в процессе вывода выдать вещественные данные в приемлемом виде, используют так называемый формат вывода с фиксированной точкой (F-форма):
Writeln(‘x= ‘,x:m:n);
Число m называют шириной поля, число n – точностью числа. Ширина поля – это число позиций, отводимых под запись всего числа. Точность – число позиций, отводимых на его десятичную часть.
Пример:
Writeln(‘Pi= ‘,Pi:7:4); На экране Pi=3.1416
Writeln(‘Pi= ‘,Pi:7:1); На экране Pi=3.1
Оператор ввода данных с клавиатуры выглядит следующим образом:
Read(список ввода); Readln(список ввода);
Здесь в списке ввода должны перечисляться имена вводимых переменных. Их можно вводить как списком, так и поодиночке:
Readln(x,y); = Readln(x); Readln(y);
При вводе данных из списка вводимые значения можно вводить по одному, нажимая клавишу “Enter” после набора каждого значения, либо набирать в одной строке, разделяя значения произвольным количеством пробелов.
Составной оператор
Составной оператор – группа операторов, отделенных друг от друга точкой с запятой, начинающихся со служебного слова BEGIN и заканчивающихся служебным словом END.
Begin
<оператор_1>;
…
<оператор_n>;
End;
Программирование линейных алгоритмов
В линейных алгоритмах результат получается после выполнения одной последовательности действий.
Начало⤍ряд операторов⤍конец.
Пример:
Вычислить площадь параллелограмма. Значения а (основание) и h (высота) ввести с клавиатуры.
Program TI;
Uses crt; {стандартная библиотека}
Var {раздел описания переменных}
a,h:real;
s:real; {площадь параллелограмма}
begin {начало работы программы}
clrscr; {ф-ция очистки экрана, в данном очистит не весь экран, а только заданное текстовое окно }
write(‘a=’);
readln(a);
write(‘h=’);
readln(h);
s:=a*h;
writeln(‘s=’,s:6:2,’кв.см’); {вывод на экран результата}
Repeat Until Keypressed; {стандартная функция из библиотеки CRT, приводит
к задержке окна результатов до нажатия любой клавиши}
End.
Лекция 6
Процедуры и функции. Условные структуры.
Функции Function
Рассмотрим раздел FUNCTION на примере вычисления значения функции:
Реализовать формулу перехода из градусов в радианы (так как тригонометрические функции понимают лишь аргумент в радианной мере (см. ниже Примечание)) несложно, но выписывать ее придется четыре раза. С этой целью имеет смысл один раз запрограммировать ее и четыре раза вызывать. Делается это с помощью организации функции в разделе FUNCTION:
Function Имя_функции (входные параметры): тип_результата;