Szabványok pszeudo-kód?

szavazat
24

Meg kell fordítani egyes python és a Java rutinok a pszeudo kódot én diplomamunka de baj jön szintaktikai / stílust, hogy:

  • következetes
  • könnyen érthető
  • Nem túl bőbeszédű
  • nem túl közel van a természetes nyelvi
  • nem túl közel egy konkrét programozási nyelv.

Hogyan írsz pszeudo-kód? Vannak olyan szabvány ajánlásait?

A kérdést 20/02/2010 10:58
a forrás felhasználó
Más nyelveken...                            


7 válasz

szavazat
16

Azt javasoljuk, nézi a „Bevezetés a algoritmusok” könyv (a Cormen, Leiserson és Rivest). Mindig találtam a pszeudo-kód leírása algoritmusok nagyon világos és következetes.

Egy példa:

DIJKSTRA(G, w, s)
1  INITIALIZE-SINGLE-SOURCE(G, s)
2  S ← Ø
3  Q ← V[G]
4  while Q ≠ Ø
5      do u ← EXTRACT-MIN(Q)
6         S ← S ∪{u}
7         for each vertex v ∈ Adj[u]
8             do RELAX(u, v, w)
Válaszolt 20/02/2010 11:03
a forrás felhasználó

szavazat
4

Ha a kód eljárási normál pszeudo-kód valószínűleg könnyű (Wikipedia néhány példát).

Az objektum-orientált pszeudo-kód bonyolultabb lehet. Fontolgat:

  • UML osztály diagramok ábrázolják az osztályok / inheritence
  • UML szekvencia diagramok ábrázolják a sorozat kód
Válaszolt 20/02/2010 11:05
a forrás felhasználó

szavazat
5

Azt javaslom, hogy vessen egy pillantást a Fortress programozási nyelv .

Ez egy tényleges programozási nyelv, és nem pszeudokódokra, de ez volt a célja, hogy a lehető legközelebb legyen végrehajtható pszeudokódokra lehetséges. Különösen tervezésekor a szintaxis, olvasnak és elemzett száz CS és a matematika papírok, tanfolyamok, könyvek és folyóiratok megtalálni a közös használati minták pszeudokódokra és egyéb számítógépes / matematikai jelölést.

Akkor tőkeáttétel minden kutatás, hogy csak nézte Fortress forráskód és referáló ki a dolgokat, akkor nem kell, hiszen a célközönség emberi, mivel erőd egy fordító.

Itt egy konkrét példa a futás vár kódot a NAS (NASA Advanced Supercomputing) konjugált gradiens Párhuzamos Benchmark . Egy szórakoztató élményt, hasonlítsa össze a leírás az irányadó a végrehajtás az erőd és vegyük észre, hogy ott szinte 1: 1 levelezés. Összehasonlítsák a végrehajtás egy pár más nyelvek, mint a C vagy Fortran, és vegyük észre, hogyan kell semmi köze a leírás (és gyakran egy nagyságrenddel hosszabb, mint a spec).

Ki kell hangsúlyoznom: ez nem pszeudokódokra, ez a tényleges munka vár kódot! Fortress kód példa http://ProjectFortress.Sun.Com/Projects/Community/raw-attachment/wiki/FortressQuestions/NAS-CG.png

Edit: Fent Kód Példa link halott. Valószínűleg hasonló példát találhatunk itt: https://umbilicus.wordpress.com/2009/10/16/fortress-parallel-by-default/

Válaszolt 20/02/2010 15:33
a forrás felhasználó

szavazat
3

Nem értem a követelménynek a „nem túl közel egy konkrét programozási nyelv”.

Python általában tekinteni, mint egy jó jelölt írásban pszeudo-kódot. Lehet, hogy egy egyszerűsített változata a python működne az Ön számára.

Válaszolt 20/02/2010 15:39
a forrás felhasználó

szavazat
2

Pascal mindig hagyományosan a leginkább hasonló pszeudokódokra, amikor a matematikai és a műszaki területeken. Nem tudom, miért, ez csak mindig így.

Van néhány (ó, nem tudom, talán 10 könyvet a polcon, ami konkrét ez az elmélet).

Python javasolt, lehet szép kódot, de lehet olyan olvashatatlan is, hogy ez egy csoda önmagában. Régebbi nyelv nehezebb, hogy olvashatatlan - közülük „egyszerűbb” (hogy óvatosan), mint a mai is. Ők talán nehezebb megérteni, mi folyik itt, de könnyebb olvasni (kevesebb szintaxis / nyelv jellemzői van szükség, hogy megértsék a program mit csinál).

