Sunteți pe pagina 1din 11

SISTEME DE OPERARE I LIMBAJE DE PROGRAMARE Limbajul C

8. Aplicatii C Aplicatia 1 Sa se scrie un program cara sa calculeze aria si perimetrul unui dreptunghi cunoscand laturile acestuia. a)Schema logica
START L,l

Aria=L*l

Perimetrul=(L+l)*2

Aria, Perimetrul

STOP

b) #include<stdlib.h>

Program C #include <stdio.h>

float L,l,aria,per; main() { printf(Dati lungimile laturilor dreptunghiului :); scanf(%f%f, &L,&l); aria=L*l; per=(L+l)*2; printf(Aria este : %f\n,aria); printf(Perimetrul este : %f\n,per); getch(); } Aplicatia 2 Sa se scrie un program care sa calculeze produsul a doua matrice. a)Schema logica
pagina 1/11 Autor: dr.ing. ec Cezar NECULESCU

SISTEME DE OPERARE I LIMBAJE DE PROGRAMARE Limbajul C START m,n,p, a(m,n),b(n,p)

i=0 j=0 c(i,j)=0 k=0 c(i,j)=c(i,j)+a(i,k)*b(k,j) k=k+1 nu k>=n da j=j+1 nu j>=p da i=i+1 nu i>=m da 1 1 C(m,p)

STOP pagina 2/11 Autor: dr.ing. ec Cezar NECULESCU

SISTEME DE OPERARE I LIMBAJE DE PROGRAMARE Limbajul C

b) Program C #include <stdio.h> #include<stdlib.h> int a[10][10],b[10[10],c[10][10]; int i,j,k,m,n,p; main() { printf(Introduceti nr. linii matricea a :); scanf(%d, &m); printf(Introduceti nr. col. mat. a si nr linii mat. b :); scanf(%d, &n); printf(Introduceti nr. coloane mat. b :); scanf(%d, &p); printf(Introduceti elementele mat. a :\n ); for(i=0;i<m;i++) { for(j=0;j<n;j++){ printf(a[%d,%d] =,i,j); scanf(%d,&a[i][j]); } } printf(Introduceti elementele mat. b \n: ); for(i=0;i<n;i++) { for(j=0;j<p;j++){ printf(b[%d,%d] =,i,j); scanf(%d,&b[i][j]); } } /*Calcul produsului matricelor */ for(i=0;i<m;i++) { for(j=0;j<p;j++){ c[i][j]=0; for(k=0;k<n;k++) c[i][j]+=a[i][k]*b[k][j]; } } printf(Produsul matricelor este :\n );
pagina 3/11 Autor: dr.ing. ec Cezar NECULESCU

SISTEME DE OPERARE I LIMBAJE DE PROGRAMARE Limbajul C

for(i=0;i<m;i++) { for(j=0;j<p;j++) printf(c[%d,%d] = %d\t,i,j,c[i][j]); printf(\n); } getch(); } Aplicatia 3 Sa se scrie un program care sa calculeze radacinile ecuatiei de gradul 2 a)Schema logica
START

a,b,c

delta=b*b-4*a*c nu delta<0 da x1=-b/2/a+sqrt(delta)/2/a x1=-b/2/a-sqrt(delta)/2/a x1,x2 re=-b/2/a im=sqrt(-delta)/2/a

STOP

b) Program C #include <stdio.h> #include <stdlib.h> #include <math.h> double a,b,c,delta,x1,x2;

pagina 4/11

Autor: dr.ing. ec Cezar NECULESCU

SISTEME DE OPERARE I LIMBAJE DE PROGRAMARE Limbajul C

main() { a=0; do { printf(Introduceti coeficientul lui x^2 a=); scanf(%lf, &a); } while (a==0); printf(Introduceti coeficientul lui x b=); scanf(%lf, &b); printf(Introduceti coeficientul liber c=); scanf(%lf, &c); delta=b*b-4*a*c; if (delta<0) { re=-b/2/a; im=sqrt(-delta)/2/a; printf( x1=%lf -%f*i \n,re,im); printf( x2=%lf +%f*i ,re,im);} else { printf( x1=%lf\n, (-b+sqrt(delta))/2/a); printf( x2=%lf, (-b-sqrt(delta))/2/a);} getch(); }

Sa calculul

se

