Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Windows 7, XP
  • Metoda de asamblare. Detalierea algoritmului de ramificare și secvențial - Hypermarket de cunoștințe

Metoda de asamblare. Detalierea algoritmului de ramificare și secvențial - Hypermarket de cunoștințe

Esența metodei a fost descrisă mai sus. Mai întâi se analizează problema inițială. Subsarcinile sunt evidențiate în el. Este construită o ierarhie a acestor subsarcini (Fig. 48).

Apoi se compilează algoritmi (sau programe), începând cu algoritmul principal (programul principal), apoi algoritmii auxiliari (subrutinele) cu o adâncire secvențială a nivelului până când obținem algoritmi formați din comenzi simple.

Să revenim la problema „Interpretului”, care a fost luată în considerare în Sec. 3.16. Să ne amintim condiția: este dat un șir inițial de caractere, care are următoarea formă:

Cifrele zecimale sunt în locul lui a și b; insigna

unul dintre semnele de operare este indicat: +, -, *. Este necesar ca mașina să evalueze această expresie și, după semnul =, să imprime rezultatul. Diviziunea nu este considerată a se ocupa doar de numere întregi.

Să formulăm cerințele pentru programul Interpretator, ceea ce îl va face mai versatil decât opțiunea luată în considerare în secțiune. 3.16:

1. Operanzii a și b pot fi numere întregi pozitive cu mai multe valori în MaxInt.

2. Între elementele de linie, precum și la început și la sfârșit, pot exista spații.

3. Programul realizează controlul sintactic al textului. Ne vom limita la cea mai simplă opțiune de control: un șir ar trebui să fie format doar din numere, semne de operație, un semn = și spații.

4. Se efectuează controlul semantic: linia trebuie construită conform schemei a

b =. O eroare în cazul în care un element lipsește sau ordinea lor este în ordine.

5. Gama de valori ale operanzilor și rezultatul este monitorizat (nu ar trebui să depășească MaxInt).

Deja din lista de cerințe devine clar că programul nu va fi ușor. O vom compune folosind metoda detalierii secvențiale. Să începem prin a prezenta algoritmul în forma sa cea mai generală ca o secvență liniară de etape pentru rezolvarea problemei:

1. Introducerea unui șir.

2. Control sintactic (există caractere nevalide?).

3. Control semantic (expresia este construită corect?).

4. Selectarea operanzilor. Verificarea operanzilor pentru un interval valid de valori. Conversie în numere întregi.

5. Executarea operațiunii. Verificarea rezultatului pentru un interval valid.

6. Încheierea rezultatului.

Etapele 2, 3, 4, 5 vor fi considerate subsarcini ale primului nivel, numindu-le (și subrutinele viitoare), respectiv, Sintax, Semantika, Operand, Calc

La rândul său, implementarea lor va necesita rezolvarea următoarelor subsarcini: sărirea peste spații suplimentare (Propusk), conversia unei cifre simbolice într-un număr întreg (Cifra). În plus, atunci când alocați operanzi, va trebui să recunoașteți un operand care depășește valoarea maximă admisă (Eroare). Rezumând tot ceea ce s-a spus într-o formă schematică, obținem o anumită structură de subsarcini. Această structură va corespunde unei structuri similare de module software (Fig. 49).

Primul pas al detalierii. În primul rând, schițăm toate subrutinele necesare, indicând doar anteturile (specificațiile) ale acestora. În locul corpului subrutinelor, notăm comentarii explicative (acest tip de subrutine se numește „stub”). Să scriem partea principală a programului. Și apoi înapoi la programarea detaliată a procedurilor și funcțiilor. La prima etapă a programării, în loc de corpul subrutinei, descriem scopul acesteia sub forma unui comentariu. După ce am combinat în sfârșit textele subrutinelor cu programul principal, obținem o versiune de lucru a programului Interpretator. Acum poate fi introdus în computer.

Depanarea și testarea programului. Nu poți fi niciodată sigur că un program scris dintr-o singură lovitură va fi corect (deși acest lucru este posibil, dar odată cu complexitatea programului devine din ce în ce mai puțin probabil). Programul este adus în starea finală de lucru în procesul de depanare.

