Видове алгоритми в компютърните науки: примери. Концепцията за алгоритъм. Видове алгоритми Какви видове алгоритми не съществуват

На практика най-често се срещат следните форми на представяне на алгоритми:

Вербален (записи на естествен език);

Графични (изображения от графични символи);

Псевдокодове (полуформализирани описания на алгоритми в условен алгоритмичен език, включващ както елементи на езика за програмиране, така и фрази на естествения език, общоприети математически означения и др.);

Програмиране (текстове на езици за програмиране).

словесен начин algorithm records е описание на последователните етапи на обработка на данните. Алгоритъмът е даден в произволна презентация на естествен език. Например. Запишете алгоритъм за намиране на най-голям общ делител (НОД) на две естествени числа.

Алгоритъмът може да бъде както следва:

задайте две числа

ако числата са равни, приемете някое от тях като отговор и спрете на

В противен случай продължете изпълнението на алгоритъма;

определяне на най-голямото от числата;

Заменете по-голямото от числата с разликата между по-голямото и по-малкото от числата;

повторете алгоритъма от стъпка 2.

Описаният алгоритъм е приложим за всякакви естествени числа и трябва да води до решение на задачата.

словесен начинне се използва широко поради следните причини:

подобни описания не подлежат на строго формализиране;

страдат от многословност на записите;

позволяват двусмислено тълкуване на отделните предписания.

Графичен начинпредставянето на алгоритмите е по-компактно и визуално в сравнение с вербалното.

Това графично представяне се нарича алгоритъм схемаили блокова схема.

При графично представянеалгоритъмът се изобразява като последователност от взаимосвързани функционални блокове, всеки от които съответства на изпълнението на едно или повече действия.

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

1) Блок начало-край

Елементът показва изхода към външната среда и входа от външната среда (най-честата употреба е началото и края на програмата). Съответното действие е написано вътре във фигурата.

2) Блокиране на действие

Извършване на една или повече операции, обработка на данни от всякакъв вид (промяна на стойността на данните, форма на представяне, местоположение). Вътре във фигурата самите операции се записват директно, например операцията за присвояване: a = 10*b + c


3) Логически блок

Показва решение или функция от тип превключвател с един вход и два или повече алтернативни изхода, от които само един може да бъде избран след оценка на условията, дефинирани в този елемент. Входът към елемент се обозначава с линия, която обикновено влиза в горния връх на елемента. Ако има два или три изхода, тогава обикновено всеки изход се обозначава с линия, излизаща от останалите върхове (отстрани и отдолу). Ако има повече от три изхода, тогава те трябва да бъдат показани като една линия, излизаща от горната (често долната) част на елемента, която след това се разклонява. Съответните резултати от изчисленията могат да бъдат написани до редовете, представящи тези пътища. Примери за решение: като цяло сравнение (три изхода: >,<, =); в программировании − условные операторы if (два выхода: true, false) и case (множество выходов).

Преобразуване на данни във вид, подходящ за обработка (вход) или показване на резултатите от обработката (изход). Този символ не дефинира носителя на данни (специални символи се използват за указване на типа носител на данни).

Видове алгоритми

Разклоняващ се алгоритъм е алгоритъм, който съдържа поне едно условие, в резултат на проверката на което може да се извърши разделяне на няколко паралелни клона на алгоритъма.

Линейният алгоритъм е набор от команди (инструкции), които се изпълняват последователно във времето една след друга.

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

В компютърните науки се нарича план за действие алгоритъм.
Алгоритъмът се състои от отделни стъпки − команди. Нито една от тях не може да бъде пропусната, най-често не може да се разменят команди.
Изпълнител- човек, животно или машина, способни да разбират и изпълняват определени команди.
Среда на изпълнителя- предмети, които заобикалят изпълнителя и с които той работи.
Списък на командите на изпълнителя (SKI)- набор от команди, разбираеми за изпълнителя. Изпълнителят може да изпълнява само онези команди, които са включени в неговия SKI.

