Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ...

26
INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. - 1 – (C) 2007 - Mircea Sabău INFORMATICĂ Suport de lucru pentru anul I de studiu - gimnaziu - soluţiile exerciţiilor şi problemelor -

Transcript of Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ...

Page 1: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 1 – (C) 2007 - Mircea Sabău

INFORMATICĂ

Suport de lucru pentru anul I de studiu - gimnaziu - soluţiile exerciţiilor şi problemelor -

Page 2: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 2 – (C) 2007 - Mircea Sabău

I. INTRODUCERE Exerciţiu Să se scrie următoarele numere zecimale sub forma notaţiei în baza 10 (zecimală). 1209(10) = 10010111001 (2) 804(10) = 1100100100 (2) 7180(10) = 1110000001100 (2) Exerciţiu Să se scrie următoarele numere binare în baza zece. 101001(2) = 41 (10) 110010(2) = 50 (10) 011001(2) = 25 (10) Exerciţiu Să se scrie următoarele numere zecimale în baza doi. 39(10) = 100111 (2) 47(10) = 101111 (2) 64(10) = 1000000 (2) TEMĂ 1. Să se scrie următoarele numere din baza 10 în baza 2: 2(10) = 10(2) 4(10) = 100(2) 8(10) = 1000(2) 16(10) = 10000(2) 31(10) = 11111 (2) 120(10) = 1111000 (2) 256(10) = 100000000 (2) 2. Să se scrie următoarele numere din baza 2 în baza 10: 1100(2) = 12 (10) 111(2) = 7 (10) 1000(2) = 8 (10) 101011(2) = 43 (10) 3. De câţi biţi avem nevoie pentru a putea reprezenta în baza 2 numărul 65(10)? 65(10) = 1000001 (2) rezultă că avem nevoie de 7 biţi. 4. Care este cel mai puţin semnificativ bit al numărului 38(10) reprezentat în baza 2? 38(10) = 100110 (2), rezultă că cel mai puţin semnificativ bit este 0. 5. Se dă numărul zecimal 29(10). Ce valoare are bitul 1 în reprezentarea binară a acestui număr? 29(10) = 11101 (2)

număr bit 7 6 5 4 3 2 1 0 valoare bit 0 0 0 1 1 1 0 1

rezultă că bitul 1 are valoarea 0.

Page 3: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 3 – (C) 2007 - Mircea Sabău

6. Să se scrie în baza 2 codul ASCII al literei mari B. Codul ASCII, în baza 10, al literei mari B este 66. 66 (10) = 1000010 (2)

Page 4: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 4 – (C) 2007 - Mircea Sabău

II. DE LA ALGORITM LA PROGRAMUL C Exerciţiu Completaţi blocurile schemei logice şi scrieţi algoritmul în limbajul pseudocod pentru următoarea prolemă: Se cunosc lungimile laturilor unui teren agricol de formă triunghiulară (în metri). Determinaţi câţi metri de sârmă sunt necesari pentru împrejmuirea lui. Date de intrare: lat1 (latura 1), lat2 (latura 2), lat3 (latura 3) Date de ieşire: perim Pseudocod: Start citeşte(lat1) citeşte(lat2) citeşte(lat3) perim = lat1+lat2+lat3 scrie(perim) Stop

Schema logică

Page 5: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 5 – (C) 2007 - Mircea Sabău

TEMĂ 1. Completaţi blocurile schemei logice şi scrieţi algoritmul în limbajul pseudocod pentru următoarea prolemă: Pentru echipa de fotbal FC Steaua calculaţi “golaverajul” ştiind că acesta se calculează ca diferenţa dintre numărul de goluri marcate şi numărul golurilor primite. Date de intrare: gm (goluri marcate), gp (goluri primite) Date de ieşire: gv (golaverajul) Pseudocod: Start citeşte(gm) citeşte(gp) gv = gm - gp scrie(gv) Stop

Schema logică

Page 6: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 6 – (C) 2007 - Mircea Sabău

