Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Иванов | ||
Петрова | ||
Сидоров |
Рассмотрим постановку задачи и метод вычисления суммарного веса.
Постановка задачи
Определение суммарного веса.
Дано: Метод вычисления
(D1,.., DN) - данные об учениках, S0 = 0
где D = [Fam,R,V] - состав данных, Sk = Sk-1 + vk
Fam - фамилия, R - рост, V - вес. [k = (1... N)]
Треб.: Vsum - суммарный вес. Vsum = SN
Где: Vsum = v1 + v2 +... + vN
При: N > 0.
Правильность метода вычислений можно доказать по индукции. Рассмотрим результаты вычислений на 1-м, 2-м и k-м шагах. Отметим, что начальное значение S0 = 0.
На первом шаге при k = 1 результат вычисления
S1 = S0 +v1 = v1.
На следующем, втором шаге при k = 2 результат
S2 = S1 + v2 = v1 + v2.
На третьем шаге при k = 3 результат
S3= S2 + v3 = v1 + v2 + v3.
В общем случае можно предположить, что к k-му шагу результат вычисления
Sk-1=v1+...+vk-1.
Тогда результат вычислений после k-го шага (исходя из описания метода)
Sk = Sk-1 +vk = v1 + … + vk-1 + vk.
В силу принципа математической индукции утверждение верно для всех k = 1, 2,.... N. Следовательно, на последнем шаге при k = N конечный результат:
SN = v1 +... + vN.
Что и требовалось. Следовательно, метод правильный.
Приведем сценарий диалога решения поставленной задачи на ЭВМ. Для представления данных в программе примем последовательность операторов data.
Сценарий Представление данных
Данные об учениках
фамилия вес рост
dano:'данные учеников
<Fam1> <V1> <R1> data «Иванов», 185, 85
… … … data «Петрова», 165, 65
<FamN> <VN> <RN> data «Сидоров», 170, 80
data «», 0, 0
суммарный вес = <Vsum>
Алгоритм обработки данных и программа, соответствующие выбранному сценарию и методу вычисления:
АлгоритмПрограмма
алг «суммарный вес» ' суммарный вес
нач cls
вывод («данные об учениках»)? «данные об учениках»
вывод («фамилия вес рост»)? «фамилия вес рост»
s:= 0 s = 0
цикл do
чтение fam$, 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
Правильность приведенного алгоритма можно увидеть из описания результатов его выполнения.
АлгоритмРезультаты выполнения
алг «суммарный вес» на экране и в памяти ЭВМ
Нач
вывод («Данные об учениках») Данные об учениках
вывод («фамилия вес рост») фамилия вес рост
s: = 0 s0 = 0
Цикл
чтение fam$, r, v
при fam$=«» выход
вывод (fam$, v, r) <famk> <vk> <rk>
s: = s + v sk = sk-1 + vk
кцикл [k = (1...n)]
vsum = s vsum = sn
вывод («суммарный вec=»,vsum) суммарный вес= <vsum>
Кон
Сопоставление описания результатов выполнения с описаниями сценария и выбранного метода говорит об их полном соответствии. Следовательно, составленные алгоритм и программа правильные.
Вопросы
1. Когда программы содержат ошибки?
2. Что такое правильный способ решения?
3. Когда способ решения неправильный?
4. Что такое правильный метод решения?
5. Когда метод решения неправильный?
6. Что такое правильный алгоритм?
7. Когда алгоритм содержит ошибки?
8. Каковы основные типы ошибок в программах?
Дата публикования: 2014-10-25; Прочитано: 716 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!