За решаването на повечето проблеми не е достатъчно да се даде една команда на изпълнителя, необходимо е да се изготви алгоритъм за него - план за действие, състоящ се от ясни за него команди (включени в неговия SCI).
Алгоритъм- точно определен план за действие на изпълнителя, насочен към решаване на проблем. Само онези команди, които са в SKI, могат да бъдат включени в алгоритъма.

Какви са алгоритмите

Линеен алгоритъм
В линейния алгоритъм командите се изпълняват последователно, една след друга. Пример за линеен алгоритъм е алгоритъмът за варене на чай.

Алгоритъм за разклоняване

В разклонения алгоритъм редът на командите може да е различен в зависимост от това каква е средата. Пример за разклонен алгоритъм е алгоритъмът за пресичане на улицата.

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

Начини за писане на алгоритми

На практика има три най-често срещани начина за писане на алгоритми:

  • глаголен(запис на естествен език);
  • графика(запис с помощта на графични символи);
  • програма(текстове на езици за програмиране).

Вербален начин на записване на алгоритми

Вербален начин - начин за записване на алгоритъм на естествен език. Този метод е много удобен, ако трябва да опишете приблизително същността на алгоритъма. Въпреки това, с устно описание, не винаги е възможно ясно и точно да се изрази логиката на действията.

Като пример за словесен начин за писане на алгоритъм, разгледайте алгоритъма за намиране на площта на правоъгълник

където S е площта на правоъгълника; a, b са дължините на страните му.

Очевидно a, b трябва да бъдат дадени предварително, в противен случай проблемът не може да бъде решен.

Вербалният начин на записване на алгоритъма изглежда така:

  • Начало на алгоритъма.
  • Задайте числената стойност на страна a.
  • Задайте числената стойност на страна b.
  • Изчислете площта S на правоъгълника по формулата S=a*b.
  • Изведете резултата от изчислението.
  • Край на алгоритъма.

Графичен начин за описание на алгоритми

За по-визуално представяне на алгоритъма се използва графичен метод. Има няколко начина за графично описание на алгоритми. Най-широко използваното в практиката графично описание на алгоритми е използването на блокови диаграми. Безспорното предимство на блоковите диаграми е яснотата и лекотата на писане на алгоритъма.

Всяко действие на алгоритъма съответства на геометрична фигура (символ на блок). Списъкът с най-често използваните знаци е даден в таблицата по-долу.

Тъй като в линейния алгоритъм командите се изпълняват последователно, блок-схемата ще изглежда така:

Тъй като в разклонения алгоритъм редът на командите може да е различен в зависимост от средата, блок-схемата ще приеме формата:

В цикличен алгоритъм някои действия се повтарят няколко пъти и за тях блок-схемата ще приеме формата:

Програмен начин за писане на алгоритми

За да бъде алгоритъмът разбираем за робот, компютър или друга машина, не е достатъчно само да напишете команди, необходимо е също така да подредите алгоритъма във формата, в която се разбира от машината (напишете програма) , т.е. запишете го с помощта на команди от SKI, като следвате правилата за регистрация.

Правила за регистрация в програмата:

  1. всеки алгоритъм има име;
  2. алгоритъмът започва с отваряща скоба “(“ и завършва със затваряща скоба “)”; командите, разположени между тези скоби, се наричат ​​тяло на алгоритъма;
  3. алгоритъмът може да включва само онези команди, които са в USP на изпълнителя;
  4. всяка команда завършва с “;”, което маркира края на командата;
  5. за да ни улеснят в разбирането на програмите, те използват коментари - текстови обяснения, които започват със знаци “/*” и завършват със знаци “*/”; изпълнителят не обръща внимание на коментарите в алгоритъма.

Практически задачи:

  1. Начертайте блок-схема, за да намерите периметъра на квадрат.
  2. Направете блок-схема за варене на чай.
  3. Начертайте блок схема за пресичане на кръстовище със светофар.