Válaszolt 20/02/2010 16:15
a forrás felhasználó

szavazat
7

Válaszolt a saját kérdésére, csak azt akartam felhívni a figyelmet, hogy az alábbi weboldalon találhatóak betűszedő pszeudo kódot LaTeX: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=algorithms . Leírják számos különböző stílusok, tőzsdei előnyei és hátrányai. Mellékesen ott történetesen létezik két stíluslapok írására pszeudo-kód módon használt „Introductin az algoritmusok” című Cormen, fent javasolt: newalg és clrscode. Az utóbbi írta Cormen magát.

Válaszolt 25/02/2010 15:08
a forrás felhasználó

szavazat
0

Ez a bejegyzés régi, de remélhetőleg ez segít másoknak.

„Bevezetés a algoritmusok” könyv (a Cormen, Leiserson és Rivest) egy jó könyvet olvasni algoritmusok, de a „pszeudo-kód” szörnyű. A dolgok, mint a Q [1 ... n] nonszensz, ha kell megérteni, mi Q [1 ... n] tegyük fel, hogy értem. Amelynek meg kell jegyezni kívül a „pszeudo-kódot.” Sőt, a könyvek mint a „Bevezetés a algoritmusok” szeretnék használni egy matematikai szintaxist, amely megsérti az egyik célja pszeudo-kódot.

Pszeudo-kódot kell két dolgot. Abstract távol szintaxist és könnyen olvasható. Ha a tényleges kód inkább leíró, mint az ál-kódot, és a tényleges kód inkább leíró, akkor nem ál-kódot.

Tegyük fel, hogy írtak egy egyszerű program.

Képernyő design:

Welcome to the Consumer Discount Program!
Please enter the customers subtotal: 9999.99
The customer receives a 10 percent discount
The customer receives a 20 percent discount
The customer does not receive a discount
The customer's total is: 9999.99

Változó listája:

TOTAL:         double
SUB_TOTAL:     double
DISCOUNT:      double

Pszeudo-kód:

DISCOUNT_PROGRAM

    Print "Welcome to the Consumer Discount Program!"
    Print "Please enter the customers subtotal:"
    Input SUB_TOTAL

    Select the case for SUB_TOTAL
        SUB_TOTAL > 10000 AND SUB_TOTAL <= 50000
            DISCOUNT = 0.1
            Print "The customer receives a 10 percent discount"
        SUB_TOTAL > 50000
            DISCOUNT = 0.2
            Print "The customer receives a 20 percent discount"
        Otherwise
            DISCOUNT = 0
            Print "The customer does not a receive a discount"

    TOTAL = SUB_TOTAL - (SUB_TOTAL * DISCOUNT)
    Print "The customer's total is:", TOTAL

Figyeljük meg, hogy ez nagyon könnyen olvasható, és nem hivatkozik semmilyen szintaxis. Ez támogatja mindhárom Bohm és Jacopini ellenőrzési struktúrákat.

Sorrend:

Print "Some stuff"
VALUE = 2 + 1
SOME_FUNCTION(SOME_VARIABLE)

Kiválasztás:

if condition
    Do one extra thing

if condition
    do one extra thing
else
    do one extra thing

if condition
    do one extra thing
else if condition
    do one extra thing
else
    do one extra thing

Select the case for SYSTEM_NAME
    condition 1
        statement 1
    condition 2
        statement 2
    condition 3
        statement 3
    otherwise
        statement 4

Ismétlés:

while condition
    do stuff

for SOME_VALUE TO ANOTHER_VALUE
    do stuff

összehasonlítani, hogy ez az N-Queens "pszeudo-kód" ( https://en.wikipedia.org/wiki/Eight_queens_puzzle ):

PlaceQueens(Q[1 .. n],r)

    if r = n + 1
        print Q
    else
        for j ← 1 to n
            legal ← True
            for i ← 1 to r − 1
                if (Q[i] = j) or (Q[i] = j + r − i) or (Q[i] = j − r + i)
                    legal ← False
        if legal
            Q[r] ← j
            PlaceQueens(Q[1 .. n],r + 1) 

Ha nem tudja megmagyarázni, egyszerűen, akkor nem értem, elég jól. - Albert Einstein

Válaszolt 11/01/2019 15:02
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more