Erorile pot fi „lingvistice” sau algoritmice. Primul tip de erori este de obicei detectat de compilatorul Pascal. Acestea sunt erori legate de încălcarea regulilor limbajului de programare. Ele se mai numesc și erori de compilare, deoarece sunt detectate în timpul compilării. Erorile algoritmice duc la consecințe diferite. În primul rând, pot apărea acțiuni impracticabile. De exemplu, împărțirea la zero, rădăcina pătrată a unui număr negativ, indexul din limitele liniilor etc. Acestea sunt erori de rulare. Acestea conduc la întreruperea execuției programului. De obicei, există instrumente software de sistem disponibile pentru a vă ajuta să găsiți aceste erori.

O altă situație este atunci când erorile algoritmice nu întrerup execuția programului. Programul rulează până la final, se obțin unele rezultate, dar nu sunt corecte. Pentru depanarea finală a algoritmului și analiza corectitudinii acestuia, se efectuează testarea. Un test este o variantă de rezolvare a unei probleme pentru care rezultatele sunt cunoscute dinainte. De regulă, un caz de testare nu dovedește corectitudinea programului. Programatorul trebuie să vină cu un sistem de testare, să construiască un plan de testare pentru un test exhaustiv al întregului program.

Am spus deja asta Un program de înaltă calitate nu ar trebui, în niciun caz, să se încheie anormal.

Trecerea cu succes a tuturor testelor este o condiție necesară pentru corectitudinea programului. Rețineți că acest lucru nu este neapărat suficient. Cu cât programul este mai complex, cu atât este mai dificil să construiți un plan de testare cuprinzător. Experiența arată că și în programele „proprietate”, erorile sunt detectate în timpul funcționării. Prin urmare, problema testării unui program este o problemă foarte importantă și în același timp foarte dificilă.

Sfârșit

Fiecare bloc poate conține atât o comandă simplă, cât și o structură complexă, dar trebuie să aibă neapărat unu intrarea si unu Ieșire.

Ramificare - alternativă algoritmică. Cu această comandă, numită și furculiţă alegerea uneia dintre cele două acțiuni posibile se realizează în funcție de condiție. După ce comanda este finalizată, se iese la general continuare:

În pseudocod, această comandă este în general scrisă după cum urmează:

dacă<условие>

atunci<действие 1>

in caz contrar<действие 2>

Acțiuni specificate după cuvintele de serviciu atunciși in caz contrar, pot fi comenzi simple sau compuse. Când se execută o comandă de ramificație, se execută doar una dintre acțiuni: dacă condiția este îndeplinită, atunci se execută acțiunea1, în caz contrar, acțiunea2.

Comanda branch poate fi folosită în forma prescurtata (corectie) când nu se întreprinde nicio măsură dacă condiția nu este îndeplinită. În pseudocod, corecția este scrisă după cum urmează:

dacă<условие>

atunci<действие >

Repetați comanda (buclă). Majoritatea algoritmilor conțin o serie de instrucțiuni care se repetă de mai multe ori. Dacă astfel de comenzi ar fi scrise sub forma unei comenzi de urmărire compusă, atunci fiecare comandă repetată ar trebui să fie scrisă exact de câte ori se repetă. Dar acesta este un mod foarte risipitor de a înregistra. Prin urmare, pentru a desemna acțiuni repetate, se folosește o construcție specială, numită ciclu.

O comandă de buclă compusă, numită și comandă de repetare, conține o condiție care este utilizată pentru a determina numărul de ori de repetat. Luați în considerare trei tipuri de comenzi repetate.

Repetați comanda cu condiția prealabilă este scrisă în pseudocod după cum urmează:

pa<условие >

a repeta<действие>

O acțiune, ca și înainte, înseamnă o comandă simplă sau compusă. Executarea unei astfel de comenzi de repetare constă în faptul că mai întâi se verifică condiția (de unde și numele - o buclă cu o precondiție), iar dacă este îndeplinită, atunci comanda scrisă după cuvântul de serviciu este executată a repeta. După aceea, starea este verificată din nou. Bucla se termină atunci când condiția nu mai este îndeplinită. Acest lucru necesită ca comanda executată în buclă să afecteze condiția.

Scrierea unei comenzi de repetare cu o precondiție în limbajul diagramei de flux arată astfel:



Repetați comanda cu postcondiție se execută în același mod, numai condiția este verificată după executarea comenzii, iar comanda se repetă atunci când condiția nu este îndeplinită, adică. repetarea se face inainte de condiția este îndeplinită (prin urmare, acest tip de buclă se mai numește și buclă „to”.) În limbajul pseudocod și diagramă, o buclă cu o postcondiție este scrisă după cum urmează:



a repeta

acțiune

inainte de condiție

