Extras din laborator
Sa se scrie o functie care calculeaza cel mai mare divizor comun dintre 2 nr numere intregi nenule, utilizand algoritmul lui Euclid.
/* CMMDC */
#include<stdio.h>
int cmmdc(int a, int b)
{int r,d=a,i=b;
do{r=d%i;
d=i;
i=r;
} while(r!=0)
return i;
}
void main()
{int n1, n2;
printf("Numerele pentru care se va calcula cmmdc: ");
scanf("%d %d",&n1,&n2);
if(n1&&n2)
printf("n cmmdc= %d", cmmdc(n1,n2));
else printf("Numerele nu sunt nenule!");
}
Sa se scrie programul care calculeaza produsul scalar a 2 vectori:
/* produsul scalar a 2 vectori */
#include <stdio.h>
void ps(float x[], float y[], int n, float *prod)
{int i;
*prod=0;
for(i=0;i<n;i++)
(*prod)+=x[i]*y[i];
}
void main()
{float a[30],b[30], produs_scalar;
int dim,i;
printf("nDati dimensiunea vectorilor: ");
scanf("%d",&dim);
for(i=0;i<dim;i++)
scanf("%f ",&a[i]);
for(i=0;i<dim;i++)
scanf("%f ",&b[i]);
for(i=0;i<dim;i++)
printf("%f ",b[i]);
printf("n");
for(i=0;i<dim;i++)
printf("%f ",a[i]);
ps(a,b,dim, &produs_scalar);
printf("nProdusul scalar al vectorilor este: %f n", produs_scalar);
}
Sa se calculeze produsul dintre o matrice si un vector:
/* produsul dintre o matrice si un vector */
#include<stdio.h>
#include<malloc.h>
float *prod(float a[][30], float v[], int m, int n)
{float *p;
int i,j;
p=(float *)malloc(sizeof(float)*m);
for(i=0;i<m;i++)
for(p[i]=0,j=0;j<n;j++)
p[i]+=a[i][j]*v[j];
return p;
}
void main()
{float a[20][30],v[30], *c;
int m,n,i,j;
printf("nm= "); scanf("%d",&m);
printf("nn= "); scanf("%d",&n);
printf("nMatricea: n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%f",&a[i][j]);
printf("nVectorul:n");
for(j=0;j<n;j++)
scanf("%f",&v[j]);
c=prod(a,v,m,n);
printf("n");
for(i=0;i<n;i++)
printf("%.2f ",c[i]);
}
Sa se realizeze un program C pentru ridicarea unei matrice la o putere.
/* ridicarea unei matrice la o putere */
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
float** inmultire(float **a,float **b, int n)
{int i,j,k;
float **c;
c=(float**)malloc(n*sizeof(float));
for(i=0;i<n;i++)
*(c+i)=(float *)malloc(n*sizeof(float));
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(k=0,c[i][j]=0;k<n;k++)
c[i][j]+=a[i][k]*b[k][j];
return c;
}
Preview document
Conținut arhivă zip
- Probleme Programare.doc