2. Reprezentaţi algoritmul sub formă de schemă logică şi limbaj pseudocod pentru următoarea problemă: Un alergător parcurge un traseu a cărui lungime o cunoaşte, fiind exprimată în km. Câţi metri are traseul alergătorului? Date de intrare: tkm (traseu exprimat în kilometri) Date de ieşire: tm (traseu exprimat în metri) Schema logică Limbaj pseudocod

Start citeşte(tkm) tm = tkm*1000 scrie(tm) Stop

Page 7: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 7 – (C) 2007 - Mircea Sabău

3. Concepeţi un enunţ pentru problema care are ca algoritm schema logică reprezentată mai jos.

Enunţul problemei: Ionuţ va călători cu trenul mai multe zile. Numărul zilelor este scris pe biletul de călătorie. Câte ore va călători Ionuţ?

Page 8: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 8 – (C) 2007 - Mircea Sabău

III. DECLARAREA VARIABILELOR ŞI CONSTANTELOR Exerciţiu: Subliniaţi numele corecte pentru variabile din următoarea listă: 32_a, a_32, x1, x2, s$, $b, xy, lung camera, lung_camera Exerciţiu: Completaţi în coloana liberă de tip de date veţi folosi pentru a lucra cu: alocaţia unui elev număr real (float sau double) preţul unei cărţi număr real (float sau double) numărul de elevi ai unei clase număr întreg (int) numele profesorilor şir de caractere (char []) numărul cărţilor dintr-o bibliotecă număr întreg (int) autorii cărţilor şir de caractere (char []) Exerciţiu: Precizaţi ce se afişează în urma executării următoarelor două programe C: #include <stdio.h> void main(void){ printf(“Sunt un elev\n”); printf(“pasionat de informatica\n”); printf(“de la Gimnaziul George Cosbuc.\n”); }

#include <stdio.h> void main(void){ printf(“1 iunie”); printf(“2007”); printf(“Tirgu Mures”); }

Se afişează: Sunt un elev pasionat de informatica de la Gimnaziul George Cosbuc.

Se afişează: 1 iunie2007Tirgu Mures

Exerciţiu: Programele următoare citesc trei note la informatică ale unui elev şi trebuie să le afişeze: a) unele după altele b) unele sub altele Completaţi programele astfel încât să răspundă cerinţelor: #include <stdio.h> void main(void) { int n1, n2, n3; printf(“Introduceti notele\n”); scanf(“%d”, &n1); scanf(“%d”, &n2); scanf(“%d”, &n3); printf(“%d”, n1); printf(“%d”, n2); printf(“%d”, n3); }

#include <stdio.h> void main(void) { int nota1, nota2, nota3; printf(“Introduceti notele\n”); scanf(“%d”, &nota1); scanf(“%d”, &nota2); scanf(“%d”, &nota3); printf(“%d\n”, nota1); printf(“%d\n”, nota2); printf(“%d”, nota3); }

Page 9: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 9 – (C) 2007 - Mircea Sabău

TEMĂ 1. Se citesc numele şi greutatea (în grame) a doi copii. Să se scrie programul C, care citeşte aceste date de intrare şi apoi afişează numele copiilor şi greutatea lor în kilograme, ca în exemplul de mai jos: Exemplu: Programul citeşte Adina 35000 Dan 41000 Programul afişează Adina – 35kg Dan – 41kg

#include <stdio.h> void main(void) { char nume1[80], nume2[80]; int ggrame1, ggrame2, gkilograme1, gkilograme2; printf(“Introduceti numele primului copil: ”); scanf(“%s”, nume1); printf(“Introduceti greutatea in grame a primului copil: ”); scanf(“%d”, &ggrame1); printf(“Introduceti numele celui de al doilea copil: ”); scanf(“%s”, nume2); printf(“Introduceti greutatea in grame a celui de al doilea copil: ”); scanf(“%d”, &ggrame2); gkilograme1=ggrame1/1000; gkilograme2=ggrame2/1000; printf(“%s - %dkg\n”,nume1, gkilograme1); printf(“%s - %dkg”,nume2, gkilograme2); }

Page 10: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 10 – (C) 2007 - Mircea Sabău