O acțiune, ca și înainte, înseamnă o comandă simplă sau compusă.

Buclă cu parametru (număr cunoscut de repetări)

Pentru parametru: = N1 inainte de N2 face

acțiune

N1, N2 - expresii care determină, respectiv, valorile inițiale și finale ale parametrului ciclului, N3 - pasul de modificare a parametrului ciclului.

Dacă N1< N2, то N3 >0.

Dacă N1> N2, atunci N3<0.

Teoretic doar primul tip de ciclu este necesar și suficient - un ciclu cu condiție prealabilă... Orice algoritm ciclic poate fi construit folosindu-l. Aceasta este o formă mai generală de buclă decât o buclă do și o buclă de parametri. Dar, în unele cazuri, utilizarea unui ciclu-înainte și a unui ciclu cu un parametru se dovedește a fi mai convenabilă.

Abordarea structurală necesită aderarea la un standard în reprezentarea diagramelor de flux. Trebuie să le desenați așa cum sa făcut în toate exemplele date. Fiecare structură de bază trebuie să aibă o singură intrareși o singură cale de ieșire... Diagrama bloc non-standard este slab lizibilă, claritatea și semantica algoritmului sunt pierdute.

Cel mai adesea, algoritmul conține combinații de comenzi de bază care sunt interconectate. Aceste structuri pot fi conectate în două moduri: consistent și cuibărit . Această situație este similară cu cea observată în inginerie electrică, unde orice circuit electric arbitrar complex poate fi descompus în secțiuni conectate în serie și paralel.

Dacă blocul care alcătuiește corpul ciclului este el însuși o structură ciclică, atunci înseamnă că cuibărit cicluri. La rândul său, bucla interioară poate avea în interior o altă buclă etc. În acest sens, conceptul de adâncimea cuibării cicluri. De asemenea, ramurile pot fi imbricate unele în altele.

Uneori, în literatură, programarea structurată se numește programare fără goto. Într-adevăr, cu această abordare, nu există loc pentru un salt necondiționat.

Utilizarea nejustificată a operatorului de salt necondiționat goto în programe îl privează de structura sa, ceea ce înseamnă toate proprietățile pozitive asociate: transparența și fiabilitatea algoritmului. Deși acest operator este prezent în toate limbajele de programare procedurală, ar trebui evitat într-o manieră structurată.

Limbajele de programare Pascal și C sunt numite limbaje de programare structurată. Acestea conțin toate structurile de control necesare pentru construcția structurală a programului. Structura aspectului exterior al textului programului dă claritate unei astfel de construcții. Principala tehnică utilizată pentru aceasta este deplasarea liniilor, care trebuie să respecte următoarele reguli:

Construcțiile de același nivel de cuibărit sunt scrise la același nivel vertical (începând de la o poziție într-o linie);

Structura imbricată este scrisă ca fiind deplasată de-a lungul liniei cu mai multe poziții la dreapta față de structura exterioară acesteia.

Tehnica de algoritmizare structurală nu este doar o formă de descriere a unui algoritm, ci este și modul de gândire al programatorului. Când creați un algoritm, ar trebui să ne străduim să-l compune din structuri standard.

O altă tehnică importantă pentru programarea structurată este descompunerea problemei care se rezolvă în subsarcini- împărțirea problemei în părți mai simple ale problemei inițiale din punct de vedere al programării.

Se numesc algoritmi pentru rezolvarea unor astfel de subprobleme algoritmi auxiliari.În acest sens, sunt posibile două moduri în construcția algoritmului:

„de sus în jos” - mai întâi se construiește algoritmul principal, apoi algoritmii auxiliari;

„de jos în sus” - mai întâi sunt compilați algoritmi auxiliari, apoi cel principal.

Prima abordare se mai numește și metodă detaliu consistent , al doilea - asamblare metodă.

Asamblare metoda presupune acumularea și utilizarea bibliotecilor de algoritmi auxiliari, implementați în limbaje de programare sub formă de subrutine, proceduri, funcții.

La consistent Detaliind, mai întâi se construiește algoritmul principal, apoi se fac apeluri la algoritmii auxiliari ai primului nivel. După aceea, sunt compilați algoritmi auxiliari de primul nivel, în care pot exista apeluri la algoritmi auxiliari de al doilea nivel etc. Algoritmii auxiliari de cel mai jos nivel constau doar din comenzi simple.

