Алгоритмический язык Pascal

Простейшие операторы Delphi Pascal

Оператором называют специальную совокупность служебных слов, идентификаторов и специальных знаков, выполняющих определенные действия. Операторы отделяются друг от друга точкой с запятой ";".

Оператор присваивания: (:=)

Оператор присваивания служит для присваивания значений переменным, например: x:=1; a:=5. 02; b := 32*a+Sin(x); S:= 'Иван Иванович';

Составной оператор: Begin "операторы" End;

Составной оператор служит для записи в свое тело других операторов, последовательность которых рассматривается в данном случае как один оператор. Этим оператором начинается и заканчивается раздел выполнения основной программы, подпрограммы, функции. После последнего оператора END основной программы ставится точка.

Процедуры ввода-вывода данных

Рассмотренные ниже процедуры работают с переменными типа текстового файла Input и Output, которые заранее связаны с файлом-устройством 'CON' - консолью, которое объединяет клавиатуру и монитор. Если при вызове этих процедур имя файла (должно фигурировать в качестве первого параметра) отсутствует, то подразумевается, что информация считывается из системного файла Input (для процедур Read, Readln) либо записывается в файл Output (для процедур Write, Writeln).    

Процедуры вывода данных на экран Write("сп"); или Writeln("сп");

Здесь "сп" - список переменных.

Например, процедуры Write(a, b, c); или Write(a); Write(b); Write(c); или Writeln(a, b, c); - выводят значения переменных "a", "b", "c" начиная с текущей позиции курсора. После вывода данных процедурой Write("сп"); курсор остается за последним выведенным символом. Процедура Writeln("сп"); после вывода данных переводит курсор на первую позицию следующей строки. Например, для вывода значений переменных "a", "b", "c" в трех строках экрана следует написать:

Writeln(a); Writeln(b); Writeln(c);
Процедура Writeln; переводит курсор на начало следующей строки экрана. Процедура Write('Моя первая программа !'); выводит на экран указанный текст.

В процедурах вывода допускается в качестве параметров использовать выражения. Например, процедура Writeln(32*a+Sin(x)); соответствует двум действиям b:=32*a+Sin(x); Writeln(b);

При выводе данных можно задавать формат вывода. Для этого после имени переменной ставится знак двоеточие " : ". Например: Writeln(a:5:2); - при выводе значения переменной вещественного типа отводится 5 позиций (включая отрицательный знак и точку), из них 2 позиции отводится для вывода цифр в дробной части. При выводе значения переменной целого типа задается количество позиций для числа (включая отрицательный знак). Например: Writeln(i:8);

При выводе значений символьных и строковых переменных формат определяет число позиций для вывода значения переменной (текста).

При выводе число или текст выравниваются по правому краю отведенного поля. Например: если а:=5. 02;, то процедура Writeln('а=', a:6:2); выведет на экран: а= _ _ 5. 02, если n:= '116'; s:= 'Школа N';, то процедура Writeln(s:7, n:6); выведет на экран надпись: Школа N _ _ _ 116 .

Для выравнивания числа или текста по левому краю отведенного поля первый знак формата задается отрицательным, например: процедура Writeln('а=', a:-8:2); выведет на экран надпись: а=5. 02 процедура Writeln(s:7, n:-6); выведет на экран надпись: Школа N116 .

При недостатке количества позиций для вывода число или текст выводятся полностью, а формат игнорируется, кроме формата вывода дробной части числа. Если формат вывода не задавать, то значения целых и строковых переменных выводятся полностью, а вещественных - в экспоненциальной форме с количеством цифр, соответствующих типу переменной, например, процедура Writeln('а=', a); выведет на экран надпись: a=5. 02000000000000E+0000 (тип Real).

Приведем пример программы, выполняющей различные операции с переменными разного типа.

 
Program N_1;                          { работа с переменными разного типа }
var
  x, y, z : real;
  x0, y0  : byte;                     { описание типов переменных }
  x1, y1, z1 : integer;
  xb, yb, zb :  boolean;
  c1, c2, c3 :  char;
  s1, s2, s3 :  string;
 
Begin
  x := 5.8;
  y := 3.4;
  x1 := 43;
  y1 := 28;                                  { присвоение значений }
  c1 := 'Z';
  c2 := 'S';
  x0 := 65;
  xb := True;
  yb := False;
  s1 := 'Иванов ';
  s2 := 'Петров ';
  Writeln('Математические операции:');
  Z := x+y;                                   { и т. д.  }
  Write('x:=',  x:3:1,  ' y:=',  y:3:1);
  Writeln('Логические операции:');
  Zb := xb and yb;                            {  и  т. д. }
  Write('xb:=',  xb,' yb:=      ', yb);
  Writeln('Математические функции:');
  Z := sin(x*Pi/180);                         { и т. д.  }
  Writeln('Математические процедуры:');
  Write('x1:=',  x1);
  Inc(x1);                                    { и т. д.  }
  Writeln('Функции преобразования типов:');
  c3 := Chr(x0);{ и т. д.  }
  Write('x0:=', x0);
  readln                                      { Задержка экрана до нажатия Enter }
end.

 

Процедуры ввода данных с клавиатуры Read("сп"); или Readln("сп");

Здесь "сп" - список переменных.

Перед вводом данных с клавиатуры желательно вывести на экран поясняющее сообщение. Для этого в программу следует включить процедуру вывода, например: Write('введите значение а='); затем процедуру Readln(a); При выполнении программы на экране появится надпись: введите значение а= . Процедура Readln(a); будет ждать ввода данных. Следует набрать на клавиатуре значение переменной "а", например, число и нажать клавишу Enter.

Для ввода значений нескольких переменных, например, a, b, c применяются конструкции вида: Readln(a); Readln(b); Readln(c); или Readln(a, b, c);

При вводе нескольких числовых данных, например, процедурой Readln(a, b, c); необходимо после набора каждого значения переменной нажимать клавишу SpaceBar или Enter, а в конце ввода - Enter.

При вводе значений символьных переменных нажатие клавиши Enter приводит к присвоению символьной переменной значения кода клавиши Enter (#13), поэтому значения символьных переменных вводятся одна за другой без нажатия Enter или SpaceBar (#32). Например, процедура: Readln(с1, с2, с3, c4); ожидает ввода значений символьных переменных с1, с2, с3, c4, т. е. набора на клавиатуре символов, например: "У", "Р", "А", "!" и нажатия Enter. Тогда процедура Writeln(с1, с2, с3, c4); выведет на экран надпись: УРА!

Процедура Readln; без параметров служит для приостановки выполнения программы и ожидает нажатия клавиши Enter, т. е. применяется с целью приостановки вывода информации на экран для просмотра результатов. При вводе данных предпочтительнее использовать процедуру Readln, поскольку процедура Read после срабатывания не считывает управляющий код (#13), который остается в буфере клавиатуры.

Приведем пример программы возведения положительного числа "x" в степень"n", т. е. y = xn. Расчет производится по формуле: y=Exp(n*ln(x)).

 
Program N_2;           {возведение положительного числа в степень}
Var n, x, y : real;
BEGIN
  Writeln('Программу разработал Иванов');
  Writeln('Возведение положительного числа x степень n');
  Writeln('x = ');
  Readln(x);
  Write('n = ');
  Readln(n);
  y := exp(n*ln(x));
  Writeln('результат y=', y:10:6);
  readln;    {задержка экрана до нажатия Enter}
END.
Содержание