Sunteți pe pagina 1din 13

Informatic clasa a IX-a

ALGORITMI

1 / 13

Un algoritm (cuvntul are la origine numele matematicianului persan Al-Khwarizmi) nseamn n matematic i informatic o metod sau o procedur de calcul, alctuit din paii elementari necesari pentru rezolvarea unei probleme sau categorii de probleme. Cele mai importante propriet i ale unui algoritm sunt urmtoarele: Corectitudinea - este proprietatea algoritmului de a furniza o soluie corect a problemei date. Generalitatea - este proprietatea unui algoritm de a rezolva o clas sau categorie de probleme, i nu doar o singur problem particular. Claritatea - proprietatea algoritmului de a descrie cu exactitate i fr ambiguiti paii care trebuiesc parcuri n rezolvarea problemei. Verificabilitatea - proprietate care permite ca fiecare pas s poat fi verificat ntr-un timp rezonabil de ctre om, folosind mijloace de validare de ncredere. Optimalitatea - proprietatea unui algoritm de a se termina dup un numr minim de pai. Finitudinea - este proprietatea algoritmului de a se termina ntr-un numr finit de pai. Eficiena - este proprietatea unui algoritm de a se termina nu numai ntr-un numr finit, ci i "rezonabil" de pai, chiar dac acesta nu este cel mai mic posibil (nu este optim). Etapele rezolvarii unei probleme: -stabilirea cerintelor problemei -stabilirea datelor de intrare si a datelor de iesire -stabilirea unui rationament general de rezolvare a problemei -reprezentarea algoritmului problemei intr-o forma simpla si clara -verificarea rationamentului pentru valori concrete -implementarea algoritmului intr-un limbaj de programare Notiunile cu care opereaza algoritmii Algoritmii opereaza cu urmatoarele notiuni: Un algoritm prelucreaza datele de intrare in scopul obtinerii unor rezultate (a datelor de iesire) utilizand si date intermediare. Datele sunt valori concrete specifice fiecarei probleme care vor fi retinute de calculator in anumite zone de memorie. Dimensiunea zonelor de memorie depinde de tipul datelor respective. Intuitiv, memoria poate fi reprezentata ca locatii succesive (zone de memorie) identificate prin adrese (numere de ordine). n program datele apar fie sub forma unor constante (valori cunoscute anticipat, care nu se modifica pe parcursul executiei), fie sub forma de variabile. Putem defini o variabila ca fiind un nume dat unei zone de memorie. Datele se caracterizeaza printr-un anumit tip care va determina : -o anumita multime din care data poate lua valori - un anumit mod de reprezentare n memoria calculatorului - o multime de operatori care pot fi aplicati acestor valori. - tipul unei date determina lungimea zonei de memorie ocupata de acea data. n general, lungimea zonei de memorare este dependenta de calculatorul pe care s-a implementat compilatorul. Datele se pot clasifica dupa tipul lor in: Caractere

Informatic clasa a IX-a

ALGORITMI Intregi Reale Logice Sir de caractere Variabilele: retin date de un tip anume. O variabila isi poate schimba valoarea dar tipul nu. O variabila pentru a fi prelucrata trebuie sa fie declarata (anuntata). Acest lucru consta de fapt in precizarea tipului variabilei. Exemplu: caracter car intreg a real b,c logic x sir y Expresiile : o expresie este alcatuita din unul sau mai multi operanzi legati intre ei prin operatori. Operanzii pot fi constante sau variabile. Exemplu: 4.5+2*a unde 4.4, 2, a sunt operanzi iar + si * sunt operatori Operatori pentru tipuri numerice : operator semnificatie + adunare scadere * inmultire / catul impartirii % restul impartirii Operatori relationali : operator semnificatie = egalitate <> diferit > Mai mare >= Mai mare sau egal < Mai mic <= Mai mic sau egal Operatori logici : operator semnificatie ! Negatie logica si Si logic sau Sau logic
Datele de tip logic pot avea doua valori : A (adevarat) si F (fals) Reguli de compunere a operatorilor logici : expresie ! expresie A F F A

