Probleme ciclice în informatică

Subiect: Informatică și TIC. Lecție de familiarizare cu materiale noi

Subiect: "Algoritmi ciclici"

Durata: 1 lecție - 45 de minute

Tehnologii: prezentare, tablă interactivă







Scop: studierea structurii algoritmice a ciclurilor, crearea de modele și algoritmi pentru rezolvarea problemelor practice.

  1. Actualizare de cunoștințe
  • Pentru a repeta conceptul de algoritm, construcțiile de bază ale limbajului algoritmic.
  • Fiți capabili să dezvoltați un model matematic, un algoritm și o schemă de bloc pentru rezolvarea problemei.
  • Au o înțelegere a limbajelor de programare și a scopului lor.
  • Fiți capabili să lucrați în mediul de programare.
  • Cunoaște structura programului.
  • Fiți capabili să scrieți expresii care conțin valori numerice și caracter.
  • Cunoaște structura operatorilor și caracteristicile activității lor.
  • Pentru a putea aplica operatorii atunci când scriu programe cu structuri liniare și ramificate.
  • Fiți capabili să creați și să executați programe de depanare pe computerul dvs.

II. Material lecție teoretică

Cele mai multe sarcini practice necesită repetarea repetată a acelorași acțiuni, adică reutilizarea unuia sau a mai multor operatori. (

Să se solicite introducerea și procesarea unei secvențe de numere. Dacă există doar cinci numere, puteți face un algoritm liniar. Dacă există o mie dintre ele, puteți scrie algoritmul liniar, dar este foarte obositor și irațional. Dacă nu se cunoaște numărul de numere în momentul în care algoritmul este dezvoltat, atunci un algoritm liniar este imposibil în principiu.

Un alt exemplu. Pentru a găsi numele persoanei din listă, trebuie să verificați primul nume al listei, apoi al doilea, al treilea, etc. până când se găsește lista dorită sau sfârșitul listei. Depășirea acestor dificultăți poate fi prin intermediul unor cicluri.

Un ciclu este o parte executată în mod repetat a unui algoritm (program). În consecință, un algoritm ciclic este un algoritm care conține cicluri.

Există două tipuri de cicluri: cu un număr cunoscut de repetiții și cu un număr necunoscut de repetiții. În ambele cazuri, ne referim la numărul de repetări la etapa de proiectare a algoritmului.

Există 3 tipuri de structuri ciclice:

  • Ciclu cu condiție prealabilă;
  • Ciclu cu postcondiție;
  • Ciclu cu parametru;

În caz contrar, aceste structuri sunt numite "Poka", "To", "To".

Forma grafică a structurilor algoritmice de înregistrare a datelor:

O buclă cu o condiție prealabilă (altfel bucla este încă) arată astfel:

condiția este o expresie de tip logic.

O buclă nu poate fi executată o dată dacă valoarea expresiei logice este imediat falsă.

O serie de comenzi între început și sfârșit sunt executate atâta timp cât condiția este adevărată.

Pentru ca ciclul să se termine. este necesar ca secvența de instrucțiuni dintre BEGIN și END să schimbe valoarea variabilelor care intră în condiție.

O buclă cu o condiție postcondiționată (altfel bucla înainte) arată astfel:

Formate pentru scrierea de operatori de algoritmi

Formate pentru înregistrarea operatorilor în Pascal

În limbajul algoritmic nu există o comandă care să descrie această structură, dar poate fi exprimată cu ajutorul altor comenzi (de exemplu, ramificare).

repetați seria de comenzi

condiția este o expresie de tip logic.

Secvența de instrucțiuni între repetare și până când va fi întotdeauna executată cel puțin o dată;

Pentru ca buclele să se termine, este necesar ca secvența de afirmații între repetarea și până la modificarea valorilor variabilelor care intră în expresia condiției.

Instrucțiunea de repetare, așa cum este instrucțiunea while, este utilizată în program, dacă trebuie să faceți niște calcule repetitive (bucla), dar numărul de repetări nu este cunoscut în avans și este determinat de calculul propriu-zis.

Un ciclu cu un parametru (altfel un ciclu pentru) arată astfel:

Formate pentru scrierea de operatori de algoritmi

i este parametrul ciclului;

a este valoarea inițială a ciclului;

b - valoarea finală a ciclului;

h este etapa de modificare a parametrului.

Structura acestui ciclu este denumită și un ciclu i ori.

Această comandă este executată în acest fel: parametrul i este dat valorii inițiale a, este comparat cu valoarea finală a b și dacă este mai mic sau egal cu valoarea finală a lui b, se execută o serie de comenzi. Parametrului îi este atribuită valoarea precedentă, mărită cu o valoare h - pasul de modificare a parametrului și este din nou comparat cu valoarea finală a b.

În limbajul de programare Pascal, pasul de modificare a parametrului poate fi unul sau minus unul.

Dacă există un singur operator între început și sfârșit, parantezele instrucțiunilor nu pot fi scrise. Această regulă funcționează pentru o buclă "Like" și "For".

Să luăm în considerare un exemplu de rezolvare a problemelor care utilizează aceste structuri

Calculați produsul cu numere de la 1 la 5 utilizând versiuni diferite ale ciclului

Să compunem algoritmul sub forma unei diagrame bloc.

Pentru a verifica corectitudinea algoritmului, completați tabelul de urmărire.

Condiția este verificată în mai multe etape: verificarea stării și executarea comenzilor pe una din ramuri. Prin urmare, tabelul de urmărire nu înregistrează comenzile algoritmului, ci operațiile individuale efectuate de calculator la fiecare pas.

Pasul unu. P este atribuită o valoare de una.

Pasul doi. i este setat la unul.

Pasul trei. pentru că eu egal cu unul, verificăm condiția mai mică sau egală cu cinci, da, condiția este adevărată, atunci P este atribuită valoarea înmulțită cu una, vor fi două. Pentru că i: una plus una, vor fi două.

Pasul patru: când i este egal cu două, verificați condiția 2 este mai mică sau egală cu cinci, da, condiția este adevărată, atunci P este atribuită valoarea 2 înmulțită cu una, va fi 2. Pentru i: două plus una, vor fi trei.

Pasul cinci: pentru i egal cu trei vom verifica condiția trei este mai mică sau egală cu cinci, da, condiția este adevărată, atunci P este atribuită valoarea de două ori trei, vor exista șase. Pentru i: trei plus unul, vor fi patru.

Pasul șase: pentru i egal cu patru, verificați condiția patru este mai mică sau egală cu cinci, da, condiția este adevărată, atunci P este atribuită o valoare de șase ori patru, vor fi douăzeci și patru. Pentru i: patru plus una, vor fi cinci.

Pasul șapte: pentru că i egal cu cinci, verificăm condiția cinci este mai mică sau egală cu cinci, da, condiția este adevărată, atunci P este atribuită valoarea de douăzeci și patru ori cinci, vor fi o sută douăzeci. Pentru i: cinci plus unul, vor exista șase.

Pasul opt: pentru i egal cu șase vom verifica condiția șase este mai mică sau egală cu cinci, nu, condiția este falsă, apoi vom ieși din bucla, și ca rezultat vom obține ultima valoare egală cu o sută douăzeci.

Pentru un ciclu cu o condiție ulterioară, construim o diagramă și o tabelă de urmărire. (diapozitivul 16)

Ca rezultat, obținem ultima valoare egală cu o sută douăzeci la pasul șapte

Și pentru un ciclu cu un parametru, construim o diagramă și o tabelă de urmărire. (diapozitivul 17)

Ca rezultat, obținem ultima valoare egală cu o sută douăzeci la pasul șase







Afișați numere de la 1 la 5 în:

a) în ordine directă;