Metodă detaliu consistent utilizat în orice proiectare de obiecte complexe. Aceasta este o secvență logică naturală a gândirii unui designer: o aprofundare treptată în detalii. Este aproape imposibil să construiți un algoritm suficient de complex în alt mod.

Astfel, metoda de detaliere pas cu pas poate fi reprezentată sub forma unei diagrame:

Mai întâi se analizează problema inițială. Subsarcinile sunt evidențiate în el. Este construită o ierarhie a acestor subsarcini.

Apoi se compilează algoritmi (sau programe), începând cu algoritmul principal (programul principal), apoi algoritmii auxiliari (subrutinele) cu o adâncire secvențială a nivelului până când obținem algoritmi formați din comenzi simple.

Metoda detalierii secvențiale vă permite să organizați munca unei echipe de programatori pe un proiect complex. De exemplu, liderul echipei construiește algoritmul principal și le încredințează angajaților săi dezvoltarea algoritmilor auxiliari și scrierea subrutinelor corespunzătoare. Membrii echipei trebuie doar să cadă de acord asupra interfeței (adică, relația) dintre modulele software dezvoltate, iar organizarea internă a programului este o chestiune personală pentru programator.

Depanarea și testarea programului. Nu poți fi niciodată sigur că un program scris va fi corect (deși acest lucru este posibil, dar pe măsură ce complexitatea programului devine din ce în ce mai puțin probabilă). Programul este adus în starea finală de lucru în cadrul procesului depanare.

Erorile pot fi „lingvistice” – sintactice și algoritmice (logice). Primul tip de erori, de regulă, ajută la detectarea compilatorului limbajului de programare. Acestea sunt erori legate de încălcarea regulilor limbajului de programare. Se mai numesc si greseli. timp de compilare, pentru că sunt găsite în timpul compilării. Compilatorul însuși, într-o formă sau alta, informează utilizatorul despre natura erorii și locul acesteia în textul programului. După ce a corectat următoarea eroare, utilizatorul repetă compilarea. Aceasta continuă până când toate erorile de acest nivel sunt eliminate.

Erorile algoritmice duc la consecințe diferite. În primul rând, pot apărea acțiuni impracticabile. De exemplu, împărțirea la zero, rădăcina pătrată a unui număr negativ, indexul în afara limitelor unei matrice etc. Acestea sunt erori timpul de execuție. Acestea conduc la întreruperea execuției programului. De obicei, există instrumente software de sistem disponibile pentru a vă ajuta să găsiți aceste erori.

O altă situație este atunci când erorile algoritmice nu întrerup execuția programului. Programul rulează până la final, se obțin unele rezultate, dar nu sunt corecte. Pentru depanarea finală a algoritmului și analiza corectitudinii acestuia, se efectuează testarea.

Test- aceasta este o variantă de rezolvare a unei probleme pentru care rezultatele sunt cunoscute dinainte. De regulă, un caz de testare nu dovedește corectitudinea programului. Programatorul trebuie să vină cu un sistem de testare, să construiască un plan de testare pentru un test exhaustiv al întregului program.

Program de calitate în niciun caz nu ar trebui să se termine de urgență.

Testele programului trebuie să demonstreze că prin introducerea corectă a datelor inițiale se vor obține întotdeauna rezultatele corecte, iar dacă există erori (sintactice, semantice, în afara intervalului), vor fi primite mesaje adecvate.

Trecerea cu succes a tuturor testelor este o condiție necesară pentru corectitudinea programului. Rețineți că acest lucru nu este neapărat suficient. Cu cât programul este mai complex, cu atât este mai dificil să construiți un plan de testare cuprinzător. Experiența arată că și în programele „proprietate”, erorile sunt detectate în timpul funcționării. Prin urmare, problema testării unui program este o problemă foarte importantă și în același timp foarte dificilă.

Esența metodei a fost descrisă mai sus. Mai întâi se analizează problema inițială. Subsarcinile sunt evidențiate în el. Este construită o ierarhie a acestor subsarcini (Fig. 48).

Apoi se compilează algoritmi (sau programe), începând cu algoritmul principal (programul principal), apoi algoritmii auxiliari (subrutinele) cu o adâncire secvențială a nivelului până când obținem algoritmi formați din comenzi simple.

Să revenim la problema „Interpretului”, care a fost luată în considerare în Sec. 3.16. Să ne amintim condiția: este dat un șir inițial de caractere, care are următoarea formă:

Cifrele zecimale sunt în locul lui a și b; insigna

