You are on page 1of 12

Clasa a IX-a

Algoritmi ALGORITMI REPREZENTAI N LIMBAJ PSEUDOCOD

n aplicaii complexe, cnd este necesar modularizarea, schemele logice devin stufoase i sunt greu de urmrit. Din acest motiv, mult mai eficient este reprezentarea algoritmilor prin limbaj pseudocod. Un limbaj pseudocod este un ansamblu de convenii, respectate n mod sistematic, care definesc operaiile permise (instruciuni) pentru reprezentarea algoritmilor. Limbajul pseudocod folosete cuvinte cheie preluate din limbajul natural care descriu instruciunile din algoritm. (dac, atunci, altfel, ct timp, altfel, execut). Acestea formeaz vocabularul (lexicul) limbajului. Regulile de folosire a cuvintelor cheie pentru formarea instruciunilor mpeun cu alte cuvinte sau simboluri determin sintaxa limbajului. 1. Structura secvenial Declararea datelor variabila tip; La nceputul oricrui algoritm, vom preciza datele de intrare, datele de ieire, datele intermediare, precum i tipul lor. nainte de a utiliza orice variabil, se va declara, preciznd numele i tipul ei. O variabil nu poate fi declarat de mai multe ori n acelai algoritm. Exemple: x real; c character; i ntreg; Operaia de citire citete variabila1, variabila2,, variabilan; Efect: Prin operaia de citire (operaia de intrare) se preiau succesiv valori de la tastatur i se asociaz, n ordine, variabilelor specificate. Operaia de scriere scrie expresie1, expresie2,, expresien; Efect: Operaia de scriere (operaia de ieire) presupune evaluarea n ordine a expresiilor specificate i afiarea pe ecran a valorilor lor pe aceeai linie. Operaia de atribuire variabila expresie;

Efect: se evalueaz expresia, apoi se atribuie valoarea expresiei variabilei din membrul stng. Parcurgerea instruciunilor n secven, n ordinea lor, reprezint o structur liniar (secvenial). Aplicaii 1. Fie a un numr real, citit de la tastatur, care reprezint lungimea laturii unui cub. S se scrie un algoritm care s calculeze i s se afieze volumul i aria total a cubului. Date de intrare a real; Date de ieire: V real; A real; nceput citete a; V a*a*a; scrie volumul cubului este: , V; A 6*a*a; scrie aria cubului este: , A; sfrit

Clasa a IX-a 2.

Algoritmi

n urma analizelor efectuate, asupra unui compus chimic descoperit pe planeta Marte s-a dedus c o molecul din acest compus este format din mC atomi de carbon, mO atomi de oxigen i mH atomi de hidrogen. tiind masele moleculare petru mC=12, mO=16, iar mH=1, s se scrie un algoritm care calculeaz i s afieze masa molecular a acestui compus. Date de intrare: mC natural mO natural mH natural Date de ieire: m natural nceput citete mC, mO, mH m mC*12+ mO*16+ mH*1 scrie Masa molecular a compusului este: ,m sfrit De ziua lui, Ionel a primit S lei i ar vrea s-i invite colegii la o ngheat. tiind c o ngheat cost P lei, s se scrie un algoritm care s calculeze i s afieze numrul maxim de colegi pe care Ionel i poate invita i suma de bani care i mai rmne lui Ionel. Date de intrare: S natural nceput P natural citete S,P nr natural nr S/(P+1) /*P+1 pt c I Ionel mnnc ngheat*/ Date de ieire: rest natural rest S%(P+1) scrie numrul maxim de invitai este: ,nr scrie Suma rmas este: , rest sfrit Fie x un numr natural format din 5 cifre(x4x3x2x1x0). S se afieze un triunghi format din cifrele numrului x astfel: - prima linie (n vf. triunghiului) se va afla cifra din mijloc x2. x2 - Pe linia a doua se vor afla cifrele x3x2x1 x3 x2 x1 a treia linie se vor afla toate cifrele lui x x 4 x3 x2 x1 x0

3.

4.