2 / 13

Informatic clasa a IX-a

Expresie1 A A F F Expresie1 A A F F

Expresie2 A F A F Expresie2 A F A F

ALGORITMI Expresie1 SI Expresie2 A F F F


Expresie1 SAU Expresie2 A A A F

3 / 13

Programarea structurata a inceput la inceputul anilor 70. Este un concept cu o importanta fundamentala in scrierea algoritmilor. In general, algoritmii se eleboreaza prin utilizarea exclusiva a anumitor structuri (liniara, alternativa, repetitiva). Prin structura se intelege o anumita forma de imbinare a operatiilor cu care lucreaza algoritmii.

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. STRUCTURI DE CONTROL 1. STRUCTURA LINIARA Parcurgerea instruciunilor n secven, n ordinea lor, reprezint o structur liniar (secvenial). A. 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; B.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.

Informatic clasa a IX-a

ALGORITMI C.Operaia de scriere scrie expresie1, expresie2,, expresien;

4 / 13

Efect: Operaia de scriere (operaia de ieire) presupune evaluarea n ordine a expresiilor specificate i afiarea pe ecran a valorilor lor pe aceeai linie. D.Operaia de atribuire variabila expresie; Efect: se evalueaz expresia, apoi se atribuie valoarea expresiei variabilei din membrul stng. Aplicaii rezolvate 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; Va*a*a; scrie volumul cubului este: , V; A6*a*a; scrie aria cubului este: , A; sfrit 2. De ziua lui, Andrei 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 Andrei Date de ieire: rest natural; mnnc ngheat*/ rest S%(P+1); scrie numrul maxim de invitai este: ,nr; scrie Suma rmas este: , rest; sfrit 3. 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 x3x2x1 - a treia linie se vor afla toate cifrele lui x x4x3x2x1x0

Informatic clasa a IX-a

Date de intrare: x natural; Date de ieire: x4,x3,x2,x1,x0 natural; nceput citete x; x0x%10; /*rein cifra unitilor*/ xx/10; /*elimin cifra unitilor*/ x1x%10; /*rein cifra zecilor*/

ALGORITMI xx/10; /*elimin cifra zecilor*/ x2x%10; /*rein cifra sutelor*/ xx/10; /*elimin cifra sutelor*/ x3x%10; /*rein cifra miilor*/ xx/10; /* elimin cifra miilor, n x rmne cifra zecilor de mii*/ scrie ,x2; scrie ,x3,x2, x1; scrie x,x3,x2,x1,x0 ; sfrit

5 / 13

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; aa+b; ba-b; aa-b; scrie a= ,a, b=,b; sfrit 2. 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; ba % 100; a[a/100]; cb*100+a; scrie c; sfrit 3. Ce valoare va avea variabila a la sfritul urmtoarei secvene de instruciuni? a, b ntregi; a3; b7; ba+b/2: aa-b/2*a; 4. 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) da+b+c/3; b) da/3+b/3+c/3; d) d(a+b+c)/3-1; 5. Se consider polinomul P(x)=ax3+bx2+cx+d. Se citesc valorile a,b,c,d i x0. S se calculeze valoarea P(x0). 6. Se citete un numr natural cu exact trei cifre. S se afieze suma cifrelor acestui numr.

Informatic clasa a IX-a

ALGORITMI 7. 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). 8. Se citete un numr ntreg ce reprezint un numr de ore. S se afieze acest numr n minute, apoi n secunde. 9. S se determine ctul i restul mpririi lui a la b fr a realiza efectiv mprirea. 10. 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. 11. 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). 12. 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. 13. 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. 14. 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) 15. S se calculeze ma a dou numere a,b reale. 16. Se citesc de la tastatur dou numere naturale nenule. S se calculeze media aritmetic, media geometric i media armonic a celor 2 numere.

