Ciclurile ocupă un loc special în Turbo Pascal.Ei încep să studieze imediat după ce au dezvoltat abilitățile de informații de intrare-ieșire de pe ecran. La urma urmei, cele mai multe sarcini se reduc la faptul că ciclurile cu un parametru și alte construcții ajută la facilitarea scrierii și operațiunii unui anumit bloc de program.
Soiuri de cicluri
Există trei soiuri în total:
- cu parametrul
- cu o condiție prealabilă
- cu o postcondiție.
Bucle cu un parametru, altfel cunoscut sub numele de For... to...face sau Pentru … până la …. faceți, repetați în mod repetat o anumită secvență de acțiuni. În principiu, alte soiuri sunt folosite în același scop, doar în bucla for se cunoaște în prealabil numărul de pași.
În celelalte două constructe (While și Repeat), numărul de iterații este inițial necunoscut. Prin urmare, atunci când studiați sarcina, este deja necesar să înțelegeți ce ciclu va fi utilizat.
Definiții de bază pe subiect
Bucle cu parametri - repetitiveiterații. Contorul este principalul indicator cu care se realizează un proiect dat. Limitele intervalului arată limitele în care vor fi efectuate anumite iterații. Apropo, nu este absolut necesar ca valoarea inițială să fie egală cu 1. Utilizatorul stabilește independent ambele limite ale intervalului. Corpul buclei este un set de comenzi pentru care numărul de repetări a fost deja determinat.
Conceptul de „cicluri cu parametri” înseamnă că îna acestei construcții se verifică starea, după care se efectuează un set de iterații. Contorul crește (sau scade) și totul se repetă. Corpul buclei va fi executat atâta timp cât condiția este adevărată.
Pentru ... a ... face: algoritm de lucru, sintaxă
După cum sa menționat deja, ciclurile cu un parametru sunt utilizate în sarcini în care este indicat un „interval” în care să lucreze. Deci, ar putea fi o serie de numere, zile ale săptămânii, rânduri dintr-o poezie etc.
Există 2 tipuri de design: pentru a crește contorul și pentru a-l micșora. Prima structură va fi scrisă după cum urmează:
pentru variabilă de ieşire := granita 1 la granita 2 do
începe
corpul buclei;
Sfârșit;
Aici: ref. variabil declarat de utilizator la începutul unui program sau bloc; granita 1 și granita 2 sunt valorile inițiale și finale ale intervalului; v corp ciclu a stabilit o serie de acţiuni care ar trebuifi executat de program. Trebuie reținut că, dacă corpul buclei conține doar 1 comandă, atunci parantezele operatorului începe ... sfârșitul poate fi omis. În această versiune a designului, contorul, și anume <variabila inițială>, va crește în trepte de 1.
pentru variabilă de ieşire := granita 1 jos la granita 2 do
începe
corpul buclei;
Sfârșit;
Aici este ref. variabila va scădea în trepte de 1.
Schema buclei cu parametrul For … to … do va arăta astfel:
- Se setează valoarea limitei superioare a intervalului, adică. granita 2.
- Variabila sursă valoarea parametrului este atribuită granita 1.
- Se verifică starea: variabilă brută ≤ limita 2.
- La primirea rezultatului Adevărat (Adevărat) se execută corpul buclei.
- Contorul este incrementat cu 1.
- Pașii 3-5 sunt executați exact până când condiția este adevărată: variabila sursă > limita 2. Imediat ce acest lucru s-a întâmplat, bucla iese și controlul este transferat la comanda care urmează acestui construct.
În For ... downto ... do, algoritmul de lucru este similar cu cel de mai sus, cu excepția unor puncte:
- La al 3-lea paragraf se verifică condiția: variabila sursă ≥ limita 2.
- În a 5-a linie a algoritmului, contorul este decrementat cu 1.
- În al 6-lea paragraf, comenzile 3-5 vor fi executate până când condiția este îndeplinită: ref < limita 2.
Orice altceva este similar în ambii algoritmi de lucru.
Diagrama bloc în buclă cu parametru
Buclele cu un parametru au următoarea formă de diagramă bloc (deși a fost deja prezentată mai sus). O organizare simplificată a designului este, de asemenea, prezentată aici.
Cerințe de bază pentru un ciclu cu un parametru
Buclele cu parametri necesită anumite tipuri de condiții.
- Limitele de contor și de decalaj (adică ref.variabilă, limita 1 și limita 2) trebuie să fie de același tip de date. Dacă există doar compatibilitate între valorile de început și de sfârșit ale segmentului și variabila originală, atunci programul se poate comporta incorect, deoarece limitele vor fi convertite în funcție de tipul de date al parametrului original.
- Tipul de date căruia trebuie să aparțină valorile parametrilor trebuie să fie întreg. Este foarte descurajat să folosiți tipul real.
- Nu este de dorit să se schimbe valoarea parametrului variabil inițial în corpul buclei. În caz contrar, utilizatorul cu greu va putea urmări eventualele erori apărute.
- Spre deosebire de alte tipuri de bucle, în For ... to ... do or Pentru... până la... pasul nu se poate schimba la un parametru altul decât 1.
Turbo Pascal: cum să ieși dintr-o buclă
Adesea există sarcini în carebuclă, adică condiția care este verificată este întotdeauna adevărată. Procedura de pauză ajută la ieșirea din bucle cu precondiție, postcondiție, parametru. Adică, munca lor este încheiată înainte de termen.
Cicluri ale parametrilor Pascal (programarecare presupune adevărul „etern” al condiţiei) poate fi oprit cu Continuare. Aici, lucrul este configurat după cum urmează: iterația curentă își termină execuția înainte de program, controlul este transferat la următoarea comandă, dar fără a ieși din buclă.
Procedura de ieșire este necesară pentru afinalizați munca unuia sau altui bloc în codul programului. Se numește în interiorul unei proceduri (funcție) și în același moment, execuția acestei „piese” se oprește imediat. Dacă Exit se află în blocul principal al programului, atunci își încheie activitatea.
Procedura Halt reduce principiul de funcționare la următoarele: programul se termină complet.
Exemple de sarcini cu o soluție
Va fi util pentru utilizator după ce a studiat subiectulExemple „Bucle cu un parametru în Pascal” pentru a studia mai întâi și apoi exersați scrierea codului. Sarcinile simple îl ajută pe viitorul programator să învețe teoria în practică și apoi să o aplice cu succes. La subiectul „Bucle cu un parametru”, exemple de probleme cu o soluție pot fi găsite atât simple, cât și complexe. Iată 3 sarcini în care se analizează algoritmii de lucru și se dau explicații și comentarii pentru fiecare soluție.
Problema 1
Dată o matrice bidimensională de numere naturale în intervalul [0..199], alese aleatoriu. Aflați numărul tuturor numerelor din două cifre a căror sumă de cifre este multiplu de 2.
Algoritmul acțiunilor:
- Creați o matrice bidimensională.
- Verificați fiecare număr pentru a respecta condițiile:
a) dacă 9 < X < 100, atunci se împarte la 10 la div;
b) extrageți a doua cifră a numărului prin împărțirea prin mod;
c) se adună numerele evidențiate;
d) se împarte la mod suma dată la 2;
e) dacă rezultatul este 0, atunci contorul este incrementat cu 1.
Problema 2
Dată o matrice unidimensională de elemente întregi. Aflați numărul de numere pozitive.
Algoritmul acțiunilor:
- Creați o matrice de elemente întregi generate de randomize.
- Introduceți o instrucțiune IF condiționată în bucla cu parametrul, care va verifica elementul dat pentru respectarea condiției: X>0.
- Dacă condiția este îndeplinită, atunci contorul este incrementat cu 1.
- După buclă, valoarea contorului rezultată ar trebui să fie afișată pe ecran.
Datele date între paranteze {} suntcomentarii. În linia 11, puteți afișa matricea pe ecran în două moduri: lăsați un spațiu între numere sau alocați un anumit număr de celule pentru fiecare element (în acest caz, sunt 5).
În linia 12, variabila contor poate fi mărită și în două moduri: fie adăugați 1 la valoarea anterioară, fie folosiți funcția standard Inc.
Problema 3
Dată o matrice pătrată. Aflați numărul de elemente pozitive de pe diagonala principală.
Explicatii:
Într-o serie de numere, diagonala principală se întinde de lacolțul din stânga sus spre dreapta jos. Particularitatea sa este faptul că indicii de rând și de coloană sunt aceiași. Prin urmare, este suficient să organizezi 1 ciclu pentru a parcurge liniile fără a itera elementele rămase.
Algoritmul acțiunilor:
- Creați o matrice pătrată.
- Setați variabila responsabilă pentru numărarea elementelor pozitive la „0”.
- Faceți un ciclu pentru a crea o matrice pătrată.
- Organizați o buclă pentru a verifica starea: dacă numărul de pe diagonala principală este >0, atunci contorul este incrementat cu 1.
- După sfârșitul buclei, afișați valoarea variabilei care stochează numărul de elemente pozitive pe ecran.
Confruntarea a două limbaje de programare: C și Turbo Pascal
De regulă, un programator care se respectă știemai multe limbi. De exemplu, poate fi C++, Turbo Pascal, Delphi, Java etc. Opoziția celor doi a fost exprimată clar încă din anii 80. (C și turbo pascal). La sfârșitul secolului al XX-lea, aceeași luptă a fost observată între C++ și Java.
În spațiu virtual printre trei duzinilimbaje de programare, există trei perechi cele mai izbitoare, a căror opoziție a uimit cele mai mari minți ale spațiului cibernetic: Algol-60 și Fortran, Pascal și C, Java și C++. Desigur, aceste sentimente sunt subiective, dar la un moment dat unul din cuplu a fost lider. Acest lucru s-a datorat cerințelor industriei și nevoii unui anumit produs software. În anii 70. Fortran „a condus lumea”, în anii 80 - Turbo Pascal, în anii 90 - C++. Desigur, niciunul dintre ei nu a „murit”. Mai degrabă, au evoluat în produse software îmbunătățite.
Când studiezi limbaje de programare, vei observa că în unele subiecte sintaxa este similară. Deci, buclele cu un parametru în C sunt similare construcțiilor similare în Pascal, cu excepția unor puncte.
Interesant este că dezvoltatorii Turbo Pascal (OldSvet) a folosit rezultatele dezvoltărilor oamenilor de știință americani, în timp ce în Lumea Nouă au aplicat în mod activ rezultatele cercetării specialiștilor europeni. În Europa, dezvoltatorii pledează mai mult pentru puritatea și compactitatea limbajelor de programare, în timp ce mințile americane tind să folosească tendințe noi în scrierea codului.