unul dintre semnele de operare este indicat: +, -, *. Este necesar ca mașina să evalueze această expresie și, după semnul =, să imprime rezultatul. Diviziunea nu este considerată a se ocupa doar de numere întregi.

Să formulăm cerințele pentru programul Interpretator, ceea ce îl va face mai versatil decât opțiunea luată în considerare în secțiune. 3.16:

1. Operanzii a și b pot fi numere întregi pozitive cu mai multe valori în MaxInt.

2. Între elementele de linie, precum și la început și la sfârșit, pot exista spații.

3. Programul realizează controlul sintactic al textului. Ne vom limita la cea mai simplă opțiune de control: un șir ar trebui să fie format doar din numere, semne de operație, un semn = și spații.

4. Se efectuează controlul semantic: linia trebuie construită conform schemei a

b =. O eroare în cazul în care un element lipsește sau ordinea lor este în ordine.

5. Gama de valori ale operanzilor și rezultatul este monitorizat (nu ar trebui să depășească MaxInt).

Deja din lista de cerințe devine clar că programul nu va fi ușor. O vom compune folosind metoda detalierii secvențiale. Să începem prin a prezenta algoritmul în forma sa cea mai generală ca o secvență liniară de etape pentru rezolvarea problemei:

1. Introducerea unui șir.

2. Control sintactic (există caractere nevalide?).

3. Control semantic (expresia este construită corect?).

4. Selectarea operanzilor. Verificarea operanzilor pentru un interval valid de valori. Conversie în numere întregi.

5. Executarea operațiunii. Verificarea rezultatului pentru un interval valid.

6. Încheierea rezultatului.

Etapele 2, 3, 4, 5 vor fi considerate subsarcini ale primului nivel, numindu-le (și subrutinele viitoare), respectiv, Sintax, Semantika, Operand, Calc

La rândul său, implementarea lor va necesita rezolvarea următoarelor subsarcini: sărirea peste spații suplimentare (Propusk), conversia unei cifre simbolice într-un număr întreg (Cifra). În plus, atunci când alocați operanzi, va trebui să recunoașteți un operand care depășește valoarea maximă admisă (Eroare). Rezumând tot ceea ce s-a spus într-o formă schematică, obținem o anumită structură de subsarcini. Această structură va corespunde unei structuri similare de module software (Fig. 49).

Primul pas al detalierii. În primul rând, schițăm toate subrutinele necesare, indicând doar anteturile (specificațiile) ale acestora. În locul corpului subrutinelor, notăm comentarii explicative (acest tip de subrutine se numește „stub”). Să scriem partea principală a programului. Și apoi înapoi la programarea detaliată a procedurilor și funcțiilor. La prima etapă a programării, în loc de corpul subrutinei, descriem scopul acesteia sub forma unui comentariu. După ce am combinat în sfârșit textele subrutinelor cu programul principal, obținem o versiune de lucru a programului Interpretator. Acum poate fi introdus în computer.

Depanarea și testarea programului. Nu poți fi niciodată sigur că un program scris dintr-o singură lovitură va fi corect (deși acest lucru este posibil, dar odată cu complexitatea programului devine din ce în ce mai puțin probabil). Programul este adus în starea finală de lucru în procesul de depanare.

Erorile pot fi „lingvistice” sau algoritmice. Primul tip de erori este de obicei detectat de compilatorul Pascal. Acestea sunt erori legate de încălcarea regulilor limbajului de programare. Ele se mai numesc și erori de compilare, deoarece sunt detectate în timpul compilării. Erorile algoritmice duc la consecințe diferite. În primul rând, pot apărea acțiuni impracticabile. De exemplu, împărțirea la zero, rădăcina pătrată a unui număr negativ, indexul din limitele liniilor etc. Acestea sunt erori de rulare. Acestea conduc la întreruperea execuției programului. De obicei, există instrumente software de sistem disponibile pentru a vă ajuta să găsiți aceste erori.

O altă situație este atunci când erorile algoritmice nu întrerup execuția programului. Programul rulează până la final, se obțin unele rezultate, dar nu sunt corecte. Pentru depanarea finală a algoritmului și analiza corectitudinii acestuia, se efectuează testarea. Un test este o variantă de rezolvare a unei probleme pentru care rezultatele sunt cunoscute dinainte. De regulă, un caz de testare nu dovedește corectitudinea programului. Programatorul trebuie să vină cu un sistem de testare, să construiască un plan de testare pentru un test exhaustiv al întregului program.

Am spus deja asta Un program de înaltă calitate nu ar trebui, în niciun caz, să se încheie anormal.

