Structuri

Reprezinta alegerea unei operatii sau a unei secvente dintre doua alternative posibile. In figura 2.15 sunt prezentate cele doua variante posibile ale structurii alternative.
 * //Structura alternativa//**



In limbaj **natural**, pentru schema logica din partea stanga, executia poate fi descrisa astfel: In limbaj **pseudocod**, structura alternativa este descrisa astfel: daca conditie atunci  secventa A  altfel  secventa B Pentru cea de-a doua schema, reprezentand decizia cu varianta unei cai nule, una din ramurile structurii nu contine nici o instructiune. In limbaj natural, executia poate fi descrisa astfel: In pseudocod, executia se descrie astfel:  daca conditie atunci  secventa A
 * se evalueaza conditia;
 * daca rezultatul este adevarat, se executa secventa A;
 * in caz contrar, se executa secventa B
 * se evalueaza conditia;
 * daca rezultatul este adevarat, se executa secventa A;
 * in caz contrar, se continua executia programului.

Se citesc doua numere reale **a** si **b**. Sa se afiseze cel mai mare dintre ele. Rezolvarea acestei probleme este foarte simpla, si anume: real a, b citeste a, b daca a>b atunci scrie a altfel scrie b
 * Exemplul 1**


 * Exemplul 2.** Sa se realizeze schema logica pentru evaluarea expresiei:

Schema logica a acestei probleme este urmatoarea:



Fig. 2.16

Un exemplu de problema la care se foloseste cea de-a doua varianta a schemei logice pentru structura alternativa este: //Sa se determine valoarea absoluta a numarului real **x**, citit de la tastatura//. Rezolvare: real x citeste x daca x<0 atunci x<- -x; <span style="font-family: "Comic Sans MS",cursive;">scrie x;
 * Exemplul 3**

**Probleme:**
**Set I** **Comparări între valorile a două variabile** 1)Date două numere, afişaţi-l pe cel mai mic. Exemplu : Date de intrare : 44 32 Date de ieşire : 32.

2)Se introduc vârstele a doi copii. Afişaţi care copil este mai mare şi diferenţa de vârstă dintre cei doi. Exemplu : Date de intrare : 6 13 date de ieşire : al doilea copil este mai mare cu 7 ani.

3)Se introduc punctajele a doi sportivi. Afişaţi-le în ordine descrescătoare. Exemplu: Date de intrare 100 134 Date de ieşire: 134 puncte 100 puncte

4)Dintr-o cutie cu trei numere se extrag două numere. Cunoscând suma celor două numere extrase, să se afişeze numărul rămas în cutie. Exemplu : date de intrare : numere existente in cutie 5 12 8 suma numerelor extrase 13 date de ieşire : 12.

5)Se dau două numere. Să se înmulţească cel mai mare cu doi şi cel mai mic cu trei şi să se afişeze rezultatele. Exemplu : date de intrare : 3 7 date de ieşire : 9 14

6)Se introduc două numere întregi. Să se testeze dacă primul număr este predecesorul (succesorul) celui de-al doilea şi să se afişeze un mesaj corespunzător. Exemple : date de intrare : 2 4 date de ieşire : Nu ; date de intrare : 5 6 date de ieşire : Da.

**Set II** Compararea valorii unei variabile cu o constantă

1)Se introduc două numere nenule şi un semn de operaţie (+,-,*,/). Să se efectueze cu cele două numere operaţia introdusă şi să se afişeze expresia care s-a calculat urmată de semnul = şi de valoarea ei. Exemplu : Date de intrare 10 6 * Date de ieşire 10*6=60.

2)Se introduc trei date de forma număr ordine pacient, valoare glicemie. Afişaţi numărul de ordine al pacienţilor cu glicemia mai mare decât 100. Exemplu : Date de intrare nr 6 glicemie 90 nr 10 glicemie 107 nr 21 glicemie 110 Date de ieşire 10 21

3)Ionel spune părinţilor doar notele mai mari sau egale cu 7. Într-o zi el a luat trei note. Introduceţi-le în calculator şi afişaţi acele note pe care le va comunica şi părinţilor. Exemplu : Date de intrare 8 7 5 Date de ieşire 8 7.

4)Se introduc două numere. Dacă al doilea număr este diferit de 0, să se afişeze câtul dintre primul şi al doilea, iar dacă este nul, să se afişeze mesajul “Împărţire imposibilă”. Exemple : Date de intrare 10 3 Date de ieşire 3.33 Date de intrare 45 0 date de ieşire Impartire imposibila.