Date de intrare: x natural Date de ieire: x4,x3,x2,x1,x0 natural nceput citete x x0 x%10 /*rein cifra unitilor*/ x x/10 /*elimin cifra unitilor*/ x1 x%10 /*rein cifra zecilor*/ x x/10 /*elimin cifra zecilor*/ x2 x%10 /*rein cifra sutelor*/ x x/10 /*elimin cifra sutelor*/ x3 x%10 /*rein cifra miilor*/ x x/10 /* elimin cifra miilor, n x rmne cifra zecilor de mii*/ scrie , x2 scrie ,x3,x2, x1 scrie x,x3,x2,x1,x0 sfrit Probleme propuse 1. Ce va afia urmtorul algoritm pentru valorile citite 7 i 23 : Date intrare/iesire: a natural,b natural; nceput citete a,b a a+b b a-b a a-b scrie a= ,a, b=,b sfrit

Clasa a IX-a 2.

Algoritmi

3.

4.

5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

15. 16.

Ce va afia urmtorul algoritm dac se citete valoarea: Date de intrare: a natural; Date intermediare: b natural Date de ieire: c natural nceput citete a b a mod 100 a a/100 c b*100+a scrie c sfrit Ce valoare va avea variabila a la sfritul urmtoarei secvene de instruciuni? a, b ntregi a 3 b 7 b a+b/2: a a-b/2*a Fie a, b,c i d patru variabile reale. Care din urmtoarele instruciuni atribuie variabilei d media aritmetic a valorilor variabilelor a, b i c? a) d (a+b+c)/3 c) d a+b+c/3 b) d a/3+b/3+c/3 d) d (a+b+c)/3-1 Se consider polinomul P(x)=ax3+bx2+cx+d. Se citesc valorile a,b,c,d i x0. S se calculeze valoarea P(x0). Se citete un numr natural cu exact trei cifre. S se afieze suma cifrelor acestui numr. Fie x1,x2,x3,x4, x5 cinci valori reale. Scriei un algoritm care s foloseasc o singur variabil suplimentar pentru a permuta circular valorile celor cinci variabile (ex: 1,2,3,4,5 s devin 2,3,4,5,1). Se citete un numr ntreg ce reprezint un numr de ore. S se afieze acest numr n minute, apoi n secunde. S se determine ctul i restul mpririi lui a la b fr a realiza efectiv mprirea. Fie a, b i c trei numere reale, care reprezint lungimile laturilor unui triunghi. S se scrie un algoritm care s calculeze i s afieze perimetrul i aria triunghiului. O broasc estoas parcurge o distan de D kilometri n H ore. S se scrie un algoritm care s calculeze i s se afieze viteza cu care se deplaseaz broasca estoas (exprimat n metri/secund). Doi colegi (Victor i Florin) pleac simultan din oraele n care locuiesc, unul ctre cellalt. tiind c distana dintre cele 2 orae este D, c Victor merge cu viteza v1, iar Florin merge cu viteza v2 (D,v1,v2 numere reale), scriei algoritmul care calculeaz dup ct timp se ntlnesc cei doi colegi i la ce distan de oraul locuiete Victor. Fie A i B dou puncte n plan, specificate prin coordonatele lor carteziene. S se scrie un algoritm care s calculeze i s afieze lungimea segmentului AB. A fost odat un balaur cu 6 capete. ntr-o zi Ft-Frumos s-a suprat i i-a tiat un cap. Peste noapte i-au crescut alte 6 capete n loc. Pe acelai gt! A doua zi, Ft-Frumos i-a tiat iar un cap, dar peste noapte balaurul i-au crescut n loc alte 6 capete...i tot aa timp de n zile. n cea de-a (n+1)-a zi, Ft-Frumos s-a plictisit i a plecat acas scriei un algoritm care citete de la tastatur n, numrul de zile i care afieaz pe ecran cte capete avea balaurul dup n zile. De exemplu: pentru n=3, algoritmul va afia: Dupa 3 zile balaurul are 15 capete. (Olimpiada 2002 cl a V-a) S se calculeze ma a dou numere a,b reale. Se citesc de la tastatur dou numere naturale nenule. S se calculeze media aritmetic, media geometric i media armonic a celor 2 numere.

