Математическая постановка задачи



Математическая постановка задачи сводится к написанию математических формулировок алгоритмов обработки данных выбранной структуры для поставленных в заданных условий. Исходя из введенных выше идентификаторов данных:

 

а) для структурированных данных типа массивыматематическая постановка сводится:

    Для первого задания: найти максимальное значение в массиве процентных ставок и соответствующее ему значение 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!