Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Фамилия рост вес



Иванов    
Петрова    
Сидоров    

Рассмотрим постановку задачи и метод вычисления суммарного веса.

Постановка задачи

Определение суммарного веса.

Дано: Метод вычисления

(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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...