За да напишете алгоритми, заедно с естествен или математически език, е удобно да използвате езика на блок-схемите. Блок-схемата е графично представяне на алгоритъм, в който всеки етап от процеса на обработка на данни е изобразен като геометрична фигура от определен тип, наречена символ. Символите са свързани с линии, показващи посоката на информационните потоци. Във всеки символ се поставя описание на съответния етап от обработката на данните. Ако описанието е тромаво, то се пише отделно като коментар. Основните герои са показани в таблицата.

ПРОЦЕС - изпълнението на операция или група от операции, в резултат на което се променят параметрите на входящата информация
УСЛОВИЕ - показва избора на посоката на алгоритъма, в зависимост от изпълнението на условията, записани вътре
ПРЕДВАРИТЕЛНО ДЕФИНИРАН ПРОЦЕС - означава използването на предварително създадени и отделно описани алгоритми и програми
ВХОД - ИЗХОД НА ДАННИ - означава трансформиране на данни във вид, подходящ за обработка или регистрация
ДИСПЛЕЙ - показва входно-изходните данни за устройство, което ви позволява да правите промени в процеса на обработката им
ДОКУМЕНТ - обозначава въвеждане-извеждане на данни чрез хартиен носител
КОНЕКТОР - показва връзката между прекъснати линии на информационен поток
START - STOP показва началото, края или прекъсването на процес на обработка на данни

Символите са свързани чрез комуникационни линии. На мястото, където знаците се сливат, се поставя точка. Символите могат да бъдат номерирани за удобство при показване на връзките в точките на прекъсване в диаграмата. Тези числа не определят реда на изпълнение на алгоритъма, който зависи само от линиите, свързващи потоците.

Всички алгоритми в тяхната структура са разделени на три групи:

Линеен;

разклоняване;

Циклични.

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

Ориз. 8. Блокова схема на линейния алгоритъм

разклоняване алгоритъмсъдържа поне едно условие. За реализиране на алгоритъм за разклоняване се използва типична структура BRANCHING. Основата на алгоритъма за разклоняване е логическият елемент на условието, изобразен на диаграмата със символа Rhombus. В логическия елемент се извършва проверка на условието, която дава резултат ДА или НЕ. В зависимост от това информационният поток се насочва по един от двата изходни канала на логическия елемент.


Има две опции за този алгоритъм:

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

2. Има ДВЕ ФОРМУЛИ за изчисление, като алгоритъмът работи на следния логически принцип: АКО (условие) - ТОГАВА (формула 1), ИНАЧЕ (формула 2).

Ако трябва да проверите няколко условия, тогава алгоритъмът приема формата на "дърво" с клони под формата на "клони". Броят на логическите елементи винаги е с един по-малък от броя на условията, т.к всеки елемент има един вход и два изхода. Извиква се секцията от алгоритъма преди разклонението багажник, състояние - точка на разклонение, алтернативни посоки на изчислителния процес след точката на разклоняване - клонове.

Фиг.9. Блокови схеми на разклонени алгоритми

Цикличният алгоритъм е този, при който някои от действията се повтарят повече от веднъж. Такива повтарящи се действия се наричат ​​"цикъл". Цикличните алгоритми съдържат условия за действие на цикъла, така че те могат да се считат за вид разклонени алгоритми, при които един от клоновете е част от ствола, която се повтаря многократно. Тези повтарящи се действия представляват цикъл.

Цикличните алгоритми се делят на два вида:

С известен брой повторения (цикли)

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

Нека разгледаме и двата вида алгоритми.

Разработено от учител по информатика

Държавно заведение „Средно училище № 19 на отдел „Образование“.

Акиматът се гордее с Костанай"

Елеусизова Айнаш Досимхановна

Тема:

Цели:

повишен интерес към изучаването на предмета; насърчаване на умението за бързо мислене; развитие на творческата активност на учениците; развитие на познавателните интереси.

