Co to jest pseudokod?

19

Ostatnio widziałem wiele wzmianek o Pseudokodzie, na tej stronie i innych. Ale nie rozumiem:

  • Co to jest Pseudokod? Na przykład poniższy artykuł w Wikipedii mówi: „Wykorzystuje konwencje strukturalne języka programowania, ale jest przeznaczony raczej do czytania przez ludzi niż do czytania maszynowego”. Czy to oznacza, że tak naprawdę nie jest używany do tworzenia programów?

  • Dlaczego jest używany?

  • Jak to jest używane?
  • Czy jest to język programowania? (Zobacz powyższy cytat z Wikipedii)
  • Czy to jest powszechnie znane / używane?

Naprawdę nie wiem od czego zacząć. Przejrzałem google i widziałem artykuł w Wikipedii na ten temat , ale wciąż nie rozumiem w pełni, co to jest.

Dynamiczny
źródło
7
Podaj konkretne cytaty i pytania z artykułu z Wikipedii. Wszystkie pytania odpowiedzi tam. Jeśli nie rozumiesz słów lub wyrażeń, podaj konkretne słowo lub wyrażenie w swoim pytaniu, abyśmy mogli je wyjaśnić. Trudno wiedzieć, co było w tym artykule mylące. Zamiast powtarzać ten artykuł tutaj, pomocne byłoby odniesienie się do konkretnych rzeczy, które Cię pomieszały.
S.Lott
@ S.Lott: Zakończony
dynamiczny
20
while (you.doNotUnderstand(pseudocode)) { q = you.askQuestion(); a = we.answer(q); you.digestAnswer(a) }
Joachim Sauer
3
if (question.IsAnswered) then you.UnderstandPseudoCode <- true
e-MEE
1
Jest pośrednikiem między językiem naturalnym a językiem programowania - jest bardziej formalny niż język mówiony, ale mniej formalny niż prawdziwy język programowania.
Ingo

Odpowiedzi:

19

Pseudokod, jak sama nazwa wskazuje, nie jest prawdziwym kodem, ale wygląda jak kod. Pomaga ludziom lepiej zrozumieć problematyczną domenę lub rozwiązanie bez konieczności dodawania całego bagażu niezbędnego podczas używania prawdziwego języka.

W skrócie: służy wyłącznie do celów ilustracyjnych.

Pseudokod i programowanie
Nie ma definicji ani stałej reguły pseudokodu, może być za każdym razem inny. To nie jest (prawdziwy) język programowania i nikt go nie weźmie pod uwagę. Nie można go skompilować ani użyć jako prawdziwego języka programowania: jeśli możesz to zrobić, przestaje być pseudokodem. Pseudokod nie musi być deterministyczny (konieczność kompilacji komputerów), raczej powinien być zrozumiany przez ludzi. Aby użyć pseudokodu, musisz przekonwertować go na swój ulubiony język programowania. Ten proces konwersji może być za każdym razem inny i nie można podać żadnych reguł, ponieważ znowu pseudokod przypomina wolną mowę: może przybierać dowolną formę.

Zastosowania
Jest powszechnie stosowany, szczególnie na etapie projektowania projektów, aby pomóc w zrozumieniu określonego podejścia do problemu. Jest również powszechnie stosowany w projektowaniu algorytmów lub gdy nauczyciele rysują coś na tablicy. We wszystkich tych przypadkach kompilacja kodu nie jest konieczna, po prostu chcesz zrozumieć problem / rozwiązanie.

Typy pseudokodu
Pseudokod może być, ale nie musi być określonego typu, tzn. Możesz mieć pseudokod oparty na stosie, aby zilustrować MSIL, możesz mieć imperatywny pseudokod, aby zilustrować Java, C #, C ++, Python, możesz może mieć funkcjonalny pseudokod ilustrujący F #, Haskell, SQL itp.

Przykłady
Z góry mojej głowy, ale wszystko idzie, ponieważ pseudokod można wymyślić na miejscu:

Pseudokod XML, pokazujący strukturę głowy + ciała, która pozwala na wiele elementów p:

<head ...
   <title ...
</
<body ...>
   (<p>...)+
</

Pseudokod imperatywny, pokazujący problem z diamentem w językach obsługujących wielokrotne dziedziczenie:

