Input x
Все кон
Нач
Все кон
Нач
вывод («площадь треугольника»)
вывод («длины сторон:»)
запрос («а=», a)
запрос («b=», b)
запрос («с=», с)
если не (а > 0 и b > 0 и с > 0) то
вывод («недопустимы длины») инеc не (а < b + с и b < а + +с и с<а+b)то
Программа
' площадь треугольника cls
? «площадь треугольника»? «длины сторон:» input «a=», a inpnt «b=», b input «c=», c
if a<=0 or b<=0 or c<=0 then? «недопустимы длины» elseif not (a < b+ с and b < а + с and с < а + b) then
вывод («недопустимы длины») иначе
р:= (а + Ь+ с)/2
S := д/ф • ( р
а |
? «недопустимы длины» else р = (а+ b +с)/2
S = sqr (p*(p-a)*(p-b)*(p-c))
? «площадь=», S end if end
Рассмотренный пример служит иллюстрацией постановки задачи, в которой выделены как требуемые и исходные данные, так и условия допустимости исходных данных. Такая постановка задачипозволяет заранее выделить все случаи и ситуации недопустимости данных, что в даль-нейшем понадобится при составлении сценария диалога с компьютером. В общем случае математическая постановказадач должна содержать не только условия допустимости данных, но и точное описание требований к результатам: 1) дано:перечень исходных данных; 2) треб:перечень требуемых данных; 3) где:требования к результатам; 4) при:условия допустимости данных. Вторая задача:определение среднего арифметического последовательности из N чисел х1, х2,..., хN.Приведем постановку, метод решения и сценарий диалога для решения этой задачи. Сценарий |
Постановка задачи
|
|
среднее N чисел чисел =? <N> |
Дано: N - количество чисел,
xi, х2,.., хn - числа, Треб.: s - среднее N чисел.
1: <хi> 2: <х2> |
Где: s = (хb + х2 +...+ хN)/ N. При: N > 0.
N: <хN> |
Метод решения
среднее = <s> |
недопустимо N |
S0 = 0 Г Sk = Sk-i + хk \ [k = 1,..., N] _ s = SN / N
Обратите внимание: метод вычисления среднего N чисел здесь описан через подсчет суммы чисел. Правильность метода может быть проверена по отношению к требованиям постановки задачи.
Приведем алгоритм и программу обработки данных, составленные в точном соответствии с выбранным сценарием и методом решения:
Алгоритм
алг «среднее арифметическое»
вывод («среднее N чисел») запрос («чисел=», N) S:= 0 если N <= 0 то
вывод («недопустимо N») инеc N > 0 то
от k = 1 до N цикл вывод (k, «:»)
Программа
' среднее арифметическое cls? «среднее N чисел» input «чисел=», N S = 0 if N <= 0 then
? «недопустимо N» elseif N > 0 then for k = 1 to N? k, «:»
запрос (x)
S:= S + x кцикл s:= S/N вывод («среднее =», s)
S = S + x next k s = S/N? «среднее=», s
При решении сложных задач для проверки правильности составляемых алгоритмов и про-грамм обязательны не только математическое описание постановки задач, но и описание выбран-ных методов решения.
|
|
Приведем пример разработки программы обработки данных с математической постановкой задачи и полным описанием метода решения.
Третья задача: определение самого легкого из учеников по данным из таблицы, содержа-щей N строк:
фамилияроствес
185 |
85 |
Иванов
165 |
65 |
Петрова
170 |
80 |
Сидоров
Сценарий |
Постановка задачи
Данные об учениках фамилия вес |
<Fami> <Vi> |
<FаmN> <Vn> |
Дано: (D1,..., DN) - данные учеников. где D = [Fam, R,V] - состав данных, Fam - фамилия, R - рост, V -вес Треб.: Famm - фамилия ученика. Где: m: Vm = Min (V1..., VN). При: N > 0.
самый легкий: Fam m > <Vm > |
Метод решения
Min (V1,.. Vn):
min = V1
Представление данных dan: 'данные учеников: data «Иванов», «Вова», 180,80 data «»,»»,0,0 |
от k = 1 до п цикл
если Vk < min то
min: = Vk
кцикл
Выбранному сценарию, методу решения и представлению данных соответствуют следую-щие алгоритм и программа на Бейсике.
Алгоритм
алг «самый легкий ученик»