You are on page 1of 27

Radu Cosmin Ionut

Laborator 6

1.1)

vector.h
#ifndef _header_h_
#define _header_h_

void citireV(int v[30], int n);


void afisareV(int v[30], int n);
void sumaV(int a[30], int b[30], int s[30], int n);

#endif

vector.c
#include <stdio.h>
#include "vector.h"

void citireV(int v[30], int n)


{
int i;
for (i = 0; i < n; i++)
{
printf("\n v[%d]= ",i);
scanf("%d", &v[i]);
}
}

void afisareV(int v[30], int n)


{
int i;
for (i = 0; i < n; i++)
printf("%d ",v[i]);
printf("\n");
}

void sumaV(int a[30], int b[30], int s[30], int n)


{
int i;
for (i = 0; i < n; i++)
s[i] = a[i] + b[i];
}

main.c
#include <stdio.h>
#include "vector.h"

int main()
{
int x[30], y[30], s[30];
int n;

printf("\n n = ");
scanf("%d",&n);

printf("\n x = ");
citireV(x,n);
printf("\n y = ");
citireV(y,n);

printf("\n x = ");
afisareV(x,n);
printf("\n y = ");
afisareV(y,n);

sumaV(x,y,s,n);
printf("\n s = ");
afisareV(s,n);
return 0;
}

1.2)

vector.h
#ifndef _vector_h_
#define _vector_h_

void citireV(int v[], int n);


void afisareV(int v[], int n);
int minV(int v[], int n);
int maxV(int v[], int n);
double maV(int v[], int n);
double mgV(int v[], int n);

#endif

vector.c
#include <stdio.h>
#include <math.h>
#include "vector.h"

void citireV(int v[], int n)


{
int i;
printf("\n");
for (i = 0; i < n; i++)
{
printf("v[%d] ",i);
scanf("%d",&v[i]);
}
}

void afisareV(int v[], int n)


{
int i;
for (i = 0; i < n; i++)
{
printf("%d ",v[i]);
}
printf("\n");
}

int minV(int v[], int n)


{
int i, min = v[0];
for (i = 1; i < n; i++)
if(v[i] < min) min = v[i];
return min;
}

int maxV(int v[], int n)


{
int i, max = v[0];
for (i = 1; i < n; i++)
if(v[i] > max) max = v[i];
return max;
}

double maV(int v[], int n)


{
int i;
double ma = 0;
for (i = 0; i < n; i++)
ma += v[i];
ma /= n;
return ma;
}

double mgV(int v[], int n)


{
int i;
double mg = 1;
for (i = 0; i < n; i++)
mg *= v[i];
mg = pow(mg, 1.0/n);
return mg;
}

main.c
#include <stdio.h>
#include "vector.h"

int main()
{
int v[20], n, Min, Max;
double ma, mg;

printf("\n n = ");
scanf("%d", &n);
printf("\n x = ");
citireV(v,n);
afisareV(v, n);

Min = minV(v, n);


Max = maxV(v, n);
ma = maV(v, n);
mg = mgV(v, n);
printf("\n Min = %d\n Max = %d\n ma = %.2lf\n mg = %.2lf", Min, Max,
ma, mg);
return 0;
}
1.2)

vector.h
#ifndef _vector_h_
#define _vector_h_

void citireV(int v[], int n);


void afisareV(int v[], int n);
int minV(int v[], int n);
int maxV(int v[], int n);
double maV(int v[], int n);
double mgV(int v[], int n);
void raport(int v[], int n, char den[]);

#endif

vector.c
#include <stdio.h>
#include <math.h>
#include "vector.h"

void citireV(int v[], int n)


{
int i;
for (i = 0; i < n; i++)
{
printf("\n v[%d] = ", i);
scanf("%d", &v[i]);
}
}

void afisareV(int v[], int n)


{
int i;
for (i = 0; i < n - 1; i++)
printf("%d, ", v[i]);
printf("%d. ", v[i]);
}

int minV(int v[], int n)


{
int i, Min = v[0];
for (i = 1; i < n; i++)
if (v[i] < Min) Min = v[i];
return Min;
}

int maxV(int v[], int n)


{
int i, Max = v[0];
for (i = 1; i < n; i++)
if (v[i] > Max) Max = v[i];
return Max;
}

double maV(int v[], int n)