5)Un lift pentru copii acceptă o greutate de maxim 100 kg. Introducând în calculator greutăţile a doi copii, specificaţi prin afişarea unui mesaj corespunzător, dacă POT INTRA AMBII COPII sau INTRA PE RAND. Exemple : Date de intrare : greutati copii 87 50 Date de ieşire : Intra pe rand Date de intrare 45 52 Date de ieşire Pot intra ambii copii.

6)Ionel are voie să se uite la TV 20 de ore pe săptămână. Se introduc numărul de ore cât se uită la TV în fiecare zi din săptămână. Să se verifice dacă va fi pedepsit sau nu. Exemplu: Date de intrare: 3 4 2 2 5 6 1 Date de ieşire: Va fi pedepsit.

7)Să se scrie un program care determină greutatea ideală a unei persoane cunoscând înălţimea, vârsta şi sexul persoanei. Formulele de calcul sunt: Gmasculin = 50 + 0.75 * (inaltime - 150) + (varsta - 20) / 4, Gfeminin = Gmasculin – 10, unde înălţimea este exprimată în cm şi vârsta în ani. Sexul se citeşte sub forma unui caracter, f sau m. Exemplu: Date de intrare: inaltime= 160 varsta=21 sex=f Date de ieşire: greutate= 47.75 kg.

**Set III** **Testarea câtului sau a restului împărţirii întregi** 1)Se dau trei numere. Să se afişeze aceste numere unul sub altul, afişând în dreptul fiecăruia unul dintre cuvintele PAR sau IMPAR. Exemplu : Date de intrare : 45 3 24 Date de ieşire : 45 impar 3 impar 24 par.

2)Se dau două numere nenule. Să se verifice dacă primul se împarte exact la al doilea. Exemplu : Date de intrare : 45 7 Date de ieşire : Nu.

3)Se dau două numere. Să se afişeze acele numere care se împart exact la 7. Exemplu : Date de intrare : 34 28 Date de ieşire : 28.

4)“Mă iubeşte un pic, mult, cu pasiune, la nebunie, de loc, un pic,…”. Rupând petalele unei margarete cu x petale, el (ea) mă iubeşte …. Exemplu: Date de intrare: x=10 Date de ieşire: … de loc.

5)La un concurs se dau ca premii primilor 100 de concurenţi, tricouri de culoare albă, roşie, albastră şi neagră, în această secvenţă. Ionel este pe locul x. Ce culoare va avea tricoul pe care-l va primi? Exemplu : date de intrare : x=38 date de ieşire : rosie.

6)Într-o tabără, băieţii sunt cazaţi câte 4 într-o căsuţă, în ordinea sosirii. Ionel a sosit al n-lea. În a câta căsuţă se va afla? Exemplu : date de intrare : n=69 date de ieşire : casuta 17.

7)Elevii clasei a V-a se repartizează în clase câte 25 în ordinea mediilor clasei a IV-a. Radu este pe locul x în ordinea mediilor. În ce clasa va fi repartizat (A, B, C, D sau E)?. Exemplu : date de intrare : x=73 date de ieşire : C.

8) În Galaxia Reckya toate ceasurile au doar 4 ore. Ştiind că Gygely s-a născut la ora 1 şi că va trăi m ore, să se spună la ce oră va muri Gygely. (m<=50). Se dă numărul m. Se cere ora la care va muri Gygely. Ceasul arată astfel 1 4 2 3 Exemplu: Date de intrare: m=10 Date de ieşire: 3. (www.contaminare.ro)

Set IV Operatori logici

1)Se dau trei numere diferite. Să se afişeze cel mai mare şi cel mai mic. Exemplu : Date de intrare 45 34 78 Date de ieşire max=78 min=34.

2)Se dau trei numere diferite. Afisaţi-le în ordine crescătoare. Exemplu : Date de intrare 4 2 6 Date de ieţire 2 4 6.

3)Se dau trei numere diferite. Afişaţi numărul a cărei valoare este cuprinsă între valorile celorlalte două. Exemplu : Date de intrare 12 14 10 Date de ieşire 12.

4)Se introduc trei date de forma număr curent elev, punctaj. Afişaţi numărul elevului cu cel mai mare punctaj. Exemplu : Date de intrare nr crt 7 punctaj 120 nr crt 3 punctaj 100 nr crt 4 punctaj 119 Date de ieşire punctaj maxim are elevul cu nr crt 7.