Trecerea cu succes a tuturor testelor este o condiție necesară pentru corectitudinea programului. Rețineți că acest lucru nu este neapărat suficient. Cu cât programul este mai complex, cu atât este mai dificil să construiți un plan de testare cuprinzător. Experiența arată că și în programele „proprietate”, erorile sunt detectate în timpul funcționării. Prin urmare, problema testării unui program este o problemă foarte importantă și în același timp foarte dificilă.

Tip de lecție: o lecție de consolidare a cunoștințelor și de învățare a materialelor noi.

Tip de lecție: lecție combinată (prelecție și practică).Obiectivele lecției: Educatie generala:

să-și facă o idee în rândul elevilor despre conceptele de bază ale temei: comanda de ramificare, formă incompletă a comenzii de ramificare;

să dezvolte abilități în dezvoltarea algoritmilor cu ramificare în GRIS „Strelochka”;

În curs de dezvoltare:

dezvoltarea viziunii informaționale asupra fenomenelor și proceselor lumii înconjurătoare;

Educational:

educarea culturii informaționale a elevilor, atenție, acuratețe, disciplină, perseverență;

educarea interesului cognitiv al şcolarilor

Structura lecției:

eu .Moment de organizare (2 min.)

Salutari. Verificarea celor prezenti. Mesaj cu subiectul lecției.

II

Sondaj scris 2 variante de lucru

III

Explicarea cu o prezentare

Un exemplu de problemă cu detalii în doi pași

Explicație cu ajutorul prezentării „Demonstrarea algoritmului cu” Ornament „ramificare în mediul Arrow executor”.

IV

V ... Rezumatul lecției (2 min.)

VI ... Tema pentru acasă (1 min.)

În timpul orelor:

eu .Organizarea timpului

Subiectul lecției: „ Ramificație și granularitate secvențială

Principalele subiecte ale paragrafului:

comanda de ramură;
♦ formă de ramificare incompletă;
♦ un exemplu de problemă cu detalierea în doi pași.
(diapozitivul 2)

II ... Actualizare de cunoștințe (5 min.)

Test pe tema:Algoritmi ciclici

Opțiunea 1

1. În care dintre cifre se verifică starea:

2. Algoritmul ciclic este:


    nts
    Etapa
    kts

    până când marginea este înainte, repetă
    nts
    Etapa
    întoarce
    kts

    din timp
    Etapa
    con

    nts
    Etapa
    kts

4. Corpul ciclului este:

    mod grafic de a descrie algoritmul

    este un set de instrucțiuni care descriu ordinea acțiunilor executantului pentru a obține rezultatul rezolvării unei probleme într-un număr finit de acțiuni.

    un algoritm în care o succesiune de comenzi trebuie executată de mai multe ori.

5. Desenați structura buclei (organigrama)

Test pe tema:Algoritmi ciclici

Opțiunea 2

1. În care dintre figuri se efectuează procedura:

2. O buclă este:

  1. un algoritm în care o succesiune de comenzi trebuie executată de mai multe ori.

    mod grafic de a descrie algoritmul

    este o astfel de structură algoritmică în care sunt efectuate repetări multiple ale uneia (sau mai multor) comenzi.

    este un set de instrucțiuni care descriu ordinea acțiunilor executantului pentru a obține rezultatul rezolvării unei probleme într-un număr finit de acțiuni.

3. Doriți să desenați o linie orizontală pe întregul ecran. Alege programul potrivit:

    din timp
    Etapa
    con

    nts
    Etapa
    kts

nts

Etapa

întoarce

kts

    până când marginea este înainte, repetă

nts

Etapa

kts

4. Diagrama bloc este:

    succesiune de comenzi incluse în structura algoritmică „buclă”.

    mod grafic de a descrie algoritmul

    este un set de instrucțiuni care descriu ordinea acțiunilor executantului pentru a obține rezultatul rezolvării unei probleme într-un număr finit de acțiuni.

    un algoritm în care o succesiune de comenzi trebuie executată de mai multe ori.

5. Scrieți un program pentru buclarea algoritmului.

III ... Partea teoretică (20 min.)

Comanda de filială

Să facem cunoștință cu încă o echipă GRIS. Se numește comandă de ramificare. Formatul comenzii branch este următorul:

dacă<условие>
atunci<серия 1>
in caz contrar<серия 2>
mp(diapozitivul 3)

Cuvântul de serviciu kv indică sfârșitul unei ramuri.

