Псевдокод: Разлика между версии
Ред 17: | Ред 17: | ||
'''[[C++]]''' |
'''[[C++]]''' |
||
for( |
for(ArrayType::iterator x=a.begin(); x!=a.end(); ++x) |
||
cout << |
cout << *x; |
||
'''[[Ruby]]''' |
'''[[Ruby]]''' |
||
Ред 25: | Ред 25: | ||
Програмист, който не е запознат с Ruby или C++, спокойно може да разбере какво се има предвид в примера зададен с псевдокод |
Програмист, който не е запознат с Ruby или C++, спокойно може да разбере какво се има предвид в примера зададен с псевдокод |
||
=== Пример 2 === |
=== Пример 2 === |
||
Даден е по-сложен алгоритъм: За топологично сортиране на граф. Програмист, който не знае как точно да реализира този алгоритъм, може да разчете псевдокода и после да го пресъздаде на езика за прогирамиране, който му е необходим. |
Даден е по-сложен алгоритъм: За топологично сортиране на граф. Програмист, който не знае как точно да реализира този алгоритъм, може да разчете псевдокода и после да го пресъздаде на езика за прогирамиране, който му е необходим. |
Версия от 13:28, 30 юни 2011
Псевдкод в информатиката е начин да бъде описан алгоритъм или характеристика на език за програмиране, без да се ангажира читателя с конкретен език. Това става като на човешки език се опишат стъпките, които трябва да бъдат извършени от програмиста, за да се постигне желания резултат. Псевдокодът е вид стилизиран и идеализиран изходен код, за който не съществува компилатор.
Синтаксис
Както името може би предполага, няма стандарт за писане на псевдокод. Преценката за детайла и термините в псевдокода е на автора. Например това може да е съобразявайки се с потенциалните читатели.
Често се случва псевдокод да бъде комбиниран с код на истински език за програмиране, с цел спестяване на място. На езика са описани важните фрагменти, на които авторът иска да обърне внимание, а ясните и маловажните са описани с псевдокод.
Също така псевдокод, често бива съчетаван с математически формули.
Примери
Пример 1
Условието е да се отпечатат елементите на масив
Псевдокод
за всеки елемент х в а отпечатай х;
for(ArrayType::iterator x=a.begin(); x!=a.end(); ++x) cout << *x;
a.each do |x| puts x;
Програмист, който не е запознат с Ruby или C++, спокойно може да разбере какво се има предвид в примера зададен с псевдокод
Пример 2
Даден е по-сложен алгоритъм: За топологично сортиране на граф. Програмист, който не знае как точно да реализира този алгоритъм, може да разчете псевдокода и после да го пресъздаде на езика за прогирамиране, който му е необходим.
Нека L е празен списък, който ще съдържа сортираните върхове Нека S е списък, който съдържа върховете, които нямат входящи ребра докато S не е празен списък махаме първият връх n от S; пъхаме n в L; за всеки връх m, с ребро e: от n do m махаме e от графа; ако m няма други входящи ребра пъхаме m в S; ако графът има още ребра отпечатай "Грешка: Графът има поне един цикъл" иначе отпечатай "Топологичното сортиране на върховете в графа е: " L