В тази статия ще разгледаме примери на графики, които можете да срещнете в учебниците по компютърни науки и друга литература. Блок-схема е алгоритъм, който решава всяка задача, възложена на разработчика. Първо трябва да отговорите на въпроса какъв е алгоритъмът, как е представен графично, и най-важното, как да го решите, знаейки определени параметри. Трябва незабавно да се отбележи, че съществуват няколко вида алгоритми.
Тази дума е въведена в употреба от математика Мохамед ал-Хорезми, който е живял в периода от 763-850 година. Той е човекът, който е създал правилата за извършване на аритметични операции (има само четири). Но ГОСТ от 1974 г., който гласи:
Един алгоритъм е точно предписание, което определя един изчислителен процес. Освен това има няколко променливи с дадени стойности, които водят до изчисления до желания резултат.
Алгоритъмът ви позволява ясно да укажете на изпълнителя да изпълнява стриктно последователност от действия да разрешите проблема и да получите резултата. Разработването на алгоритъм е разпадането на една голяма задача в определена последователност от стъпки. Освен това, разработчикът на алгоритъма трябва да знае всички характеристики и правила за неговото създаване.
Общо има осем характеристики на алгоритъма (независимо от неговия тип):
И сега, знаейки какви алгоритми съществуват, можете да започнете да обмисляте как да ги напишете. И те не са много.
Тази форма обикновено се използва, когато се описва процедурата за лице: „Отиди там, не знам къде. Донеси нещо, не знам какво.
Разбира се, това е комична форма, но същността е ясна. Например, например обичайният запис на прозорците на автобусите: „В случай на злополука извадете кабела, изстискайте стъклото“.
Тук условието е ясно определено, при което две действия трябва да бъдат изпълнени в строга последователност. Но това са най-простите алгоритми, има и по-сложни. Понякога се използват формули, специални обозначения, но при задължително условие - изпълнителят трябва да разбере всичко.
Разрешено е да се промени реда на действията, ако е необходимо да се върне, например, към предишната операция, или да се заобиколи някоя команда при определено условие. В същото време е желателно да се наберат екипите и да се посочи командата, към която се осъществява прехода: „След като приключите всички манипулации, повторете точки 3 до 5”.
Този запис включва елементи на блок-схеми. Всички елементи са стандартизирани, всеки отбор има определен графичен запис. Специфична команда трябва да бъде записана във всеки един от блоковете в обикновен език или математически формули. Всички блокове трябва да бъдат свързани чрез линии - те показват точно какъв ред в изпълнените команди. Всъщност този тип алгоритъм е по-подходящ за използване в програмния код, отколкото за вербален.
В този случай, ако алгоритъмът е необходим за решаване на задачата с програма, инсталирана на компютър, тогава трябва да го напишете със специален код. За това има много езици за програмиране. И алгоритъмът в този случай се нарича програма.
Блок схемата е представяне на алгоритъма в графична форма. Всички екипи и действия са представени от геометрични форми (блокове). Във всяка фигура се вписва цялата информация за действията, които трябва да се извършат. Връзките се изобразяват като нормални линии със стрелки (ако е необходимо).
За проектирането на блок-схеми на алгоритми има ГОСТ 19.701-90. Той описва процедурата и правилата за тяхното създаване в графична форма, както и основните методи за решаване. В тази статия са представени основните елементи на блок-схемите, които се използват при решаването на проблеми, например в компютърните науки. И сега нека разгледаме правилата на строителството.
Има такива функции, които всяка блок-схема трябва да има:
В таблицата са представени графични елементи на блок-схеми за решаване на алгоритми:
Това е най-простата форма, която се състои от конкретна последователност от действия, те не зависят от първоначално въведените данни. Има няколко команди, които се изпълняват веднъж и само след като е направено предишното. Линейната блокова диаграма изглежда така:
Освен това, връзките могат да вървят от горе до долу и от ляво на дясно. Такава блокова схема се използва за записване на изчислителните алгоритми, използвайки прости формули, които нямат ограничения върху стойностите на променливите, включени във формулите за изчислението. Линейният алгоритъм е неразделна част от сложните изчислителни процеси.
Блок-схемите, базирани на такива алгоритми, са по-сложни от линейните. Но същността не се променя. Разклонителният алгоритъм е процес, при който по-нататъшното действие зависи от това как се изпълнява условието и какъв разтвор се получава. Всеки ред на действие е клон.
Диаграмите изобразяват блокове, които се наричат "Решение". Той има два изхода и вътрешно е записано логическо условие. Именно от това как ще се изпълни, зависи по-нататъшното движение в схемата на алгоритъма. Можете да разделите алгоритмите на разклоняване на три групи:
Това са прости алгоритми, които се решават много просто. Сега да преминем към по-сложни.
Тук всичко е много ясно - цикличната блокова диаграма представлява алгоритъм, при който хомогенните изчисления се повтарят многократно. По дефиниция, цикълът е специфична последователност от действия, които се изпълняват многократно (повече от веднъж). Има няколко вида цикли:
Независимо от вида на цикъла, който се използва за решаване на алгоритъма, той трябва да има променлива, с която се получава изхода. Той определя броя на повторенията на цикъла. Работната част (тялото) на цикъла е специфична последователност от действия, която се изпълнява на всяка стъпка. И сега ще разгледаме по-отблизо всички видове цикли, които могат да възникнат при изработването на алгоритми и решаване на проблемите на компютърните науки.
На фигурата е показана проста блокова схема, в която има цикъл с брояч. Този тип алгоритъм показва, че броят на повторенията на даден цикъл е известен предварително. И този номер е фиксиран. В този случай, променливата, броят на стъпките (повторения) се нарича брояч. Понякога в учебниците може да попаднете на други дефиниции - цикъл параметър, контролна променлива.
Блок-схемата илюстрира много ясно как работи цикъла с брояча. Преди да пристъпите към първата стъпка, трябва да зададете начална стойност на брояча - тя може да бъде произволно число, зависи от конкретния алгоритъм. В случая, когато крайната стойност е по-малка от стойността на брояча, ще бъде изпълнена определена група команди, които съставляват тялото на цикъла.
След като тялото е изпълнено, броячът се променя от стойността на прираста на брояча, обозначена с буквата h. В случай, че получената стойност е по-малка от крайната, цикълът ще продължи. И ще свърши само когато крайната стойност е по-малка от брояча на цикъла. Само в този случай ще се изпълни действието, което следва цикъла.
Обикновено в блок-схемата се използва блок, наречен "Подготовка". Той се записва в брояча и след това се посочват следните данни: началната и крайната стойност, стъпката се променя. В блоковата диаграма това са параметрите I n, Ik и h, съответно. В случая, когато h = 1, размерът на стъпката не се записва. В други случаи това трябва да се направи. Необходимо е да се придържате към просто правило - поточната линия трябва да влиза от горе. И поточната линия, която отива под (или надясно, в зависимост от конкретния алгоритъм), трябва да показва прехода към следващия оператор.
Сега сте напълно проучили описанието на диаграмата, показана на фигурата. Можете да продължите към по-нататъшно проучване. Когато се използва цикъл с брояч, трябва да бъдат изпълнени някои условия:
Този тип цикли се използват в случаите, когато броят на повторенията не е известен предварително. Цикъл с предварително условие е тип алгоритъм, в който непосредствено преди тялото да започне да изпълнява, той проверява състоянието, при което е разрешен преходът към следващото действие. Забележете как са изобразени елементите на блоковата диаграма.
В случай, че условието е изпълнено (изявлението е вярно), настъпва преход към началото на цикъла. Той директно променя стойността на поне една променлива, която влияе на стойността на зададеното условие. Ако не се придържате към това правило, ние получаваме "цикъл". В случай, че след следващата проверка на състоянието на изпълнение на тялото на цикъла, се окаже, че е невярно, тогава настъпва изход.
В блоковете на алгоритмите е позволено да се провери не истината, а фалшивостта на първоначалното състояние. В този случай цикълът ще излезе само ако стойността на условието е вярна. И двата варианта са правилни, тяхната употреба зависи от това какво конкретно е по-удобно да се използва за решаване на конкретен проблем. Този тип цикъл има една характеристика - тялото не може да бъде изпълнено, когато условието е невярно или вярно (в зависимост от варианта, който се използва за решаване на алгоритъма).
По-долу е представена блок-схема, която описва всички тези действия:
Ако се вгледате внимателно, тогава този вид цикли е донякъде подобен на предишния. Ще се опитаме да изградим блок-схема, описваща този цикъл самостоятелно. Особеност е, че броят на повторенията не е известен предварително. И състоянието е поставено след оттеглянето от тялото. Това показва, че органът, независимо от решението, ще бъде изпълнен поне веднъж. За по-голяма яснота разгледайте блок-схемата, описваща състоянието и изявленията:
Няма нищо трудно в изграждането на алгоритми с цикли, достатъчно е да ги разберем само веднъж. И сега се обръщаме към по-сложни структури.
Комплексни са тези конструкции, в които има един или повече прости цикли. Понякога те се наричат вложени. В същото време тези структури, които покриват други цикли, се наричат „външни“. И тези, които са включени в дизайна на външните - вътрешни. Когато се изпълнява всяка стъпка от външния контур, вътрешният контур се превърта напълно, както е показано на фигурата:
Това е всичко, прегледахте основните характеристики на изграждането на блок-схеми за решаване на алгоритми, знаете принципите и правилата. Сега можете да обмислите конкретни примери на графики от живота. Например, в психологията такива конструкции се използват, за да може човек да реши въпрос:
Или пример от биология за решаване на проблема:
Сега ще разгледаме примери за проблеми с блок-схеми, които могат да бъдат намерени в учебниците по компютърни науки. Например, дадена е блокова диаграма, според която се решава алгоритъм:
В този случай потребителят самостоятелно въвежда стойностите на променливите. Да предположим, че x = 16 и y = 2. Процесът на това:
В този пример графиките за компютърни науки ясно показват как е решен алгоритъмът. Трябва да обърнете внимание на факта, че стойностите на x и y са поставени на началния етап и те могат да бъдат всичко.