b) ordinea inversă.

Diagrama bloc și programul pentru rezolvarea problemei sunt prezentate pentru numerele din ordinea înainte și în ordine inversă.

Să scriem algoritmii considerați în limbajul de programare al lui Pascal.

III. Rezumați lecția

Și am luat în considerare următoarele întrebări:

  1. Structura algoritmică a ciclului;
  2. Tipuri de structuri algoritmice:
  1. Ciclu cu condiție prealabilă;
  2. Un ciclu cu o condiție ulterioară;
  3. Ciclu cu parametru;
  1. Moduri considerate de înregistrare a acestor structuri;
  2. Am arătat exemple de rezolvare a problemelor utilizând aceste structuri.

Lista literaturii utilizate

Scop. Dezvoltarea abilităților algoritmilor și programelor ciclice.

- repetați conceptele de bază pe tema "algoritm";

- aprofundarea cunoștințelor algoritmilor ciclici;

- formează capacitatea de a dezvolta algoritmi și programe ciclice.

- creșterea interesului față de subiect;

- educarea culturii de interacțiune;

- educarea independenței, clarității și organizării.

- dezvoltarea culturii informației și a intereselor cognitive ale elevilor;

- pentru a promova dezvoltarea gândirii logice și algoritmice;

- să dezvolte abilități de cooperare;

- să dezvolte abilitățile practicii individuale.

1. Moment organizatoric. Postați subiectul, obiectivele și obiectivele lecției.

Slide 1: Tema lecției de astăzi este "algoritmi și programe ciclice" și vom învăța cum să le dezvoltăm.

2. Etapa principală a lecției