class A() { readFile(); }
class B() : A {}       // overrides readFile in A
class C() : A {}       // overrides readFile in A
class D() : B, C {}    // what definition of readFile should be used?

Powyższe dwa przykłady w oczywisty sposób przypominają niektóre (rodzaje) języków, ale tak naprawdę nie są tym językiem i nie można ich skompilować. Raczej ilustrują coś, co chcesz wyjaśnić.

Abel
źródło
14
Warto dodać, że pseudo-kod może istnieć na dowolnym poziomie abstrakcji: można opisać konkretne działanie algorytmu w sposób, który można łatwo przetłumaczyć na prawdziwy niepseudo-kod, lub można podać bardzo wysoki poziom przegląd niektórych podejść przy użyciu bardzo szeroko zdefiniowanych „metod” lub „obiektów”. To szerokie spektrum.
Joachim Sauer
8

Co to jest Pseudokod? Na przykład poniższy artykuł w Wikipedii mówi: „Wykorzystuje konwencje strukturalne języka programowania, ale jest przeznaczony raczej do czytania przez ludzi niż do czytania maszynowego”. Czy to oznacza, że ​​tak naprawdę nie jest używany do tworzenia programów?

Dokładnie tak, to kod napisany w przyjaznej dla człowieka formie. Nie można go użyć do utworzenia działającego programu.

Dlaczego został wyprodukowany / jest używany?

Ponieważ Pseudokod jest szybki do napisania i szybki do odczytu. Ponieważ nie ma części specyficznych dla języka, jest bardziej czytelny. Jest również niezależny od języka, dzięki czemu każdy może go przeczytać (z tego powodu jest używany w wielu podręcznikach)

Czy jest to język programowania? Zobacz powyższy cytat z Wikipedii.

Nie. Język programowania wymaga czegoś więcej niż tylko struktury. Wymaga semantyki formalnej, której brakuje pseudokodu.

Czy to jest powszechnie znane / używane?

Tak. Każdy powyżej poziomu młodszego powinien wiedzieć, jak czytać / pisać pseudokod. Jest niezbędny do czytania wielu podręczników i planowania kodu w zespole.

Tom Squires
źródło
6

Jeśli przeczytałeś artykuł na wiki, większość twoich pytań powinna być jasna. Spróbuję odpowiedzieć na nie w prostszy sposób. Spójrz na te 2 przykłady:

Część 1 - Przykłady

Kod # 1 - Rejestracja klienta - Przykład kroków procesu:

  1. Klient przechodzi do ekranu rejestracji
  2. Klient wprowadza swoje dane.
  3. Jeśli wprowadzone prawidłowe dane, zapisz informacje o kliencie w bazie danych
  4. Kolejne okno dialogowe pokaż z komunikatem o błędzie 100.

Kod # 2 - Sprawdź poprawność nazwy klienta - Przykład funkcji programowania

Function ValidateCustomerName(Name1)

If (Name1 is entered and Name2 is entered) then return 1

If (Name1 is not entered) 

   Send Error Message

   return 0

Endif

...

End Function

Część 2 - Teraz na twoje pytania

Co to jest Pseudokod?

Jest to sposób na napisanie kroków algorytmu lub procesu.

Dlaczego został wyprodukowany / jest używany?

Służy do wyświetlania kroków procesu lub algorytmu bez uzależnienia od określonego języka programowania lub specjalnych notacji.

Czy jest to język programowania?

Nie można go skompilować, a to dlatego, że nie ma określonej składni, a zatem nie jest językiem programowania.

Jeśli tak, to czy jest w stanie tak dobrze, jak, powiedzmy, Python?

Można go uczynić tak zdolnym, jak chcesz. Możesz pisać takie stwierdzenia jak: Jeśli wiek jest ważny ...

Czy to jest powszechnie znane / używane?

Tak. Przydaje się myślenie o algorytmach i analitykom biznesowym dostarczanie specyfikacji.

Bez szans
źródło
@ Jae, doceniam edycję.
NoChance
4

