110 likes | 363 Views
Structuri de control. - parte teoretica -. Cuprins :. Notiuni generale Structura repetitiva cu numar necunoscut de pasi conditionata anterior Structura repetitiva cu numar necunoscut de pasi conditionata posterior Structura repetitiva cu numar cunoscut de pasi.
E N D
Structuri de control - parte teoretica -
Cuprins: • Notiunigenerale • Structurarepetitiva cu numarnecunoscut de pasiconditionata anterior • Structurarepetitiva cu numarnecunoscut de pasiconditionata posterior • Structurarepetitiva cu numarcunoscut de pasi
Notiunigenerale • prinaceastastructura se repeta o actiunesau un grup de actiuniatatatimp cat conditiaprecizataesteadevarata • se mainumesteiteratie, buclasauciclu • procesul de control presupune 3 actiuni: 1)initializareareprezintastarea de dinainte de prima parcurgere 2)testareareprezintastareaprin care se comparastareadintr-un anumit moment cu starea care terminaprocesul de repetare; dacaaceastacomparatieesteadevarata, ciclul se continua, daca nu se termina 3)modificareaceschimbastareacurentaastfelincatsa se avansezecatrestareafinala face parte din corpulcicluluipoatefi: 1) cu numarnecunoscut de pasi: • a) conditionata anterior b) conditionata posterior 2) cu numarcunoscut de pasi
Structurarepetitiva cu numarnecunoscut de pasiconditionata anterior testeazaconditia de repetare a cicluluiinainte de executareacorpuluiciclului conditiastructurii repetitive cu numarnecunoscut de pasiconditionata posterior estecomplementaraconditieistructurii repetitive cu numarnecunoscut de pasiconditionata anterior
Structurarepetitiva cu numarcunoscut de pasi la aceastastructurasuntnecesare 2 variabile de memorie : unanumitacontorcare numara de cateori s-a realizatactiuneapana in acel moment si altanumitanumar de repetaricare determina de cateoritrebuiesa se execute corpulciclului.
RETINETI !!! Structura “pentru” se folosesteatuncicandstimcatenumeresunt(indiferentdacastimsau nu care suntnumerele) Se folosestesicontorul (i) darsivariabila (x) candstimcatenumeresunt, dar nu stim care sunt Se folosestecontorul (i)candstimcatenumeresunt, indiferentdacastimsau nu care suntnumerele Se folosestedoarcontorul (i) dar nu sivariabila (x) candstim care suntnumerele(la intervale) Structura “cat timp” se folosestede 2 oricand nu stimcatenumeresuntintr-un sir, darstim care esteultimulnumar din sir(inversulunuinumar, sumacifrelor, CMMDC) Suma se intializeaza cu 0, iarprodusul cu 1 Numerelepalindrom= suntaceleasinumerecitite de la dreapta la stang MOD = se aplicapenruextragereaultimeicifredintr-un numar = pentru a verificadacadouanumaresuntdivizibileintreele( x mod y = 0 ->suntdivizibile; x mod y = 1 -> nu suntdivizibile) DIV = se aplicapentrueliminareaultimeicifre a unuinumar Maximulse initializeaza cu -32000 Structura “citeste x” se folosestede 2 oricandavem un sir si se cunoasteultimulnumar
Cat timp numarul este diferit de 0 se incrementeaza numarul cifrelor (care initial a fost 0) si se imparte numarul la 10. Similar se calculeaza suma cifrelor unui numar cu deosebirea ca in loc de incrementarea numarului cifrelor, se actualizeaza suma cu cifra curenta. Numarul cifrelor unui numar Suma cifrelor unui numar nrc←0 citeste n; cat timp n<>0 executa nrc←nrc+1 n←n div 10 sfrasit cat timp afiseaza nrc S←0 citeste n; cat timp n<>0 executa S←S+n mod 10 n←n div 10 sfrasit cat timp afiseaza S
Algoritmul consta in: se presupune ca numarul este prim; se parcurg apoi toti posibilii divizori ai numarului incepand de la 2 pana la jumatatea numarului (sau pana la radical din numar – mai eficient) si daca se gaseste un divizor atunci presupunerea cum ca numarul este prim e falsa. n,d,OK intregi inceput citeste n; OK ←1 pentru d ←2, n/2 executa daca n mod d =0 atunci OK ←0 sfarsit daca sfarsit pentru daca OK=1 atunci scrie “Numarul nu e prim” altfel scrie “Numarul e prim” sfarsit daca sfarsit
Se presupune ca maximul este primul dintre numere. Se parcurg restul de numere si daca se ajunge la un numar care e mai mare decat maximul curent se actualizeaza maximul preluand acea valoare. n,x,i, max intregi inceput citeste n; citeste x max ←x pentru i ←1, n-1 executa citeste x; daca x >max atunci max ←x sfarsit daca sfarsit pentru afiseaza max sfarsit
Se citeste numarul si se initializeaza rasturnatul cu 0. Cat timp numarul este diferit de 0 se preia cate o cifra de la sfarsitul numarului si se adauga la multiplul de 10 al rasturnatului si apoi se renunta la ultima cifra. n,inv intregi inceput citeste n; ninv ←0 cat timp n<>0 executa ninv ←ninv*10+n mod 10 n ←n div 10 sfarsit cat timp afiseaza ninv sfarsit OBS. La sfarsituloperatiei de obtinere a rasturnatuluiunuinumar, numaruldevine 0. Daca in cadruluneiproblemeestenecesarsinumarul initial trebuie ca acestasa fie retinutintr-o variabilaauxiliarasisa se facarasturnatulauxiliarului.