2. 1. Repetarea conceptelor de bază pe tema "Algoritmul" - soluția cuvintelor încrucișate

2) Pentru memorarea sau modificarea valorii unei valori, algoritmul utilizează comanda ... assignment

3) Un obiect (o persoană, un animal, un robot) care poate efectua un anumit set de acțiuni este un interpret

4) Acțiunea algoritmului separat - pas

5) Fiecare algoritm trebuie împărțit în instrucțiuni separate - pași. Specificați ce proprietate este potrivită pentru această definiție - discretă

6) Execuția algoritmului trebuie completă prin obținerea rezultatului (a)

7) Un obiect de informații separat care are o valoare nume, valoare, tip ...

8) Un algoritm în care se furnizează un control al condiției este numit ramificat

9) O proprietate care semnifică posibilitatea aplicării unui algoritm pentru rezolvarea unei clase de probleme de un singur tip este masă

Întrebare: Ce este un algoritm?

1) Algoritmul - o instrucțiune exactă și ușor de înțeles a executantului de a efectua o anumită secvență de acțiuni, conducând la rezultatul unui număr finit de pași.

2. 2. Conceptul unui algoritm ciclic. Tipuri de cicluri.

Probleme ciclice în informatică

Ce algoritm se numește ciclic?

Care este numele acestei secvențe de comandă? (corp al ciclului)

În cazul în care în viață putem observa un ciclu (repetare)? (Zilele săptămânii, anotimpurile, schimbarea zilei și a nopții, schimbarea lunilor într-un an etc.)

Denumiți tipurile de cicluri (un ciclu cu precondiția "Pentru moment", un ciclu cu o condiție postcondițională "Pentru", un ciclu cu parametrul "Pentru").

Oferiți o descriere a ciclului "În timp"

Care operator al limbii BASIC este convenabil pentru organizarea unor astfel de cicluri?

Problema 1. Calculați produsul dintre numerele P de la 1 la 10. Faceți o diagramă bloc a soluției problemei.

Cum va varia valoarea lui a?

Ce ar trebui să fie prevăzut pentru acest lucru?

Valoarea inițială a = 1, valoarea finală a = 10

Verificarea reciprocă. Pentru decizia corectă 1b din fișa de evaluare.

Sarcina 1 (variabilele pot fi diferite) Sarcina 2

Care sunt principalele caracteristici ale ciclului cu postcondiția "TO"

Sarcina 2. Efectuați un algoritm pentru planificarea achiziționării de bunuri. Scrie-l ca o diagramă.

Lista variabilelor. S este suma dată, P este prețul de cumpărare, c este prețul mărfurilor, k este cantitatea de bunuri.

Care este valoarea achiziției? (P = p + c * k)

Valoarea inițială (p = 0)

Lucrați în perechi. Verificați. Pentru decizia corectă 1b din fișa de evaluare.

Ciclul cu parametrul "Pentru"

Denumiți elementele principale ale ciclului cu parametrul "Pentru"

Care sunt caracteristicile sale?

Pentru dezvoltarea de programe cu un ciclu "Pentru" există operatori speciali. Vom lua cunoștință de ele în următoarea lecție.

2. 3. Fiziminutka - exerciții pentru ochi (Slide 9 - 15)

2. 4. Lucrări practice de fixare (o listă de lucrări practice):

1) Organizarea muncii

La fiecare loc de muncă există o foaie de lucru practică cu sarcinile pe care trebuie să le rezolvați.

Pentru lucru este necesar să luați un notebook și stilou.

2) Formularea și analiza sarcinilor

Sarcina 3. Scrieți un program care vă solicită vârsta și tastați textul "Ești gata!" După numărul de ani de viață.

Datele necesare pentru rezolvarea problemei? (intrare n)

Ce acțiuni trebuie repetate? (imprimați "ați terminat!")

Este necesar să introduceți o variabilă de buclă, n - p 1≤ t ≤ n

Care este tipul de ciclu? (ciclul "Bye")

Ce operator putem folosi pentru a rezolva problema în mediul de programare BASIC 256?

Toate materialele - a se vedea arhiva.

Continuăm și astăzi vom vorbi despre cicluri. Să ne dăm seama ce este ciclul și cum să învățăm să executăm algoritmii ciclici robotului nostru.

Deci, ce este un ciclu. Imaginați-vă că suntem într-o lecție de formare fizică și că ne confruntăm cu sarcina de a face șapte ședințe. Această sarcină poate fi formalizată ca un algoritm liniar și apoi va arăta astfel:

Am repetat comanda, ghemuim de 7 ori. Există vreun sens în scris 7 comenzi identice? Poate fi mai ușor să dai o comandă pentru a face șapte situații. Desigur mai ușor și mai corect. Acesta este ciclul. Vă puteți aminti exemplele de cicluri din viață - sunt destul de puține dintre ele.

