Здавалка
Главная | Обратная связь

Очередное число: -2



Очередное число: 0

Сумма = 10

Количество чисел = 4

Min = -2

Max = 8

Среднее арифметическое = 2.50

Схема алгоритма:

 

 

 

Программа


Program Posled;

Uses CRT;

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 точку с запятой можно не ставить.

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

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

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

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

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

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

Примеры:

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

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

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

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

 

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

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

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

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

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

s = 0;

i = 1;

ПОВТОРЯТЬ

s = s + i;

i = i + 1;

ДО (i > 100);

Программа:


Program Gauss;

Uses CRT;

Var i, s : Word;

Begin

ClrScr;

s := 0;

i := 1;

Repeat

s := s + i;

i := i + 1;

Until (i>100);

WriteLn(‘s = ‘, s);

ReadLn;

End.


2. вычислить сумму s всех цифр заданного натурального числа n

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

i – очередная цифра числа.

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

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

b. берем последнюю цифру числа, для чего определяем остаток от деления исходного числа на 10: i = n Mod 10,

c. добавляем в сумму найденную цифру: s = s + i,

d. уменьшаем число в 10 раз: n = n Div 10,

e. повторяем цикл до тех пор, пока n = 0 – это и будет условием выхода из цикла.

Схема алгоритма: Программа:


Program Sum;

Uses CRT;

Var i, s, n : Word;

Begin

ClrScr;

Write(‘n= ‘);

ReadLn(n);

s := 0;

Repeat

i := n Mod 10;

s := s + i;

n := n Div 10;

Until (n = 0);

WriteLn(‘s = ‘, s);

ReadLn;

End


3. ввести с клавиатуры по одному последовательность целых чисел (конец последовательности – число 0). Определить их сумму, максимальное и минимальное число, количество введенных чисел и их среднее арифметическое.

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

min, max – минимальное и максимальное из введенных чисел,

count – количество введенных чисел,

sred – среднее арифметическое,

n – очередное число.

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

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

b. вводим первое число n,

c. если оно не равно нулю, то

1. принимаем его значение за min и max

2. количество введенных чисел count = 1

3. увеличиваем сумму на введенное число s = s + n

4. входим в цикл ввода:

d. вводим очередное число n,

e. если оно не равно нулю, то

1. количество введенных чисел увеличиваем на 1: count = count +1

2. увеличиваем сумму на введенное число s = s + n

3. если оно меньше min, то min = n,

4. если оно больше max, то max = n,

f. повторяем цикл до тех пор, пока n = 0 – это и будет условием выхода из цикла.

g. Создадим интерфейс этой задачи – взаимодействие программы с пользователем, то есть что должно выводиться на экран:

Первое число: 3

Очередное число: 8

Очередное число: 1







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.