Najlepszym przykładem Pseudokodu było dzielenie biura z programistą FORTRAN, gdy programowałem w Pascalu. Za każdym razem, gdy pomagaliśmy sobie nawzajem, musieliśmy napisać go w Pseudokodzie. W tym czasie nie znałem FORTRAN, więc nie ma dla mnie możliwości poprawnej składni (szczególnie wszystkie wcięcia wymagały lokalizacji dla określonych znaków). Nigdy nie musiał pisać średnikami. Na tablicy napisaliśmy w Pseudokodzie, aby można było to zrozumieć, bez zagłębiania się w złożone reguły składniowe.

Nie są to ścisłe konstrukcje dla Pseudokodu. Jeśli pisarz zna język, który używa „{” po instrukcji if, umieszcza go na tablicy, jeśli zna python, nie wie. Celem jest szybkie naszkicowanie podstawowego podejścia do problemu, a nie absolutnie poprawny kod.

Nauczyciele mogą z niego korzystać, aby udzielać wskazówek uczniowi, bez udzielania poprawnej odpowiedzi. Gdy poznasz więcej niż jeden język, pseudokod powinien być naturalny do użycia podczas szkicowania fragmentów kodu.

mhoran_psprep
źródło
2

Pseudokod nie jest językiem ani konwencją. Każdy podręcznik lub artykuł używałby własnej wersji pseudokodu. Podobnie jak w przypadku wielu innych nieformalnych „języków” matematycznych, w najlepszym przypadku zostałby on nieformalnie opisany w samej pracy, w najgorszym przypadku autorzy spodziewaliby się, że będzie to „oczywiste” wystarczająco.

Logika SK
źródło
W najlepszym wypadku jest na tyle oczywiste, że nie wymaga się żadnego formalnego ani nieformalnego opisu;).
Abel
@Abel, nie ma czegoś takiego jak „oczywisty” formalizm. Nawet coś tak „oczywistego” jak arytmetyka dziesiętna musi być odpowiednio wprowadzona. W przeciwnym razie zamieszanie jest niestety nieuniknione. Nigdy nie widziałem jednoznacznego pseudokodu bez co najmniej formalnego wprowadzenia.
SK-logic
Wątek dotyczy pseudokodu. Formalizm nie ma z tym nic wspólnego. Ale mój komentarz brzmiał: „gra słów zamierzona”;).
Abel
@Abel, język abstrakcyjny jest również formalizmem (przynajmniej gdy jest używany w bardziej lub mniej naukowym artykule).
SK-logic
2

Co to jest pseudo kod?

Pseudo kod to w zasadzie pisemne instrukcje dotyczące tego, co program powinien zrobić, aby zakończyć operację. Pseudo kod jest napisany w Twoim języku mówionym. Po prostu zapisz kroki algorytmu lub procedury, aby ułatwić Tobie lub komuś innemu odczytanie go i przekonwertowanie na prawdziwy język programowania.

Dlaczego został wyprodukowany / jest używany?

Został stworzony, aby pomóc ci określić kroki procedury, procesu lub algorytmu bez użycia języka programowania. Jedną z możliwych alternatyw jest użycie schematów blokowych.

Czy jest to język programowania?

Nie, to nie jest język programowania, ponieważ nie ma formalnych zasad.

Czy to jest powszechnie znane / używane?

Osobiście zawsze staram się używać pseudo kodu podczas pisania algorytmów lub skomplikowanych procedur.

Chris Mylonas
źródło
0

Moja osobista definicja pseudokodu to „rzeczy, które piszę zwykłym angielskim na kartce papieru podczas projektowania kodu”

Przed kodowaniem z pseudokodu „projekt” dodam mój pseudokod jako komentarze. Następnie, przeglądając te komentarze, mogę dodać „rzeczywisty” kod, który wykonuje opisane zadanie.

Może istnieć formalna nazwa, której nie znam, dla tej metody kodowania i używam jej tylko wtedy, gdy robię coś nowego / skomplikowanego.

AnthonyBlake
źródło
-4

Jak powiedział mój wykładowca programowania:

Pseudokod to angielska wersja dowolnego języka programowania.

CincauHangus
źródło
2
-1 Nie pomocne. Cytat ma sens jedynie w wyjaśnieniu pseudokodu (brakuje w tej odpowiedzi). W przeciwnym razie może to być dość mylące. Początkujący może się zastanawiać: cóż, wszystkie metody C # są w języku angielskim, co oznacza, że ​​C #, którego używam, to Pseudokod, prawda ...? Jak to nazywają, gdy używają C # w Niemczech?
doppelgreener