- •Курс лекций
- •Лекция 2
- •Элементы структурного программирования.
- •Основные понятия языка паскаль
- •План лекции
- •Лекция 3 простые операторы языка паскаль План лекции
- •1 Простые операторы
- •2 Операторы ввода-вывода
- •Лекция 4 структурные операторы языка паскаль План лекции
- •Лекция 5 подпрограммы языка паскаль План лекции
- •Лекция 6 структурированные типы данных. Массивы План лекции
- •Литература
1 Простые операторы
Это операторы, не содержащие в себе никаких других операторов. К ним относятся операторы присваивания, безусловного перехода, вызова процедуры и пустой оператор.
Оператор присваивания (:=) предписывает выполнить выражение, стоящее в его правой части, и присвоить результат идентификатору переменной, стоящей в левой части. Переменная и выражение должны иметь один и тот же тип. Исключение представляет случай, когда переменная имеет вещественный тип, а выражение – целочисленный. Допустимо присваивание любых типов данных, кроме файловых.
Формат
<идентификатор>:=<выражение>;
Пример
Sort:=1;
Cena:=15.23;
Nazv:=’Model N986’;
Res:=Sin(A)+Cos(B);
Оператор безусловного перехода GOTO означает «перейти к» и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-нибудь другой, отмеченный меткой оператор. Метка может содержать как цифровые, так и буквенные символы.
Формат
GOTO <метка>;
Пример
...
Label Metka1, Metka2;
...
Metka1: GOTO Metka2;
Metka2: GOTO Metka1;
...
При записи оператора GOTO необходимо помнить следующее. Метка, на которую передается управление, должна быть описана в разделе описания меток того блока (процедуры, функции, основной программы), в котором эта метка используется. Областью действия метки является блок, в котором она описана. Попытка выйти за пределы блока вызывает программное прерывание.
Обычно оператор GOTO применяется для преждевременного выхода из цикла или при отладке программы.
Пустой оператор не содержит никаких символов и не выполняет никаких действий. Он может быть расположен в любом месте программы, где синтаксис языка допускает наличие оператора. Как и все другие операторы, пустой оператор может быть помечен меткой. Чаще всего пустой оператор используется для организации выхода из середины программы или составного оператора.
Пример
Begin
Goto Metka; {переход в конец блока}
. . .
Metka; {пустой оператор помечен меткой}
End.
Оператор вызова процедуры служит для активизации предварительно определенной пользователем или стандартной процедуры.
Формат
<имя процедуры> {(список параметров)};
Пример
Program Prim;
Procedure V1;
Begin
. . . {тело процедуры V1}
end;
Procedure V2;
Begin
. . . {тело процедуры V2}
end;
Procedure Sum(a,b:real; Var S:real);
Begin
. . . {тело процедуры Sum}
end;
Begin
V1; {вызов для выполнения процедуры V1}
V2; {вызов для выполнения процедуры V2}
Sum(x,y,S_xy); {вызов для выполнения процедуры Sum}
End.
2 Операторы ввода-вывода
Решение самой простой задачи не обходится без операций ввода-вывода информации.
Ввод данных – это передача информации от внешнего носителя в оперативную память для обработки.
Вывод данных – обратный процесс, когда данные передаются после обработки из оперативной памяти на внешний носитель.
Для выполнения операций ввода используются операторы Read и Readln.
Формат
Read(список ввода);
где в списке ввода могут фигурировать только переменные допустимых типов данных.
Пример
Var I: integer;
J: integer;
K: char;
Begin
read(I, J, K);
Оператор чтения Readln аналогичен оператору Read. Отличие состоит в том, что после считывания последнего в списке значения для одного оператора Readln данные для следующего оператора Readln будут считываться с начала новой строки.
Операторы записи Write и Writeln производят вывод числовых данных, символов, строк, булевских значений.
Формат
Write(список вывода);
где список вывода представляет собой набор переменных и выражений.
Например, Write(y1, y2, sin(3), yn) – выражения типа integer, byte, real, char, boolean и т.д.
Для вывода переменных целого и символьного типов используется следующий формат: Write(X:Р), где параметр Р определяет, сколько знакомест на экране будет выделено для вывода значения той или иной переменной.
Например, Write(X:3,C:7)
Для переменных вещественного типа используется обычно следующий формат: Write(X:P:q), где P означает общее число позиций на экране, выделенное для данной переменной, а q – число позиций (из общего числа) после десятичной точки.
Например,
Write(X:3:1, С:7:4) – правильный формат,
Write(X:1:3, С:7:6) – неправильный формат.
Для вывода результирующей информации на экран иногда требуется вывести текстовую информацию, поясняющую результат.
Пример
Write(‘Cумма ряда =’, S:7:3, ‘при X=’,X:4:2);
Оператор Writeln аналогичен оператору Write, но после вывода последнего в списке значения происходит перевод курсора к началу следующей строки. Оператор Writeln без параметров вызывает пропуск пустой строки.
Знание рассмотренных операторов дает возможность программирования алгоритмов линейной структуры.
Пример
Вычислить значение функций
Текст программы:
Program Lin1;
{$APPTYPE CONSOLE} -
Uses SysUtils, Windows;
Const c=1.2;
Var x,y,z,a,b1,b2,b:real;
Begin
SetConsoleoutputСP(1251);
Writeln('Введите x,y,z');
Readln(x,y,z);
a:=arctan(x)-3/5*exp(x-y)+0.5*abs(x+y)/exp(c*ln(x+y));
b1:=exp(abs(x-y))*sin(z)/cos(z);
b2:=arctan(y)+sqrt(x);
b:=b1/b2+ln(x);
Writeln('При x=',x:0:1,' y=', y:0:2,' результаты: а=',a:0:2,' b=',b:0:2);
Sleep(7000);
End.
Пояснения к программе:
Директива компилятора {$APPTYPE CONSOLE} указывает на генерацию консольного приложения.
Процедура SetConsoleoutputСP(1251) из модуля Windows используется для правильного отображения русских шрифтов.
Процедура Sleep(7000) из модуля SysUtils используется для задержки на экране результата на 7 сек.
