Операторы TurboPascal 7
Содержание
1. Операторы ввода и вывода информации.
2. Операторы языка ТР.7.
2.1 Составной оператор Begin ... end.
2.2 Условный оператор If.
2.3 Оператор безусловного перехода Goto.
2.4 Оператор выбора Case.
3. Операторы циклических процессов.
3.1 Оператор цикла с параметром FOR.
3.2 Оператор цикла с предварительным условием While.
3.3 Оператор цикла с последующим условием Repeat.
1. Операторы ввода и вывода информации
Для того, чтобы ввести какие-либо данные в память машины, используют операторы ввода READили READLN.
При использовании READпосле ввода информации курсор останется мигать на той же строке, что и вводимый параметр. При использовании READLNкурсор перейдет на новую строку.
Read (x);
Readln (x);
В некоторых случаях с помощью первого оператора вводят несколько переменных:
Read (x, y, z)
Чтобы вывести на экран дисплея результат расчета или какую-либо другую информацию (комментарий, текст…), используют операторы вывода WRITEили WRITELN:
Write (x);
Writeln (y);
Writeln (`прих = `, x, `_ _ y = `, y);
Удобно сочетать как текстовую информацию, так и подсчитанную цифровую. При этом текстовая информация заключается в апострофы, а выводимые элементы разделяются запятыми.
Если с помощь WRITE илиWRITELN на экран выводятся дробные числа, то машина представляет их в неудобном для восприятия экспоненциальном виде:
16,23 => 1.6230000000Е + 01
Чтобы выводить на экран числа в привычном виде, в операторе вывода у выводимых дробных параметров записывают их формат, т.е. количество позиций, отводимых под дробную часть выводимого числа. Эти параметры отделяются друг от друга двоеточием:
Y = 16,23
Writeln (y: 5: 2)
(5 – общее количество позиций под число, 2 – количество знаков после запятой)
Формат можно указывать и при выводе на экран целых чисел:
Writeln (x : 4)
Если выводимое целое число занимает меньшее количество позиций, чем под него отведено, то машина сдвинет это число от левой части экрана до количества незаполненных позиций.
2. Операторы языка ТР.7
В ТР.7 в программах используют следующие операторы:
2.1 Составной оператор Begin ... end
Применяется в программе в тех случаях, когда те или иные конструкции программы предусматривают выполнение в них только одного оператора, а нам в данной программе нужно выполнить несколько операторов. В этом случае эти операторы заключают в «операторные скобки» BEGIN…END, и программа думает, что она имеет дело с одним составным оператором.
Begin
Оператор 1
Оператор 2
- - - - - - - - -
оператор N
end;
Исполнительная часть программы представляет собой большой составной оператор, т.к. также заключается в «операторные скобки» BEGIN…END.
После слова BEGIN и перед словом END точку в запятой ставить не обязательно, т.к. они являются своеобразными знаками препинания.
2.2 Условный оператор If .
Условный оператор If реализует в программе алгоритмическую конструкцию «развилка».
Схема линейного алгоритма
Схема алгоритма «развилка»
Различают 2 варианта оператора IF:
1) «Полная развилка» в общем виде выглядит так:
IF <условие> THEN <оператор 1> ELSE < оператор 2> ; |
Пример:
If (х >= 0) then у: = sqrt (х)
else у: = abs (х);
2) «Короткая развилка»
IF <условие> THEN <оператор 1> ; |
If (х >= 0) then у: = sqrt (х);
В этих конструкциях условие – проверяемое логическое условие.
В каждой ветви оператора IF по умолчанию может выполняться только один оператор. Если же нам необходимо в каждой ветви выполнить по нескольку операторов, то их заключают в «операторные скобки» BEGIN…END:
IF <условие> THEN <оператор 1> ELSEBEGIN< оператор 2>; < оператор 3>;< оператор 4>;END; |
Часто в программах приходится вычислять по нескольку функций в зависимости от истинности или ложности проверяемых логических условий. В этих случаях в программах применяют несколько операторов IF – либо несколько «полных развилок», либо комбинацию из «коротких» и «полных развилок»:
IF <Y 1> THEN <оператор 1>ELSE< оператор 2> ;IF <Y 2> THEN <оператор 3>ELSE< оператор 4> ; |
IF <Y 1> THEN <оператор 1> IF <Y 2> THEN <оператор 2> IF <Y 3> THEN <оператор 3> IF <Y 4> THEN <оператор 4> |
С увеличением количества проверяемых условий программа становится более громоздкой и в ее структуре могут возникать логические несоответствия.
Для того, чтобы сократить количество проверяемых логических условий и правильнее записывать алгоритм программы, необходимо применять так называемые «вложенные» конструкции оператора IF.
В общем виде:
If <Y 1> THEN <оператор 1> ELSE IF < Y 2> then < оператор 2> ELSE IF < Y 3> THEN < оператор 3> ELSE IF < Y 4> THEN < оператор 4> ; |
Пример:
Составить программу для вычисления функции Y с помощью коротких развилок и с помощью вложенных операторов:
{ | |||
х | |||
Y = | х + 5 | ||
х 2 | |||
I. | |||
Program Y__X;Uses Crt;Var X, Y: Real;BeginClrscr;Write (`ВведитеХ: _`);Readln (x);If (X < 0) then Y:= sqrt (abs (x));If (X < 0) then Y:= х + 5;If (X < 0) then Y: = х * х; Writeln (`Прих =`, x:4:2, `_ _ _ Y= `), y:4:3;Readkey;End. |
II. |
Program Y__X;Uses Crt;Var X, Y: Real;BeginClrscr;Write (`ВведитеХ: _`);Readln (x);If (X < 0) then Y:= sqrt (abs (x))else if (Х = 0) then y:= x + 5else y: = x * x;Writeln (`Прих =`, x:4:2, `_ _ _ Y= `), y:4:3;Readkey;End. |
При использовании в программах IFдвойных условий применяют для связи этих условий между собой логические операторы AND, NOT, ОR.
Чтобы логическое условие записывалось правильно, необходимо каждую половину двойного условия заключать в скобки:
0 х5
if (x >=0) and (x <= 5) then
2.3 Оператор безусловного перехода Goto
Оператор безусловного перехода Gotoпозволяет изменить ход выполнения программы, начиная с какого-либо оператора, который помечен в программе специальной меткой.
Все метки в программе должны быть объявлены заранее в разделе меток LABEL.
В разделе LABEL метки перечисляются через запятую:
Label 1, а, W, c1…;
В качестве меток можно использовать:
· обычные имена, задаваемые программистом
· числа от 0 до 9999.
Оператор, который помечается меткой, отделяется от нее двоеточием:
1: Writeln (x);
- - - - - -
goto 1;
Ссылка на помеченный оператор осуществляется оператором GOTOс указаниемимени метки.
Пример: Нахождение частного от деления X и Y, которое бы осуществило страховку программы от деления на 0.Program Delenie;Uses Crt;Label 1;Var X, Y, Z: Real;BeginClrscr;Write (`ВводХ: _`);Readln (x);1: Write (`Ввод Y: _`);Readln (y);If (Y = 0) then beginWriteln (`Делить на 0 нельзя!`);Goto 1Endelse Z: = x / y;Writeln (`Z =`, `Z:4:`1 `);Readkey;End. |
2.4 Оператор выбора Case
Для реализации в программах помимо условного оператора IF используется оператор СASE.
В общем виде:
СASE <селектор> OF<Вариант 1> : <оператор 1>;<Вариант 2> : <оператор 2>;- - - - - - - <Вариант N - 1> : <оператор N - 1>;ELSE<оператор N >;END; |
где селектор – выражение порядкового типа (например, INTEGER, CHAR), значение которого вычисляется в программе заранее, вариант 1, 2, …, N – возможные значения селектора.
В каждой ветви оператора CASE на месте любого варианта может стоять либо одно значение селектора, либо несколько таких значений через запятую, либо значения селектора в виде отрезка.
В каждой ветви оператора CASE по умолчанию может выполняться только 1 оператор. Если же нам необходимо выполнить несколько операторов, то их заключают в «операторные скобки» BEGIN…END.
В любом случае в операторе CASE должны быть перечислены все возможные значения селектора либо их указания в явном виде в вариантах от 1 до N – 1, либо отнесением к пункту ЕLSE в неявном виде.
Case X of
1: Y: = X + 1;
2, 3, 4: Y : X + 2;
5 .. 10: Y: = X + 3;
else Y: = 0;
end;
Пример:Проверка чисел от 1 до 10 на четностьProgram Chet;Uses Crt;Var X: Integer;BeginClrscr;Write (`Введите Х от 1 до 10`);Readln (x);CaseXof1, 3, 7, 9: Writeln (`Это нечетное число`);2, 4, 6, 8, 10: Writeln (`Это четное число`);else Writeln (`Вводневерен!`);end; Readkey;End. |
3. Операторы циклических процессов