Sunteți pe pagina 1din 28

Universitatea Tehnică a Moldovei

Facultatea Calculatoare Informatică și Microelectronică


Departamentul Ingineria Software și Automatică

RAPORT
la lucrarea de laborator nr. 3

la Programarea Calculatoarelor

Tema: Tablouri. Declararea şi iniţializarea tablourilor în limbajul C.

Varianta 5 25

A efectuat: Chiforiuc Adrian

A verificat: Prijivelschi Dumitru

Chişinău 2020
Scopul lucrării

Solutionarea problemelor prin prelucrarea tablourilor unidimensionale în TP şi C

Obiectivele temei

1. Familiarizarea cu principiile solutionarii problemelor si prelucrării elementelor


tablourilor unidimensionale.
2. Algoritmizarea şi însuşirea procedeelor stereotipe de declarare, introducere,
afişare şi formare prin parcurgere şi calcule ale valorilor elementelor tablourilor
unidimensionale.
3. Însuşirea procedeelor avansate de realizare a structurilor ciclice cu instrucţiunile
for, while şi repeat, aplicând diverse tehnici de programare.
4. Însuşirea procedeelor de operare în interfaţa TP şi C la nivelul submeniurilor
DEBUG şi BREAK/WATCH (mijloacele de depanare-urmărire a variabilelor şi
punctele de întrerupere).

1. Extras Teoretic

Numim tablou o colectie (grup, multime ordonata) de date, de acelasi tip, situate
intr-o zona de memoriecontinua (elementele tabloului se afla la adrese succesive).
Tablourile sunt variabile compuse (structurate),deoarece grupeaza mai multe
elemente. Variabilele tablou au nume, iar tipul tabloului este dat de
tipulelementelor sale. Elementele tabloului pot fi referite prin numele tabloului si
indicii (numere intregi) carereprezinta pozitia elementului in cadrul tabloului. Deci
este o metodă de organizare a datelor este - t a b l o u l(tabele) cu şiruri (de o
lungime cunoscută) de variabile de acelaşi tip.
Structura:
• Ansamblu omogen de variabile numite componentele tabloului
• Toate componentele aparţin aceluiaşi tip
• Componentele sunt identificate cu ajutorul indicilor
• Tablouri:
• Unidimensionale (1 – dimensionale)
• Bidimensionale (2 – dimensionale), etc
Un şir de elemente de acelaşi tip se mai numeşte şi vector sau tablou
unidimensional. Deci tabloul este untip de date compus dintr-un număr precizat de
date de acelaşi tip. Referirea la elementele tabloului se faceprin numele variabilei
tablou urmat de indexul elementului pus între paranteze drepte [ ].
2. Rezolvare

3.1.Transcrieţi exemplul programului din lucrarea de laborator nr.2, utilizînd


instrucţiunile ciclice

#include <conio.h>
#include <stdio.h>
int main()
{
unsigned int n,i,u,d[40],cont=0;
printf ("Introduceti un numar : ");
scanf ("%d",&n);
for (i=2;i<=(n/2);i++)
if (n%i==0)
{
printf("Cel mai mic divizor propriu al lui %d este %d \n\n",n,i);
cont=1;
break;
}
if(cont==0)
printf("Numarul este prim!\n\n");
return 0;
}

3.2*. Elaboraţi algoritmul şi programul pentru cazul dacă suma a trei numere reale
cu valori diferite x,y,z este mai mica decât unitatea, atunci cel mai mic număr din
aceste trei, de schimbat cu semisuma a celorlalte două, în caz contrar (Cândsuma
este mai mare ) de schimbat valoarea minimală dintre x şi y cu semisuma a
celorlalte valori rămase

