Слайд 1Операторы языка в Turbo Pascal 7
Слайд 2Простые операторы
Простыми являются те операторы, которые не содержат в себе других
операторов.
К ним относятся:
- оператор присваивания;
- оператор безусловного перехода GOTO;
Слайд 3Оператор присваивания
С помощью этого оператора переменной или функции присваивается значение выражения.
Для этого используется знак присваивания := , слева от которого записывается имя переменной или функции, которой присваивается значение, а справа - выражение, значение которого вычисляется перед присваиванием.
Пример:
X := Y;
Z :=А + В;
Res := (I>0) and (I < 100);
I := Sqr(J) + I * К;
Слайд 4Оператор безусловного перехода GOTO
Оператор GOTO позволяет изменить стандартный последовательный порядок выполнения
операторов и перейти к выполнению программы, начиная с заданного оператора.
Оператор, на который происходит переход, должен быть помечен меткой. Эта же метка должна быть указана и в операторе GOTO.
Метки, используемые в Turbo Pascal, могут быть двух типов:
- целым числом в пределах от 0 до 9999;
- обычным идентификатором.
Все используемые метки должны быть перечислены в разделе объявления меток, начинающемся зарезервированным словом label, например:
label 1, 2, Metka;
Слайд 5label
Out; {описание метки}
var
X, Y, Res: Integer;
begin
…
goto Out; end;
…
Out:
…
Слайд 6Структурированные операторы
Структурированными являются такие операторы, которые состоят из других операторов.
К ним относятся:
- составной оператор;
- условный оператор IF;
- условный оператор CASE;
- оператор цикла REPEAT;
- оператор цикла WHILE;
- оператор цикла FOR;
- оператор над записями WITH.
Слайд 7Составной оператор
Составной оператор представляет собой совокупность последовательно выполняемых операторов, заключенных в
операторные скобки begin и end:
begin
<оператор 1>;
<оператор 2>;
. . .
<оператор N>
end;
Он может потребоваться в тех случаях, когда в соответствии с правилам! построения конструкций языка можно использовать один оператор, а выполнить нужно несколько действий. В такой составной оператор входит ряд операторов выполняющих требуемые действия.
Слайд 8Условный оператор IF
Оператор IF реализует алгоритмическую конструкцию РАЗВИЛКА и изменяет порядок
выполнения операторов в зависимости от истинности или ложности некоторого условия. Существует два варианта оператора:
if S then A
else В; {полная развилка}
if S then А; {укороченная развилка}
В этих операторах:
S - некоторое логическое выражение, истинность которого проверяется;
А - оператор, который выполняется, если выражение S истинно;
В - оператор, который выполняется, если выражение S ложно.
Слайд 9Так как условный оператор IF является единым предложением, ни перед then,
ни перед else точку с запятой ставить нельзя. Примеры использования оператора:
if X < 0 then X := -Y;
if X < 1.5 then Z := X + Y
else Z := 1.5;
Слайд 10
label
Out;
var
X, Y, Res:
Integer;
begin
…
Out:
… повторяющиеся действия
if X > Res then goto Out;
…
end.
if X < 1.5 then Z := X + Y
else Z := 1.5;
Слайд 11Условный оператор CASE
С помощью этого оператора можно выбрать вариант из любого
количества вариантов. Структура этого оператора в Turbo Pascal:
case S of
C1:Instruction1;
C2:Instruction2;
CN: InstructionN;
else Instruction
end;
Слайд 12В этой структуре:
S - выражение порядкового типа, значение которого вычисляется;
C1,
C2, ..., CN - константы, с которыми сравнивается значение выражения S;
Instruction1, Instruction2, ..., InstructionN - операторы, из которых выполняется ТОТ, с константой которого совпадает значение выражения S;
Instruction - оператор, который выполняется, если значение выражения S не совпадает ни с одной из констант С1, ..., CN.
Слайд 13Ветвь оператора else является необязательной. Если она отсутствует и значение выражения
S не совпадет ни с одной из перечисленных констант, весь оператор рассматривается как пустой.
В отличие от оператора IF перед словом else точку с запятой можно ставить.
Если для нескольких констант нужно выполнять один и тот же оператор, их можно перечислить через запятую (или даже указать диапазон, если возможно), сопроводив их одним оператором.
Слайд 14Пример.
case I of
0, 2, 4, 6, 8: WriteLn('Четная цифра');
1, 3, 5, 7, 9: WriteLn('Нечетная цифра');
10..100: WriteLn('Число от 10 до 100');
else
WriteLn('Отрицательное число или больше 100')
end;
Слайд 15Задание.
По номеру месяца вывести время года.
Текстовый калькулятор:
меню калькулятора
содержит
4 операции: + - / *
3. Зациклить калькулятор с помощью GoTo, чтобы человек мог много раз вычислять.
Слайд 16Задание.
Сложение
Вычитание
Деление
Умножение
0. Выход
Слайд 17Оператор цикла WHILE
Оператор цикла WHILE организует выполнение одного оператора неизвестное заранее
число раз. Выход из цикла осуществляется, если некоторое логическое выражение окажется ложным. Так как истинность логического выражения проверяется в начале каждой итерации, тело цикла может не выполняться ни разу.
Слайд 18Оператор цикла WHILE
Структура оператора цикла имеет вид:
while S do
Instruction;
В этой структуре:
S - логическое выражение, истинность которого проверяется в начале каждой итерации;
Instruction - выполняемый оператор цикла.
Слайд 19Оператор цикла WHILE
while m 0 do
begin
k:=k+1;
m:= m div 10;
end;
m:=9
while m <>0 do
m:=m-1;
Пример:
Слайд 20Оператор цикла WHILE
Возведение числа а, введенного с клавиатуры, в степень n.
Дано
натуральное число n. Посчитать количество цифр в числе.
Вычислить наибольший общий делитель двух натуральных чисел А и В.
Определить, является ли число простым.
Задания:
Слайд 21Оператор цикла REPEAT
Оператор цикла REPEAT организует выполнение цикла, состоящего из любого
числа операторов, с неизвестным заранее числом повторений.
Тело цикла выполняется хотя бы один раз.
Выход из цикла осуществляется при истинности некоторого логического выражения.
Слайд 22Оператор цикла REPEAT
repeat
Instruction1;
Instruction2;
. . .
InstructionN
until S;
Instruction1, Instruction2, ..., InstructionN - выполняемые операторы, составляющие тело цикла;
S - логическое выражение, истинность которого проверяется в конце каждой итерации.
Слайд 23Запись цикла в виде блок-схемы:
условие
тело цикла
да
нет
Слайд 24Оператор цикла REPEAT
Использовать цикл repeat для подсчета суммы вводимых чисел до
первого отрицательного числа.
Определить, является ли число симетричным. (25652, 1221)
Задания:
Слайд 25Оператор цикла FOR
Оператор цикла FOR организует выполнение одного оператора заранее известное
число раз. Существует два варианта оператора:
For Param:=Start to Finish do Instruction;
For Param:=Start downto Finish do Instruction;
Param - параметр цикла, являющийся переменной порядкового типа;
Start - выражение, определяющее начальное значение параметра цикла;
Finish - выражение, определяющее конечное значение параметра цикла;
Instruction - выполняемый оператор.
Слайд 26Оператор цикла FOR
Сначала вычисляются и запоминаются начальное - Start и конечное
- Finish значения параметра цикла.
Далее параметру цикла Param присваивается начальное значение Start.
Далее, пока параметр цикла меньше или равен конечному значению, выполняется очередная итерация цикла; в противном случае происходит выход из цикла.
Слайд 27Запись цикла со счетчиком
в виде блок-схемы:
счетчик
тело цикла
да
нет
Слайд 28Оператор цикла FOR
В циклах REPEAT, WHILE и FOR можно использовать две
новые стандартные процедуры - Break и Continue.
Процедура Break позволяет досрочно выйти из цикла, не дожидаясь выполнения условия выхода.
Процедура Continue позволяет начать новую итерацию цикла, даже если предыдущая не завершена.
Слайд 29Оператор цикла FOR
Пример. Вывести на экран буквы от Z до A.
program
EXAMPLE8;
var i: Char;
begin
for i : = 'Z' downto 'A' do
Write(i);
WriteLn
end.
Слайд 30Оператор цикла FOR
Вычисление суммы чисел от 6 до 10.
Из чисел от
10 до 99 вывести те, сумма цифр которых равна S(0 < S < 18).
Дано натуральное число n (1000<=N<=9999). Определить, является ли оно палиндромом ("перевертышем"), с учетом четырех цифр. Например, палиндромами являются числа: 2222, 6116, 1441.
Задания: