Математическая постановка задачи
Математическая постановка задачи сводится к написанию математических формулировок алгоритмов обработки данных выбранной структуры для поставленных в заданных условий. Исходя из введенных выше идентификаторов данных:
а) для структурированных данных типа массивыматематическая постановка сводится:
Для первого задания: найти максимальное значение в массиве процентных ставок и соответствующее ему значение i:
max_pr=max ( ), i=1,5.
Для второго задания найти максимальное и минимальное значение в каждом столбце массива курса валют:
max_ =max( , j=1,3, i=1,5
min_ =min( , j=1,3, i=1,5
Для третьего задания выполнить сортировку массива процентных ставок и соответствующих им названий банков таким образом, чтобы в начале списка была максимальная процентная ставка и банк ее имеющий, далее меньшая и т.д.:
>…> >… > , i=1,5
( , i =1,5)
Сортировку по невозрастанию можно выполнить методом простого выбора для массива индексов банков (ind), по схеме:
Fori:=1 to 5-1 do {проходыпомассиву}
begin
max:=0; {априори максимум для очередного прохода}
forj:=ito 5 do {перебор индексов сравниваемого эл-та массива}
Ifpr[ind[j]]>maxthen {поиск очередного max}
begin
max:=pr[ind[j]]; {запомнить этот max}
k:=j {и его место (к)};
end;
P:=ind[i]; ind[i]:=ind[k]; ind[k]:Ip;
{Обменять i-ый и j-ый элементы в массиве индексов (ind)}
end;
for i:=1 to 5 do
Writeln (ind[i], Nm[j]); { печатьмассивовindи }
б) для структурированных данных типа записи: математически можно определить следующую последовательность действий:
|
|
Для первого задания найти максимальное значение в поле процентных ставок (pr) массива записей (bank[i]):
max_pr=max( i=1,5
Для второго задания найти маскимальное и минимальное значение в каждом поле курса валют (dol,mark,iena)массива записей (bank[i]):
max_ =max( , i=1,5
max_ =max( , i=1,5
max_ =max( , i=1,5
min_ =min( , i=1,5
min_ =min( , i=1,5
min_ =min( , i=1,5
или (для случая когда структура курсов валют идентифицируется как одномерный массив записей - ):
max_ =max( , i=1,5, j=1,3
min_ =min( , i=1,5, j=1,3
Для третьего задания выполнить сортировку массива записей по назначению поля процентных ставок таким образом, чтобы в начале списка была максимальная процентная ставка и банк ее имеющий, далее меньшая и т.д..
Сортировку можно выполнить методом пузырька, по схеме:
fori:=5-1 downto 1 do {проходы по массиву}
forj:=1 toido {индекс нижней из сравниваемых записей}
if then
begin
z:=bank[j];
bank[j]:=bank[j+1];
bank[j+1]:=z;
{обменять местами j–ую и (j+1)–ую записи}
end;
В процессе написания и модификации программы программист должен обнаружить недостающие данные в спецификации программы. В нашем случае это массив индексов банков ( , который необходимо заполнить номерами банков в начальном их списке. В общем случае программирование не является последовательной деятельностью, при которой возможны последовательные переходы от одного шага к другому. Наоборот, на каждом шаге часто бывает необходимо возвращаться к предыдущим и иногда модифицировать их. Для написания программы необходимо каждое предложение алгоритма перевести в эквивалентные операторы языка программирования.
|
|
ПРОГРАММНАЯ СПЕЦИФИКАЦИЯ
Дата добавления: 2018-04-04; просмотров: 211; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!