IV. CALCULE CU DATE DE TIP ÎNTREG Exerciţiu: Stabiliţi valorile expresiilor şi completaţi în tabelul de mai jos conform modelului: Expresia Valoarea expresiei 123+4*5 123+20=143 125%5 0 5*24%5+25/10 120%5+2=0+2=2 14+(7*(3+9/4)) 14+(7*(3+2))=14+(7*5)=14+35=49 24/9+2*5%6 2+10%6=2+4=6 Exerciţiu: Alcătuiţi un program care să afişeze valorile expresiilor de la exerciţiul anterior. Verificaţi dacă valorile obţinute cu ajutorul calculatorului corespund cu cele scrise de voi în tabel.

#include <stdio.h> void main(void) { int a; a=123+4*5; printf("%d\n", a); a=125%5; printf("%d\n", a); a=5*24%5+25/10; printf("%d\n", a); a=14+(7*(3+9/4)); printf("%d\n", a); a=24/9+2*5%6; printf("%d\n", a); }

Exerciţiu: Care sunt valorile variabilelor a şi b după ce s-au executat instrucţiunile de atribuire?

1. a=3; b=a/3; b=b+1; a=.......3..............; b=........2.............. 2. a=100; a=a+20; b=a*4; a=.........120............; b=........480...........

Page 11: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 11 – (C) 2007 - Mircea Sabău

3. a=100/25; b=100%25; a=a+b; a=.........4............; b=.........0............. 4. b=99; a=b*3; a=b/3; a=........33.............; b=.........99.............

TEMĂ 1. Se cunoaşte salariul pe luna noiembrie al unui muncitor. Cât a avut muncitorul salariul în luna octombrie, ştiind că salariul pe luna noiembrie este cu 500 lei mai mare decât cel din luna octombrie? Scrieţi programul C.

#include <stdio.h> void main(void) { int snoi, soct; printf("Salariul pe luna noiembrie este: "); scanf("%d",&snoi); soct=snoi-500; printf("Salariul pe luna octombrie a fost: %d",soct); }

2. Ce va afişa următorul program?

#include <stdio.h> void main(void) { const char c[]=”Rezultatul este“; int a, b; a=100; b=20; a=a+b; a=a/10; printf(“%s %d”,c,a); }

Programul va afişa mesajul: Rezultatul este 12

Page 12: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 12 – (C) 2007 - Mircea Sabău

V. CALCULE CU DATE DE TIP REAL Exerciţiu: Se citesc a, b şi c, lungimile laturilor unui triunghi. Să se calculeze semiperimetrul triunghiului, scriind programul C. Programul C

#include <stdio.h>

void main(void) {

float a, b, c; float sp; printf("Introduceti latura a= "); scanf("%f",&a); printf("Introduceti latura b= "); scanf("%f",&b); printf("Introduceti latura c= "); scanf("%f",&c); sp=(a+b+c)/2; printf("Semiperimetrul este %f", sp);

}

Exerciţiu: Regula celor trei pahare Care este efectul execuţiei următorului program ştiind că a, b şi aux sunt numere reale.

/* Regula celor trei pahare */ #include <stdio.h> void main(void) {

float a, b, aux; printf("Introduceti a= "); scanf("%f",&a); printf("Introduceti b= "); scanf("%f",&b); aux=a; a=b; b=aux; printf("a=%f si b=%f", a,b);

} a) dacă a=10.2 şi b=9.3 programul afişează 9.3 si 10.2 b) dacă a=100 şi b=200 programul afişează 200 si 100 c) dacă a=-60.53 şi b=10 programul afişează 10 si -60.53 d) dacă a=10 şi b=9.27 programul afişează 9.27 si 10 e) dacă a=-60 şi b=1000.1 programul afişează 1000.1 si -60

Page 13: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 13 – (C) 2007 - Mircea Sabău

TEMĂ 1. Se cunosc baza mare, baza mică şi înălţimea unui trapez. Să se calculeze aria lui. Scrieţi programul C.

(Formula de calcul a ariei este A = (B+M)*H/2, unde am notat cu B baza mare, cu M baza mică, cu H înălţimea şi cu A aria trapezului). Exemplu: pentru B=16, M=8 şi H=3, se va afişa 36.

Programul C

#include <stdio.h> void main(void) {

