Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
Catedra ISA
RAPORT
Lucrarea de laborator nr.1
la Programarea Orientată pe Obiecte
A efectuat:
st. gr. AI-161 S. Chiu
A verificat:
Lector univ. M. Oșovschi
Chişinău 2017
Lucrarea de laborator nr.1
float* AlocareTab(int n)
{
float* A = NULL;
int i;
A = (float*)malloc(n*sizeof(float));
if (!A)
{
printf("Memoria nu a fost alocata!");
exit(1);
}
else printf("Memoria a fost alocata cu succes!");
return A;
}
int createL(int n)
{
lista *c, *p;
int i;
for (i=0; i<n; i++)
{
c=(lista*)malloc(sizeof(*c));
if (!c){return i+1;}
if (i==0) {head=c;}
else {p->next=c;}
p=c;
}
c->next=NULL;
return 0;
}
void initL(void)
{
lista *c;
c=head;
puts("Introduceti lista:");
while(c)
{
printf("Introdu nodul:");
3
scanf("%d",&c->val);
c=c->next;
if (head==c) break;
}
}
void showL(void)
{
lista *c;
printf("Lista introdusa:");
c=head;
while(c)
{
printf("\n%d", c->val, c->next);
c=c->next;
if (c==head) {break;}
}
}
int main()
{
int i, n, k, x, j, s;
float y, m;
float* T = NULL;
printf("Sarcina I: Scrieti un program care efectueaza inmultirea cifrelor unui
numar dat.");
printf("Introdu numarul de cifre ce va contine numarul dorit, n =");
scanf("%i", &n);
T = AlocareTab(n);
printf("Introdu numarul dorit de n = %i cifre=>", n);
initTab(T, n);
y = lab1a(T, n);
free(T);
printf("Rezultatul inmultirii cifrelor este y = %f\n\n", y);
printf("Sarcina II: Scrieti un program care calculeaza numarul de elemente dintr-o
lista simplu lantuita care sunt mai mici ca valoarea medie aritmetica a tuturor
elementelor acestei liste.\n");
printf("Introdu numarul de noduri ale listei: ");
scanf("%i", &i);
j = createL(i);
if (j != 0)
{
printf("Memoria nu a fost alocata!");
exit(1);
}
initL();
showL();
lab1b(&k, &m, &s, &x);
printf("\nNumarul de elemente in lista = %d\nSuma nodurilor = %d\nMedia
aritmetica a nodurilor = %.2f\nNumarul de elemente mai mici ca valoarea medie =
%d", x, s, m, k);
}
5
Rezultatele obținute:
Concluzii:
În lucrarea dată de laborator ne-am familiarizat cu limbajul C++, cu
reprezentările tipurilor de date în memoria calculatorului, cu operatorii și
instrucțiunile ciclice și de condiție al limbajului. În varianta respetivă am lucrat cu
tablou unidimensional alocând memoria dinamic și eliberând-o la finalul execuției
programului, iar în subsarcina “b” – am utilizat concepția de listă simplu înlănțuită,
declarând structura listă și scriind câteva funcții de realizare a sarcinilor necesare.
Astfel, am repetat limbajul C standart și am făcut o inițiere în limbajul C++,
observând diferențele, avantajele și dizavantajele limbajului C++ față de C.