Pseudocod: o definiție clară?

voturi
5

Codul de mai jos este un exemplu de ceea ce cred că s-ar califica drept pseudocod, deoarece nu se execută în orice limbă, dar logica este corectă.

string checkRubric(gpa, major)
    bool brake = false
    num lastRange
    num rangeCounter
    string assignment = unassigned
    array bus['business']= array('person a'=>array(0, 2.9), 'person b'=>array(3, 4))
    array cis['computer science']= array('person c'=>array(0, 2.9), 'person d'=>array(3, 4))
    array lib['english']= array('person e'=>array(0, 4))
    array rubric = array(bus, cis, lib)

foreach (rubric as fieldAr)
    foreach (fieldAr as field => advisorAr)
        if (major == field)
            foreach (advisorAr as advisor => gpaRangeAr)
                    rangeCounter = 0
                foreach (gpaRangeAr as gpaValue)
                    if (rangeCounter < 1)
                        lastRange = gpaValue
                    else if (gpa >= lastRange && gpa <= gpaValue)
                        assignment = advisor
                        brake = true
                        break
                    endif
                    rangeCounter++
                endforeach
                if (brake == true)
                    break
                endif
            endforeach
            if (brake == true)
                break
            endif
        endif
    endforeach
    if (brake == true)
        break
    endif
endforeach
return assignment

Pentru ultimele două săptămâni am încercat să creeze o definiție clară a ceea ce este de fapt pseudocod. Este relativ la programator sau există o sintaxă clearcut reală? Eu spun pseudocod este orice cod care nu execută, cum despre tine? Multumesc (link-uri către acest subiect de bun venit)

Întrebat 22/03/2010 la 03:43
sursa de către utilizator
În alte limbi...                            


8 răspunsuri

voturi
3

Nerusinat rupt de la Wikipedia :

Pseudocod este o descriere compactă și informală la nivel înalt a unui algoritm de programare pe calculator, care utilizează convențiile structurale ale unui limbaj de programare, dar este destinat pentru citirea uman, mai degrabă decât mașină de lectură. Pseudocod omite de obicei, detalii care nu sunt esențiale pentru înțelegerea umană a algoritmului, cum ar fi declarații variabile, cod și subrutine specifice sistemului.

Există o mulțime de cod care nu se execută. Asta nu înseamnă că este pseudocod. Dvs. „psuedocode“ are o multime de lucruri in plus care ne-programatorii nu vor înțelege. In loc de a fi pseudocod, limba „psuedocode“ este foarte, foarte aproape de o limbă reală.

Publicat 22/03/2010 la 03:51
sursa de către utilizator

voturi
0

Cei doi cenți pe aceasta:

Eu spun pseudocod este orice cod care nu execută, cum despre tine? Multumesc (link-uri către acest subiect de bun venit)

Asta nu e ceea ce mă gândesc când gândesc la definiția sa. Un pseudocod sunt pașii programului va lua pentru a realiza o sarcină mai detaliat decât să descrie algoritmul ar fi.

Un lucru, în special, pe care mi se pare extrem de important cu privire la modul de a scrie un pseudocod este că, trebuie să fie înțeles de toată lumea, pentru ca fiecare individ să „port“ ea la limba dorită cuiva. Cu alte cuvinte, nu trebuie să fie limba agnostic.

La fel ca și o critică constructivă, nu aș lua în considerare exemplul ca pseudocod din diferite motive, dar, în special pentru că, vă utilizați sintaxa și convențiile care seamănă cu un anumit limbaj de programare. Eu spun pseudocodes ar trebui să fie de programare limbaj agnostic pentru a fi port pentru mai multe limbaje de programare reale de către persoane diferite.

EDIT: Probabil mai mult o singură regulă , aș adăuga la definiția mea este că, trebuie să semene cu limbajul uman decât un limbaj de programare. Ca și în, este egal în loc ==, atribuie în loc =. Motivul din spatele acestui fapt este că, de exemplu, operatorii de atribuire și egalitatea sunt diferite în diferite limbi.

Publicat 22/03/2010 la 03:51
sursa de către utilizator

