Detaliile pas-cu-pas și conceptul de pseudocode - Life-prog

Ca principala metodă de construire a textului modulului, tehnologia de programare modernă recomandă detalierea pas cu pas. Esența acestei metode constă în împărțirea procesului de dezvoltare a textului modulului într-o serie de pași. La prima
pas este descris în formă de text modulul previzibil circuit total operare liniar (adică, folosind conceptele de foarte mare), iar această descriere nu este pe deplin formalizate și este axat pe percepția persoanei. La fiecare pas următor este făcut rafinament și detaliu al unuia dintre conceptele (le numim clarifică) folosit (de regulă, nu formalizate) în care o specificație dezvoltat într-una din etapele anterioare. Ca urmare a unei astfel de etape este creată descrierea clarifică conceptele selectate sau în ceea ce privește limbajul de programare de bază (adică, selectate pentru modulul de prezentare), sau în aceeași formă ca și în prima etapă este rafinat folosind noile concepte. Acest proces este finalizat atunci când toate conceptele specificate sunt exprimate în analiza finală în limba de programare de bază. Ultimul pas este de a obține textul modulului la limbajul de programare de bază prin înlocuirea tuturor aparițiilor de clarificare a conceptelor date descrierile lor și expresia tuturor aparițiilor constructe de programare structurate prin intermediul acestui limbaj de programare.

Detaliile pas-cu-pas sunt asociate cu utilizarea unui limbaj parțial formalizat pentru prezentarea acestor descrieri, care se numește pseudocod. Această limbă face posibilă utilizarea tuturor formelor de programare structurată care sunt formalizate, împreună cu fragmente informale în limbajul natural pentru reprezentarea operatorilor și condițiilor generalizate. Ca operatori generici și condiții, fragmentele corespunzătoare pot fi specificate în limbajul de programare de bază.

Descrierea principală a pseudo-codului poate fi considerată proiectarea externă a modulului în limba de programare de bază, care
trebuie să conțină:

  • începutul modulului în limba de bază; Prima teză sau titlul (specificația) acestui modul;
  • secțiunea (setul) de descrieri în limba de bază și, în locul descrierilor procedurilor și funcțiilor - doar designul lor extern;
  • Desemnarea informală a secvenței operatorilor corpului modulului ca operator unic generalizat (a se vedea mai jos), precum și desemnarea informală a unei secvențe de operatori corporali pentru fiecare descriere a unei proceduri sau funcții ca un singur operator generalizat;
  • ultima teză (sfârșitul) a modulului în limba de bază.


În urma:
obobschennyy_operator
obobschennyy_operator
ramificare:
DACĂ condiția TO
obobschennyy_operator
ALTFEL
obobschennyy_operator
ALL IF
repetiție:
CE ESTE CONDIȚIA DE A FACE
obobschennyy_operator
Totuși

Fig. 8.2. Construcții de bază ale programării structurate pe pseudocod.


Ieșiți de la repetare (ciclu):
EXIT
Ieșiți din procedura (funcție):
RETURN
Tranziția la tratarea excepțiilor:
EXCEPT ExceptionName

Fig. 8.3 Cazuri speciale ale operatorului de tranziție ca operator generalizat.

Ca operator generalizat pe pseudocod, putem folosi cazurile speciale ale operatorului de tranziție menționate mai sus (vezi Figura 8.3). Secvența de operatori de excepție (excepții) este specificată la sfârșitul modulului sau o descriere a procedurii (funcție). Fiecare astfel de handler arata astfel:

Denumire exclusă EXCLUSIV
obobschennyy_operator
TOATE EXCEPȚIA

Spre deosebire de un manipulator excepție de la procedura fără parametri este după cum urmează: după controlul Procedura revine la instrucțiunea următoare contactării la acesta și după efectuarea controlului de excludere revine la instrucțiunea următoare trimiterii la modulul sau procedura (funcția), capătul căruia ( care) se aplică această excepție.

Se recomandă ca la fiecare etapă a procesului de detaliere să fie creată o descriere suficient de informativă, dar ușor de observat (vizual), astfel încât să fie plasată pe o singură pagină de text. De regulă, aceasta înseamnă că o astfel de descriere ar trebui să fie o compoziție de cinci sau șase constructe structurate de programare. De asemenea, este recomandat ca structurile imbricate să fie poziționate cu o deplasare spre dreapta pentru mai multe poziții. Ca urmare, este posibilă obținerea unei descrieri a logicii muncii pentru o claritate destul de competitivă cu diagramele bloc, dar cu un avantaj semnificativ - liniaritatea descrierii este păstrată.


DEMONTAREA ÎN FIȘIERUL ÎNREGISTRĂRILOR PÂNĂ LA PRIMUL,
FILTRU ATRIBUIT SATISFACTOR:
Setați START FILE.
În timp ce nu sfârșitul fișierului
CITIȚI RECORDUL URMAT.
DACĂ RECORDUL URMAT SATISFIAT
FILTRU CARE
EXIT
ALTFEL
ȘTERGEREA ÎNREGISTRĂ URMĂTOARE DIN FIȘIER.
ALL IF
Totuși
DACĂ ÎNREGISTRĂRILE NU SUNT DELETATE
PRINT "RECORDS NOT DELETED".
ALTFEL
PRINT "DEMONTAT ȘI ÎNREGISTRAT".
ALL IF

Fig. Un exemplu de etapă de detaliere pe un pseudocod.

Ideea detalierii pas-cu-pas este uneori atribuită Dijkstra. Cu toate acestea, Dijkstra a oferit o metodă fundamentală diferită de construire a textului modulului, care ne pare mai profundă și promițătoare. Mai întâi, împreună cu specificarea operatorilor, el a sugerat treptat (în pași) rafinează (detaliu) și structurile de date utilizate. În al doilea rând, la fiecare pas el a propus să creeze o mașină virtuală pentru a detalia și în termenii ei să detalieze toate conceptele clarificate pentru care această mașină permite să fie făcut. Astfel, Dijkstra a oferit, în esență, detaliate pe straturile orizontale, care este un transfer al ideii sale de sisteme stratificate la nivelul dezvoltării modulelor. Această metodă de dezvoltare a modulelor este în prezent susținută de pachete de limbaj AD și de instrumente de programare orientate pe obiecte.