Программа.
Конец
Все
Начало
Кц
Цикл с предусловием
Циклы в Паскаль
Конец
Начало
Оператор выбора
Конец
Начало
ввод (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.