Ca și până acum, GRIS poate verifica doar două condiții: „există un avantaj înainte?” sau "nu e marginea înainte?"<Серия>este una sau mai multe comenzi care urmează una după alta. Dacă<условие>este adevărat, atunci<серия 1>, in caz contrar -<серия 2>... Un exemplu este prezentat în Fig. 5.12.

(diapozitivul 4)

Acest tip de ramificare se numește completă.

Formă de ramificare incompletă

În unele cazuri, este utilizată o formă incompletă a comenzii de ramură (Figura 5.13). De exemplu:

dacă marginea este înainte
apoi întoarce-te
mp

(diapozitivul 4)

O comandă de ramură incompletă are următorul format:

dacă<условие>
atunci<серия>
mp

Aici<серия>se execută dacă<условие>corect.slide 5)

Să compunem ultimul program relativ complex pentru GRIS. În acest exemplu, veți vedea că utilizarea metodei de detaliere secvențială facilitează rezolvarea unora dintre problemele „puzzler”.

Un exemplu de sarcină cu detaliere în doi pași

Sarcina 6. Construiți un ornament format din pătrate situate de-a lungul marginii câmpului. Poziția inițială a GRIS este în colțul din stânga sus, direcția spre sud (Fig. 5.14).

(diapozitivul 6)

Procedura care trage un lanț de pătrate de la o margine la alta a câmpului se numește RÂND. Procedura care desenează un pătrat se numește PĂTRAT. Să scriem mai întâi programul principal.

Program de ornamente
din timp
face un RÂND
întoarce
face un RÂND
întoarce
face un RÂND
întoarce
face un RÂND
con(diapozitivul 7)

Acum să scriem procedurile ROW și SQUARE:

(diapozitivul 8)

Într-o procedură ROW, corpul buclei conține ramificare incompletă. Structura unui astfel de algoritm poate fi numită astfel: o buclă cu ramificare imbricată.

În fig. 5.15 este o diagramă a procedurii ROW.

Compilarea acestui program a necesitat doi pași de detaliere a algoritmului, care au fost efectuate în următoarea secvență:

Acum cunoașteți toate comenzile pentru controlul executorului grafic. Ele pot fi împărțite în trei grupe: comenzi simple; comanda de apel de procedură; echipe structurale. Al treilea grup include comenzi de buclă și ramificare.

(diapozitivul 9)

IV ... Consolidarea cunoștințelor (15 min.)

Elaborarea algoritmului „Ornament”.

V ... Rezumatul lecției (2 min.)

Evaluarea muncii elevilor la lecție.

VI ... Tema pentru acasă (1 min.)

§31, întrebări. Pregătirea pentru test(diapozitivul 10)

Întrebări și sarcini

1. Ce este detalierea incrementală?
2. Din ce comenzi pot consta algoritmii auxiliari ai ultimului nivel de detaliu?
3. Care este formatul comenzii de ramificare? Ce acțiuni ale interpretului determină?
4. Care este diferența dintre ramificarea completă și incompletă?
5. Prin detalierea pas cu pas, compuneți programe pentru controlul unui executor grafic pentru a rezolva următoarele sarcini:
desenați întregul câmp cu linii punctate orizontale;
trageți pătrate în toate cele patru colțuri ale câmpului;
trage întregul câmp într-o cușcă cu o latură egală cu pasul.

>> Informatică: ramificare și detaliere a algoritmului secvenţial

§ 31. Ramificare și detaliere secvențialăalgoritm

Principalele subiecte ale paragrafului:

♦ comandă de ramură;
♦ formă de ramificare incompletă;
♦ un exemplu de problemă cu detalierea în doi pași.

Comanda de filială

Să facem cunoștință cu încă o echipă GRIS. Se numește comandă de ramificare. Formatul comenzii branch este următorul:

dacă<условие>
atunci<серия 1>
in caz contrar<серия 2>
mp

Cuvântul de serviciu kv indică sfârșitul unei ramuri.

Ca și până acum, GRIS poate verifica doar două condiții: „există un avantaj înainte?” sau "nu e marginea înainte?"<Серия>este una sau mai multe comenzi care urmează una după alta. Dacă<условие>este adevărat, atunci<серия 1>, in caz contrar -<серия 2>... Un exemplu este prezentat în Fig. 5.12.

Acest tip de ramificare se numește completă.

Formă de ramificare incompletă

dacă marginea este înainte
apoi întoarce-te
mp