Clasa a IX-a 2. Structura alternativ atunci instructiune_1 altfel instruciunea_2

Algoritmi

dac condiie

sf.dac Efect: Se evalueaz expresia. Dac valoarea expresiei este Adevrat, atunci se execut instruciune_1. Dac valoarea expresiei este Fals, se execut instruciune_2. Observaii 1. Att in ramura atunci, ct i in ramura altfel este permis executarea unei singure instruciuni. n cazul n care este necesar efectuarea mai multor operaii, acestea se grupeaz ntr-o singur instruciune compus. 2. Dac pe ramura altfel nu este necesar efectuarea nici unei operaii, aceasta poate lipsi (structura alternativ cu o ramur vid). Selectarea instruciunii ce urmeaz s fie executat n funcie de valoarea unei expresii reprezint o structur alternativ. Aplicaii 1. Modulul unui numr Se intoduce de la tastatur un numr ntreg x. Scriei un algoritm care calculeaz i afieaz modulul numrului x. Date de intrare: x ntreg; Date de ieire: rezultatul testului citete x; dac x<0 atunci m -x; altfel m x; scrie modulul este: ,m;. sf.dac 2. Paritatea S se introduc de la tastatur un numr ntreg x. Scriei un algoritm care testeaz dac x este un numr par. Date de intrare: x ntreg; Date de ieire: m ntreg; citete x; dac (x%2=0) atunci scrie x, este par; altfel scrie x, este impar; sf.dac S se rezolve ecuaia de gradul I pentru coeficienii a,b reali dai . citeste a,b daca a0 atunci { x (-b/a) scrie x } altfel daca b0 atunci scrie nu exista solutii altfel scrie o infinitate de solutii sf.daca sf.daca S se calculeze valoarea funciei f(x)= x2 , daca x<0 2x+1 , daca x>=0 pentru un x real dat. citeste x daca x<0 atunci f x*x altfel f 2*x+1 sf.daca scrie f

3.

4.

Clasa a IX-a

Algoritmi

Structura alternativ generalizat La cest tip de structur se face selectarea ntre mai multe aciuni, n funcie de o variabil de memorie numit selector, care poate lua mai multe valori, dintr-o mulime ordonat de leemente de acelai tip cu selectorul. Sintaxa: Selector este o variabil sau o expresie de tip ntreg sau caracter (nu este permis tipul real). caz1,cazn se numesc etichete i sunt valori pe care la poate lua selectorul. Dac selector=v1 se execut instruciune1. Dac selector=v2 se execut instruciune2 Dac selectorv k(k=1,n) i exist ramura altfel atunci se execut instruciune n+1; Dac nu exist ramuar else (altfel) atunci nu se execut nimic i se trece la urmtoarea instruciune de dup case(cazuri). // (optional)

n cazul c selector caz1 v1: instruciune1 caz2 v2: instruciune2 cazn vn: instruciunen altfel instruciune n+1 sf.cazuri

