
Var a: array [1..100,1..100] of real;
n, m, i, j: integer;
s, p: real;
Begin
ClrScr;
WriteLn('Введите количество строк:'); { приглашение к вводу входного параметра }
ReadLn(n); { ввод первого входного параметра }
WriteLn('Введите количество столбцов:'); { приглашение к вводу второго параметра }
ReadLn(m); { ввод второго входного параметра }
for i:=1 to n do { цикл ввода – перебора строк }
for j:=1 to m do { цикл перебора элементов текущей строки }
begin
WriteLn('a[',i,',',j,']='); { приглашение к вводу очередного элемента массива }
ReadLn(a[i,j]); { ввод очередного элемента массива }
end;
s:=0; { начальное значение суммы – нуль }
p:=1; { начальное значение произведения – единица }
for i:=1 to n do { цикл перебора строк для суммирования }
for j:=1 to m do { цикл перебора элементов строки (столбцов) для суммирования }
begin
s:=s+a[i,j]; { добавление очередного элемента к текущему значению суммы}
p:=p*a[i,j]; { умножение текущего значения произведения на новый элемент }
end;
WriteLn('Сумма равно : ', s:3:3); { вывод первого результата }
WriteLn('Произведение равно : ', p:3:3); { вывод второго результата }
End.
9. Лекция: Методы разработки и анализа алгоритмов
|
Включить комментарии || Настройки || Модерация || Помощь |
Рассматриваются основные понятия о методах проектирования (нисходящем, восходящем, модульном, структурном) и разработки алгоритмов (программ), тестирование и верификация алгоритма, трассировка алгоритма.
Нисходящим проектированием алгоритмов, проектированием алгоритмов "сверху вниз" или методом последовательной (пошаговой) нисходящей разработки алгоритмов называется такой метод составления алгоритмов, когда исходная задача (алгоритм) разбивается на ряд вспомогательных подзадач (подалгоритмов), формулируемых и решаемых в терминах более простых и элементарных операций (процедур). Последние, в свою очередь, вновь разбиваются на более простые и элементарные, и так до тех пор, пока не дойдём до команд исполнителя. В терминах этих команд можно представить и выполнить полученные на последнем шаге разбиений подалгоритмы (команд системы команд исполнителя).
Восходящий метод, наоборот, опираясь на некоторый, заранее определяемый корректный набор подалгоритмов, строит функционально завершенные подзадачи более общего назначения, от них переходит к более общим, и так далее, до тех пор, пока не дойдем до уровня, на котором можно записать решение поставленной задачи. Этот метод известен как метод проектирования "снизу вверх".
Структурные принципы алгоритмизации (структурные методы алгоритмизации) – это принципы формирования алгоритмов из базовых структурных алгоритмических единиц (следование, ветвление, повторение), используя их последовательное соединение или вложение друг в друга с соблюдением определённых правил, гарантирующих читабельность и исполняемость алгоритма сверху вниз и последовательно.
Структурированный алгоритм – это алгоритм, представленный как следования и вложения базовых алгоритмических структур. У структурированного алгоритма статическое состояние (до актуализации алгоритма) и динамическое состояние (после актуализации) имеют одинаковую логическую структуру, которая прослеживается сверху вниз ("как читается, так и исполняется"). При структурированной разработке алгоритмов правильность алгоритма можно проследить на каждом этапе его построения и выполнения.
Теорема (о структурировании). Любой алгоритм может быть эквивалентно представлен структурированным алгоритмом, состоящим из базовых алгоритмических структур.
Одним из широко используемых методов проектирования и разработки алгоритмов (программ) является модульный метод (модульная технология).
Модуль – это некоторый алгоритм или некоторый его блок, имеющий конкретное наименование, по которому его можно выделить и актуализировать. Иногда модуль называется вспомогательным алгоритмом, хотя все алгоритмы носят вспомогательный характер. Это название имеет смысл, когда рассматривается динамическое состояние алгоритма; в этом случае можно назвать вспомогательным любой алгоритм, используемый данным в качестве блока (составной части) тела этого динамического алгоритма. Используют и другое название модуля – подалгоритм. В программировании используются синонимы – процедура, подпрограмма.