Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекция Паскаль

.pdf
Скачиваний:
6
Добавлен:
02.06.2015
Размер:
1.76 Mб
Скачать

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

Пример №3: Ввести номер месяца и вывести количество дней в этом месяце.

Решение: Число дней по месяцам: 28 дней – 2 ( февраль)

30 дней – 4 ( апрель), 6 (июнь), 9 (сентябрь), 11 (ноябрь) 31 день – 1 ( январь), 3 (март), 5 (май), 7 (июль), 8 (август), 10 (октябрь), 12 (декабрь)

Особенность: Выбор не из двух, а из нескольких вариантов в зависимости от номера месяца.

Алгоритм

начало

ввод M

M = 1?

нет

M = 2?

нет

M = 12?

нет

Ошибка

ни один вариант не подошел

да оператор

D := 31;

выбора

 

да

D := 28;

да

D := 31;

Вывод D

конец

Программа

program Example_3; var M, D: integer; begin

writeln('Введите номер месяца:'); readln ( M );

case M of

 

2: D := 28;

4,6,9,11: D := 30;

1,3,5,7,8,10,12: D := 31

else

D := -1;

end;

 

ни один вариант не подошел

if D > 0 then

writeln('В этом месяце ', D, ' дней.') else

writeln('Неверный номер месяца'); readln

end.

Что неправильно?

case a of

2: begin b := a; 4: b := c;

end;

case a of 2..5: b := a; 4: b := c;

end;

case a+c/2 of 2: b := a; 4: b := c;

end;

case a of 2: b := a ; 4: b := c

end;

case a of 0..2: b := a; 63..3:6: b := c;

end;

begin case a of

2: b := a; d := 0; end; 4: b := c;

end;

Цикл – это многократное выполнение одинаковой последовательности действий.

цикл с известным числом шагов (цикл с переменной);

цикл с неизвестным числом шагов (цикл с условием).

Цикл с переменной

Увеличение переменной на 1:

for <переменная> := <начальное значение> to <конечное значение> do begin

{тело цикла}

end;

Уменьшение переменной на 1:

for <переменная> := <начальное значение> downto

<конечное значение> do begin

{тело цикла}

end;

Цикл с переменной

Особенности:

переменная цикла может быть только целой (integer)

шаг изменения переменной цикла всегда равен 1 (to)

или -1 (downto)

если в теле цикла только один оператор, слова begin и end можно не писать:

for i:=1 to 8 do

writeln('Привет');

если конечное значение меньше начального, цикл (to) не выполняется ни разу и наоборот с downto.

Пример №4: Вывести на экран квадраты и кубы целых чисел от 1 до 8.

Особенность: одинаковые действия выполняются 8 раз.

Алгоритм (с блоком "цикл")

начало

 

начало

 

 

i := 1..8

конец

i := 1..8

 

 

i2 := i * i;

 

i2 := i * i;

i3 := i2 * i;

 

i3 := i2 * i;

i, i2, i3

i, i2, i3

тело цикла

i := i+1

конец