{
int i;
double ma = 0;
for (i = 0; i < n; i++)
ma += v[i];
ma /= n;
return ma;
}

double mgV(int v[], int n)


{
int i;
double mg = 1;
for (i = 0; i < n; i++)
mg *= v[i];
mg = pow(mg, 1.0/n);
return mg;
}
void raport(int v[], int n, char den[])
{
printf("\n Raport de temperatura pentru ultimele %d zile din luna %s. \n
Temperaturile citite sunt: ", n, den);
afisareV(v, n);
printf("\n\t Valoarea maxima a temperaturii este: %d", maxV(v, n));
printf("\n\t Valoarea minima a temperaturii este: %d", minV(v, n));
printf("\n\t Valoarea medie a temperaturii este: %.2lf", maV(v, n));
printf("\n\t Media geometrica a temperaturii este: %.2lf", mgV(v, n));
printf("\n\n Final raport.");
}

main.c
#include <stdio.h>
#include "vector.h"

int main()
{
int v[31], n;
char buff[100];
int l;

printf("\n n = ");
scanf("%d", &n);
printf("\n x = ");
citireV(v, n);
afisareV(v, n);

printf("\n Luna: ");


scanf("%s",buff);
for (l = 0; buff[l] != '\0'; l++)
;
buff[l] = '\0';
raport(v, n, buff);
return 0;
}

1.3)

vector.h
#ifndef _vector_h_
#define _vector_h_

void citireVInt(int v[], int n);


void afisareVInt(int v[], int n);
void citireVDouble(double v[], int n);
void afisareVDouble(double v[], int n);
void stocTotal(int v1[], int v2[], int t[], int n);
void valoareStoc(int v[], double p[], double val[], int n);
void valoareStocProduse(double v1[], double v2[], double vs[], int n);
double valoareStocTotal(double v[], int n);
void raport(int n, int v1[], int v2[], double v3[]);

#endif
vector.c
#include <stdio.h>
#include "vector.h"

void citireVInt(int v[], int n)


{
int i;
for (i = 0; i < n; i++)
{
printf("\n v[%d] = ", i);
scanf("%d", &v[i]);
}
}

void afisareVInt(int v[], int n)


{
int i;
printf("%d", v[0]);
for (i = 1; i < n; i++)
printf(", %d", v[i]);
}

void citireVDouble(double v[], int n)


{
int i;
for (i = 0; i < n; i++)
{
printf("\n v[%d] = ", i);
scanf("%lf", &v[i]);
}
}

void afisareVDouble(double v[], int n)


{
int i;
printf("%.2lf", v[0]);
for (i = 0; i < n; i++)
printf(", %.2lf", v[i]);
}

void stocTotal(int v1[], int v2[], int t[], int n)


{
int i;
for (i = 0; i < n; i++)
t[i] = v1[i] + v2[i];
}

void valoareStoc(int v[], double p[], double val[], int n)


{
int i;
for (i = 0; i < n; i++)
val[i] = p[i] * v[i];
}

void valoareStocProduse(double v1[], double v2[], double vs[], int n)


{
int i;
for (i = 0; i < n; i++)
vs[i] = v1[i] + v2[i];
}

double valoareStocTotal(double v[], int n)


{
double s = 0;
int i;
for (i = 0; i < n; i++)
s += v[i];
return s;
}

void raport(int n, int v1[], int v2[], double v3[])


{
int t[51];
double val1[51], val2[51], vs[51];
printf("\nRaport inventar pentru firma Trioda.");
printf("\n\nFirma Trioda comercializeaza %d tipuri de componente
electronice.", n);
printf("\nPret/bucata pentru fiecare componenta electronica = (");
afisareVDouble(v3, n);
printf(")");
printf("\n\tStocuri magazin Trioda1 = (");
afisareVInt(v1, n);
printf(")");
printf("\n\tStocuri magazin Trioda2 = (");
afisareVInt(v2, n);
printf(")");
printf("\n\t\tTotal stocuri firma = (");
stocTotal(v1, v2, t, n);
afisareVInt(t, n);
printf(")");
printf("\n\tValoare stocuri magazin Trioda1 = (");
valoareStoc(v1, v3, val1, n);
afisareVDouble(val1, n);
printf(")");
printf("\n\tValoare stocuri magazin Trioda2 = (");
valoareStoc(v2, v3, val2, n);
afisareVDouble(val2, n);
printf(")");
printf("\n\t\tValoare stocuri firma = (");
valoareStocProduse(val1, val2, vs, n);
afisareVDouble(vs, n);
printf(")");
printf("\nValoarea totala marfa = %.2lf lei.", valoareStocTotal(vs, n));
printf("\n\nSfarsit raport inventar.");
}

main.c
#include <stdio.h>
#include "vector.h"
int main()
{
double pret[51];
int n, v1[51], v2[51];
printf("\n n = ");
scanf("%d", &n);
printf("\nPretul componentelor: ");
citireVDouble(pret, n);
printf("\nStocuri magazin 1: ");
citireVInt(v1, n);
printf("\nStocuri magazin 2: ");
citireVInt(v2, n);
raport(n, v1, v2, pret);
return 0;
}

1.4)
vector.h
#ifndef _vector_h_
#define _vector_h_