Probleme propuse 1. Fie ecuaia de gradul al II-lea ax2+bx+c=0 cu a0. Scriei un algoritm care s rezolve ecuaia n mulimea numerelor reale. 2. Fie a i b dou nr ntregi. Scriei un algoritm care s verifice dac a i b sunt numere consecutive. 3. Stabilii relaia de ordine dintre dou numere reale oarecare , citite de la tastatur . 4. Se citesc trei numere a,b,c. S se tipreasc maximul dintre ele . S se calculeze valoarea expresiei de mai jos pentru A,B,C numere ntregi date . 5. E= A+B+C , C<=-1 C/(A+B) , -1<C<1 (A+B)/C , C>=1 6. S se evalueze expresia E=A2/(A2+B)1/2 , unde puterea nseamn radical de ordin doi , pentru A, B numere reale date . 7. Se citete media unui candidat la examenul de capacitate. Dac media este 9.18, candidatul este admis n liceul solicitat, altfel este transferat la alt liceu. Dac media este cel puin 9.50, este admis la profilul informatic-intensiv, altfel la matematic-informatic. Citind media candidatului, stabilii cum este repartizat. 8. Se citesc de la tastatur dou numere i un caracter. Dac caracterul este +, calculai suma celor dou numere, dac este -, diferena lor, dac este *, produsul, iar dac este / calculai, dac este posibil, ctul. 9. Citindu-se o liter mic, s se precizeze dac aceasta este vocal sau consoan. 10. Pe baza datei curente exprimat prin trei valori naturale nenule (zi,lun,an), s se calculeze data zilei urmtoare. 11. Se citesc trei numere naturale nenule a,b,c. S se verifice dac cele trei valori pot fi laturile unui triunghi i, n caz afirmativ, s se calculeze aria lui cu formula lui Heron. De asemenea s se specifice i dac este un triunghi particular (isoscel sau echilateral). 12. Se citesc patru numere ntregi oarecare. S se verifice dac ele alctuiesc o mulime n sens matematic, adic valorile sunt distincte. 13. Se citete de la tastatur un numr natural cu exact patru cifre. S se verifice dac numrul este palindrom, adic citindu-l de la sfrit spre nceput se obine acelai numr. 14. Se dau dou numere de tip ntreg. S se verifice dac ele sunt numere consecutive. 15. n planul cartezian xOy, se da un dreptunghi prin colurile stanga-jos (xs,ys) i dreaptasus(xd,yd ). S se detemine dac un punct oarecare (x,y) se afl sau nu n interiorul dreptunghiului. 16. S se verifice dac o fracie a/b, pentru a i b numere naturale nenule cu maxim 5 cifre, se simplific prin k. n caz afirmativ se va afia i fracia simplificat. Numerele a,b,k se citesc de la tastatur n aceast ordine. 17. Fie funcia f:R R, definit astfel: f (x)= x-7, dac x<2 7x2+1, dac x=2 3 Calculai f(x) pentru un x citit. x +5, altfel 18. Se citesc patru numere naturale. S se afieze maximul dintre s14 i s23, unde s14 este suma dintre primul i ultimul numr, iar s23 dintre al doilea i al treilea numr.

Clasa a IX-a

Algoritmi

