Sunteți pe pagina 1din 5

Pavel Victor Cristian

411E

Proiect Programare

1.Mod de rulare: La rularea aplicatiei programul necesita introducerea unei parole de acces pentru a continua.Parola de acces este formata din litera mica a alfabetului p.La introducerea gresita a parolei de 4 ori consecutiv programul se inchide(fig.1).Dupa introducerea corecta a parolei, programul cere introducerea de la tastatura a doua variabile x si y, apoi apare un meniu de operatii pentru cele doua variabile.Meniu contine urmatoarele operatii: permutari de x(fig.2),permutari de y,aranajamente de x luate cate y(fig.3),aranajamente de y luate cate x,combinari de x luate cate y,combinari de y luate cate x(fig.4).Dupa alegerea operatiei dorite programul afiseaza rezultatul si cere introducerea cifrei 0 pentru a se inchide sau a oricarei alte taste pentru a reintroduce variabilele si a efectua operatia nou aleasa(fig.4).

Fig .1

Fig .2

Pavel Victor Cristian

411E

Fig.3

Fig.4

2.Codul sursa al programului :


#include <stdio.h> #include <stdlib.h> #include <conio.h> double factorial(int n); double aranjamente (int n,int k); double combinari (int n,int k);

int main() { int i,x,y; int gata,oper; char a; printf("Bun venit! Program realizat de Pavel Victor-Cristian (411E) \n"); i=0; while (a!='p') {

Pavel Victor Cristian

411E

printf("\nVa rugam introduceti parola (Parola=p) (%d incercari ramase):",4-i); a=getch(); i++; if (i==5) exit(1); } gata=1; while(gata!='0') { printf("\nIntroduceti variabila x:"); scanf("%d",&x); printf("Introduceti variabia y:"); scanf("%d",&y); printf("\nFunctiile programului:\n1.Permutari de x.\n2.Permutari de y.\n3.Aranjamente de x luate cate y.\n4.Aranjamente de y luate cate x.\n5.Combinari de x luate cate y.\n6.Combinari de y luate cate x.\n0.Iesire."); printf("\n\nIntroduceti numarul dorit: "); oper=getche(); switch(oper) { case '1':printf("\nPermutari de %d: %g\n",x, factorial(x)); break; case '2':printf("\nPermutari de %d: %g\n",y, factorial(y)); break; case '3':if (x>y) printf("\nAranjamente de %d luate cate %d: %g\n",x,y, aranjamente(x,y)); else printf("\nEroare de calcul,al doilea numar este mai mare dacat primul."); break; case '4':if (y>x) printf("\nAranjamente de %d luate cate %d: %g\n",y,x, aranjamente(y,x)); else printf("\nEroare de calcul,al doilea numar este mai mare dacat primul."); break; case '5': if (x>y) printf("\nCombinari de %d luate cate %d: %g\n",x,y, combinari(x,y)); else printf("\nEroare de calcul,al doilea numar este mai mare dacat primul."); break; case '6': if (y>x) printf("\nCombinari de %d luate cate %d: %g\n",y,x, combinari(y,x)); else printf("\nEroare de calcul,al doilea numar este mai mare dacat primul."); break; case '0': exit(1); } printf("\nTastand 0 iesiti din program,orice alta tasta pentru a continua:"); gata=getche(); } getch(); }

Pavel Victor Cristian

411E

double factorial(int n) { double f; int i; for (i=2,f=1;i<=n;i++) f*=i; return(f); } double aranjamente (int n,int k) { double f; f=factorial(n)/factorial(n f=factorial(n)/factorial(n-k); return(f); } double combinari (int n,int k) { double f; f=factorial(n)/(factorial(k)*factorial(n f=factorial(n)/(factorial(k)*factorial(n-k)); return(f); }

3.Schema logica: *schema functiei factorial:

Pavel Victor Cristian

411E

*Schema programului principal:

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