Informatică - Ghid de studiu
Structurograme (diagrame Nessi-Shneyderman)
Imaginea algoritmului cu ajutorul schemei structurale răspunde tuturor cerințelor de bază ale programării structurale. Principalul lucru este că interdicțiile de transfer arbitrar sunt interzise, iar schema de transmisie însăși nu este reprezentată utilizând linii ca în diagramele bloc, ci cu ajutorul structurilor imbricate.
Fiecare bloc structuralogram are forma unui dreptunghi și poate fi înscris în orice dreptunghi al altui bloc. Înregistrările explicative din blocuri sunt executate în limbaj natural sau prin expresii matematice obișnuite. Următoarele blocuri sunt folosite pentru a reprezenta algoritmul:
DDDDDDDDDDDDDDD - unitate de procesare (calcule); Orice dreptunghi din interiorul programului structurat este, de asemenea, un bloc de procesare
DDDDDDDDDDDDDDD - secvențiator: secvența unităților de procesare
ДДДДДДДДДДДДДДДДД - blocul de decizie; desemnează structura ramificată
DDDDDDDDDDDDDDD - bloc de opțiuni; este o extensie a blocului de soluții.
Opțiunile, cunoscute exact, sunt plasate în partea stângă. Restul este combinat într-unul, numit ieșirea de neconformitate și plasat în dreapta
ДДДДДДДДДДДДДДДДДДД - dacă toate condițiile sunt cunoscute, partea dreaptă a blocului variantei este lăsată neîncărcată sau complet abandonată
ДДДДДДДДДДДДДДДДДДД - blocul unui ciclu cu o condiție prealabilă și un bloc al unui ciclu cu un parametru
DDDDDDDDDDDDDDDD - blocul ciclului cu o condiție ulterioară; mai jos este starea finală a ciclului
De exemplu, oferim un algoritm structurat pentru rezolvarea problemei de tabulare pentru o funcție a cărei condiții au fost date mai sus.
Structuri algoritmice născute
Dacă o structură algoritmică face parte dintr-o altă structură algoritmică, atunci se consideră a fi imbricată. Deci, în exemplul precedent, structura de ramificare intră în bucla, iar cea din urmă face parte din secvență. Astfel, putem vorbi despre nivelul cuiburilor.
Cel mai interesant din punct de vedere al creării unui algoritm eficient este cazul când un ciclu include un alt ciclu. O astfel de structură algoritmică este denumită de obicei un ciclu complex; un ciclu care cuprinde un alt ciclu (altul) se numește extern, iar ciclul care intră în cel extern este intern sau imbricat. Există anumite reguli pentru organizarea unor astfel de structuri, pentru care cunoaștem mai întâi un exemplu.
Să se solicite scrierea unui algoritm pentru rezolvarea problemei tabelării funcției a două variabile z = x + y. în care x variază de la 1 la 3 cu o treaptă x = 0,5 și y variază de la -1 la 1 cu aceeași etapă.
În primul rând, trebuie să vă gândiți prin forma rezultatelor calculului pentru a aduce o anumită organizație și pentru a evita repetarea inutilă a rezultatelor. Avem de-a face cu o funcție complexă care depinde în egală măsură de două variabile, astfel încât să putem sugera următoarea organizație de ieșire:
y = -1,0 z =. y = -0,5 z =.
Dacă acceptăm o astfel de structură de ieșire, atunci este evident că parametrul bucla exterioară este x, iar variabila y este parametrul imbricat. O diagramă bloc a unui astfel de algoritm poate fi prezentată după cum urmează:
Să calculăm de câte ori trebuie să se repete un ciclu cu privire la x pentru a rezolva problema noastră. Conform formulei de mai sus,
Pentru o buclă interioară auto-selectată în ceea ce privește y, avem numărul de repetări
Din aceste calcule arată că, în procesul de soluționare a acestei probleme numărul total de iterații buclei interioare ale corpului, inclusiv calcularea formulei pentru z, va fi n = n * n = 5 * 5 = 25. Aici este posibil să se schimbe buclele externe și nested , acest lucru nu schimbă structura sau algoritmul sau care trebuie să abordeze valoarea de calcul.
Să schimbăm partea condiției problemei, presupunând că pasul de modificare a variabilei x a rămas același, dar y = 0.1. Apoi, numărul de repetări ale ciclului în raport cu y va fi egal cu n = (1 + 1) /0.1 + 1 = 21. Dacă această bucla este făcută internă, atunci în procesul de rezolvare a problemei corpul ciclului cu privire la y se va repeta 5
* 21 = 105 de ori. corpul exterior al buclei, în care în afară de ciclul corp include alte acțiuni, care se repetă de 5 ori. Astfel, cantitatea totală de calcul în algoritmul poate fi caracterizat prin numărul n * n + n = 105 + 5 = 110 cicluri de schimbare Acum în x și y pozițiile. Numărul reíncercări buclei interioare rămâne aceeași - 105, dar suma totală de calcul se va schimba, deoarece tot ciclul extern de operare se repetă de 21 de ori, de aceea, cantitatea totală de calcul în acest caz, este proporțională cu n * n + n = 105 +
Să modificăm din nou starea problemei. Fie variabilele x și y variază ca în versiunea originală, dar funcția z
S-ar părea că valoarea de calcul nu depinde de care ciclul este extern, și care - încorporat și este proporțională cu n * n + n = 25 + 5 = 30. Cu toate acestea, ia în considerare două algoritm strukturogrammy pentru cazul în care y este ciclul extern :
Dacă algoritmul de soluție este implementat pe structura stângă, atunci, în principiu, nu există nicio diferență în ce parametru este organizat ciclul extern. Totuși, calculele folosind formula pentru z, inclusiv exponentul, vor fi efectuate de 25 de ori. Conform algoritmului drept, calculul exponentului se efectuează în bucla exterioară și, prin urmare, este executat doar de 5 ori. Problema va fi rezolvată mai repede, dar acum variabilele x și y nu sunt egale.
Deci, puteți formula următoarele reguli pentru organizarea buclelor imbricate:
1) dacă condițiile problemei nu determină în mod direct ce este organizat ciclul extern și prin ce este cel intern, este necesar să se formeze bucla exterioară în variabila cu care sunt corelate calculele cele mai complexe;
2) alte lucruri fiind egale, problema va fi rezolvată mai rapid dacă ciclul existent are un număr mai mic de repetări decât ciclul intern individual.
Citește: Adnotare
Citiți: Introducere
Citiți: Informații
Citiți: Etape de rezolvare a problemei pe computere
Citiți: Instrumente de înregistrare al algoritmului
Citiți: A patra etapă este cea finală dintre cele care pot fi executate fără utilizarea calculatoarelor.
Citiți: Structuri algoritmice de bază
Citiți: Fundamentele programării structurate
Citește: Structurograme (diagrame ale lui Nessi Shneiderman)
Citiți: Programare modulară
Citește: Cu privire la stilul de programare
Citiți: Tipuri de date
Citește: Computer Ahecture
Citește: Viruși de calculator
Citiți: Calculator în experiment
Citește: Simularea aleatorie
| | Cuprins