Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТ(Лек)МФ+ФГГиНД(2).docx
Скачиваний:
18
Добавлен:
11.04.2015
Размер:
617.66 Кб
Скачать

2.2. Программирование разветвлений

Для реализации алгоритма разветвляющейся структурыв языкеPascalиспользуются следующие операторы.

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

Этот оператор имеет вид:

gotoM

где goto– перейти к,M– метка.

Это означает, что надо перейти к строке с меткой M .

Оператору безусловного перехода могут соответствовать фрагменты блок-схемы

или

  1. Оператор условного перехода(условный оператор) позволяет осуществлять переход к одной из двух частей программы в зависимости от выполнения какого-то условия.

Этот оператор имеет вид:

ifUthenOp1elseOp2

где if– если,then– то, else– иначе,U– условие, Op1– оператор 1-й,Op2– оператор 2-й.

Это означает, что если условие U истинное, то выполнять оператор Op1, иначе выполнять оператор Op2.

Условие– логическое выражение, которое может принимать одно из 2-х значений: «истина» или «ложь».

Оператору условного перехода могут соответствовать фрагменты блок-схемы

или

В операторе условного перехода служебное слово else может отсутствовать, но в этом случае ветвь «нет» без блоков всё равно присутствует.

  1. Оператор варианта(оператор выбора) позволяет выбирать направление выполнения программы по одному варианту из множества частей.

Этот оператор имеет вид:

caseSof

Z1 : Op1;

ZN : OpN

else Op0

end

где case – случай, of – из, else – иначе, end – конец, S – селектор, Z1 – значение 1-е, ZN – значение N-е, Op1 – оператор 1-й, OpN – оператор N-й, Op0 – оператор 0-й.

Это означает, что в случае, если селектор S принимает значение из списка Z1, то выполнять оператор Op1, … если селектор S принимает значение из списка ZN, то выполнять оператор OpN, иначе выполнять оператор Op0.

Селектор– выражение порядкового типа, которое может принимать одно из многих значений(селектор может быть целым числом и не может быть дробным числом).

Оператору варианта могут соответствовать фрагменты блок-схемы

или

В операторе варианта служебное слово else и ветвь «нет» могут отсутствовать.

Задача 2.

Условие задачи. Вычислить величину

Блок-схема.

Программа.

Program z2;

Var

a,b,c:real;

Begin

read(a,b);

if a>b

then c:=a+b

else c:=a-b;

writeln(c);

End.

Задача 3.

Условие задачи. Вычислить величину , гдеa и c – целые числа.

а) Использование вложенных условных переходов

Программа.

Program z3a;

Var

a,c:integer;

Begin

read(a);

if a=0 then c:=2

else if (a>=1) and (a<=10) then c:=3

else if (a=-1) or (a=11) then c:=4

else c:=5;

writeln(c);

End.

б) Использование множественного ветвления

Программа.

Program z3b;

Var

a,c:integer;

Begin

read(a);

case a of

0: c:=2;

1..10: c:=3;

-1,11: c:=4

else c:=5

end;

writeln(c);

End.

2.3. Программирование циклов

Для реализации алгоритма циклической структурыв языкеPascalиспользуются следующие операторы.

  1. Оператор цикла с предусловиемпозволяет выполнять заранее неизвестное количество повторений в цикле, условие выхода из которого проверяется перед действиями в теле цикла.

Этот оператор имеет вид:

whileUdoOp

где while– пока,do– делать, U– условие, Op– оператор.

Это означает, что пока условие U истинное, повторять оператор Op в цикле; как только условие станет ложным, выйти из цикла.

Оператору цикла с предусловием может соответствовать фрагмент блок-схемы

Действия в теле цикла с предусловием могут не выполняться ни разу в случае, если условие продолжения цикла сразу становится ложным.

  1. Оператор цикла с постусловиемпозволяет выполнять заранее неизвестное количество повторений в цикле, условие выхода из которого проверяется после действий в теле цикла.

Этот оператор имеет вид:

repeat

Op1;

OpN

untilU

где repeat– повторять,until– до тех пор пока, Op1– оператор 1-й,OpN– операторN-й, U– условие.

Это означает, что надо повторять операторы Op1, … OpN в цикле до тех пор, пока условие U не станет истинным; как только условие станет истинным, выйти из цикла.

Оператору цикла с постусловием может соответствовать фрагмент блок-схемы

Действия в теле цикла с постусловием могут выполняться как минимум 1 раз в случае, если условие выхода из цикла сразу становится истинным.

  1. Оператор цикла с параметромпозволяет выполнять заранее известное количество повторений в цикле, определяемое параметром цикла. Этот оператор имеет 2 разновидности.

а)  Оператор цикла с параметром (при увеличении параметра) имеет вид:

for Par := Nz to Kz do Op

где for– для,to– до,do– делать,Par– параметр цикла,Nz– начальное значение,Kz– конечное значение,Op– оператор.

Это означает, что для параметра Par , увеличивающегося от начального значения Nz до конечного значения Kz с шагом 1, повторять оператор Op в цикле.

б)  Оператор цикла с параметром (при уменьшении параметра) имеет вид:

for Par := Nz downto Kz do Op

где for – для,downto– вниз до, do – делать, Par – параметр цикла, Nz – начальное значение, Kz – конечное значение, Op – оператор.

Это означает, что для параметра Par , уменьшающегося от начального значения Nz до конечного значения Kz с шагом (-1), повторять оператор Op в цикле.

Параметр цикла(счётчик циклов) – переменная порядкового типа, изменяющаяся в цикле от начального до конечного значения с каким-либо шагом(параметр цикла может быть целым числом и не может быть дробным числом).

Оператору цикла с параметром могут соответствовать фрагменты блок-схемы

или

Задача 4.

Условие задачи. Вычислить значения функции приx, увеличивающемся от xн до xк с шагом x

(Введём обозначения: xн  xn ; xк  xk ; x  dx ).

Блок-схема.

Программа.

Program z4;

Var

x,y,xn,xk,dx:real;

Begin

read(xn,xk,dx);

x:=xn;

while x<=xk do

begin

y:=sin(x)/cos(x);

writeln('при x=',x:10:3,' y=',y:7:2);

x:=x+dx;

end;

End.

Задача 5.

Условие задачи. Вычислить значения функции приx, изменяющемся от 0 до 10 с шагом 1.

а) Цикл с предусловием.

Блок-схема.

Программа.

Program z5a;

Var

x,y:real;

Begin

x:=0;

while x<=10 do

begin

y:=exp(x);

writeln(x,y);

x:=x+1;

end;

End.

б) Цикл с постусловием.

Блок-схема.

Программа.

Program z5b;

Var

x,y:real;

Begin

x:=0;

repeat

y:=exp(x);

writeln(x,y);

x:=x+1;

untilx>10;

End.

в) Цикл с параметром.

Блок-схема.

Программа.

Program z5c;

Var

x:integer;

y:real;

Begin

for x:=0 to 10 do

begin

y:=exp(x);

writeln(x,y);

end;

End.

г) Цикл с использованием безусловного перехода.

Блок-схема.

Программа.

Programz5d;

Label20;

Var

x,y:real;

Begin

x:=0;

20: y:=exp(x);

writeln(x,y);

x:=x+1;

ifx<=10thengoto20;

End.