Astfel, un algoritm liniar. unde aceleași comenzi se repetă, putem aranja sub forma unui algoritm ciclic - cam așa:

Deci, în limba pe care am inventat-o, am proiectat ciclul. Robotul artistului are și abilitatea de a înregistra cicluri. Și, ciclurile sunt diferite. Cel pe care tocmai l-am privit este numit o buclă cu un contor sau o buclă cu un parametru.

O buclă cu un contor este utilizată atunci când se știe în avans câte repetiții trebuie făcute. În exemplul de mai sus, cu squat, acesta este cazul.

Pentru a scrie o buclă cu un contor pentru un artist, trebuie să-i cunoașteți sintaxa. Și el este acesta:

Aici trebuie să specificăm numărul de repetări (număr) și comenzi care vor fi repetate. Comenzile repetate într-o buclă sunt numite corpul unui ciclu.

Să ne uităm la un exemplu.

Celule Shade 7, ca în imagine. Vă recomand să citiți despre și despre el.

Sarcina pentru un ciclu cu un contor

Inițial, robotul se afla în colivia superioară din stânga.

Să rezolvăm problema în primul rând liniar. În acest caz, vom picta celula curentă și vom muta o celulă spre dreapta și programul va arăta astfel:
utilizați robotul
SAL
devreme

După cum puteți vedea, comenzile sunt pictate peste și repetate repetate de 7 ori. Să rescrieți programul folosind o buclă. Apropo, pentru a introduce un ciclu în programul dvs., puteți selecta elementul din meniul Inserare sau apăsați una dintre tastele de comenzi rapide Esc, P (litera rusă P) sau Esc, H (litera latină H). Și tastele trebuie să fie apăsate secvențial - mai întâi Esc, eliberați-o și numai atunci P sau H.

Deci, programul nostru cu un ciclu va arata astfel:

Dacă vom rula, vom vedea că rezultatul este același - 7 celule umbrite. Cu toate acestea, programul a devenit mai scurt și mai mult din punct de vedere al algoritmului!

La decizia unei probleme 19 GIA în domeniul informaticii cu Robotul de a folosi un ciclu cu tejghea nu se dovedește. Din moment ce câmpul este de obicei infinit și pereții nu au o lungime specifică. Prin urmare, nu putem determina numărul de repetări pentru un ciclu cu un contor. Dar nu contează - ciclul cu condiția ne va ajuta.

Să revenim la cultura fizică și să schimbăm sarcina. La urma urmei, cineva nu poate face 7 șezuturi, iar celălalt poate face 27. Este posibil să se ia în considerare acest lucru atunci când se creează un ciclu? Bineînțeles. Doar acum nu vom folosi contorul (numărul de repetări), ci condiția. De exemplu, până când sunteți obosit, faceți șezuturi. În acest caz, persoana nu va face un anumit număr de scaune, dar va sta în picioare până când va obosi. Și ciclul nostru într-o limbă abstractă va lua această formă:

Cuvintele nu sunt obosite în cazul nostru - aceasta este condiția. Când este adevărat, bucla este executată. Dacă este fals (obosit), corpul ciclului nu va fi executat. Robotul are mai multe condiții

dar în condiția sarcinii 19 a GIA sunt indicate numai primele 4, deci le vom folosi numai.

Acum, să rezolvăm următoarea sarcină pentru Robot - de a trage o linie verticală de la stânga la marginea dreaptă a câmpului, folosesc o buclă cu o condiție. Inițial, robotul se află în colțul din stânga sus.

Să formăm mai întâi un algoritm verbal - care este, să descrie cuvintele pe care trebuie să le facă robotul. Acest algoritm va suna astfel:

"În timp ce pe dreapta, faceți un pas în dreapta și pictați peste cușcă"

Ca rezultat, Robotul va trece prin toate celulele spre dreapta și le va picta până când peretele este pe dreapta.

Codul sursă al programului nostru pentru Robot va fi ceva de genul:

nc la dreapta este liber

Ca urmare a acestui program, vom vedea următoarea imagine:

Sarcina pentru ciclul Robot cu condiție

După cum puteți vedea, nu este suficientă doar prima celulă umbrită. Pentru aceasta, înainte de ciclu, trebuie să executați comanda vopselei.

Rezolvarea problemei cu un ciclu

Pentru fixare, scrieți un program care va face un cadru în jurul câmpului de lucru al robotului, indiferent de mărimea acestuia. Desigur, folosind cicluri cu condiția. În cele din urmă, ar trebui să arate astfel:

Problema pentru rezolvarea de sine







Articole similare

Trimiteți-le prietenilor: