Полезни съвети

Псевдокод и блок-схеми

Pin
Send
Share
Send
Send


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

Псевдокод (Псевдокод)

Когато преподават псевдокод, много автори се опитват по някакъв начин да формализират псевдокода и да го направят да изглежда като някакъв език за програмиране, обикновено Pascal (fu, гадно). Ще използвам малко по-различен подход - ще имаме обичайни изречения с псевдо-код.

Какво е псевдо код? Това е запис на компютърни команди на общ човешки език. В резултат на това програмистът получава междинна форма между ежедневния и програмния език.

Нека вземем пример. Обикновено за пример се избират ситуации, които нямат нищо общо с практиката. Ще разгледаме съвсем различен пример, който постоянно се среща в практиката. Да предположим, че имаме в стратегическа игра карта с размер 64 на 64 клетки. За всеки герой в играта трябва да проверите дали той не надхвърля картата. Координатите се означават с x (хоризонтална), y (вертикална). Очевидно координатите на всеки знак трябва да са в диапазона [1. 64]. Предишното изречение е мисъл, която трябва да бъде изразена на програмен език.

Тъй като все още не сме започнали да изучаваме C ++, нека запишем тази идея, използвайки псевдокод. Освен това, предложенията трябва да бъдат изградени само с помощта на основните конструкции, които проучихме в предишния урок:

Тези четири изречения ограничават движението на героя. Това е псевдо код. Успяхме да реализираме цялата задача с помощта на четири клона с един клон, всеки от които има по един оператор. Сега този псевдо-код може лесно да бъде преведен на всеки език за програмиране. Нека го направим за C ++. За да направите това, в псевдокода трябва да замените някои думи с английски еквиваленти, а математическите действия трябва да бъдат написани на математически език. Думата ако на английски ще бъде ако (прочетете като АКО):

Това също е псевдо код, въпреки че вече е по-близо до езиците за програмиране. В тази версия на псевдокода загубихме нещо. Чии координати са проверени тук? За да посочим, че x, y са координатите на героите в играта, ще ги запишем през точка: unit.x, unit.y. Тук можете да видите, че x и y принадлежат на единицата, а не на сградата или дървото. Нека разгледаме новата опция:

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

Този C ++ код работи напълно! Между другото, ще използваме много подобен код в арканоида, за да контролираме топката.

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

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

Какво трябва да може да направи програмист?

Основната задача на програмиста е следната: превеждане на мисли на език, който компютрите разбират. Нека разгледаме още веднъж как става това.

Първо искахме да създадем стратегия, след което започваме да мислим за отделните части на бъдещата програма. Така че, ние искаме играта да се проведе на ограничено поле от 64 * 64 клетки. Оттук следва следното правило: всеки герой в играта трябва да бъде в това поле. Всеки знак има координати, които определят местоположението му на картата. За да сте сигурни, че героят е вътре в полето, трябва да проверите дали героят е пресекъл някоя от четирите страни на полето. Сега можем да напишем псевдокод (или код веднага, ако знаем достатъчно добре език за програмиране):

В резултат на това от едно изречение: „Всеки герой в играта трябва да бъде в полето 64 * 64“ - се оказаха четири клона, всеки от които ще се състои от един оператор.

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

Графики (blockschemes)

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

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

Всяка програма има начало и край. В блок-схемите началото и края на програмите са обозначени с правоъгълници със заоблени ъгли. Вътре в тези правоъгълници са написани думите: "Старт", "Край".

В схемите на потока се разграничават два типа оператори: оператори за обработка на данни и оператори за вход / изход.

Единицата за обработка на данни е представена от правоъгълник. В оператора за обработка на данни се извършват различни изчисления (събиране, изваждане, деление, умножение на числата). Нека да разгледаме проста програма с три оператора:

Както можете да видите, блоковете са свързани с линии със стрелки. Стрелките показват последователността на блоковете.

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

В предишните две снимки виждаме последователното изпълнение на изявления. Сега нека да видим как се показват клоните в блок-схемите. За изграждането на клони в блокови диаграми се използва блок на състоянието, който се обозначава с ромб:

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

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

Възможно е също да се изграждат клонове с един клон. В блок-схемите ще изглежда така:

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

На същата картина показах няколко нови неща: елипси и кръгове.

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

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

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

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

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

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

Подобрих програмата малко. Тук се проверяват не само координатите на една единица, но и координатите на всички единици в играта. Самите единици се съхраняват в масива от единици. В играта има двадесет единици. За да проверите координатите на всички единици, използвайте променливия ток (current - current, read as as karrent). На снимката не са показани две неща: как се увеличава променливият ток и че x и y се проверяват за текущата единица.

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

заключение

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

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

Други опции за псевдокод

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

За разлика от програмните езици, не се задават стандарти за синтаксиса на псевдо-код и авторът на всяка публикация може да използва неговия оригинален псевдо-код. На практика авторите обикновено заемат необходимите им конструкции от един или повече добре познати и често срещани езици за програмиране. В наши дни синтаксисните елементи на езици като Pascal, C, Java обикновено се заемат, Algol често се използва в по-стари публикации.

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

Други опции за псевдокод

В някои случаи псевдо-код се нарича система от инструкции на абстрактна машина, например, P-код, псевдо-код на измислена MIX машина и т.н. и стартира в програмата за емулация на тази хипотетична машина.

Гледайте видеоклипа: Урок 2. Способы записи алгоритмов. Программирование на Pascal Паскаль. Уроки по информатике (Септември 2020).

Pin
Send
Share
Send
Send