Программа.

Конец

Все

Начало

Кц

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

Циклы в Паскаль

Конец

Начало

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

Конец

Начало

ввод (a,b, c,d)

если (a<c) то m:=c иначе m:=a

если (b<d) то n:=b иначе n:=d

если m<n то l:=n-m иначе l:=0

все

вывод (l )

 

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

program cros;

var a,b,c,d,m,n,l:real;

begin

writeln(‘введите координаты концов отрезков’);

read (a,b,c,d);

writeln;

if a<c then m:=c else m:=a;

if b<d then n:=b else n:=d;

if m<n then l:=n-m else l:=0;

writeln (‘длина общей части отрезков=’,1:6:2)

end.

Замечание. Слова Else может и не быть. Это используется тогда, когда нужно выполнить всего одно условие и не делать ничего, если оно не верно. В таком случае после действия, указанного за словом Then ставиться ";".

Оператор выбора имеет форму:

case <выражение> of

<список констант 1>:<оператор 1>

< список констант 2>:< оператор 2>

………………

< список констант N>:< оператор N>

end.

Выражение, стоящее между служебными словами

case и of, должно иметь значение ординального типа. Любой список констант может состоять из одной константы.

Оператор выбора вычисляет значение выражения, записанного после case. Если его значение совпадает с одной из констант в некотором списке, то выполняется оператор, стоящий после этого списка. Если значение выражения не совпало ни с одной из констант во всех вариантах, то оператор варианта ничего не делает.

Пример. В зависимости от номера месяца выдать сообщение о времени года.

ввод (k)

выбор из списка: 1, 2, 12; то вывод «зима»

выбор из списка: 3,4,5 то вывод «весна»

выбор из списка: 6,7,8, то вывод «лето»

выбор из списка: 9,10,11, то вывод «осень»

Программа. В зависимости от номера месяца выдать сообщение о времени года.

program seasons;

var k:=integer;

begin

writeln (‘’)

readln(k);

case k of

1,2,12:writeln(‘зима’);

3,4,5:writeln(‘весна’);

6,7,8:writeln(‘лето’);

9,10,11:writeln(‘осень’)

end

end.

Третьей базовой структурой является Цикл, который предусматривает повторное выполнение определенных действий, необходимое для большинства программ. Различают следующие типы структур Цикл:

· цикл “ от до “

· цикл “ пока “

· цикл “ до “

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

В цикле “пока“ управление внутри цикла осуществляется с помощью логического условия:

цикл пока < условие>

< действие >

Выполнение действия повторяется до тех пор, пока верно условие. Проверка условия осуществляется в начале цикла. Это означает, что действие может не выполниться ни разу. Чтобы такой цикл не был бесконечным, внутри цикла необходимо предусмотреть изменение значения условия с истинного на ложное

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

while <логическое выражение> do <оператор>

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

Решим задачу: На склад привозят однородный груз на машинах разной грузоподъемности. На компьютер, управляющий работой склада, поступает информация о весе груза очередной машины. Составить программу подсчета количества машин, прибывших на склад до его заполнения, если вместимость склада не более 100 тонн.

Введем обозначения: sum – сумма веса груза, хранящегося в этот момент на складе; num – число разгруженных машин; w – масса груза очередной машины. Вначале величины sum и num равны нулю. Цикл разгрузки продолжается, пока выполняется равенство sum<100.

Алгоритм Цикл с предусловием

ввод (w )

покаsum<100 делатьsum:=sum+w

еслиsum<=100 то num:=num+1 (число машин растет)

иначевыход из цикла

вывод (num)

program store;

var sum,w:real;

num:integer;

begin

num:=0,sum:=0;

while sum<100 do

begin

writeln(‘введите вес груза машины’);

readln(w);

sum:=sum+w;

if sum<=100 then num:=num+1;

else writeln(‘груз уже не поместится’)

end;

writeln(‘число разгруженных машин =’,num:3)

end.