culegere probleme programare

Download Culegere probleme programare

Post on 13-Jul-2015

436 views

Category:

Documents

22 download

Embed Size (px)

TRANSCRIPT

PROGRAMARE IN LIMBAJUL C PROGRAMARE IN LIMBAJUL C 1 1. PROGRAME CU DATE NUMERICE 2 PROBLEME PROPUSE 12 SOLUTII LA PROBLEME PROPUSE 14 2. PROGRAME CU VECTORI SI MATRICE 21 EXEMPLE DE PROGRAME 21 PROBLEME PROPUSE 24 SOLUTII LA PROBLEME PROPUSE 26 3. DEFINIREA SI UTILIZAREA DE FUNCTII 38 EXEMPLE DE PROGRAME 38 PROBLEME PROPUSE 43 SOLUTII LA PROBLEME PROPUSE 45 4. PROGRAME SI FUNCTII CU SIRURI DE CARACTERE EXEMPLE DE FUNCTII SI PROGRAME 60 PROBLEME PROPUSE 65 SOLUTII LA PROBLEME PROPUSE 67 5. PROGRAME SI FUNCTII CU STRUCTURI 76 EXEMPLE DE PROGRAME SI FUNCTII 76 PROBLEME PROPUSE 82 SOLUTII LA PROBLEME PROPUSE 84 6. PROGRAME CU DATE ALOCATE DINAMIC 93 EXEMPLE DE PROGRAME 93 PROBLEME PROPUSE 97 SOLUTII LA PROBLEME PROPUSE 98

60

1. PROGRAME CU DATE NUMERICE (UTILIZARE INSTRUCTIUNI SI FUNCTII DE I/E) EXEMPLE DE PROGRAME Exemple de afisare pe ecran si citire de la tastatura E1.1 Afisarea unui text constant pe ecran. #include void main () { printf (" Text afisat pe ecran"); } E1.2 Afisarea valorilor unor variabile intregi #include void main () { int a=2, b=-3; printf ("%d %d \n", a,b); // printf ("%i %i \n",a,b); // %i este identic cu %d } E1.3 Afisare text constant si valori variabile intregi #include void main () {

int a=2, b=-3; printf ("a= %d, b= %d \n", a,b); } E1.4 Citire si afisare numar intreg #include void main () { int n; printf ("n= "); scanf ("%d", &n); printf ("s-a citit %d ", n); } E1.5 Citire si afisare numer intreg lung #include void main () { long a; scanf ("%ld", &a); printf ("s-a citit %ld ", a); } E1.6 Citire si afisare numar real #include void main () { float x; printf ("x= "); scanf ("%f", &x); printf ("s-a citit %f ", x); } E1.7 Afisare rezultat functie de tip "double" #include #include void main () { printf (" sqrt(2)=%lf", sqrt(2)); } E1.8 Afisare rezultat functie, dupa conversie la intreg. #include #include void main () { printf (" sqrt(25)=%d", (int) sqrt(25)); } E1.9 Afisare cu o precizie dorita #include #include void main () { printf ("%6.0f", sqrt(25)); } E1.10 Afisarea unor numere pe coloane de dimensiuni egale

#include void main () { int a,b,c; scanf ("%d%d%d",&a,&b,&c); printf ("%6d%6d%6d \n",a,b,c); } E1.11 Afisare numere reale foarte mari sau foarte mici (cu exponent) #include #include void main () { double x,y ; x=exp(20); y=pow(10,10); printf ("%e %e \n",x,y); } Exemple cu expresii si instructiuni de atribuire E1.12 Calcul arie triunghi cu laturi date #include #include void main () { float a,b,c,p,s; printf("Lungimi laturi:"); scanf ("%f%f%f",&a,&b,&c); p=(a+b+c)/2; s=sqrt(p*(p-a)*p-b)*(p-c)); printf ("%.2f \n", s); // cu 2 zecimale dupa virgula }

E1.13 Calculul unghiuri dintr-un triunghi (in radiani) #include #include void main () { float a,b,c,ua,ub,uc; printf("Lungimi laturi:"); scanf ("%f%f%f",&a,&b,&c); ua = acos ( (b*b+c*c-a*a)/(2*b*c) ); ub = acos ( (a*a+c*c-b*b)/(2*a*c) ); uc = acos ( (b*b+a*a-c*c)/(2*a*b) ); printf ("%6.2f \n",ua+ub+uc); }

// PI=3.14

E1.14 Calcul lungime si panta segment dintre doua puncte date #include #include #include void main () { float x1,y1,x2,y2, d,u; printf ("x1,y1: "); scanf("%f%f",&x1,&y1); printf ("x2,y2: "); scanf("%f%f",&x2,&y2);

d= sqrt ( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) ); if ( x2 != x1) u = atan ((y2-y1)/(x2-x1)); else u= MAXFLOAT; // verticala (panta infinita) printf ("%e %e \n", d,u); } E1.15 Afisare cat si rest impartire intreaga numere cu semn. #include void main () { int a=7,b=2; printf ("a=%d printf ("a=%d printf ("a=%d printf ("a=%d } Exemple cu instructiuni "if" si "switch" Directiva "include " si altele necesare nu mai apar in toate exemplele, dar trebuie adaugate pentru compilarea corecta a programelor. E1.16 Verifica daca un caracter dat este o litera ( fie mare, fie mica) void main () char ch; ch= getchar(); if ( ch >='a' && ch ='A' && ch