Задачи:

1. Образователни

    Да се ​​консолидират с учениците понятията алгоритъм, изпълнител, система от изпълнителни команди, начини за представяне на алгоритми;

    Да запознае учениците с видовете алгоритми: линейни, разклонени, циклични;

    Да научи представянето на алгоритми под формата на блок-схеми;

2. Образователни

    Активизират познавателната дейност на учениците чрез мултимедийни средства за обучение;

    Развиват въображение, критично, различно мислене;

3. Образователни

    Повишаване на мотивацията на учениците в класната стая;

    Постигане на съзнателно ниво на усвояване на материала от учениците;

    Формиране на чувство за колективизъм и здраво съперничество;

    Формиране на алгоритмично мислене.

Изисквания за знания и умения:

    Познава видовете алгоритми;

    познава понятията: линейни, разклонени, циклични алгоритми;

    да могат да прилагат придобитите знания при изпълнение на практически задачи.

Тип урок:комбинирани.

технология:формиране на комуникативна компетентност;

Методи:

    частично проучвателен, практически.

    информационни (вербални);

    нагледно и илюстративно;

По време на часовете:

аз.Организиране на времето.

    Здравейте момчета.

Здравейте момчета! Седни! какво ти е настроението Ако е добре, усмихнете се на всички! Ако не, погледнете се и се усмихнете! Да започнем урока!

Представих ви алгоритъма в устна форма. Погледнете бюрото. Същият алгоритъм е показан графично. Днес в урока ще научим как да представяме типовете алгоритми с помощта на блок-схеми (флипчарт страница 1).

Епиграф към нашия урок ще бъдат думите на известния френски учен Гюстав Гийом "Пътят ще бъде овладян от ходещия и този, който мисли за компютърни науки."

2. Обявяване на целите на урока.

II. Актуализиране на знанията на учениците

Но преди да започнем да учим нов материал. Трябва да си спомним какво научихме в последния урок.

1. Проверка на домашните.

Проверете кръстословици, решени от учениците у дома.

Отговори:

    графика

    крайник

    информация

    изпълнител

    алгоритъм

    програма

    компютър

    инструмент

2. Работа с Activote (приложение 4) с музика и звуков съпровод (линк към звуковия файл).

„Повторението е майката на ученето“, така са казали великите.

Учителят обяснява алгоритъма за решаване на тестови задачи. Децата на терен работят с Activote.

III. Учене на нов материал.

1. Теоретична част.

Момчета, за да се запознаем с видовете алгоритми, сега ще разгледаме следващите страници на флипчарта, необходимите определения трябва да бъдат записани в тетрадка.

Като начало трябва да си припомним кои геометрични форми се използват при изготвянето на блок-схеми.

Конвенции за блок-схеми(флипчарт страница 5-6)

Начало или край на програмата

- въвеждане на данни

- действия

-условие за решение на програмата

- изходни данни или текст

--цикъл с параметър

- подпрограма

Има три вида алгоритми: (флипчарт страница 7)

Линеен

разклоняване

Циклични

Линейни алгоритми


Пример 1 (флипчарт страница 9). Приказка "Ryaba Hen"

Алгоритъм за разклоняванее алгоритъм, при който в зависимост от

когато е изпълнено определено условие, се изпълнява една или друга последователност от действия (флипчарт страница 10)

Пълна форма(флипчарт страница 11)

непълна форма

Пример 2 (флипчарт страница 12-13)

Ако започне да вали, отворете чадър (непълна форма на алгоритъм за разклоняване) и какви действия не се извършват.

Пример 3 (флипчарт страница 12-13)


„Купете сладолед“.


Цикличен алгоритъм- (флипчарт страница 14)


Пример 4(Флипчарт страница 15.) Алгоритъм "Попълване".

з ачало

Край

2. Първично закрепване.Решаване на тренировъчни проблеми(колективно)