void citireIVector(int v[], int n);


void afisareIVector(int v[], int n);
int distinct(int v[], int w[], int n);
int gasit(int v[], int n, int el);

#endif

vector.c
#include <stdio.h>
#include "vector.h"

void citireIVector(int v[], int n)


{
int i;
for (i = 0; i < n; i++)
{
printf("\n v[%d] = ", i);
scanf("%d", &v[i]);
}
}

void afisareIVector(int v[], int n)


{
int i;
for (i = 0; i < n; i++)
printf(" %d", v[i]);
}

int gasit(int v[], int n, int el)


{
int i;
for (i = 0; i < n; i++)
if(v[i] == el) return 1;
return 0;
}

int distinct(int v[], int w[], int n)


{
int cnt = 0, i;
w[cnt] = v[0];
cnt++;
for (i = 1; i < n; i++)
if(!gasit(w, cnt, v[i]))
{
w[cnt] = v[i];
cnt++;
}
return cnt;
}

main.c
#include <stdio.h>
#include "vector.h"

int main()
{
int n, cnt, v[101], w[101];
printf("\n n = ");
scanf("%d", &n);
printf("Vectorul: ");
citireIVector(v, n);
cnt = distinct(v, w, n);
printf("\n Vectorul cu elemente distincte: ");
afisareIVector(w, cnt);
return 0;
}
1.5)
vector.h
#ifndef _vector_h_
#define _vector_h_

void bubbleSort(int v[], int n);

#endif

vector.c
#include <stdio.h>
#include "vector.h"

void bubbleSort(int v[], int n)


{
int lim = n - 1, ok, i, aux;
do
{
ok = 0;
for(i = 0; i < lim; i++)
if(v[i] > v[i + 1])
{
aux = v[i];
v[i] = v[i + 1];
v[i + 1] = aux;
ok = 1;
}
lim--;
}while (ok == 1);
}

main.c
#include <stdio.h>
#include "vector.h"

int main()
{
int i, n, v[31];
printf("\n n = ");
scanf("%d", &n);
printf("\n v = ");
for(i = 0; i < n; i++)
{
printf("\n v[%d] = ", i);
scanf("%d", &v[i]);
}
bubbleSort(v, n);
printf("\n v sortat: ");
for(i = 0; i < n; i++)
printf(" %d", v[i]);
return 0;
}
2.1)

vector.h
#ifndef _vector_h_
#define _vector_h_

void citesteRVector(double v[], int n);


void scrieRVector(double v[], int n);
double valMedie(double v[], int n);
double abatMedie(double v[], int n);
void scrieComponente(double v[], int n);
int construiesteY(double v[], double y[], int n);
void scrieR5PeLinie(double v[], int n);

#endif
vector.c
#include <stdio.h>
#include <math.h>
#include "vector.h"

void citesteRVector(double v[], int n)


{
int i;
for (i = 0; i < n; i++)
{
printf("\n v[%d] = ", i);
scanf("%lf", &v[i]);
}
}

void scrieRVector(double v[], int n)


{
int i;
for (i = 0; i < n; i++)
printf("%.2lf ", v[i]);
}

double valMedie(double v[], int n)


{
int i;
double rez = 0;
for (i = 0; i < n; i++)
rez += v[i];
rez /= n;
return rez;
}

double abatMedie(double v[], int n)


{
int i;
double rez = 0;
double vm = valMedie(v, n);
for(i = 0; i < n; i++)
rez += (v[i] - vm) * (v[i] - vm);
rez /= (n * (n - 1));
rez = sqrt(rez);
return rez;
}