dacă<условие>
atunci<серия>
mp

Aici<серия>se execută dacă<условие>corect.

Să-l compunem pe ultimul, relativ complex program pentru GRIS. În acest exemplu, veți vedea că utilizarea metodei de detaliere secvențială facilitează rezolvarea unora dintre problemele „puzzler”.

Un exemplu de sarcină cu detaliere în doi pași

Sarcina 6. Construiți un ornament format din pătrate situate de-a lungul marginii câmpului. Poziția inițială a GRIS este în colțul din stânga sus, direcția spre sud (Fig. 5.14).

Procedura care trage un lanț de pătrate de la o margine la alta a câmpului se numește RÂND. Procedura care desenează un pătrat se numește PĂTRAT. Mai întâi, să scriem principalul program

Program de ornamente
din timp
face un RÂND
întoarce
face un RÂND
întoarce
face un RÂND
întoarce
face un RÂND
con

Acum să scriem procedurile ROW și SQUARE:

Într-o procedură ROW, corpul buclei conține ramificare incompletă. Structura unui astfel de algoritm poate fi numită astfel: o buclă cu ramificare imbricată.

În fig. 5.15 este dat diagramă bloc proceduri SERIA.

Compilarea acestui program a necesitat doi pași de detaliere a algoritmului, care au fost efectuate în următoarea secvență:

Acum cunoașteți toate comenzile pentru controlul executorului grafic. Ele pot fi împărțite în trei grupe: comenzi simple; comanda de apel de procedură; echipe structurale. Al treilea grup include comenzi de buclă și ramificare.

Pe scurt despre principalul lucru

Comanda branch are următorul format:

dacă<условие>
atunci<серия 1>
in caz contrar<серия 2>
mp

Dacă<условие>este adevărat, atunci comenzile sunt executate.<серию 1>dacă este fals, atunci -<серию 2>.

O comandă de ramură incompletă are următorul format:

dacă<условие>
atunci<серия>
mp

Dacă condiția este adevărată, atunci<серия>dacă este fals, atunci trecerea la următoarea comandă a algoritmului are loc imediat.

Este convenabil să construiți algoritmi complecși prin detaliere pas cu pas.

Întrebări și sarcini

1. Ce este detalierea incrementală?
2. Din ce comenzi pot consta algoritmii auxiliari ai ultimului nivel de detaliu?
3. Care este formatul comenzii de ramificare? Ce acțiuni ale interpretului determină?
4. Care este diferența dintre ramificarea completă și incompletă?
5. Prin detalierea pas cu pas, compuneți programe pentru controlul unui executor grafic pentru a rezolva următoarele sarcini:
desenați întregul câmp cu linii punctate orizontale;
trageți pătrate în toate cele patru colțuri ale câmpului;
trage întregul câmp într-o cușcă cu o latură egală cu pasul.

Ce ar trebui să înveți din capitolul 5

Controlul programului de master de către unul dintre artiștii grafici educaționali.
Creați programe liniare.
Creați programe ciclice.
Creați programe care conțin ramuri.
Descrieți și utilizați algoritmi de ajutor (rutine).
Aplicați o metodă de granularitate consecventă.

I. Semakin, L. Zalogova, S. Rusakov, L. Shestakova, Informatica, clasa a 9-a
Trimis de cititori de pe site-uri de internet

Toată informatica online, o listă de subiecte pe subiecte, o colecție de rezumate despre informatică, teme, întrebări și răspunsuri, eseuri despre informatică clasa a 9-a, planuri de lecție

Conținutul lecției schița lecției suport cadru prezentarea lecției metode accelerative tehnologii interactive Practică sarcini și exerciții ateliere de autotestare, instruiri, cazuri, misiuni acasă teme de discuție întrebări retorice de la elevi Ilustrații audio, clipuri video și multimedia fotografii, poze, diagrame, tabele, scheme umor, glume, glume, pilde cu benzi desenate, proverbe, cuvinte încrucișate, citate Suplimente rezumate articole jetoane pentru curioase fișe manuale manuale vocabular de bază și suplimentar al termenilor alții Îmbunătățirea manualelor și lecțiilorremedieri de erori în tutorial actualizarea unui fragment în manual elemente de inovare în lecție înlocuirea cunoștințelor învechite cu altele noi Doar pentru profesori lecții perfecte plan calendaristic pentru anul recomandări metodologice ale programului de discuții Lecții integrate

Dacă aveți corecturi sau sugestii pentru această lecție,

Top articole similare