Курсова работа: Алгоритъм

  • 1 302
  • 1
Здравейте, трябва ми блок схема на следната задача:

Да се състави алгоритъм за намиране индексите на най-малките стойности в отделните редове на двумерен масив B с M реда и N стълба. (блок схема)

Ако някой успее да го направи това, ще съм му много благодарен.
Виж целия пост
# 1
Да се състави алгоритъм за намиране индексите на най-малките стойности в отделните редове на двумерен масив B с M реда и N стълба. (блок схема)

Алгоритъмът е крайна поредица от действия, които водят до свършване на определена работа или постигане на определен резултат. Има още много определения, всяко повече или по-малко точни, но приведеното е достатъчно удобно за практически цели. В практиката най-често хората се интересуват от някаква форма на описание на поредицата действия. Най-широко разпространение са получили следните 4 начина на описание на алгоритмите:
  • словесен - описание с помощтта на някой от естествените (говорими, човешки) езици
  • графичен - чрез графични образи/знаци/картинки/схеми/диаграми
  • чрез формални езици - обикновено това са съвременните алгоритмични езици за програмиране, но към тази категория трябва да се причислят и използвани в различните житейски области системи за означения, напр. познатата математическа нотация за аритметични действия, означения на химическите реакции и др. под.
  • чрез псевдокод - своеобразен хибрид между описание на естествен и формален език
Ето два варианта на описание на алгоритъма за решаване на поставения проблем:

Псевдокод

А. Нека номерът на ред row в масива B  е 1
а) очакваме, че най-малкия елемент в реда row е на позиция(индекс) posmin = 1, но това съвсем не е сигурно и трябва да проверим останалите елементи в реда дали не са по-малки от него.
б) нека започнем разглеждането на кандидати за по-млки от Brow,posmin[/i] от позиция current=posmin+1
в) ако current>N, премини към ж)
г) ако Brow,current<Brow,posmin[/i] нека posmin = current
д) увеличи номера current на текущия кандидат за най-малък в реда с 1
е) премини към в)
ж) покажи колко е posmin
Б. Увеличи row с 1
В. Ако row <= M върни се към а)
Г. Това е  Simple Smile : приключих с показването на номерата(индексите) на най-малките елемент за всеки ред от масива B

Формален език (използван е алгоритмичният език C++)

Код:
for (row = 1; row <= M; row++){

  for(posmin=1, current=posmin+1; current <= N; current++){
    if (B[row][current] < B[row][posmin]) posmin = current;
  }
  cout << "For row " << row << " the minimal element is at position " << posmin << endl;

}
(не е приведена цялостна програма, а само онази част от нея, която реализира искания алгоритъм)

Графичните описания на алгоритми (особено блок-схемите) са подходящи само за кратки алгоритми, с не много действия. В този случай те са ясни и се възприемат много лесно. При дълги и сложни алгоритми предимствата на графичното описание се губят и затова в днешно време в тези случаи се предпочитат словесното описание и особено псевдокодът, като удачна комбинация от ясното и разбираемо изразяване на човешките езици и краткото изразяване на формалните езици.
Виж целия пост

Започнете да пишете...

Страница 1 от 1

Общи условия