float B, M, H, A; printf("Introduceti baza mare B= "); scanf("%f",&B); printf("Introduceti baza mica M= "); scanf("%f",&M); printf("Introduceti inaltimea H= "); scanf("%f",&H); A=(B+M)*H/2; printf("Aria este %f", A);

}

Page 14: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 14 – (C) 2007 - Mircea Sabău

VI. OPERAŢIA DE DECIZIE ŞI INSTRUCŢIUNEA if Exerciţiu: Completaţi următoarele enunţuri: 1. O expresie logică poate lua valoarea FALSE sau TRUE. 2. În expresiile logice pot apărea şi operatorii logici &&, || şi !. 3. În expresiile logice se pot utiliza şi operatorii relaţionali <, >, <=, >=, ==, !=. Exerciţiu: Se citesc două numere naturale a şi b, mai mici decât 65535. Dacă a este mai mc decât b, se interschimbă valorile celor două variabile. Să se calculeze câtul şi restul împărţirii celor două numere. Exemplu: pentru a=5000 şi b=5001 se vor afişa câtul 1 şi restul 1. Programul C #include <stdio.h> void main(void) { int a,b; /* un intreg, adica pana la 65535 */ int aux; int rest, cat; printf("Introduceti primul numar: "); scanf("%d",&a); printf("Introduceti al doilea numar: "); scanf("%d",&b); if(a<b) { aux=a; a=b; b=aux; } cat=a/b; rest=a%b; printf("Catul %d si restul %d",cat, rest); }

Page 15: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 15 – (C) 2007 - Mircea Sabău

TEMĂ 1. Andrei este elev în clasa a V-a şi tatăl său i-a promis o excursie la munte dacă la teza la matematică ia cel puţin nota 6, iar la teza la română ia nota 10. Se citesc cele două note obţinute de Andrei la teze şi se afişează dacă băiatul pleacă sau nu în excursie. Programul C #include <stdio.h> void main(void) { int mate,romana; printf("Introduceti nota la mate: "); scanf("%d",&mate); printf("Introduceti nota la romana: "); scanf("%d",&romana); if(mate>=6 && romana==10) { printf("Andrei pleaca in excursie"); } else { printf("Andrei nu pleaca in excursie"); } }

Page 16: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 16 – (C) 2007 - Mircea Sabău

VII. PROBLEME DE DIVIZIBILITATE Exerciţiu: Dacă a reprezintă o variabilă întreagă, ce expresie se utilizează pentru a testa dacă a este divizibil cu 10? a) if(a/10 == 0) b) if(a%10 == 10) c) if(a%10 == 0) d) if(a%10 == 1) Exerciţiu: Dacă a reprezintă o variabilă întreagă, ce expresie se utilizează pentru a testa dacă a este divizibil cu 3? a) if(a/3) b) if(a%3 == 2) c) if(a/3 == 0) d) if(a%3 == 0) Exerciţiu: Scrieţi un program care calculează cifra zecilor a unui număr natural n. Programul C #include <stdio.h> void main(void) { int n, z; printf("Scrieti un numar natural: "); scanf("%d",&n); z=(n%100)/10; printf("Cifra zecilor este %d",z); } TEMĂ 1. Un elev este declarat respins la examen dacă una din cele două note (n1, respectiv n2) obţinute este sub 5 sau dacă media lor aritmetică este sub 5. Care dintre următoarele expresii verifică aceste condiţii?

a) if(n1 || n2<5 && (n1+n2)/2) b) if(n1 <5 || n2<5 || (n1+n2)/2) c) if((n1 <5) || (n2<5) || ((n1+n2)/2<5) d) if(n1 <5 || n2<5 || n1+n2/2<5)

Page 17: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 17 – (C) 2007 - Mircea Sabău

2. De la matematică se cunoaşte că dacă ultimele două cifre ale unui număr formează un număr divizibil cu 4, atunci numărul respectiv este divizibil cu 4. Să se scrie programul care citeşte nu număr natural de trei cifre n şi care verifică dacă este divizibil cu 4 folosind criteriul de mai sus. Programul va citi numărul şi afişa unul din mesajele de mai jos:

