Циклические вычислительные процессы




Лекция 2

Типы вычислительных процессов

Существует три типа вычислительных процессов:

· следования;

· ветвления;

· циклы.

 

Следования

Процессы, в которых действия выполняются строго в том порядке, в каком записаны, называются следованиями (линейными). Естественный ход вычислений не нарушается.

Рассмотрим пример линейной структуры.

 

Задача:

Даны два целых числа. Найти их полусумму и произведение.

23 16

рrogram primer;

Uses

crt;

var a, b, p: integer;

s: real;

Begin

сlrscr; {оператор очистки экрана}

writeln (’ введите a, b ’); {вывод сообщения на экран}

readln (a, b); {ввод данных с клавиатуры }

s: = (a + b)/2;

p: = a*b;

writeln (’ s = ’, x:8:3, ’ ’, ’p = ’, y:4); {вывод результатов вычисления}

End.

Ветвления

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

Операторы условия и перехода

 

Строки программы на Паскале не нумеруются. Отдельные строки в программе могут иметь метки, к которым можно переходить.

Метки должны быть описаны в программы с помощью ключевого слова

Label

N1, N2 …;

Где N1, N2, … - метки.

Метками могут быть идентификаторы или целые числа (положительные) в диапазоне 0 9999.

Оператор перехода по метке:

 

go to N;

Где N - метка.

Фрагмент программы с использованием меток:

program pr;

label 3;

Var

x, y: real;

Begin

3: readln (x, y);

...

go to 3;

...

End.

Логический оператор

if < условия > then P1 [else P2 ];

(если) (то) (иначе)

[ else P2 ] - не обязательная часть оператора.

Где <условие> - логическое выражение;

P1, P2 - простые или составные операторы.

По этому оператору:

если <условие> - "истинно" (true), то выполняется P1, если - " ложно" (false), то выполняется P2. Перед структурой else «;» - не ставится.

Если else - отсутствует и <условие> - "ложно", то управление передается следующему оператору.

Приведем примеры использования оператора:

 

1. наибольшее из значений двух переменных вывести на печать:

if a>b then writeln(‘a=’,a)else writeln(‘ b=’,b);

 

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

If x>=0 then y:= sin(x) else y:= - sin(x);

3. в зависимости от значения переменной, выполнить определенные действия:

if a<0 then

Begin

b:=2*a;

writeln(b);

End

Else

Begin

b:=a/2;

goto 3;

end;

Операции отношения

 

Операция Название
= Равно
<> Не равно
> Больше
< Меньше
>= Больше или равно
<= Меньше или равно

 

Логические операции

Операция Название
and И
or Или
not Не


В операторе if можно одновременно проверять несколько условий.

Например:

if (a>b)and(a>c) then writeln(’a - max’);

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

 

Паскаль допускает вложенность операторов if.

Например:

if n>0 then

if (m div n)>n then m: = m - n

else m: = m + n;

 

Структура else - всегда относится к ближайшему оператору if.

Если n>0 и (m div n)>n - будет выполнено m: = m-n.

Если n>0, но (m div n) n - будет выполнено m: = m + n.

Если n 0 - переход к следующему оператору.

Задача.

 

Найти максимальное число из трех вещественных чисел.

 

program max;

Var

a, b, c: real;

Begin

writeln (’введите a, b, c’); readln (a, b, c);

if a>=b then

if a>=c then writeln (’max - a’)

Else writeln (’max - c’)

else

if b>=c then writeln (’max - b’)

else writeln (’max - c’);

readln;

End.

Оператор выбора.

 

Этот оператор предназначен для замены конструкций из вложенных if.

Структура:

Case N of

N1: P1;

N2: P2;

NN: PN;

[else P;]

end;

[else P;] - необязательная часть оператора.

где N - целочисленная переменная, или выражение целого типа;

N1, N2, … NN - возможные значения переменной N;

P, P1, P2, … PN - простые или составные операторы.

По этому оператору:

если значение N = N1, то выполняется P1 (после чего управление передается оператору, следующему за оператором case...of);

если значение N = N2, то выполняется P2, (после чего управление передается оператору, следующему за оператором case...of);

если N не принимает ни одного из перечисленных значений, управление передается оператору P;

если структура else - отсутствует и N - не принимает ни одного из перечисленных значений, управление передается следующему за

case...of оператору.

Например:

Case N of

1, 2, 5: writeln (’a’);

7.. 10: writeln (’b’);

end;

 

1, 2, 5 - перечисляемые значения разделяются «, ».

7.. 10 - интервал задается начальными и конечными значениями через «..».

 

 

Циклические вычислительные процессы

 

Процессы, в которых ряд действий повторяются многократно по одним

и тем же математическим зависимостям, называются циклическими.

При организации циклов необходимо:

определить параметр цикла и его начальное значение;

изменять значение параметра цикла на каждом шаге итерации;

организовать проверку на выход из цикла.

На языке Паскаль существует три оператора цикла:

· оператор цикла с параметром;

· оператор цикла с предусловием;

· оператор цикла с постусловием.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-13 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: