Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Паскалю.doc
Скачиваний:
14
Добавлен:
04.11.2018
Размер:
7.76 Mб
Скачать

Var n, min, max, s, count: Word;

sred: Real;

Begin

ClrScr;

s := 0;

Write(‘Первое число:’);

ReadLn(n);

If (n = 0)

Then Exit;

min := n;

max := n;

count := 1;

s := s + n;

While (n <> 0) Do

Begin

Write(‘Oчередное число:’);

ReadLn(n);

If (n <> 0) Then

Begin

count := count + 1;

s := s + n;

If (n > max)

Then max := n;

If (n < min)

Then min := n;

End; {If (n <> 0)}

End; {While}

sred := s / count;

WriteLn;

WriteLn(‘Сумма =’,s);

WriteLn(‘Количество чисел =’,count);

WriteLn(‘min=’,min);

WriteLn(‘max=’,max);

WriteLn(‘Среднее арифметическое =’,sred:5:2);

ReadLn;

End.

Часто встречающиеся ошибки программирования:

1. Использование в качестве условия выражения не логического типа:

While (n + m) Do

. . .

2. Отсутствие в заголовке цикла слова Do:

While (n < 10)

. . .

3. Использование после слова Do точки с запятой, которая, как правило, приводит к появлению бесконечного цикла:

s:=0;

n:=1;

While (n < 10) Do;

Begin

s := s + n;

n := n + 1;

End;

Циклы с постусловием

У циклов с постусловием (циклов типа ДО) проверка условия окончания цикла производится после выполнения операторов, составляющих тело цикла:

ПОВТОРЯТЬ

цепочка

ДО (условие);

Такой цикл повторяется до тех пор, пока условие ложно. Выполнение цикла заканчивается, если операторы цепочки изменяют значения переменных, входящих в условие, и оно становится истинным.

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

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

В Паскале цикл с постусловием реализован оператором цикла Repeat:

Repeat

цепочка

Until (условие);

где Repeat – служебное слово повторять,

Until – служебное слово до.

Внимание! После слова Repeat точка с запятой не ставится! Перед словом Until точку с запятой можно не ставить.

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

Действия оператора Repeat:

  1. выполняется оператор (цепочка),

  2. проверяется выполнение условия, стоящего после слова Until,

  3. если оно ложно, то цикл повторяется,

  4. если условие становится истинным, то цикл заканчивает работу.

Примеры:

  1. вычислить сумму ста первых натуральных чисел:

s = 1 + 2 + 3 + … + 98 + 99 + 100

Пусть s – искомая сумма,

i – очередное число (изменяется от 1 до 100).

Тогда алгоритм решения задачи можно описать следующим образом:

  1. обнуляем сумму s ,

  2. берем первое число: i = 1,

  3. добавляем в сумму очередное число, пока оно не достигнет 100.

Представим этот алгоритм так:

s = 0;

i = 1;

ПОВТОРЯТЬ

s = s + i;

i = i + 1;

ДО (i > 100);

Программа:

Program Gauss;

Uses CRT;