voturi
7

Nu există nici o definiție fixă ​​a pseudocod. Este orice notație pe care vă așteptați publicul să înțeleagă pentru a obține punctul de peste. Important Ideea este că acesta este destinat oamenilor de a citi, nu de calculatoare, așa că nu trebuie să fie precise. Puteți include detaliile care sunt importante pentru expunerea dvs. și omite cele care nu sunt.

Publicat 22/03/2010 la 03:52
sursa de către utilizator

voturi
1

Pseudocod ar trebui, teoretic, să fie punerea în aplicare independentă. Acesta prezintă pași logici în limbaj simplu ce să facă. Acesta este destinat pentru interpretarea umană, nu execuția mașinii.

Exemplu PO este un pic mai aproape de cod real decât pseudocod. De exemplu, ++nu se găsește în toate limbile. Aceasta ar putea avea , de asemenea , un sens foarte diferit în altele.

Publicat 22/03/2010 la 03:52
sursa de către utilizator

voturi
1

Ei bine, dacă nu compila codul / link-ul meu C ++, aceasta nu va executa, așa că nu cred „Codul care nu execută“ este o definiție acceptabilă.

De asemenea limbaje de scripting nu sunt executate, acestea sunt de multe ori interpretate.

Definiția mea de cod pseudo ar fi:

„[Concis] Codul care este sintaxa agnostic, în scris pentru a transmite o funcție, comportament, sau algoritm.““

Publicat 22/03/2010 la 03:53
sursa de către utilizator

voturi
1

Pseudo-cod este nici o explicație compactă, ușor de citit umană a unui algoritm sau a unui program. Deoarece programul nu este ușor de citit pentru mine, aș spune că nu este pseudo-cod destul. Aici este un exemplu de pseudo-cod:

sum def (x):
    rezultat = 0
    pentru fiecare intrare în x:
        adăugați intrarea curentă la rezultatul
    raportul rezultat

Sau, într-un stil ușor diferit:

sum (x):
   Fie x o matrice
   Lăsați rezultatul să fie un număr întreg care reprezintă rezultatul, inițial 0

   pentru element în x:
       rezultat + = element

   rezultatul retur

Puteți utiliza elemente ale unui anumit sintaxă (și, de fapt, meu pseudo-cod tinde sa arate ca o mulțime Python), dar aceasta trebuie să fie ușor de înțeles de către un public larg și nu ar trebui să fie obstrucționată de sintaxă. De exemplu, eu folosesc „+ =“, dar acest lucru se datorează faptului că este foarte compact și convenabil, nu pentru că este necesar. Dacă ați găsit „endforeach“ de ajutor și convenabil în expunerea ta, ar fi fost ok; Cu toate acestea, aș spune că un astfel de lucru nu face parte din pseudo-cod, așa cum se pare mai mult decât stinted util sau explicativ.

Publicat 22/03/2010 la 04:01
sursa de către utilizator

voturi
0

Pseudocod este ceea ce ai scrie pe tablă, dacă doriți să obțineți ideile dvs. în rapid și în mod clar. În practică, pentru mine, este mai mult ca un limbaj de scripting netipizat, dar cu cerințele sintactice mult mai lejere. Pentru mine se pare mult ca C pentru că, sincer, cei mai mulți programatori Grok un limbaj, care este o variantă pe sintaxa C și așa intuiție este mai ușor pentru mai multe persoane (folosit pentru a arata ca Pascal, dar asta pentru că a fost una dintre primele limbi I învățat în școală).

Publicat 22/03/2010 la 04:03
sursa de către utilizator

voturi
1

O schiță a unui program, scris într-o formă care poate fi transformat cu ușurință în situații reale de programare.

Pseudocod nu pot fi compilate și nici executat, și nu există reguli de formatare sau de sintaxă reale. Este pur și simplu un pas - un important - în producerea codul final. Beneficiul pseudocod este acela că permite programatorului să se concentreze asupra algoritmilor fără a avea grija de toate detaliile sintactice ale unui anumit limbaj de programare.

Publicat 29/05/2012 la 06:42
sursa de către utilizator

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