19. Fie ecuaia cu coeficieni reali ax2+bx+c=0 cu a0. Scriei un algoritm care, fr a calcula rdcinile ecuaiei, s se determine natura i semnul acestora. (relaiile lui Viete x1+x2= S=-b/a, x1*x2=P= a/c). 20. Se citesc dou numere ntregi a, b cu a>b. S se testeze dac cele dou numere se divid. n caz afirmativ s se afieze un mesaj corespunztor, n caz contrar afai ctul i restul mpririi lui a la b. 21. Fiind date numere ntregi a, b, c, d s se afieze minimul dintre ele. 22. Cunoscnd numrul natural n s se calculeze suma 1+2+3+...+n. 23. Cunoscnd k i n (k<=n) numere naturale, s se calculeze suma k+(k+1)+...+n. 24. S se determine ultima cifr a sumei x+y, unde x i y sunt numere naturale date de la tastatur. 25. Fie a,b i c salariile a trei persoane. S se precizeze cte dintre acestea sunt cel puin egale cu o valoare dat x reprezentnd salariul mediu pe economie. 26. S se determine ultima cifr a numrului 2x, pentru x numr natural dat. 27. Folosind o singur comparaie, s se verifice dac trei numere naturale cu cel mult trei cifre fiecare sunt pitagoreice. Se va afia un mesaj corespunztor. 28. Ionel are H1 cm, Gigel are H2 cm, iar Danu are H3 cm. Scriei un algoritm care s afieze numele celor 3 copii n ordinea cresctoare a nlimii. 29. S se rezolve sistemul de ecuaii cu coeficieni reali ax+by=c dx+ey=f pentru a,b,c,d,e,f numere reale oarecare date. 30. Scriei un algoritm care citete de la tastatur trei numere ntregi strict pozitive a, b, c cu cel mult trei cifre fiecare. Valoarea variabilei a reprezint distana dintre oraul A i oraul B, b distana n km dintre oraul B i oraul C, iar c reprezint distana n Km dintre oraul C i oraul A. tiind c un cltor i planific o vizit a celor trei orae pornind din oricare dintre oraele A sau b i ajungnd n final n oricare dintre oraele B sau C cu trecere prin cel de-al treilea ora, s se determine un traseu de lungime minim care respect aceste condiii. Algoritmul va afia cele trei litere corespunztoare celor trei orae, n ordinea n care sunt vizitate. Se va alege o metod ct mai eficient din punctul de vedere al gestionrii memoriei. De exemplu: a=58, b=140, c=125, se va afia BAC. 31. Un iepura zglobiu iei din pdure i ncepu s alerge pe cmpie cu o vitez constant v1 m/s. Dup un timp t0, apare la marginea pdurii un leu. Leul zrii iepurele i ncepu s alerge dup el cu o vitez constant v2 m/s. Scriei un algoritm care afieaz dup cte secunde prinde leul iepurele sau valoarea +1 dac leul nu prinde iepurele. 32. Un bazin se umple cu ap cu ajutorul a dou robinete. Dac lsm primul robinet deschis timp de h1 ore i al doilea timp de h2 ore, n bazin vor fi x litri de ap. Dac lsm primul robinet deschis timp de h1+1 ore i al doilea timp de h2-1 ore, n bazin vor fi y litri de ap. Scriei un program care s determine ci litri de ap curg prin fiecare robinet ntr-o or. 33. Orice sum de bani S (S>7) poate fi pltit numai cu monede de 3 i 5 lei. Dat fiind S>7, scriei un program care s determine o modalitate de plat a sumei S numai cu monede de 3 i 5 lei. 34. Calculai intersecia a dou intervale [a,b] i [b,c] date prin valori reale a,b,c,d unde a<=b i c<=d. (Fie e=max{a,b} i f=min{b,d}. Se observ c dac e>f atunci [a,b][c,d]= iar daca e<=f atunci [a,b][c,d]=[e,f]) 35. Se citesc trei numere a, b i c. S se numere cte sunt apre. 36. Se citesc trei numere a, b i c. S se verifice dac ele pot fi termenii unei progresii aritmetice. 37. Se citesc 2 numere naturale a i b. S se afieze cte numere pare sunt n intervalul [a,b]. 38. Se citesc dou intervale de timp exprimate n ore minute i secunde (h1,m1,s1) i (h2,m2,s2). S se calculeze suma celor 2 intervale de timp. 39. Se citete un numr ntreg n care reprezint un an calendaristic. S se verifice dac anul este bisect sau nu (condiia ca un an, s fie bisect este ca, dac anul este divizibil cu 100, s fie divizibil cu 4; altfel s fie divizibil cu 400). 40. Se d o dreapt n planul cartezian xoy. S se determine dac un punct p de coordonate x,z aparine sau nu dreptei.

Clasa a IX-a Structura repetitiv

Algoritmi