(флипчарт страница 16-17).

Учениците се редуват да идват и попълват блок-схемите на флипчарта.

Учебна задача №1 (флипчарт страница 18)."Почистете килима"

На интерактивната дъска, като използвате показалеца, прехвърлете правилния ред на действията)

Учебна задача 2 (флипчарт страница 19).

    Попълнете блок-схемата с поговорката „Болен – лекувай се, но здрав – пази се“.

    Назовете вида на алгоритъма.

Учебна задача 3 (флипчарт страница 20).


Проверете, като плъзнете снимката на празно място.

    Физкултурна минута(флипчарт страница 21).

Ще движим ръцете си -

Все едно плуваме в морето.

Едно две три четири -

Ето че стигнахме до брега

Да счупи костите

Да започнем да правим склонове -

Дясно, ляво, дясно, ляво.

Да не забравяме да седнем -

Едно две три четири,

Изпълнихме алгоритъма и постигнахме определена цел: починахме, отпуснахме се.

4. Правене на практическа работа.Работа върху многостепенни карти.

(флипчарт страница 22).

И се връщаме към думите на френския учен Гюстав Гийом "Пътят ще бъде овладян от вървещия и този, който мисли за компютърни науки."

Използвайте стрелките, за да посочите към кой тип алгоритъм принадлежат данните за изображението.

Наименувайте алгоритмите (флипчарт страница 23).

Попълнете таблицата с два примера за всеки тип алгоритъм (флипчарт страница 24).

Боядисвайте

Опция 1.(флипчарт страница 25).

„Засаждане на разсад“.

Вариант 2.(флипчарт страница 26).

IV . Домашна работа(флипчарт страница 27).

1. Научете абстрактното.

2. Начертайте на формат А4 пример за цикличен алгоритъм и блокова схема за приказката "Gingerbread Man".

V . Обобщение на урока.(флипчарт страница 28).

Това е мястото, където урокът свършва. Нашата цел е постигната. Повторихме основните понятия на алгоритъма, запознахме се с видовете алгоритми, успешно приложихме знанията на практика, припомнихме си приказки, поговорки.

VI . Отражение. .(флипчарт страница 29).

-Какво ви хареса в урока днес?
– Какво си спомняте?
- Какво беше интересно?

VII Оценка.

Днес вместо оценки ще имате емотикони, с които ще оценявам напредъка ви в урока.

Приложение 2

Технологична карта №1

Тема на урока: Видове алгоритми: линейни, разклонени, циклични.

Цели на урока : Научете как да класифицирате видовете алгоритми;

Научете как да представяте алгоритми под формата на блок-схеми .

1. Проверка на домашните.

Изпълнение на тестови задачи за тестера

2. Теоретична част

Конвенции за блок-схеми:

Начало или край на програмата

- въвеждане на данни

- действия

-условие за решение на програмата

- изходни данни или текст

--цикъл с параметър

- подпрограма

- стрелки - посоката на процеса

Алгоритмите биват три вида: -линейни

разклоняване

Циклични

Линейни алгоритми- алгоритъм, при който командите се изпълняват в реда, в който са написани, т.е. последователно една след друга. (флипчарт страница 8)

Пример 1 . Приказка "Ryaba Hen"

Алгоритъм за разклоняване- алгоритъм, при който в зависимост от изпълнението на определено условие се изпълнява една или друга последователност от действия.

В словесното описание на разклонения алгоритъм се използват думите "ако", "тогава", "иначе".

Пълна форма: "ако условието е изпълнено, тогава ..., в противен случай ...". Предвидени са действия както когато условието е изпълнено, така и когато не е изпълнено.

непълна форма: "ако условието е изпълнено, тогава ...". Действия се предоставят само когато условието е изпълнено. Ако условието не е изпълнено.

Пример 2

Ако започне да вали, отворете чадъра, в противен случай поставете чадъра в чантата (пълната форма на алгоритъма за разклоняване);

