78
V
sum
= v1 + v2 + ... + v
N
При: N > 0.
Правильность метода вычислений можно доказать по индукции. Рассмотрим результаты
вычислений на 1-м, 2-м и k-м шагах. Отметим, что начальное значение S
0
= 0.
На первом шаге при k = 1 результат вычисления
S1 = S
0
+v1 = v1
На следующем втором шаге при k = 2 результат
S2 = S1 + v2 = v1 + v2.
На третьем шаге при k = 3 результат
S3= S2 + v3 = v1 + v2 + v3.
В общем случае можно предположить, что к k-му шагу результат вычисления
S
k-1
=v1+...+v
k-1
.
Тогда результат вычислений после k-го шага (исходя из описания метода)
S
k
= S
k-1
+v
k
= v1 +
+ v
k-1
+ v
k
.
В силу принципа математической индукции утверждение верно для всех k = 1, 2,.... N. Сле-
довательно, на последнем шаге при k = N конечный результат:
S
N
= v1 + ... + v
N
.
Что и требовалось. Следовательно, метод правильный.
Приведем сценарий диалога решения поставленной задачи на ЭВМ. Для представления
данных в программе примем последовательность операторов data.
Сценарий
Представление данных
Данные об учениках
фамилия вес рост
dano:'данные учеников
<Fam1> <V1> <R1>
data «Иванов», 185, 85
data «Петрова», 165, 65
<Fam
N
> <V
N
> <R
N
>
data «Сидоров», 170, 80
data «», 0, 0
суммарный вес = <Vsum>
Алгоритм обработки данных и программа, соответствующие выбранному сценарию и ме-
тоду вычисления:
Алгоритм
Программа
алг «суммарный вес»
' суммарный вес
нач
cls
вывод («Данные об учениках»)
? «Данные об учениках»
вывод («фамилия вес рост»)
? «фамилия вес рост»
s := 0
s = 0
цикл
do
чтение famS, r, v
read fam$, r, v
при fam$=«» выход
if fam$=«» then exit do
вывод (fam$, v, r)
? fam$; v; r
s := s + v
s = s + v
кцикл
loop
vsum = s
vsum = s
вывод («суммарный вec=»,vsum)
? «суммарный вес=»; vsum
кон
end
Правильность приведенного алгоритма можно увидеть из описания результатов его выпол-
нения.
Алгоритм
Результаты выполнения
|