De multe ori, n construirea algoritmilor de rezolvarea unor prtobleme, este necesar repetarea unor operaii atta timp ct condiia este adevrat: - ct timp este culoarea verde, mai trece o main. - ct timp mai sunt bilete, vindei biletele; sau vindei bilete pn le terminai. - Ct timp mai avei greeli de corectat, corectai greelile. - ct timp mai avei numere, le adunai. - ct timp mai avei cifre ntr-un numar afisai-le. - ncepnd de la 1 scriei n ordine numerele pn la 100. Metoda de implementare a unei repetiii este structura repetitiv. Structura repetitiv cuprinde: un grup de instruciuni, numite corpul ciclului, ce se execut repetat, i testarea unei condiii care face ca procesul de repetare s continue sau nu. Ex: Se introduce de la tastatur numere pn cnd ultimul numr este 0, i se calculeaz suma numerelor. DI: S iniial 0, i a valoarea citit ce se adaug la sum pn cnd a=0. Spunem pe scurt ct timp a<>0, adun-l pe a la S. Procesul de control cuprinde trei aciuni: Iniializarea- stabilete starea iniial, starea dinainte de prima parcurgere a corpului ciclului. Operaia de atribuire s 0, i citirea primului numr (citete a). Testarea- compar starea curent cu starea final care face ca procesul de repetare s se sfreasc. Se compar numrul a cu 0 (a<>0) dac condiia este adevrat se continu citirea lui a. Procesul de executare repetat se termin cnd valoarea introdus pentru a este 0. Modificarea- Schimb starea curent astfel nct s se avanseze ctre starea final. Modificarea face parte din corpul ciclului i n exemplul dat const n citirea unei noi valori a lui a (citete a), care poate s fie 0. Structura repetitiv Executarea repetat a unor aciuni, sub un proces de control, este conceput algoritmic printr-o structur repetitiv. Procesul de control presupune trei aciuni: Iniializare- Stabilete, starea dinainte de prima parcurgere a corpului ciclului. (ex.s 0, i 1) Testare - compar starea curent cu starea care termin procesul de repetare i are rolul de a termina procesul de ciclare.(i<=n) Modificare-Schimb starea curent astfel nct s se avanseze ctre starea final, care ncheie procesul de repetare. (i i+1) Clasificarea structurilor repetitive Structura repetitiv poate fi: cu numr necunoscut cunoscut de pai cu numr cunoscut de pasi Structura repetitiv cu numr necunoscut de pai poate fi: cu test iniial cu test final Schema logic echivalent: Sintaxa instruciunii repetitive cu numr necunoscut de pai cu test iniial ct_timp Structura repetitiv cu test initial se numete instruciunea ct_timp si are urmtoarea sintax: ct_timp (expresie) execut instrucinune; sfrit_ct_timp condiie Efectul instruciunii: Pas 1: Se evalueaz condiia care este o expresie. NU DA instruciune

Pas 2: Dac expresia este fals, se iese din instruciunea ct_timp; Dac valoarea este adevrat, se execut instructiunea, apoi se revine la Pas 1, la evaluarea expresiei.

Clasa a IX-a

Algoritmi

Observaii: 1. Instruciunea se execut, ct timp valoarea expresiei din condiiei este adevrat. Pentru ca ciclul s nu fie infinit, este obligatoriu ca instruciunea care se execut s modifice cel puin una din variabilele care intervin n expresie, astfel nct acesta s poat lua valoarea fals. 2. Dac expresia din condiie are de la nceput valoarea fals, instruciunea nu se execut nici mcar o dat. 3. Instruciunea din corpul ciclului ct_timp poate s conin o alt instruciune ct_timp. n acest caz se spune c instruciunile ct_timp sunt imbricate. Probleme propuse 1) S se calculeze suma S=1+2+3=....+n , respectiv produsul P=1*2*3*....*n , pentru numrul n natural nenul dat. 2) S se calculeze media aritmetic a n valori reale citite pe rnd de la tastatur. 3) Se citesc pe rnd de la tastatur numere ntregi nenule ntr-o variabil x, pn la introducerea valorii 0. S se calculeze suma numerelor pozitive introduse i produsul celor negative. 4) Se citesc pe rnd n numere ntregi i apoi o valoare ntreag a. S se determine numrul de apariii ale valorii a printre numerele citite. 5) Precizai ce se va afia n urma execuiei secvenei de program de mai jos pentru n=5 (s,n i k sunt variabile ntregi). Date de intrare: n intreg. Date de iesire:S intreg Citeste n; S 0; k 1; cat_timp(k<=n)executa s=s+k; k=k+2; Sf_cat_timp Scrie s=, s; a) s=4 b) s=16 c) s=9 d) s=15 e)s=0 S se afiseze cifrele numarului natural n citit de la tastatura.(Atentie nu se cunosc numarul cifrelor lui n). Fie secventa cu x=179 Date de intrare: x intreg; Date de iesire: s intreg; Date intermediare: c,d; citeste x; d x; s 0; cat_timp(d<>0)executa c d mod 10; s s+c; d d div 10; Sf_cat_timp scrie s; Ce se afiseaz? a) 16 b) 18 c)17 d) 0 e) 971 8) Se citete o succesiune de numere ntregi pn la introducerea valorii 0. S se calculeze media aritmetic a numerelor pozitive citite i numrul numerelor negative. 9) Se citesc pe rnd numere ntregi pn la introducerea valorii 1. S se calculeze media aritmetic a valorilor nenule citite. 10) Pentru un numr natural nenul n dat, s se determine p natural cu proprietatea 2p<=n. 11) S se realizeze nmulirea a dou numere naturale nenule a i b date prin adunri repetate. 12) Fie funcia f:N->N , f(x)= n+1 , pentru n par n-1 , pentru n impar 13) S se calculeze i s se afieze valorile funciei pentru n =1,2,....,10