Ако вали, отворете чадър (непълна форма на разклонен алгоритъм).


Пример 3

„Купете сладолед“.

Цикличен алгоритъм-алгоритъм, при който действията се повтарят краен брой пъти.

П
пример 4.
Алгоритъм "Попълване".

Започнете

1. Докато кофата е непълна, повторете:

2. Изсипете чаша вода в кофата.

Край

3. Решаване на тренировъчни проблеми(колективна работа).

Тренировъчна задача номер 1.

Напишете алгоритъм "Почистете килима".

Тренировъчна задача номер 2.

1. Назовете типа алгоритъм.

2. Попълнете алгоритъма.

Запишете с помощта на блок-схема поговорката "Болен - лекувайте се, но здрав - пазете се."


Тренировъчна задача номер 3.

Момчето научава наизуст четиристишието, дадено по литература. Той чете четиристишието веднъж и се опитва да го възпроизведе по памет. Така ще прави, докато разкаже четиристишието без нито една грешка. Начертайте действията на момчето под формата на блок-схема.

4. Физическо възпитание.

Ще движим ръцете си -

Все едно плуваме в морето.

Едно две три четири -

Ето че стигнахме до брега

Да счупи костите

Да започнем да правим склонове -

Дясно, ляво, дясно, ляво.

Да не забравяме да седнем -

Едно две три четири,

Като преброя до пет, седнете на бюрото си.


Примери

линеен алгоритъм

Примери

алгоритъм за разклоняване

Примери

цикличен алгоритъм


Направете алгоритъм в програмата Боядисвайте с помощта на командите за преместване и копиране.

Опция 1.(флипчарт страница 25).

„Засаждане на разсад“.

Вариант 2.(флипчарт страница 26).

Епизод от приказката "Гъски-лебеди".

Цел : Запознайте учениците с основите на алгоритмизацията.

Въпроси за проучване:

1. Алгоритъм и неговите свойства. Начини за писане на алгоритми.

2. Основни видове алгоритми. Блокови схеми на типични алгоритми.

След като изучава тази тема, студентът трябва:

Зная:

свойства на алгоритъма;

Блокове за изграждане на диаграми;

основни типове алгоритми;

Бъдете в състояние да :

изграждат алгоритми според условието на проблема;

Концепцията за алгоритъм

Концепцията за алгоритъм е една от основните концепции на компютърните науки, която исторически се е оформила в независима дисциплина "теория на алгоритмите", близка до друга дисциплина "математическа логика". От друга страна, дисциплината "теория на алгоритмите" може да се счита за междинна между две дисциплини: математика и компютърни науки, свързани с раздела за програмиране.

Алгоритмизацията се отнася до общите методи на компютърните науки, има голямо значение при решаването на сложни проблеми. Преди да напишете програма за решаване на проблем на компютър, е необходимо да прегледате последователността от действия, които трябва да се извършат, за да разрешите правилно въпросния проблем.

Алгоритъмът е последователност от аритметични, логически и други операции, които трябва да бъдат извършени на компютър.

За да се получи правилен резултат, алгоритъмът трябва да бъде проектиран така, че когато се изпълнява, всички команди да се интерпретират недвусмислено. Следователно се появиха задължителни изисквания, които трябва да се вземат предвид при съставянето на алгоритми. Изискванията са формулирани като свойства.

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


Алгоритъмът може да бъде представен по различни начини, по-специално:

1) устно (вербално описание);

2) табличен;

3) под формата на блокова схема;

4) на алгоритмичен език.

Доста често срещан начин за представяне на алгоритъм е да се напише на алгоритмичен език, който в общия случай е система от означения и правила за еднакво и точно записване на алгоритми и тяхното изпълнение. Този начин за представяне на алгоритъма включва записването му под формата на програма.

програмае писане на алгоритъм на език за програмиране, който води до крайния резултат в краен брой стъпки.