#include <conio.h>
#include <stdio.h>
int main()
{
float x, y, z;
printf("Dati valoarea lui X\n");
scanf("%f", &x);
printf("Dati valoarea lui Y\n");
scanf("%f", &y);
printf("Dati valoarea lui Z\n");
scanf("%f", &z);
if (x+y+z<1){
if ((x < y) && (x < z))
{
x = (y+z) / 2;
printf("Suma tuturor numerelor este mai mica decat o unitate.\n\n");
printf("X este cel mai mic numar, deci el a fostu inlocuit cu semisuma celorlalte
numere\nAceasta este: %f .\n\n", x);
return 0;
}
if ((y < x) && (y < z))
{
y = (x+z) / 2;
printf("Suma tuturor numerelor este mai mica decat o unitate.\n\n");
printf("Y este cel mai mic numar, deci el a fostu inlocuit cu semisuma celorlalte
numere\nAceasta este: %f .\n\n", y);
return 0;
}
if ((z < x) && (z < y))
{
z = (x+y) / 2;
printf("Suma tuturor numerelor este mai mica decat o unitate.\n\n");
printf("Z este cel mai mic numar, deci el a fostu inlocuit cu semisuma celorlalte
numere\nAceasta este este: %f .\n\n", z);
return 0;
}
}
if(x+y+z>1)
{
if (x<y)
{
x = (z+y)/2;
printf("Suma tuturor numerelor este mai mare decat o unitate.\n\n");
printf("X este mai mic ca Y, deci, a fost inlocuit cu semisuma celorlalte
numere care este egala cu : %f\n\n", x);
return 0;
}
if (y<x)
{
y = (z+x)/2;
printf("Suma tuturor numerelor este mai mare decat o unitate.\n\n");
printf("Y este mai mic ca X, deci, a fost inlocuit cu semisuma celorlalte
numere care este egala cu : %f\n\n", x);
return 0;
}
}
}
3.3. Modificaţi exemplul 3.2* pentru trei tablouri unidimensionale X, Y, Z şi
efectuaţi aceleaşi calculi.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i=0 , n, m;
double a=0, b=0, c=0;
printf("Dati numarul elementelor fiecarui tabel\n\n");
scanf("%d", &n);
if(n<1){
printf("Eroare!\n");
return 0;
}
printf("\n\n");
printf("Pentru a usura generarea sirurilor, dati un numar natural de n care va
respecta conditia 2 < n < 10 \n\n");
scanf("%d", &m);
if((m<2) || (m>10))
{
printf("Eroare!");
return 0;
}
printf("\n\n");
float x[n], y[n], z[n];
srand(time(NULL));
for(i=0;i<n;i++){
x[i]=((rand()%m)*0.1);
}
for(i=0;i<n;i++){
y[i]=((rand()%m)*0.1);
}
for(i=0;i<n;i++){
z[i]=((rand()%m)*0.1);
}
printf("\n\n\nValorile sirului X:\n");
for(i=0;i<n;i++){
printf("%d) %f\n", i+1, x[i]);
}
printf("\n\n\nValorile sirului Y:\n");
for(i=0;i<n;i++){
printf("%d) %f\n", i+1, y[i]);
}
printf("\n\n\nValorile sirului Z:\n");
for(i=0;i<n;i++){
printf("%d) %f\n", i+1, z[i]);
}
for (i=0;i<n;i++){
a += x[i];
b += y[i];
c += z[i];
}
printf("\n\n\n");
printf("Suma numerelor sirului X = %f\n", a);
printf("Suma numerelor sirului Y = %f\n", b);
printf("Suma numerelor sirului Z = %f\n", c);
printf("\n\n\n");
if (a+b+c<1){
if ((a < b) && (a < c))
{
a = (b+c) / 2;
printf("Suma tuturor numerelor este mai mica decat o unitate.\n\n");
printf("X este cel mai mic numar, deci el a fostu inlocuit cu semisuma celorlalte
numere\nAceasta este: %f .\n\n", a);
return 0;
}
if ((b < a) && (b < c))
{
b = (a+c) / 2;
printf("Suma tuturor numerelor este mai mica decat o unitate.\n\n");
printf("Y este cel mai mic numar, deci el a fostu inlocuit cu semisuma celorlalte
numere\nAceasta este: %f .\n\n", b);
return 0;
}
if ((c < a) && (c < b))
{
c = (a+b) / 2;
printf("Suma tuturor numerelor este mai mica decat o unitate.\n\n");
printf("Z este cel mai mic numar, deci el a fostu inlocuit cu semisuma celorlalte
numere\nAceasta este este: %f .\n\n", c);
return 0;
}
}
if(a+b+c>1)
{
if (a<b)
{
a = (c+b)/2;
printf("Suma tuturor numerelor este mai mare decat o unitate.\n\n");
printf("X este mai mic ca Y, deci, a fost inlocuit cu semisuma celorlalte
numere care este egala cu : %f\n\n", a);
return 0;
}
if (b<a)
{
b = (c+a)/2;
printf("Suma tuturor numerelor este mai mare decat o unitate.\n\n");
printf("Y este mai mic ca X, deci, a fost inlocuit cu semisuma celorlalte
numere care este egala cu : %f\n\n", b);
return 0;
}
}
}
3.4*. Elaboraţi algoritmul şi programul pentru cazul când sunt date 100 numere
întregi pentru care trebuie de calculat diferenţa maximă şi minimimă între ele.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
char v;
printf("Selectati varianta de calcul:\n");
printf("a - diferenta maxima a sirului numeric\n");
printf("b - diferenta minima a sirului numeric\n");
scanf(" %c", &v);
if (!(v=='a' || v == 'b'))
{
printf("Eroare ! Nu ati selectat varianta corecta!\n");
return 0;
}
int n,m,i, m2, min, a, max;
printf("Dati numarul de elemente al sirului\n");
scanf("%d", &n);
if ((n<1) || (n >= 100))
{
printf ("\nEroare! dati un numar care va respecta conditia 1 < n < 100\n");
return 0 ;
}
printf("\nDati numarul maxim generat si tastati Enter\n\n");
scanf("%d", &m);
m2 = m*2;
printf("\n\n");
int x[n];
srand(time(NULL));
for(i=0; i<n; i++)
{
x[i]=((rand()%m2)-m);
}

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


{
printf("%d) %d\n", i+1, x[i]);
}
switch(v){
case 'a':
for(i=0; i<n; i++)
{
if(x[i]< min)
{
min = x[i];
a = i;
}
}

printf("\nCel mai mic numar al sirului este : %d\n", min);


x[a] = 0;

for(i=0;i<n;i++){
min = min - x[i];
}
printf("\nDiferenta maxima este : %d\n", min);
break;
case 'b':
for(i=0; i<n; i++)
{
if(x[i]< max)
{
max = x[i];
a = i;
}
}

printf("\nCel mai mare numar al sirului este : %d\n", max);


x[a] = 0;

for(i=0;i<n;i++){
max = max - x[i];
}
printf("\nDiferenta minima este : %d\n", max);
break;
}
return 0;
}
3.5*. Elaboraţi algoritmul şi programul pentru determinarea. dacă un număr natural
e perfect, adică care este egal cu suma tuturor divizorilor.(de exemplu 6=1+2+3)
# include <stdio.h>

int main()
{
int i,n,a = 0 ;
printf("\n Introduceti de la tastatura numarul pe care vreti sa-l verificati daca este
perfect \n") ;
scanf("%d", &n) ;
for(i = 1 ; i < n; i++)
{
if(n % i == 0)
a=a+i;
}
if (a == n)
printf("\n %d este un numar perfect", n) ;
else
printf("\n%d nu este un numar perfect", n) ;
return 0 ;
}

3.6. Ce subînţelegem prin tablou şi cum se notează în program elementele unui


tabel?
Numim tablou o colectie (grup, multime ordonata) de date, de acelasi tip, situate
intr-o zona de memorie continua (elementele tabloului se afla la adrese succesive).
Tablourile se noteaza prin x[n], unde x este denumirea tabloului, iar n este numarul
de elemente al tabloului unidimensional.

3.7. Cum se organizează în program introducerea şi extragerea unui tablou?


Introducerea/afisarea componentelor unui vector sunt de regula operatii realizate
cu ajutorul structurilor repetitive, in principal folosindu-se structura FOR:
Exemplu:

Include <stdlib.h>
Int main()
{
Int i, n;
Scanf (“%d”, &n);
Int x[n];
For (i=0;i<n;i++)
{
x[i] = i + 1;
printf(“%d”, x[i]);
}

3.8. Ce operaţii se pot efectua efectiv cu elementele unui tablou?


Cu elementele unui tablou se pot efectua toate operatiile matematice si de
asemenea sortarea elementelor conform unei conditii de exemplu, aranjarea
elementelor tabloului in ordine crescatoare / descrescatoare etc.

3.9. Fie X[1..n] si Y[1..n] vectori de întregi. Care va fi valoarea lui Y[n] după
execuţia secvenţei:

Raspuns : “c”;

3.10 Fie X[1..n] si Y[1..n] vectori de numere reale. După execuţia secvenţei de
program:

Raspuns : “a”;

3.11 Fie V[1..n] vector de intregi . Secvenţa de program :

Raspuns : “d”;
3.12 Ce face următoarea secvenţă ?

Raspuns : “a”

3.13. Ce realizează următoarea secvenţă de program?

Raspuns : “c”;

3.14. Se dă următoarea secvenţă de cod :

Raspuns : “c”;

3.15. Fie secvenţa de cod :

Raspuns “c”;

3.16. Există greşeli în secvenţa de calculare a mediei aritmetice?


Raspuns : “a”;

2.1 Ce se afiseaza pe ecran la executia urmatoarelor programe? Gasiti raspunsul,


dati justificarea, apoi verificati prin executie. 1.Ce valori va afişa programul
următor?

K = 5;
M = 11;
Analizaţi şi apreciaţi ce efectuiază următorul program C:

Programul dat reprezinta jocul BlackJack, astfel acesta ofera puncte random, suma
carora nu trebuie sa depaseasca 21 altfel, jocul se considera pierdut.

1.36 Rulati urmatoarele doua secvente, observand conversiile implicite si explicite:


#include <stdio.h>

int main()
{
char c='a',cc;
int i=4;
float f=5.95;
printf("%d %f\n",i,f);
i=f; // conversie implicita, trunchiere
printf("%d %f\n",i,f);
f=i+100000; // conversie implicita a rezultatului expresiei
printf("%d %f\n",i,f);
i=-99.001; // conversie implicita, trunchiere
f='a';
c=0x3239; cc=-i; // preluarea ultimului octet
printf("%d %f %c %c\n",i,f,c,cc);
float r1=5/2,
r2=(float)5/2,
r3=(float)(5/2),
r4=5/(float)2,
r5=(float)5/(float)2;
printf("%f %f %f %f %f\n",r1,r2,r3,r4,r5);

1.37. a) Gasiti valorile expresiilor de mai jos. Verificati rezultatele obtinute,


tastand expresiile in fereastra de evaluare ( deschisa cu CTRL/F4 ).
#include <stdio.h>
#include <stdlib.h>

int main()
{
printf("Int - %d\n",sizeof(int));
printf("Double - %d\n",sizeof(double));
printf("Long double - %d\n",sizeof(long double));
printf("'a' - %d\n",sizeof('a'));
printf("char 'a' - %d\n",sizeof((char)'a'));
printf("33000 - %d\n",sizeof(33000));
printf("1.3+'a' - %d\n",sizeof(1.3+'a'));
printf("1.3f - %d\n",sizeof(1.3f));
printf("1.3 - %d\n",sizeof(1.3));
printf("1.3l - %d\n",sizeof(1.3l));
printf("5/2 - %d\n",sizeof(5/2));
printf("float 5/2 - %d\n",sizeof((float)5/2));
}
b) Gasiti ce tipareste pe ecran urmatorul program? Verificati, rulandu-l.
#include <stdio.h>
int main (void){
puts("Dimensiunea in octeti ocupata de:");
printf("int\t%d\n",sizeof(int));
printf("char\t%d\n",sizeof(char));
printf("long\t%d\n",sizeof(long));
printf("32780\t%d\n",sizeof(32780));
printf("32780u\t%d\n",sizeof(32780u));
printf("-10000\t%d\n",sizeof(-10000));
printf("'a'\t%d\n",sizeof('a'));
printf("07111111\t%d\n",sizeof(07111111));
printf("22l\t%d\n",sizeof(22l));
}
1.38. Rulati programele de mai jos pas cu pas, urmarind valorile variabilelor in
fereastra Watch, in baza 10 si 16 (nume_variabila,x ):
#include <stdio.h>
int main(void){
int i=20000,j=15000,k;
float r;
scanf("%d",&k);
printf("%d %p\n",k,&k);
k=i+j;
r=i+j;
r=(float)i+j;
r=(long)i+j;
r=i/j;
k=i/j;
r=(float)i/j;
k=i%j;
k=+ - - -i;
k=+ - --i;
k=- +j--;
i=k/(j-j);
}
int main2(void){
int a,b,c; float z;
a=25000;b=20000;
c=a+b;
z=a+b;
c=(float)a+b;
z=(float)a+b;
c=a/b;
c=a%b;
c=a>b;
c=a==b;
a=3;b=11;
c=a++ + ++b;
c=a&b;
c=a|b;
c=a^b;
c=b<<2;
c=-a>>3;
c=~a;
a=0;
c=a&&b;
c=a||b;
c=!a;
a=4;
c=a&&b;
c=a||b;
c=!a;
a=2;c=3;
c*=a;
b=5;
c=(a>b)?a:b;
}

1.39. Pentru un intreg x citit de la tastatura, sa se calculeze intr-o singura expresie


primele cinci puteri, care apoi sa se afiseze:
#include <stdio.h>
int main(){
int x,x2,x3,x4,x5; // se observa in urma rularii ca 8^5 apare negativ
printf("x=");scanf("%d",&x); // deci se vor face modificarile pentru tipul long
x5=(x4=(x3=(x2=x*x)*x)*x)*x;
printf("%d %d %l %d %d\n",x,x2,x3,x4,x5);
}
E1.40. Folosind operatorul ternar, sa se tipareasca maximul dintre a,b, relatia dintre
a,b si maximul dintre a,b,c cititi de la tastatura. Sa se scrie secventele echivalente
folosind instructiunea if:
#include <stdio.h>
int main(){
int a, b, c;
int max_a_b=a>b?a:b;
printf("%d %c %d\n",a,a>b?'>':a<b?'<':'=',b);
int max_a_b_c=a>b?(a>c?a:c):(b>c?b:c);
}

1.41. Sa se verifice ca secventa urmatoare determina maximul dintre a si b, iar daca


a<b, leinterschimba, astfel incat secventa a si b sa fie descrescatoare. Sa se scrie
secventa echivalenta folosind instructiunea if:

If (max_a_b == a && a>b)


{
t = b;
b = a;
a = t;
}
Else
{
t = a;
a = b;
b = a;
}

E1.42. Pentru valori intregi ( pozitive sau negative ) citite de la tastatura sa se


tipareasca valoareacorespunzatoare in binar. Sa se scrie secventa echivalenta, in
care cifrele reprezentarii se obtin caresturi ale impartirii repetate la 2, pana la catul
0 - cifrele sunt obtinute insa incepand cu cea mai putinsemnificativa:

#include <stdio.h>
int main(){
int n,i,dim=sizeof(i)*8,masca=1;
while(1){
printf("n=");scanf("%d",&n);
for(i=dim-1;i>=0;i--)
putchar(n&masca<<i?'1':'0');
}
}

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main()
{
int F,n,m,i, m2, c=0, max=0, d=0, e = 0, min=0;
float a=0, b=0;
printf("Dati numarul de elemente al sirului\n");
scanf("%d", &n);
if ((n<10) || (n >= 100))
{
printf ("\nEroare! dati un numar care va respecta conditia 10 < n < 100\n");
return 0 ;
}
printf("\nDati numarul maxim generat si tastati Enter\n\n");
scanf("%d", &m);
m2 = m*2;
printf("\n\n");
int x[n];
x[0] = 0;
srand(time(NULL));

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


{
x[i]=((rand()%m2)-m);
}

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


{
printf("%d) %d\n", i+1, x[i]);
}
for (i=0; i<n; i++)
{
if(x[i]>max)
{
max = x[i];
}
if(x[i]<min)
{
min = x[i];
}
}
for(i=1; i<n; i++)
{
if(x[i]>x[i+1])
{
a = a + 1;
}
if(x[i] < x[i+1])
{
b = b + 1;
}
if(x[i] < 2 && x[i+1] < 2)
{
c = c + 1;
}
if (max > x[i])
{
d = d + 1;
}
if(min < x[i])
{
e = e +1 ;
}
}
if (a== n)
{
F = 1;
printf("F = %d", F);
return 0;
}
if (b == n)
{
F = 2;
printf("F = %d", F);
return 0;
}
if (c == n)
{
F = 3;
printf("F = %d", F);
return 0;
}
if (d == n)
{
F = 4;
printf("F = %d", F);
return 0;
}
if (e == n)
{
F = 5;
printf("F = %d", F);
return 0;
}
else
{
for (i=0;i<n;i++)
{
a = cos(x[i]);
b = sin(x[i]);
printf("cosx = %f\nsinx = %f\n ",a,b);
}
return 0;
}
}
25(a) Să se elaboreze algoritmul şi programul ca să se calculeze numărul cifrelor
fiecărui număr dintr-untablou de numere pozitive care pot avea valori cu cel puţin
de 4 cifre (mii) şi de salvat în alt tablou.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int n,m,i,j, a=0;
printf("Dati numarul de elemente al sirului\n");
scanf("%d", &n);
if ((n<10) || (n >= 100))
{
printf ("\nEroare! dati un numar care va respecta conditia 10 < n < 100\n");
return 0 ;
}
printf("\nDati numarul maxim generat astfel in cat n > 1000 si tastati
Enter\n\n");
scanf("%d", &m);
if (m < 1000)
{
printf("Eroare ! Dati un numar care va respecta conditia n > 1000\n");
return 0;
}
printf("\n\n");
int x[n];
int y[n];
srand(time(NULL));

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


{
x[i]=(rand()%m);
if(x[i]<1000)
{
x[i] = x[i] * 10;
}
}

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


{
printf("%d) %d\n", i+1, x[i]);
}
for(i=0; i<n; i++)
{
while(x[i]!=0)
{
a++;
x[i]/= 10;
}
y[i] = a;
a=0;
}
for(i=0; i<n; i++)
{
printf("%d) %d\n",i+1, y[i]);
}
return 0;
}

c)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int check,u,k,n,m,i,j,l;
printf("Dati numarul de elemente multimii X\n");
scanf("%d", &n);
if ((n<1) || (n >= 100))
{
printf ("\nEroare! dati un numar care va respecta conditia 1 < n < 100\n");
return 0 ;
}
int x[n];
for(i=0; i<n; i++)
{
printf("X[%d]= ", i+1);
scanf("%d", &x[i]);
}

printf("Dati numarul de elemente multimii Y \n");


scanf("%d", &m);
if ((m<1) || (m >= 100))
{
printf ("\nEroare! dati un numar care va respecta conditia 1 < n < 100\n");
return 0 ;
}
int y[m];
for(i=0; i<m; i++)
{
printf("Y[%d]= ", i+1);
scanf("%d", &y[i]);
}
printf("Sirul X : ");
for(i=0; i<n; i++)
{
printf("%d\t", x[i]);
}
printf("\nSirul Y : ");
for(i=0; i<m; i++)
{
printf("%d\t", y[i]);
}
printf("\n\n");
k = n + m;
int z[k];
for(i=0; i<n; i++)
{
z[i] = x[i];
}

for(j=0;j<m;j++)
{
check =0;
for(l=0;l<n;l++)
{
if(y[j]==x[l])
{
check = 1;
k--;
break;
}
}
if(check == 0)
{
z[n]=y[j];
n++;
}
}
for(i=0; i<k; i++)
{
printf("%d\t", z[i]);
}
}

d)
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Acest program efectueaza diferenta a 2 multimi\n\n");
int check,k,n,m,i,j,l;
printf("Dati numarul de elemente multimii X\n");
scanf("%d", &n);
if ((n<1) || (n >= 100))
{
printf ("\nEroare! dati un numar care va respecta conditia 1 < n < 100\n");
return 0 ;
}
int x[n];
for(i=0; i<n; i++)
{
printf("X[%d]= ", i+1);
scanf("%d", &x[i]);
}

printf("Dati numarul de elemente multimii Y \n");


scanf("%d", &m);
if ((m<1) || (m >= 100))
{
printf ("\nEroare! dati un numar care va respecta conditia 1 < n < 100\n");
return 0 ;
}
int y[m];
for(i=0; i<m; i++)
{
printf("Y[%d]= ", i+1);
scanf("%d", &y[i]);
}
printf("Sirul X : ");
for(i=0; i<n; i++)
{
printf("%d\t", x[i]);
}
printf("\nSirul Y : ");
for(i=0; i<m; i++)
{
printf("%d\t", y[i]);
}
printf("\n\n");
k = n;
int z[k];
int p = 0;
for (i=0;i<n;i++)
{
check = 1;
for(j=0;j<m;j++)
{
if(x[i]==y[j])
{
check = 1;
break;
}
else
{
check = 0;
}
}
if(check == 0)
{
z[p] = x[i];
p++;
}
}
printf("Z = ");
for(i=0; i<p; i++)
{
printf("%d\t", z[i]);
}
return 0;
}
Concluzie

În concluzie pot spune că în aceasta lucrare de laborator am studiat


în detalii operațiunile cu tablourile unidimensionale în limbajul de
programare C. Astfel în decursul lucrării am studiat algoritmizarea
şi însuşirea procedeelor de declarare, introducere, afişare şi formare
prin parcurgere şi calcule ale valorilor elementelor tablourilor
unidimensionale. De asemenea, m-am familiarizat cu principiile de
solutionare a problemelor si prelucrarii elementelor tablourilor
unidimensionale, care cu siguranță vor fi folosinte în studierea
ulterioară a tablourilor bidimensionale și soluționarea problemelor
în ceea ce privește lucrul cu tablouri în limbajul de programare C.

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