• este divizibil cu 4 • nu este divizibil cu 4

Programul C #include <stdio.h> void main(void) { int n, zu; printf("Scrieti un numar natural de trei cifre: "); scanf("%d",&n); zu=n%100; if(zu%4 == 0) { printf("numarul este divizibil cu 4"); } else { printf("numarul nu este divizibil cu 4"); } }

Page 18: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 18 – (C) 2007 - Mircea Sabău

VIII. INSTRUCŢIUNEA switch Problemă: Se introduce de la tastatură o cifră zecimală şi se cere să se obţină denumirea acesteia. De exemplu, dacă se introduce de la tastatură 5, programul va afişa cinci. Scrieţi programul C. Programul C #include <stdio.h> void main(void) { int cz; printf("Scrieti o cifra zecimala: "); scanf("%d",&cz); switch(cz) { case 0:printf("zero"); break; case 1:printf("unu"); break; case 2:printf("doi"); break; case 3:printf("trei"); break; case 4:printf("patru"); break; case 5:printf("cinci"); break; case 6:printf("sase"); break; case 7:printf("sapte"); break; case 8:printf("opt"); break; case 9:printf("noua"); break; default:printf("%d nu este o cifra zecimala !!!"); } }

Page 19: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 19 – (C) 2007 - Mircea Sabău

TEMĂ: 1. Se dă următorul program. Încercaţi să descoperiţi ce anume realizează acesta. Program C necunoscut #include <stdio.h> #include <conio.h> #include <dos.h> void main(void) { int c; int gata; gata=0; while(gata==0) { c=getch(); switch(c) { case '1': sound(262); delay(200); nosound(); break; case '2': sound(294); delay(200); nosound(); break; case '3': sound(330); delay(200); nosound(); break; case '4': sound(349); delay(200); nosound(); break; case '5': sound(392); delay(200); nosound(); break; case '6': sound(440); delay(200); nosound(); break; case '7': sound(494); delay(200); nosound(); break; case '8': sound(523); delay(200); nosound(); break; case '0': gata=1; } } } Descrieţi cu cuvintele voastre ce anume face programul: Acest program emulează notele gamei Do major pe tastele 1 – Do 1 2 – Re 3 – Mi 4 – Fa 5 – Sol 6 – La 7 – Si 8 – Do 2 Dacă se apasă tasta 0 programul se termină. Altfel, aşteaptă la infinit apăsarea unei taste.

Page 20: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 20 – (C) 2007 - Mircea Sabău

2. Se citeşte un număr n, corespunzător unei luni calendaristice (de exemplu, pentru luna ianuarie, n este 1, pentru februarie este 2, pentru martie 3 etc.). Să se determine trimestrul calendaristic corespunzător. Se va verifica corectitudinea datei de intrare. Exemplu: dacă se citeşte de la tastatură numărul 7, programul va afişa trimestrul trei. Programul C #include <stdio.h> void main(void) { int luna; printf("Introduceti numarul lunii: "); scanf("%d",&luna); switch(luna) { case 1: case 2: case 3: printf("trimestrul unu"); break; case 4: case 5: case 6: printf("trimestrul doi"); break; case 7: case 8: case 9: printf("trimestrul trei"); break; case 10: case 11: case 12: printf("trimestrul patru"); break; default: printf("%d nu este un numar de luna! Trebuie sa fie cuprins intre 1 si 12!"); } }

Page 21: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 21 – (C) 2007 - Mircea Sabău

IX. ALGORITMI CICLICI Exerciţiu: Să se verifice dacă un număr natural n citit de la tastatură este divizibiul cu 3, conform criteriului de divizibilitate cu 3 (dacă suma cifrelor lui n este multiplu de 3, atunci n este divizibil cu 3). Exemplu: pentru n = 333999, rezultatul va fi este divizibil cu 3, iar pentru n = 46, rezultatul va fi nu este divizibil cu 3. Programul C #include <stdio.h> void main(void) { long int n, s, r; printf("Scrieti un numar n= "); scanf("%ld",&n); s=0; while(n>0) { r=n%10; s=s+r; n=n/10; } if((s%3) == 0) /* verific daca s este divizibil cu 3 */ { printf("este divizibil cu 3"); } else { printf("nu este divizibil cu 3"); } }