За предпочитане е алгоритъмът да се представи под формата на блокова диаграма, преди да се напише на алгоритмичния език. За да изградите алгоритъм под формата на блокова диаграма, трябва да знаете предназначението на всеки от блоковете. Таблица 13 изброява типовете блокове и тяхното предназначение.

Таблица 13

Задаване на блок

Коментирайте

(блокът съответства на оператора)

Начало или край

блокови схеми

Въвеждане или извеждане на данни

вход изход

Процес (особено изчислителен)

задачи

Модификатор на цикъл

5.2. Основни видове алгоритми

Алгоритмизацията действа като набор от определени практически техники, специални специфични умения за рационално мислене в рамките на даден език. Алгоритмизирането на изчисленията включва решаване на проблем под формата на последователност от действия, т.е. решение, представено под формата на блок-схема. Могат да бъдат идентифицирани типични алгоритми. Те включват: линейни алгоритми, разклонени алгоритми, циклични алгоритми.

Линейни алгоритми

Линейният алгоритъм е най-простият. Предполага последователно изпълнение на операциите. Този алгоритъм не предоставя проверки за условие или повторение.

Пример : Изчислителна функция z= (x-y)/x + y2.

Начертайте блок-схема за изчисляване на функция с помощта на линеен алгоритъм. Променливи стойности х, при могат да бъдат всякакви, с изключение на нула, въведете ги от клавиатурата.

Решение: Линейният алгоритъм за изчисляване на функцията е даден под формата на блокова схема на фиг.8. При изпълнение на линеен алгоритъм стойностите на променливите се въвеждат от клавиатурата, заместват се в дадена функция, резултатът се изчислява и след това резултатът се показва.

Фиг.8. Линеен алгоритъм

Предназначението на блоковете в диаграмата на фиг. 8:

Блок 1 в диаграмата служи като логично начало.

· Блок 3 представлява аритметичната операция.

Блок 4 извежда резултата.

· Блок 5 във веригата служи като логическо заключение на веригата.

Алгоритми за разклоняване

Алгоритъмът за разклоняване включва проверка на условията за избор на решение. Съответно, алгоритъмът ще има два клона за всяко условие.

В примера е разгледан разклонен алгоритъм, при който в зависимост от условието се избира едно от възможните решения. Алгоритъмът е представен под формата на блокова схема.

Пример : Когато състоянието х>0 функция се изчислява: z= вътре х+ г, иначе, а именно, когато х=0или х<0 , функцията се изчислява: z= х+ г2 .

Направете блокова схема на изчисляване на функцията според алгоритъма за разклоняване. Променливи стойности Х, при могат да бъдат всякакви, въведете ги от клавиатурата.


Решение : Фигура 9 показва алгоритъм за разклоняване, при който в зависимост от условието ще се изпълни едно от разклоненията. В блок-схемата се появи нов блок 3, който проверява състоянието на проблема. Останалите блокове са познати от линейния алгоритъм.

https://pandia.ru/text/78/136/images/image008_57.gif" width="300" height="360 src=">

Фиг.9. Алгоритъм за разклоняване

Пример : Намерете максималната стойност от три различни цели числа, въведени от клавиатурата. Направете блок-схема за решаване на проблема.

Решение : Този алгоритъм включва проверка на условието. За целта се избира всяка от трите променливи и се сравнява с другите две. Ако е по-голямо, тогава търсенето на максималния брой е приключило. Ако условието не е изпълнено, тогава се сравняват двете останали променливи. Един от тях ще бъде максимумът. Блоковата диаграма за тази задача е показана на фигура 10.

https://pandia.ru/text/78/136/images/image010_48.gif" width="492" height="456 src=">

Ориз. 10. Блокова схема на търсенето на максимума

Циклични алгоритми

Цикличният алгоритъм предвижда повторение на една или няколко операции в зависимост от състоянието на проблема.

Има два вида циклични алгоритми:

1) с даден брой цикли или с брояч на цикли;

