Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Uchebnoe_posobie_Programirovanie.docx
Скачиваний:
5
Добавлен:
08.12.2018
Размер:
217.65 Кб
Скачать

4.3. Составной оператор

Это последовательность операторов программы заключенная в операторные скобки BEGIN … END. Это дает возможность писать программу по современным технологиям без операторов go, to. Турбо паскаль не накладывает никаких ограничений на характер операторов, входящих в составной оператор. Среди них может быть и составной оператор. Глубина вложенности произвольна.

Begin

--------------------------

Begin

--------------------------

Begin

  • --------------------------

End;

---------------------------

End;

-----------------------------

End;

4.4. Условный оператор

Позволяет проверить то или иное условие и в зависимости от результата проверки выполнить то или иное действие.

IF <условие> THEN <оператор 1>ELSE <оператор 2>

Условие это произвольное выражения логического типа.

Оператор 1 и Оператор 2 - любой оператор Турбо Паскаль.

Работает по принципу сначала вычисляем условие если результат True то выполняем оператор 1 а оператор 2 пропускаем если оператор False то оператор 2 выполняется а оператор 1 пропускается!

Пример 1:

-----------------------------

If X<2 then write(‘ X<2 ’)

ELSE

write(‘ X>=2 ’);

INC(X);

-------------------------------------------------------

Пример 2:

If X>5 then write(X);

DEC(X);

--------------------------------------------------------

Оператор 1 и оператор 2 могут быть любого типа, в том числе и условными. Но не каждый из условных операторов может иметь часть ELSE. Эта неоднозначность решается так: любая встретившаяся часть ELSE соответствует ближайшей к ней “сверху” части THEN условного оператора.

Пример 3:

VAR

A,b,c,d:integer;

---------------------------------

{a:=1; b:=2; c:3; d:=4;}

  1. If a>b then

If c<d then

If c<0 then c:=0

ELSE

A:=b; {a=1}

  1. If a>b then

If c<d then

If c<0 then c:=0

ELSE

ELSE

ELSE

A:=b; {a=2}

Лучше составной оператор ставить между Begin и End.

IF key=’Y’ THEN

begin

{выполняются операторы, если ответом был Y}

End

ELSE

begin

{эти операторы выполняются независимо от ответа}

End;

Пример 4:

Вычислить функцию:

X2+1, если X<0

Y= X-2,1, если Х>P/2

SIN X, если 0<=X<=P/2

Для произвольного Х.

Program TS;

Var

X,Y: real;

BEGIN

Write(‘ Введите X ‘); Readln(X);

If X<0 then Y:=sqr(X)+1

ELSE

If X>PI/2 then Y:=X-2.1

ELSE

Y:=Sin(X);

Writeln(‘При х=’, X:5:2,’ Y=’,Y:8:2);

END.

Пример 5:

Составить программу определения произведения двух наименьших целых чисел A,B,C.

(A=B=C)

Program MINMUL;

Var

A,B,C: integer;

Mul:real;

BEGIN

Write(‘ Введите A,B,C ‘); Readln(a,b,c);

Max:=a;

If B>MAX then MAX:=B;

If C>MAX then MAX:=C;

MUL:=A*B*C/MAX;

Writeln(‘Произведение двух наименьших’, MUL:8:2)

END.

4.5. Операторы циклов

В Т-П имеются три оператора, с помощью которых можно запрограммировать повторяющиеся фрагменты.

4.5.1. Оператор for

Используется, если можно указать в заголовке число повторений

FOR <ПЦ> : = <НЗ> TO <КЗ> DO <оператор>

DOWNTO

FOR, TO, DOWNTO, DO – зарезервированные слова

<ПЦ> – параметр цикла, переменная любого порядкового типа

<НЗ>– начальное выражение того же типа

<КЗ> – конечное выражение того же типа

(оператор) – произвольный оператор Т-П

Работа цикла представлена блок-схемой

Увеличить

(нц) := (нц)+1

((нц) := (нц)-1 – в случае DOWNTO)

Вычислить (НЗ)

Запомнить результат

А

Вычислить (КЗ)

Запомнить результат

(НЦ)>(КЗ)

(<DOWNTO)

(НЗ)< (КЗ)

(В случае downto (НЗ)> (КЗ))

В

нет

да

(ПЦ) := (НЦ)

В

Выполнить оператор

А

Пример 1

Program Privet;

var

Hum : byte;

Begin

For hum :=1 to 3 do

Writeln ('Мы желаем Вам веселого Рождества');

Writeln ('и счастливого Нового года!');

End.

Выполняется при hum := 1,2,3 первая запись и один раз вторая запись (после завершения цикла)

Пример 2

На экран выводиться таблица перевода из градусов по шкале Цельсия (С) в градусы по Фаренгейту (F) для значений от 150 до 300 с шагом 10. Перевод осуществляется по формуле F:= С* 1,8+ 32

Program Demofor;

Var

i: integer;

f: real;

Begin

Write (‘ Температура ‘);

For i:=15 to 30 do

Begin

F:=i*1.8=32;

Write (‘по Цельсию = ‘, i, ‘ по Фаренгейту = ‘, f:5:2)

End

End.

Описан параметр цикла I (тип Integer) и var – типа real. В начале выполнения программы выводится надпись «Температура», а затем таблица соотношения температуры (с) и (F)

Цикл:

  1. Проверяется условие I<=30;

  2. Если да – то рассчитывается выражение i*1.8=32 и присваивается var f и на экран выводится сообщение;

  3. Если условие I<=30 не соблюдается, то оператор цикла не выполняется и управление передается за пределы цикла. Программа завершает работу.

  4. Значение i=i+1 передается в заголовок цикла (for) для проверки условия.

Пример 3 c dowto

For i:=14 dowto10 do

Write (i:3)

На экране 14 13 12 11 10

Пример 4

Если выражение отвечает невозможной последовательности, то цикл вообще не выполняется

For i:= 2 to 1 do write(‘Робкий‘)

Начальное и конечное значение вычисляется перед выполнением оператора цикла и в дальнейшем не перевычисляется. Невозможно перескочить через «финишную черту», установленную в самом начале.

Пример 5

Fin := 3; (цикл работает равно три раза)

For i:=1 to fin do 4

Begin 5

Inс (fin) 6

End;

Всякое изменение параметра цикла является ошибкой.

for i:=1 to 3 do

begin

i:=i-1; {ошибка}

read (i); {ошибка}

for i:=5 to 10 do {ошибка}

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]