Aplicatia 4 scrie un program pentru factorialului unui numar. a)Schema logica


START n

f=1 pagina 5/11 Autor: dr.ing. ec Cezar NECULESCU

SISTEME DE OPERARE I LIMBAJE DE PROGRAMARE Limbajul C

i=1 f=f*i nu i>n da f

STOP

b) int i,n; double main() { n :);

Program C #include <stdio.h> #include<stdlib.h> f; printf(Dati numarul

%30.0lf } Sa se calculul luate cate

scanf(%d, &n); f=1.0; for(i=2;i<=n;i++) f*=i; printf(Factorialul este : \n,f); getch(); Aplicatia 5 scrie un program pentru aranjamentelor de n k. a)Schema logica

START

n,k

pagina 6/11

Autor: dr.ing. ec Cezar NECULESCU

SISTEME DE OPERARE I LIMBAJE DE PROGRAMARE Limbajul C fn=1 i=1 fn=fn*i nu i>n fnk=1 i=1 fnk=fnk*i nu i>n da da

ank=fn/fnk ank

STOP

b) Program C #include <stdio.h> #include<stdlib.h> int i,n,k; double ank,fn,fnk; main() { printf(Calculul aranjamentelor de n luate cate k.\n); printf(Dati n si k :);
pagina 7/11 Autor: dr.ing. ec Cezar NECULESCU

SISTEME DE OPERARE I LIMBAJE DE PROGRAMARE Limbajul C

scanf(%d%d, &n,&k); fn=1.0; for(i=2;i<=n;i++) fn*=i; fnk=1.0; for(i=2;i<=(n-k);i++) fnk*=i; ank=fn/fnk; printf(Aranjamente de %d luate cate %d = %10.0lf\n,n,k,ank); getch(); } Aplicatia 6 Sa se scrie un program pentru calculul combinarilor de n luate cate k.
START n,k

fn=1 i=1 fn=fn*i nu i>n da 1 1

fk=1 i=1 fk=fk*i nu i>k fnk=1 da i=1 pagina 8/11 fnk=fnk*i i>n-k da Autor: dr.ing. ec Cezar NECULESCU nu

SISTEME DE OPERARE I LIMBAJE DE PROGRAMARE Limbajul C

i=1 Cnk=fn/fnk/fk START

b) #include int i,n,k; double main() { combinarilor k.\n); :);

Program C <stdio.h> #include<stdlib.h> cnk,fn,fnk,fk;

printf(Calculul de n luate cate printf(Dati n si k scanf(%d%d,

&n,&k); fn=1.0; for(i=2;i<=n;i++) fn*=i; fnk=1.0; for(i=2;i<=n-k;i++) fnk*=i; fk=1.0; for(i=2;i<=k;i++) fk*=i; cnk=fn/fnk/fk; printf(Combinari de %d luate cate %d = %10.0lf\n,n,k,cnk); getch();
pagina 9/11 Autor: dr.ing. ec Cezar NECULESCU

SISTEME DE OPERARE I LIMBAJE DE PROGRAMARE Limbajul C

} Aplicatia 7 Sa se scrie un program pentru ridicarea la o putere intreaga a unui numar real. b) Program C #include <stdio.h> #include<stdlib.h> int i,n; double x,xn; main() { printf(Dati numarul si puterea :); scanf(%lf%d, &x,&n); xn=1.0; if (n>0) { for(i=1;i<=n;i++) xn*=x;} else { for(i=1;i<=-n;i++) xn/=x;} printf( %6.3lf ridicat la puterea %3d = %20.0lf\n,x,n,xn); getch(); } Aplicatia 8 Sa se scrie un program care calculeaza suma numerelor pozitive dintr-un vector. b) Program C #include <stdio.h> #include<stdlib.h> int i,n; float x[10],s; main() { printf(Dati dimensiunea vectorului n:); scanf(%d,&n); for(i=0;i<n;i++) { printf(Dati elementul [%d]:,i); scanf(%f,&v[i]); if (v[i]>0) s+=v[i]; }
pagina 10/11 Autor: dr.ing. ec Cezar NECULESCU

SISTEME DE OPERARE I LIMBAJE DE PROGRAMARE Limbajul C

printf( Suma elementelor pozitive este : %f,s); getch(); }

pagina 11/11

Autor: dr.ing. ec Cezar NECULESCU