Examen:
#include “stdio.h”
#include “conio.h”
float a[10][10],b[10],x[10];
int n,i,j;
void citire(float a[10][10],float b[10],int n);
void afisare(float x[10],int n);
void inf_tr(float a[10][10],float b[10],int n);
void main()
{
clrscr();
printf("n=");scanf("%d",&n);
citire(a,b,n);
inf_tr(a,b,n);
printf("\n Solutia sistemului:\n");
afisare(x,n);
getch();
}
void citire(float a[10][10],float b[10],int n)
{
for (i=0;i {
for (j=0;j<=i;j++)
{
printf("a[%d][%d]",i+1,j+1);
scanf("%f",&a[i][j]);
}
printf("b[%d]=",i+1);
scanf("%f",&b[i]);
}
}
void afisare(float x[10],int n)
{
for (i=0;i printf("\n %5.2f",x[i]);
}
void inf_tr(float a[10][10],float b[10],int n)
{
x[0]=b[0]/a[0][0];
for (i=1;i {
x[i]=0;
for (j=0;j x[i]+=a[i][j]*x[j];
x[i]=(b[i]-x[i])/a[i][j];
}
}
#include “conio.h”
float a[10][10],b[10],x[10];
int n,i,j;
void citire(float a[10][10],float b[10],int n);
void afisare(float x[10],int n);
void inf_tr(float a[10][10],float b[10],int n);
void main()
{
clrscr();
printf("n=");scanf("%d",&n);
citire(a,b,n);
inf_tr(a,b,n);
printf("\n Solutia sistemului:\n");
afisare(x,n);
getch();
}
void citire(float a[10][10],float b[10],int n)
{
for (i=0;i {
for (j=0;j<=i;j++)
{
printf("a[%d][%d]",i+1,j+1);
scanf("%f",&a[i][j]);
}
printf("b[%d]=",i+1);
scanf("%f",&b[i]);
}
}
void afisare(float x[10],int n)
{
for (i=0;i printf("\n %5.2f",x[i]);
}
void inf_tr(float a[10][10],float b[10],int n)
{
x[0]=b[0]/a[0][0];
for (i=1;i {
x[i]=0;
for (j=0;j x[i]+=a[i][j]*x[j];
x[i]=(b[i]-x[i])/a[i][j];
}
}
#include “stdio.h”
#include “conio.h”
float a[10][10],b[10],x[10];
int n,i,j;
void citire(float a[10][10],float b[10],int n);
void afisare(float x[10],int n);
void sup_tr(float a[10][10],float b[10],int n);
void main()
{
clrscr();
printf("n=");scanf("%d",&n);
citire(a,b,n);
sup_tr(a,b,n);
printf("\n Solutia sistemului:\n");
afisare(x,n);
getch();
}
void citire(float a[10][10],float b[10],int n)
{
for (i=0;i {
for (j=i;j {
printf("a[%d][%d]=",i+1,j+1);
scanf("%f",&a[i][j]);
}
printf("b[%d]=",i+1);
scanf("%f",&b[i]);
}
}
void afisare(float x[10],int n)
{
for (i=0;i printf("\n %5.2f",x[i]);
}
void sup_tr(float a[10][10],float b[10],int n)
{
x[n-1]=b[n-1]/a[n-1][n-1];
for (i=n-2;i>=0;i--)
{
x[i]=0;
for (j=i+1;j x[i]+=a[i][j]*x[j];
x[i]=(b[i]-x[i])/a[i][i];
}
}
#include “conio.h”
float a[10][10],b[10],x[10];
int n,i,j;
void citire(float a[10][10],float b[10],int n);
void afisare(float x[10],int n);
void sup_tr(float a[10][10],float b[10],int n);
void main()
{
clrscr();
printf("n=");scanf("%d",&n);
citire(a,b,n);
sup_tr(a,b,n);
printf("\n Solutia sistemului:\n");
afisare(x,n);
getch();
}
void citire(float a[10][10],float b[10],int n)
{
for (i=0;i {
for (j=i;j {
printf("a[%d][%d]=",i+1,j+1);
scanf("%f",&a[i][j]);
}
printf("b[%d]=",i+1);
scanf("%f",&b[i]);
}
}
void afisare(float x[10],int n)
{
for (i=0;i printf("\n %5.2f",x[i]);
}
void sup_tr(float a[10][10],float b[10],int n)
{
x[n-1]=b[n-1]/a[n-1][n-1];
for (i=n-2;i>=0;i--)
{
x[i]=0;
for (j=i+1;j x[i]+=a[i][j]*x[j];
x[i]=(b[i]-x[i])/a[i][i];
}
}
/* CONDITII
1. f(x) sa fie de 2 ori derivabila
2. f'(x) sa nu se anuleze pe intervalul (a,b)
3. f"(x) sa aiba semn constant pe intervalul (a,b)
*/
#include “stdio.h”
#include “conio.h”
#include
//Declararea punctelor de aproximatie a,b si a preciziei eps
float a,b, eps;
int n;
float newton(float a,float b,float eps);
float f(float x);
float df(float x);
float ddf(float x);
void main()
{
clrscr();
// Citirea valorilor punctelor a,b si a preciziei eps
printf("a=");scanf("%f",&a);
printf("b=");scanf("%f",&b);
printf("Precizia: ");scanf("%f",&eps);
printf("\n
Radacina ecuatiei prin metoda Newton: %f",newton(a,b,eps));
printf("\n Nr.
de iteratii: %d",n);
getch();
}
float newton(float a,float b,float eps)
{
// xp - variabila in care se memoreaza aproximatia de la
pasul precedent
float x,xp;
// Initializarea contorului de iteratii
n=0;
// Alegerea aproximatiei initiale
// Verificam daca f(x) si f"(x) au acelasi semn
if (f(a)*ddf(a)>0)
x=a;
else
x=b;
do{
// Memorarea
aproximatiei de la pasul precedent
xp=x;
// Calculul
aproximatiei curente
x=x-f(x)/df(x);
// Actualizarea
contorului de iteratii
n++;
}
while
(fabs(x-xp)>=eps);
// Metoda controlului diferentei dintre 2
aproximatii succesive
return x;
}
float f(float x)
{
return sin(x)+3*x-5;
}
float df(float x)
{
return cos(x)+3;
}
float ddf(float x)
{
return -sin(x);
}
/* CONDITII
1. f(x) sa fie de 2 ori derivabila
2. f'(x) sa nu se anuleze pe intervalul (a,b)
3. f"(x) sa aiba semn constant pe intervalul (a,b)
*/
#include “stdio.h”
#include “conio.h”
#include
//Declararea punctelor de aproximatie a,b si a preciziei eps
float a,b, eps;
int n;
float newton(float a,float b,float eps);
float f(float x);
float df(float x);
float ddf(float x);
void main()
{
clrscr();
printf("a=");scanf("%f",&a);
printf("b=");scanf("%f",&b);
printf("Precizia: ");scanf("%f",&eps);
printf("\n
Radacina ecuatiei prin metoda Newton: %f",newton(a,b,eps));
printf("\n Nr.
de iteratii: %d",n);
getch();
}
float newton(float a,float b,float eps)
{
// xp - aproximatia de la pasul precedent
// df0 - Valoarea primei derivate in aproximatia initiala
float x,xp,df0;
// Initializarea contorului de iteratii
n=0;
// Alegerea aproximatiei intiale
// Verificam daca f(x) si f"(x) au acelasi semn
if (f(a)*ddf(a)>0)
x=a;
else
x=b;
// Memoram valoarea primei derivate a functiei in df0
df0=df(x);
do{
// Memorarea
aproximatiei de la pasul precedent
xp=x;
// Calculul
aproximatiei curente
x=x-f(x)/df0;
// Actualizarea
contorului de iteratii
n++;
}
while
(fabs(x-xp)>=eps);
// Metoda controlului
diferentei dintre 2 aproximatii succesive
return x;
}
float f(float x)
{
return sin(x)+3*x-5;
}
float df(float x)
{
return cos(x)+3;
}
float ddf(float x)
{
return -sin(x);
}
#include “stdio.h”
#include “conio.h”
#include
// Declarearea Variabilelor
float a,b,eps;
int n;
float bipartitie(float a,float b,float eps);
float f(float x);
void main()
{
clrscr();
// Citim punctele a,
b (capetele intervalului de aproximare
// obtinute prin
separarea radacinii) si precizia
printf("a="); scanf("%f",&a);
printf("b="); scanf("%f",&b);
printf("Precizia="); scanf("%f",&eps);
printf("Radacina
Ecuatiei prin Metoda Bipartitiei: %f",bipartitie(a,b,eps));
printf("\n Nr.
de iteratii: %d",n);
getch();
}
float bipartitie(float a,float b,float eps)
{
float x;
// Initializarea
contorului de iteratii
n=0;
do
{
// Aproximatia
curenta a radacinii
x=(a+b)/2;
// Alegerea noului
interval de aproximatie
// Verificam daca
in punctele de aproximatie functia are semne contrare
if (f(a)*f(x)<0 p="">
0>
b=x;
else
a=x;
// Actualizam
contorul de iteratii
n++;
} while (fabs(b-a)>=eps);
// Metoda controlului
lungimii intervalului de aproximare
return x;
}
float f(float x)
{
return sin(x)+3*x-5;
}
// Metoda Coardei
#include “stdio.h”
#include “conio.h”
#include
// Declarearea Variabilelor
float a,b,eps;
int n;
float coarda(float a,float b,float eps);
float f(float x);
void main()
{
clrscr();
// Citim punctele a,
b (capetele intervalului de aproximare
// (obtinute prin
separarea radacinii) si precizia
printf("a="); scanf("%f",&a);
printf("b="); scanf("%f",&b);
printf("Precizia=");
scanf("%f",&eps);
printf("Radacina
Ecuatiei prin Metoda Coardei: %f",coarda(a,b,eps));
printf("\n Nr.
de iteratii: %d",n);
getch();
}
float coarda(float a,float b,float eps)
{
// xp - aproximatia
de la pasul precedent
float x,xp;
// Initializarea contorului de iteratii
n=0;
// Initializarea
aproximatiei initiale
x=a;
do
{
// Memoram in xp
aproximatia de la pasul precedent
xp=x;
// Calculam
aproximatia la pasul curent
x=a-f(a)*(b-a)/(f(b)-f(a));
// Alegem noul
interval
if (f(a)*f(x)<0 p="">
0>
b=x;
else
a=x;
// Actualizarea
contorulul de iteratii
n++;
} while (fabs(x-xp)>=eps);
// Metoda controlului
diferentei intre 2 aproximatii succesive
return x;
}
float f(float x)
{
return sin(x)+3*x-5;
}
// Interpolare cu polinom lagrange
#include “stdio.h”
#include “conio.h”
int n,i;
float x[15],y[15],z;
void citire(float x[],float y[],int n);
float lagrange(float x[],float y[],float z);
void main()
{
clrscr();
printf("n=
");scanf("%d",&n);
citire(x,y,n);
printf("z=
");scanf("%f",&z);
printf("Valoarea
in %f a polinomului este: %f",z,lagrange(x,y,z));
getch();
}
void citire(float x[],float y[],int n)
{
for (i=0;i<=n;i++)
{
printf("x[%d]=
",i);scanf("%f",&x[i]);
printf("y[%d]=
",i);scanf("%f",&y[i]);
}
}
float lagrange(float x[],float y[],float z)
{
int j;
float s=0,p;
for (i=0;i<=n;i++)
{
p=1;
for
(j=0;j<=n;j++)
if (j!=i)
p=p*(z-x[j])/(x[i]-x[j]);
s=s+p*y[i];
}
return s;
}
// Aproximarea in medie (Regresie Liniara)
#include “stdio.h”
#include “conio.h”
int n,i;
float x[20],y[20],a,b;
void citire (float x[],float y[],int n);
void regresie(float x[],float y[],float *a,float *b);
void main()
{
clrscr();
printf("n=");scanf("%d",&n);
citire(x,y,n);
regresie(x,y,&a,&b);
printf("a=%f",a);
printf("\n
b=%f",b);
getch();
}
void citire(float x[],float y[],int n)
{
for (i=0;i<=n;i++)
{
printf("x[%d]=
",i);
scanf("%f",&x[i]);
printf("y[%d]=
",i);
scanf("%f",&y[i]);
}
}
void regresie(float x[],float y[],float *a,float *b)
{
float Sx,Sy,Sxy,Sxx;
Sx=Sy=Sxy=Sxx=0;
for(i=0;i<=n;i++)
{
Sx+=x[i];
Sy+=y[i];
Sxy+=x[i]*y[i];
Sxx+=x[i]*x[i];
}
*a=(Sx*Sy-(n+1)*Sxy)/(Sx*Sx-(n+1)*Sxx);
*b=(Sx*Sxy-Sxx*Sy)/(Sx*Sx-(n+1)*Sxx);
}
// Interpolare Liniara
#include “stdio.h”
#include “conio.h”
float x1,y1,x2,y2,z,y;
float interp_lin(float x1,float y1,float x2,float y2,float
z);
void main()
{
clrscr();
printf("x1=
");scanf("%f",&x1);
printf("y1=
");scanf("%f",&y1);
printf("x2=
");scanf("%f",&x2);
printf("y2=
");scanf("%f",&y2);
printf("z=
");scanf("%f",&z);
printf("Valoarea
fct. aprox. este %f",interp_lin(x1,y1,x2,y2,z));
getch();
}
float interp_lin(float x1,float y1,float x2,float y2,float z)
{
return
y1+(y2-y1)/(x2-x1)*(z-x1);
}
Laborator:
1 // Ecuatia grad 1
#include "stdio.h"
#include "conio.h"
int a,b;
float x;
void main()
{
clrscr();
printf("a= ");scanf("%d",&a);
printf("b= ");scanf("%d",&b);
if (a!=0)
{
x=(float)-b/a;
printf("x=%.2f",x);
}
else
if(b==0)
printf("Ec.are
o infinitate de sol");
else
printf("Ec.imposibila");
getch();
}
2 /* Iteratie cu test initial */
#include “stdio.h”
#include “conio.h”
int x,S;
void main()
{
clrscr();
S=0;
printf("x= ");scanf("%d",&x);
while (x!=0)
{
S=S+x;
printf("x=
");scanf("%d",&x);
}
printf("Suma= %d",S);
getch();
}
3 Pseudocod + program iteratia cu test final
START
S = 0
EXECUTA
CITESTE X
S = S+x
CAT TIMP X!=0
SCRIE S
STOP
// Suma. Iteratia cu test final
#include "stdio.h"
#include "conio.h"
void main()
{
int S=0,x;
clrscr();
do{
printf("x=");
scanf("%d",&x);
S=S+x;
}
while (x!=0);
printf("S=%d",S);
getch();
}
Calculul Sumelor :
START
CITESTE n
S=0
PENTRU i=p,n EXECUTA
S=S+ai
SCRIE S
STOP
Calc Sume
CITESTE n
S=0
Pentru i=1, n EXECUTA
S=S+i patrat
Scrie S
STOP
4 // S= suma de la 1 la n din i patrat
#include "stdio.h"
#include "conio.h"
int n,i,S;
void main()
{
printf("n= ");scanf("%d",&n);
S=0;
for (i=1;i<=n;i++)
S=S+i*i;
printf("Suma= %d",S);
getch();
}
#include
#include
int n,i;
float S;
void main()
{ clrscr();
printf("n= ");scanf("%d",&n);
S=0;
for (i=0;i<=n;i++)
S=S+(float)(i+1)/(i+2);
printf("Suma= %f",S);
getch();
}
6 // Suma = suma de la i=1 la n din (-1)i*x2i/i+2
#include "stdio.h"
#include "conio.h"
int n,i;
float x,s,t;
void main()
{
clrscr();
printf("n= ");scanf("%d",&n);
printf("x= ");scanf("%f",&x);
s=0;
t=-x*x;
for(i=1;i<=n;i++)
{
s+=t/(i+2);
t=-x*x*t;
}
printf("S= %f",s);
getch();
}
7 // S= Suma de la 0 la n din -1 la i+1 * x
la i / (i+1)!
#include "stdio.h"
#include "conio.h"
int n,i;
float x,s,t;
void main()
{
clrscr();
printf("n= ");scanf("%d",&n);
printf("x= ");scanf("%f",&x);
s=0;
t=-1;
for(i=0;i<=n;i++)
{
s+=t;
t=-x*t/(i+2);
}
printf("S= %f",s);
getch();
}
8 // sin(x) = suma de la 0 la infinit din -1
la i * x la 2i+1 / (2i+1)!
#include "stdio.h"
#include "conio.h"
int n,i;
float x,s,t;
void main()
{
clrscr();
printf("n= ");scanf("%d",&n);
printf("x= ");scanf("%f",&x);
s=0;
t=x;
for(i=0;i<=n;i++)
{
s+=t;
t=-x*x*t/((2*i+3)*(2*i+2));
}
printf("S= %f",s);
getch();
}
9 // Suma
1
#include "stdio.h"
#include "conio.h"
unsigned int n,i;
float S,t;
void main()
{
printf("n= ");scanf("%d",&n);
S=0;
t=1;
for (i=0;i<=n;i++)
{
S=S+t*(i*i+1);
t=-t/((2*i+2)*(2*i+1));
}
printf("Suma= %f",S);
getch();
}
10 // SUMA 2
#include "stdio.h"
#include "conio.h"
int n,i;
float S,x,t;
void main()
{
printf(" n= ");scanf("%d",&n);
printf(" x= ");scanf("%f",&x);
S=0;
t=1;
for (i=0;i<=n;i++)
{
S=S+t;
t=-t*(x*x)/((2*i+2)*(2*i+1));
}
printf("Suma= %f",S);
getch();
}
12 // X un vector , sa se sorteze crescator
#include "stdio.h"
#include "conio.h"
int x[15],y,n,i;
void citire(int x[],int n);
void afisare(int x[],int n);
int numar(int x[],int n,int y);
void sortare(int x[],int n);
void main()
{
clrscr();
printf("nr. elemente:
");scanf("%d",&n);
citire(x,n);
afisare(x,n);
printf("\n y=");scanf("%d",&y);
printf("\n Nr. elementelor > %d este
%d",y,numar(x,n,y));
sortare(x,n);
printf("\n Vectorul sortat:");
afisare(x,n);
getch();
}
void citire(int x[],int n)
{ for
(i=0;i
{
printf("x[%d]=",i);
scanf("%d",&x[i]);
}
}
void afisare(int x[],int n)
{
for
(i=0;i
printf("%d
",x[i]);
}
int numar(int x[],int n,int y)
{
int nr=0;
for
(i=0;i
if(x[i]>y)
nr++;
return nr;
}
void sortare(int x[],int n)
{
int j,aux;
for
(i=0;i
for
(j=i+1;j
if
(x[i]>x[j])
{
aux=x[i];
x[i]=x[j];
x[j]=aux; } }
13 /* horner */
#include "stdio.h"
#include "conio.h"
int n,i;
float a[15],z;
void citire(float a[],int n);
float horner(float a[],int n,float z);
void main()
{
clrscr();
printf("Gradul
polinomului: ");
scanf("%d",&n);
citire (a,n);
printf("z=
");
scanf("%f",&z);
printf("\n
Valoarea polinomului in %f este %f",z,horner(a,n,z));
getch();
}
void citire(float a[],int n)
{
for (i=n;i>=0;i--)
{
printf("a[%d]",i);
scanf("%f",&a[i]);
}
}
float horner(float a[],int n,float z)
{
float y;
y=a[n];
for
(i=n-1;i>=0;i--)
y=a[i]+z*y;
return y;
}
16 /* Transmitere prin referinta */
#include "stdio.h"
#include "conio.h"
void interschimbare(int *a,int *b);
void main()
{
clrscr();
int x,y;
x=3;
y=7;
interschimbare(&x,&y);
printf(" x=%d \n y=%d",x,y);
getch();
}
void interschimbare(int *a,int *b)
{
int aux;
aux=*a;
*a=*b;
*b=aux;
}