6) 7)

Clasa a IX-a Structura repetitiv cu test final Sintaxa: repet instructiune

Algoritmi Schema logic echivalent:

Instructiune corpul ciclului F A


Cond.

pn cnd condiie

Efect: - se execut secvena de instructiuni (orice instruciune pseudocod) care formeaz corpul ciclului, apoi se verific condiia, care este o expresie logic; - dac condiia este fals, se execut din nou secvena, s.a.m.d.; - corpul ciclului se execut n mod repetat pn cnd condiia devine adevrat (adic ct timp este fals). Observaii: - este un ciclu cu test final pentru c mai nti se execut secvena i apoi se verific condiia; - este un ciclu cu numr necunoscut de pai, numrul minim de execuii asigurat pentru secven este 1 (cnd din start condiia este adevrat); - pentru a evita buclarea infinit, corpul ciclului trebuie s conin cel puin o instruciune care s asigure ieirea din bucl (la un moment dat condiia s devin adevrat). Probleme propuse Se citete un ir de numere ntregi pn la ntlnirea valorii 0. S se calculeze media aritmetic a numerelor din ir. 1. Se considera algoritmul urmator: citeste n repeta cifra n mod 10; scrie c; n n div 10 pana cand n=0 Determinati ce se afiseaza pentru n =1234. 2. Sa se afiseze inversul numarului n. 3. Sa se calculeze cmmdc-ul, respectiv cmmmc-ul a doua numere a, b. 4. Sa se realize algoritmul de determinarea produsului a doua numere a si b prin adunari repetate. 5. S se calculeze ctul i restul mpririi a dou numere naturale nenule , a i b date , prin scderi repetate. 6. S se descompun un numr natural nenul dat n factori primi , afisnd pentru fiecare factor prim i puterea corespunztoare 7. Se citesc pe rnd n numere ntregi . S se verifice dac apar sau nu n ordine cresctoare. 8. S se verifice dac un numr natural nenul dat este palindrom , adic citit de la dreapta la stnga i de la stnga la dreapta reprezint acelai numr . 9. S se determine numrul de apariii ale unei valori date, printre elementele unui ir dat cu n elemente. 10. Se consider urmtoarea secven: x 2; ind 0; repeata z x+4; y x+2; n1 x^3+x^2+x+1; n2 3*(y^3+y^2+y+1); n3 z^3+3*z^2+2*z+4; daca n1+n2=n3 atunci ind 1; scrie x, ,y, ,z; altfel x x+1; sf.daca pana cand ind=1

Clasa a IX-a

Algoritmi

10

12.1. Ce valori se vor afisa dupa executarea secventei de instructiuni descries anterior: a) 3 5 7 b) 1 6 7 c) 7 3 5 d) 5 3 7 12.2. Ce valori au variabilele n1,n2, n3 la terminarea executiei secventei? a) 3 5 7 b) 40 468 508 c) 15 288 403 d) 0 0 0 13. Se consider algoritmul urmtor: citeste n repeta c n mod 10 n n div 10 pana cand (n mod 10 >c) or (n=0) daca n=0 atunci scrie ordonat altfel scrie neordonat Ce rezultat va afisa algoritmul pentru n=1223? a) neordonat b) ordonat c) eroare d) ordonat neordonat

Clasa a IX-a

Algoritmi

11

Structura repetitiv cu numr cunoscut de pai Sintaxa: Schema logic echivalent: pentru i vi , vf , pas execut Sf.pentru Secvena Observaii: - i = variabila contor (de tip ntreg sau caracter); - vi = valoarea iniial de la care ncepe numrarea; - vf = valoarea final la care se oprete numrarea; - pas = din ct n ct se numr (pasul contorului). vv+pas modificare contor v vi
V<=Vf >=

corpul ciclului