Page 22: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 22 – (C) 2007 - Mircea Sabău

TEMĂ 1. Se citeşte un număr natural n. Să se calculeze produsul cifrelor sale. Indicaţie: o variabilă p se iniţializează cu 1; se aplică în mod repetat formula de calcul p = p (anterior) * factorul curent Programul C #include <stdio.h> void main(void) { long int n, p, r; printf("Scrieti un numar n= "); scanf("%ld",&n); p=1; /* initializez produsul cu 1 */ while(n>0) { r=n%10; p=p*r; n=n/10; } printf("Produsul cifrelor sale este %ld",p); }

Page 23: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 23 – (C) 2007 - Mircea Sabău

2. Se citeşte un număr natural n. Să se calculeze produsul cifrelor sale impare. Dacă nu are asemenea cifre în componenţa sa, atunci se afişează nu are cifre impare. Exemplu: pentru n = 2347, rezultatul va fi 21, iar pentru n = 224466, rezultatul va fi nu are cifre impare. Programul C #include <stdio.h> void main(void) { long int n, p, r; printf("Scrieti un numar n= "); scanf("%ld",&n); p=1; /* initializez produsul cu 1 */. while(n>0) { r=n%10; if((r%2) == 1) /* verific daca este impar */ { p=p*r; } n=n/10; } if(p==1) { printf("nu are cifre impare"); } else { printf("Produsul cifrelor impare este %ld",p); } }

Page 24: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 24 – (C) 2007 - Mircea Sabău

X. ALGORITMI CICLICI Exerciţiu: Se cunosc înălţimile celor n băieţi dintr-o clasă (1<=n<=30). Calculaţi şi afişaţi cea mai mare înălţime, ştiind că înălţimile sunt numere întregi, exprimate în centimetri. Date de intrare: n (numărul de băieţi) şi h (păstrează pe rând înălţimea fiecărui băiat din cei n băieţi) Date de ieşire: hmax (înălţimea maximă) Indicaţie: variabila hmax, în care se va obţine rezultatul se iniţializează cu valoarea 0, o valoare pe care înălţimile băieţilor nu o pot lua niciodată. Programul C #include <stdio.h> void main(void) { int n, h, hmax, i; printf("Numarul de baieti n= "); scanf("%d",&n); hmax=0; for(i=1; i<=n; i++) { printf("Inaltimea baiatului %d este h=",i); scanf("%d",&h); if(h>hmax) { hmax=h; } } printf("Inaltimea maxima este: %d", hmax); }

Page 25: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 25 – (C) 2007 - Mircea Sabău

TEMĂ 1. Un lift parcurge distanţa dintre două etaje a şi b (a şi b se citesc de la tastatură). Să se afişeze toate etajele parcurse, în ordinea atingerii lor. Exemple: pentru a=4 şi b=7 programul va scrie 4 5 6 7; pentru a=10 şi b= 8 programul va scrie 10 9 8. Programul C #include <stdio.h> void main(void) { int a, b, i; printf("Etajul de pornire a="); scanf("%d",&a); printf("Etajul de oprire b="); scanf("%d",&b); if(a<b) { for(i=a;i<=b;i++) { printf("%d ",i); } } else { for(i=a;i>=b;i--) { printf("%d ",i); } } }

Page 26: Solutii Informatica clasa a V-amsabau.xhost.ro/?download=Solutii_Informatica_V.pdf · INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor. -

INFORMATICĂ PENTRU GIMNAZIU – anul I de studiu Soluţiile exerciţiilor şi problemelor.

- 26 – (C) 2007 - Mircea Sabău

2. Ce afişează următorul program?

#include <stdio.h> void main(void) { int i,j,p; for(i=7;i<=8;i++) { for(j=1;j<=9;j++) { p=i*j; printf("%d x %d = %d\n",i,j,p); } printf("\n"); } }

Rezultatul afişat Afişează tabla înmulţirii cu 7 şi cu 8, astfel: 7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49 7 x 8 = 56 7 x 9 = 63 8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64 8 x 9 = 72