Псевдокод: Разлика между версии

от Уикипедия, свободната енциклопедия
Изтрито е съдържание Добавено е съдържание
Ред 17: Ред 17:


'''[[C++]]'''
'''[[C++]]'''
for(int i=0; i<a.size(); ++i)
for(ArrayType::iterator x=a.begin(); x!=a.end(); ++x)
cout << a[i];
cout << *x;


'''[[Ruby]]'''
'''[[Ruby]]'''
Ред 25: Ред 25:


Програмист, който не е запознат с Ruby или C++, спокойно може да разбере какво се има предвид в примера зададен с псевдокод
Програмист, който не е запознат с Ruby или C++, спокойно може да разбере какво се има предвид в примера зададен с псевдокод

=== Пример 2 ===
=== Пример 2 ===
Даден е по-сложен алгоритъм: За топологично сортиране на граф. Програмист, който не знае как точно да реализира този алгоритъм, може да разчете псевдокода и после да го пресъздаде на езика за прогирамиране, който му е необходим.
Даден е по-сложен алгоритъм: За топологично сортиране на граф. Програмист, който не знае как точно да реализира този алгоритъм, може да разчете псевдокода и после да го пресъздаде на езика за прогирамиране, който му е необходим.

Версия от 13:28, 30 юни 2011

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

Синтаксис

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

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

Също така псевдокод, често бива съчетаван с математически формули.

Примери

Пример 1

Условието е да се отпечатат елементите на масив

Псевдокод

за всеки елемент х в а
  отпечатай х;

C++

for(ArrayType::iterator x=a.begin(); x!=a.end(); ++x)
  cout << *x;

Ruby

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