5)Se introduc trei numere. Să se verifice dacă formează o secvenţă de numere consecutive. Exemple: Date de intrare 3 4 5 Date de ieşire Da Date de intrare 4 5 7 Date de ieşire Nu.

6) La ora de matematică Gigel este scos la tablă. Profesoara îi dictează trei numere şi îi cere să verifice dacă cele trei numere pot fi laturile unui triunghi. Ajutaţi-l pe Gigel să afle rezultatul. Scrieţi un program care primeşte numerele lui Gigel, care sunt mai mici ca 32000, şi returnează DA sau NU. Observaţie: Trei numere pot fi laturile unui triunghi numai dacă fiecare este mai mic ca suma celorlalte două. Exemple: Date de intrare 3 5 7 Date de ieşire Da Date de intrare 2 5 9 Date de ieşire Nu. 7)Să se verifice dacă o literă introdusă este vocală sau consoană. Exemplu : Date de intrare a Date de ieşire vocala.

8)Se introduc vârstele a 3 persoane. Afişaţi vârstele cuprinse între 18 şi 60 de ani. Exemplu : Date de intrare 56 34 12 Date de ieşire 56 34.

9)Date două numere, afişaţi acele numere care se împart exact la 7 şi la 11. Exemplu : Date de intrare 154 213 Date de ieşire 154.

10)Se dau două numere. Să se verifice dacă numărul mai mare se împarte exact la cel mai mic. Exemplu : Date de intrare 10 250 Date de ieşre 250 se imparte exact la 10.

11)Cunoscând data curentă exprimată prin trei numere întregi reprezentând anul, luna, ziua precum şi data naşterii unei persoane, exprimată la fel, să se facă un program care să calculeze vârsta persoanei respective în număr de ani împliniţi. Exemplu : Date de intrare data curenta 2005 10 25 data nasterii 1960 11 2 Date de ieşre 44 ani.

Set V Probleme diverse

1) Andrei primeşte într-o zi trei note, nu toate bune. Se hotărăşte ca, dacă ultima notă este cel puţin 8, să le spună părinţilor toate notele primite iar dacă este mai mică decât 8, să le comunice doar cea mai mare notă dintre primele două. Introduceţi notele luate şi afişaţi notele pe care le va comunica părinţilor. Exemple : Date de intrare 6 9 9 Date de ieşire 6 9 9 ; Date de intrare 8 5 7 Date de ieşire 8.

2) Se consideră trei numere întregi. Dacă toate sunt pozitive, să se afişeze numărul mai mare dintre al doilea şi al treilea număr, în caz contrar să se calculeze suma primelor două numere. Exemple: Date de intrare 45 23 100 date de ieşire 100 ; Date de intrare 34 -25 10 Date de ieşire 9.

3) Să se afişeze cel mai mare număr par dintre doua numere introduse în calculator. Exemple : Date de intrare 23 45 Date de ieşire nu exista numar par ; Date de intrare 28 14 Date de ieşire 28 ; Date de intrare 77 4 Date de ieşire 4.

4) Pe o masă de biliard sunt bile albe, roşii şi verzi. Din fiecare culoare sunt bile de două dimensiuni: mari şi mici. Să se afişeze câte bile sunt în total pe masa de biliard. Un jucător vrea să-i spuneţi care bile sunt mai multe, cele mici sau cele mari, afişând numărul lor. De ce culoare sunt bilele cele mai numeroase? Precizaţi numărul lor. Exemplu: Date de intrare Nr. bile albe mici: 2 Nr. bile albe mari: 3 Nr. bile rosii mici: 1 Nr. bile rosii mari: 4 Nr. bile verzi mici: 3 Nr. bile verzi mari: 4 Date de ieşire Totalul bilelor: 17 Mari: 11 bile Verzi: 7 bile(www.contaminare.ro).

5) La ferma de găini Copanul este democraţie. Fiecare găină primeşte exact acelaşi număr de boabe de porumb. Cele care nu pot fi împărţite vor fi primite de curcanul Clapon. Să se spună cine a primit mai multe boabe şi cu cât. În caz de egalitate, se va afişa numărul de boabe primite şi cuvântul "egalitate". Datele se vor citi în următoarea ordine: numărul de găini, iar dupa aceea numărul de boabe de porumb. Exemplu: Date de intrare 100 4050 Date de ieşire: Curcanul mai mult cu 10 boabe. (www.contaminare.ro).