vi , vf i pas sunt constante, variabile sau expresii de acelai tip cu v. Dac a) vi <= vf i pas >0 - contor cresctor b) vi >= vf i pas<0 - contor descresctor Efect: - se ncarc variabila contor cu valoarea iniial de la care ncepe numrtoarea (vi); - ct timp nu s-a depit valoarea final vf la care se oprete numrarea (adic vi <= vf pentru un contor cresctor, sau vi >= vf pentru un contor descresctor) se execut secvena care formeaz corpul ciclului i se modific variabila contor i cu valoarea pasului (crete sau scade cu valoarea pas); - cnd valoarea final vf este depit, instruciunea se ncheie. Observaii: - este un ciclu cu numr cunoscut de pai: nr pai =
vf - vi

pas

+1

nu se recomand modificarea variabilei contor v n corpul ciclului deoarece ea este modificat implicit de ctre instruciune cu valoarea pasului pas; modificarea explicit a lui v duce la comportri imprevizibile ale instruciunii. pentru i= 1, 10 execut S= 1+1+1... SS+1 i i-1 (de o infinitate de ori)

Exemplu:

- dac pas lipsete din sintax se consider c pas = 1 (vezi mai sus).

Clasa a IX-a

Algoritmi

12

Probleme propuse 1. S se calculeze suma S=1+2+....+n, respectiv produsul P=1*2*...*n pentru n numr natural nenul citit de la tastatur. 2. S se calculeze media aritmetic a n valori ntregi citite pe rnd de la tastatur, unde n este un numr natural nenul dat. 3. S se determine i s se afieze divizorii proprii ai unui numr natural nenul n dat de la tastatur. 4. Se citesc pe rnd n numere ntregi (n natural nenul dat). S se verifice dac numerele apar sau nu n ordine cresctoare. 5. S se verifice dac un numr natural nenul dat este perfect, adic este egal cu suma divizorilor si proprii, inclusiv 1. Exemplu, 6=1+2+3 este numr perfect. 6. Se citesc pe rnd n numere reale, n numr natural nenul dat. S se determine numrul valorilor pozitive, numrul valorilor negative i, respectiv, numrul valorilor nule introduse. 7. Se citesc pe rnd n numere reale. S se determine minimul (maximul) dintre ele. 8. Se citesc pe rnd n numere reale. S se determine media aritmetic a valorilor strict pozitive citite. 9. Fiind dat un numr n natural nenul s se verifice dac este prim sau nu. 10. S se calculeze: a) S=1+3+5++nr, unde nr este un numr impar mai mic sau cel mult egal cu n, n numr natural nenul dat b) P=1*3*5*.*nr, unde nr este un numr impar mai mic sau cel mult egal cu n, n numr natural nenul dat c) S=1+1/2+1/3+...+1/n, n numr natural nenul dat d) S=1+1*2+1*2*3+.+1*2*..*n, n numr natural nenul dat 2 2 2 e) S=1+2 +3 +....+n , n numr natural nenul dat 2 2 2 f) S=1+1/2 +1/3 +...+1/n , n numr natural nenul dat g) S=1+1/(1*2)+1/(1*2*3)+....+1/(1*2*...*n), n numr natural nenul dat h) R=(1*2*...*n)/(1+2+...+n), n numr natural nenul dat i) P=2*4*6*.....*nr, unde nr este un numr par mai mic sau cel mult egal cu n, n numr natural nenul dat 11. Se consider irul 1,4,7,10,13,....S se calculeze suma primilor n termeni, n numr natural nenul dat. 12. S se genereze toate numerele de patru cifre de forma 3a2b care se divid cu numrul 9. 13. Se citesc pe rnd n numere ntregi. S se determine cte numere pare i, respectiv, cte numere impare au fost citite. 14. Se citesc pe rnd n numere naturale nenule. S se afieze i s se numere acele numere pentru care suma cifrelor este divizibil cu 5. 15. Se citesc pe rnd n numere naturale mai mari ca 1. S se determine c.m.m.d.c. al celor n numere. 16. S se afieze numerele prime mai mici dect 100 fcnd un numr ct mai mic de verificri.