|
||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Фамилия рост вес
Рассмотрим постановку задачи и метод вычисления суммарного веса. Постановка задачи Определение суммарного веса. Дано:Метод вычисления (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 чтение 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 Правильность приведенного алгоритма можно увидеть из описания результатов его выполнения. АлгоритмРезультаты выполнения алг «суммарный вес» на экране и в памяти ЭВМ Нач вывод («Данные об учениках») Данные об учениках вывод («фамилия вес рост») фамилия вес рост 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> Кон Сопоставление описания результатов выполнения с описаниями сценария и выбранного метода говорит об их полном соответствии. Следовательно, составленные алгоритм и программа правильные.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.) |