2) броят на циклите е неизвестен.

Пример : Изчислете стойността на функция в цикъл z=x*yпри условие, че една от променливите х промени във всеки цикъл с една и друга променлива при не се променя и може да бъде всяко цяло число. В резултат на изпълнението на цикъла при първоначалната стойност на променливата х=1можете да получите таблицата за умножение. Броят на циклите може да бъде произволен. Направете блок-схема за решаване на проблема.

Решение : В примера е даден броят на циклите. Съответно се избира алгоритъмът на цикъла от първия тип. Алгоритъмът за този проблем е показан на фиг. единадесет.

Във втория блок се въвежда броя на циклите н и всякакви цели числа х, г .

В блоковата схема се появи нов блок 3, в който променливата аз отчита броя на циклите, като се увеличава с един след всеки цикъл, докато броячът стане равен на i=n . При i=n последният цикъл ще бъде изпълнен.

Третият блок показва обхвата на брояча на цикъла (от i=1преди i=n).

В четвъртия блок се променят стойностите на променливите: z, х.

В петия блок се показва резултатът. Четвъртият и петият блок се повтарят във всеки цикъл.

Фиг.11. Цикличен алгоритъм с брояч на цикли

Този тип циклични алгоритми е предпочитан, когато е даден от броя на циклите.

Ако броят на циклите е неизвестен, тогава блоковите диаграми на цикличните алгоритми могат да бъдат представени под формата на фигури 12, 13.

Пример : Изчисли y=y-хчао г> х, ако г=30 , х=4. Пребройте броя на завършените цикли, крайната стойност на променливата при . Показване на стойността на променлива в цикъл при, броя на завършените цикли. Направете блок-схема за решаване на проблема.

Решение : В примера броят на циклите е неизвестен. Съответно се избира алгоритъмът на циклите от втория тип. Алгоритъмът за този проблем е показан на фиг. 12.

Състоянието се проверява на входа на контура. Тялото на цикъла изпълнява два блока:

1) y=y-x;аз= аз+1 ;

2) извеждане на променливи стойности аз, г.

Цикълът се изпълнява, докато условието не бъде изпълнено y>x. При условие, че тези променливи са равни y=xили г цикълът завършва.

Алгоритъмът, представен на фиг.12, се нарича цикличен алгоритъм с предварително условие, тъй като условието се проверява в началото на цикъла или на входа на цикъла. > х на входа на цикъла. Ако условието е изпълнено, отидете на блок 4, в противен случай отидете на блок 6.

В четвъртия блок се изчислява стойността на променливата при аз= аз+1 .

В петия блок се показва резултатът:

променлива стойност при,

аз.

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

Решение : В този случай се проверява условието за излизане от цикъла: г<=x . При това условие цикълът не се изпълнява. Условието в блок-схемата трябва да бъде преместено в края на цикъла след отпечатване. Цикълът се изпълнява, докато условието не бъде изпълнено y>x.

Алгоритъмът, ако условието е преместено в края на цикъла, се извиква цикличен алгоритъм с постусловие. Алгоритъмът за този проблем е показан на фиг. 13.

Във втория блок въведете г=30 , х=4 .

В третия блок се изчислява стойността на променливата при , броят на завършените цикли се отчита аз= аз+1 .

В четвъртия блок се показва резултатът:

променлива стойност при,

Броят на завършените цикли аз.

В петия блок се проверява условието г <= х за излизане от цикъла. Ако условието е изпълнено, отидете на блок 6, в противен случай отидете на блок 3 и цикълът се повтаря.

Фиг.13. Цикличен алгоритъм с постусловие

тестови въпроси

1. Понятието алгоритъм.

2. Видове алгоритми.

3. Основни алгоритмични структури.

4. Основните блокове на графичния алгоритъм.

5. Линейна алгоритмична структура. Пример.

6. Разклоняване. Пример.

7. Циклични алгоритмични структури. Пример.