void scrieComponente(double v[], int n)


{
int i;
double vm = valMedie(v, n);
for(i = 0; i < n; i++)
if(v[i] <= vm) printf(" %.2lf", v[i]);
}

int construiesteY(double v[], double y[], int n)


{
int cnt = 0, i;
double vm = valMedie(v, n);
for(i = 0; i < n; i++)
if (v[i] > vm)
y[cnt++] = v[i];
return cnt;
}

void scrieR5PeLinie(double v[], int n)


{
int i;
for(i = 0; i < n; i++)
{
if((i + 1) % 5 == 0) printf("\n");
printf("%.2lf ", v[i]);
}
}
main.c
#include <stdio.h>
#include "vector.h"

int main()
{
int n, cnt;
double x[101], y[101];
double vm, abatM;

printf("\n n = ");
scanf("%d", &n);
printf("Sirul: ");
citesteRVector(x, n);
vm = valMedie(x, n);
abatM = abatMedie(x, n);
printf("\n Media: %.2lf", vm);
printf("\n Abaterea medie: %.2lf", abatM);
printf("\n Elemente mai mici decat valoarea medie: ");
scrieComponente(x, n);
cnt = construiesteY(x, y, n);
printf("\n y:\n");
scrieR5PeLinie(y, cnt);
return 0;
}

2.3)
vector.h
#ifndef _vector_h_
#define _vector_h_

void citireV(double v[], int n);


void afisareV(double v[], int n);
void initUnitate(double v[], int n);
double prodScalarV(double t[], double x[], int n);
void calculCoef(double t[], double x[], double coef[], int n);
int rezolvareSistem(double coef[], double ab[]);

#endif

vector.c
#include <stdio.h>
#include "vector.h"

void citireV(double v[], int n)


{
int i;
for(i = 0; i < n; i++)
{
printf("\n v[%d] = ", i);
scanf("%lf", &v[i]);
}
}

void afisareV(double v[], int n)


{
int i;
for(i = 0; i < n; i++)
printf(" %.2lf", v[i]);
}

void initUnitate(double v[], int n)


{
int i;
for(i = 0; i < n; i++)
v[i] = 1;
}

double prodScalarV(double t[], double x[], int n)


{
int i;
double rez = 0;
for(i = 0; i < n; i++)
rez += (t[i] * x[i]);
return rez;
}

void calculCoef(double t[], double x[], double coef[], int n)


{
int i;
coef[0] = n;
for(i = 0; i < n; i++)
coef[1] += t[i];
for(i = 0; i < n; i++)
coef[2] += x[i];
coef[3] = coef[1];
coef[4] = prodScalarV(t, t, n);
coef[5] = prodScalarV(t, x, n);
}

int rezolvareSistem(double coef[], double ab[])


{
double D, DE1, DE2;
D = (coef[0] * coef[4]) - (coef[1] * coef[3]);
DE1 = (coef[2] * coef[4]) - (coef[1] * coef[5]);
DE2 = (coef[0] * coef[5]) - (coef[2] * coef[3]);
if(D != 0 && (DE1 != 0 || DE2 != 0))
{
ab[0] = DE1 / D;
ab[1] = DE2 / D;
return 1;
}
if(((D == 0 && (coef[0] != 0 || coef[1] != 0 || coef[2] != 0)) && (DE1 != 0 ||
DE2 != 0)) || (D == 0 && coef[0] == 0 && coef[1] == 0 && coef[3] == 0 &&
coef[4] == 0 && (coef[2] != 0 || coef[5] != 0))) return 3;
return 2;
}

main.c
#include <stdio.h>
#include "vector.h"

int main()
{
int n;
double x[100], t[100], coef[6], ab[2];

printf("\n n = ");
scanf("%d", &n);
printf("\n t = ");
citireV(t, n);
printf("\n x = ");
citireV(x, n);
calculCoef(t, x, coef, n);
switch(rezolvareSistem(coef, ab))
{
case 1: printf("\n Sistem compatibil determinat!");
printf("\n ab:");
afisareV(ab, 2);
break;
case 2: printf("\n Sistem compatibil nedeterminat!");
break;
case 3: printf("\n Sistem incompatibil!");
break;
}
return 0;
}

You might also like