6 / 13

2. STRUCTURA ALTERNATIV dac condiie atunci instructiune_1 altfel instruciunea_2 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 ramura atunci, ct i pe 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 ne 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 mx; 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 3. S se rezolve ecuaia de gradul I pentru coeficienii a,b reali dai . citeste a,b daca a 0 atunci { x (-b/a) scrie x } altfel daca b 0

atunci scrie nu exista solutii altfel scrie o infinitate de solutii sf.daca sf.daca 4. 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 Structura alternativ generalizat La acest 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: n cazul c selector caz1 v1: instruciune1 caz2 v2: instruciune2 cazn vn: instruciunen altfel instruciune n+1 sf.cazuri 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)

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 . 5. 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. 6. 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. 7. Citindu-se o liter mic, s se precizeze dac aceasta este vocal sau consoan. 8. Pe baza datei curente exprimat prin trei valori naturale nenule (zi,lun,an), s se calculeze data zilei urmtoare.

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). 10. Se citesc patru numere ntregi oarecare. S se verifice dac ele alctuiesc o mulime n sens matematic, adic valorile sunt distincte. 11. 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. 12. Se dau dou numere de tip ntreg. S se verifice dac ele sunt numere consecutive. 13. n planul cartezian xOy, se da un dreptunghi prin colurile stanga-jos (xs,ys) i dreapta sus(xd,yd ). S se detemine dac un punct oarecare (x,y) se afl sau nu n interiorul dreptunghiului. 14. 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. 15. 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. 16. 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. 17. Fiind date numere ntregi a, b, c, d s se afieze minimul dintre ele. 18. Cunoscnd numrul natural n s se calculeze suma 1+2+3+...+n. 19. Cunoscnd k i n (k<=n) numere naturale, s se calculeze suma k+(k+1)+...+n. 20. S se determine ultima cifr a sumei x+y, unde x i y sunt numere naturale date de la tastatur. 21. 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. 22. S se determine ultima cifr a numrului 2x, pentru x numr natural dat. 23. 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. 24. 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. 25. 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. 26. 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. 27. Se citesc trei numere a, b i c. S se verifice dac ele pot fi termenii unei progresii aritmetice. 28. Se citesc 2 numere naturale a i b. S se afieze cte numere pare sunt n intervalul [a,b]. 29. 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. 30. 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). 31. Se d o dreapt n planul cartezian xoy. S se determine dac un punct p de coordonate x,z aparine sau nu dreptei.
9.

3. STRUCTURA REPETITIVA 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 s0, 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.s0, i1) 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. (ii+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 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 (condiie) execut instrucinune; sfrit_ct_timp Efectul instruciunii: Pas 1: Se evalueaz condiia care este o expresie. 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. 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; S0; k1; cat_timp(k<=n)executa s=s+k; k=k+2; Sf_cat_timp Scrie s=, s; a) s=4 b) s=16c) s=9 d) s=15 e)s=0 6) S se afiseze cifrele numarului natural n citit de la tastatura.(Atentie nu se cunosc numarul cifrelor lui n). 7) Fie secventa cu x=179 Date de intrare: x intreg; Date de iesire: s intreg; Date intermediare: c,d; citeste x; dx;

s0; cat_timp(d<>0)executa cd % 10; ss+c; d[d / 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. Structura repetitiv cu test final Sintaxa: repet instructiune 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 / 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. 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 . 8. S se determine numrul de apariii ale unei valori date, printre elementele unui ir dat cu n elemente. Structura repetitiv cu numr cunoscut de pai Sintaxa: pentru v = vi , vf , pas execut instructiune Sf.pentru Observaii: - v = 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). 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 v 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

+1 pas

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. - dac pas lipsete din sintax se consider c pas = 1 (vezi mai sus)

S-ar putea să vă placă și