Sunteți pe pagina 1din 10

#include<stdio.

h>

typedef int* vector;

void citire(vector a, int n)

printf("Introduceti elementele:\n");

for(int i=0;i<n;i++)

printf("\telem %d= ",i+1);

scanf("%d",&a[i]);

void afisare(vector a, int n)

printf("\nSirul este: ");

for(int i=0;i<n;i++)

printf("%d ",a[i]);

int suma1(vector a, int n)

int s=0;

for(int i=0;i<n;i++)

s+=a[i]; //s=s+a[i];

return s;

int produs(vector a, int n)

int p=1;
for(int i=0;i<n;i++)

p*=a[i];

return p;

float media(vector a, int n)

return (float)suma1(a,n)/n;

void sortare(vector a, int n)

int aux;

for(int i=0;i<n-1;i++)

for(int j=i+1;j<n;j++)

if(a[i]>a[j]) //sortare ascendenta

aux=a[i];

a[i]=a[j];

a[j]=aux;

int cautare(vector a, int n, int e)

for(int i=0;i<n;i++)

if(a[i]==e)

return i+1;

return 0;

}
void main()

vector v;

int n;

citire(v,n); //apelul functiei de citire

afisare(v,n);

int s1=suma1(v,n);

printf("\n\nSuma elementelor: %d",s1);

int p=produs(v,n);

printf("\nProdusul elementelor: %d",p);

float m=media(v,n);

printf("\nMedia elementelor: %.2f",m);

sortare(v,n);

afisare(v,n);

int elem;

printf("\nDati un element ce se doreste a fi cautat: ");

scanf("%d",&elem);

if(cautare(v,n,elem)) //rezultat diferit de 0

printf("\tElementul se gaseste pe pozitia %d", cautare(v,n,elem));

else

printf("\tElementul nu se afla in sir");

}
Să se realizeze un program care încarcă numerele de la 1 la 12 într-o matrice bidimensională şi le
afişează rând cu rând, după care realizează interschimbari între liniile acesteia. De asemenea se vor
obţine primul, respectiv ultimul element dintr-o matrice tablou.

//macrouri de tip constante pentru numarul de linii, respectiv de coloane

#define lin 3

#define col 4

#include<stdio.h>

//definirea unui tip matrice cu un numar specificat de linii si coloane

typedef int matrice[lin][col];

//o prima functie de atribuire a valorilor de la 1 la 12 intr-o matrice bidimensionala

void atribuire1(matrice a)

int k=1,i,j;

for(i=0;i<lin;i++)

for(j=0;j<col;j++)

a[i][j]=k;

k++;

//o alta functie de atribuire a valorilor de la 1 la 12 intr-o matrice bidimensionala

void atribuire2(matrice a)

int i,j;
for(i=0;i<lin;i++)

for(j=0;j<col;j++)

a[i][j]=(i*col)+j+1;

//afisarea primului, respectiv, al ultimului element dintr-o matrice

void afis_prm_ult(matrice a)

printf("\nPrimul element este: %d",a[0][0]);

printf("\nUltimul element este: %d\n",a[lin-1][col-1]);

//afisarea unei matrice bidimensionale sub forma unui tablou

void afisare(matrice a, char c)

int i,j;

printf("\n");

printf("\nMatricea %c este:\n",c);

for(i=0;i<lin;i++)

for(j=0;j<col;j++)

printf("%4d",a[i][j]);

printf("\n");

//interschimbarea a doua linii citire intr-o matrice

void interschimbare(matrice a)

int x,y,j,aux;
printf("\nDati linia care se doreste a se interschimba : ");

scanf("%d",&x);

printf("Dati linia cu care se doreste interschimbarea : ");

scanf("%d",&y);

/* Interschimbarea între continutul liniei x cu y se face element cu

element prin parcurgerea intregii coloane. */

for(j=0;j<col;j++)

aux=a[x-1][j];

a[x-1][j]=a[y-1][j];

a[y-1][j]=aux;

//functia principala in rulare

void main()

matrice a,b;

atribuire1(a);

atribuire2(b);

afis_prm_ult(a);

afisare(a,'A');

afisare(b,'B');

interschimbare(a);

afisare(a,'A');

getchar();
int k;

scanf("%d", k);

10) Fie declaraţiile : int a[20]; int n; float e; Să se determine valoarea expresiei e în fiecare din
cazurile:

a) e = x1+x2+x3+…+xn;

b) e = x1*x2*x3*…*xn;

c) e = media aritmetica a componentelor din vector;

d) e = suma patratelor componentelor din vector;

e) e = suma cuburilor componentelor negative din vector;

f) e = x1-x2+x3-x4+…±xn

#include<stdio.h>

//introducere date in sir

void citire(int b[], int* n)

printf("\nIntroduceti numarul de elemente: ");

scanf("%d", n);

printf("\nIntroduceti elementele:\n ");

for(int i=0; i<*n; i++)

printf("\nElem %d:", i+1);

scanf("%d", &b[i]);

int expresie1 (int a[20], int n)

{
int e=0;

for(int i=0; i<n; i++)

e=e+a[i];

return e;

int expresie2 (int a[20], int n)

int e=1;

for(int i=0; i<n; i++)

e=e*a[i];

return e;

float expresie3 (int a[20], int n)

float e=0;

for(int i=0; i<n; i++)

e=e+a[i]/(float)n;

return e;

int expresie4 (int a[20], int n)

int e=0;

for(int i=0; i<n; i++)

e=e+a[i]*a[i];

return e;

int expresie5 (int a[20], int n)


{

int e=0;

for(int i=0;i<n;i++)

if(a[i]<0)

e=e+a[i]*a[i]*a[i];

return e;

int expresie6 (int a[20], int n)

int e=0,semn=1;

for(int i=0;i<n;i++)

if (i%2==0)

semn=1;

else

semn=-1;

e=e+a[i]*semn;

return e;

void main()

int b[20], n, i;

float e;

citire(b, &n);
printf("\n\tSuma elementelor este: %d",expresie1(b,n));

printf("\n\tProdusul este: %d",expresie2(b,n));

printf("\n\tMedia aritmetica este: %.2f",expresie3(b,n));

printf("\n\tSuma patratelor este: %d",expresie4(b,n));

printf("\n\tSuma cuburilor negative este: %d",expresie5(b,n));

printf("\n\tExpresia este: %d",expresie6(b,n));

getchar();

int var;

scanf("%d", &var);

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