Documente Academic
Documente Profesional
Documente Cultură
Chişinău-2016
Problema 1 :
а) Să se creeze tipul abstract de date (structura) – ţara, care are denumire, continentul pe care se află şi
numărul de locuitori. Să se definească funcţiile de setare a denumirii ţării şi a numărului de populaţie, de
modificare a datelor, de comparare a ţărilor şi de eliberare a memoriei. Să se utilizeze operatorul new
pentru setarea denumirii ţării. În main să se exemplifice căutarea ţărilor după denumire şi populaţie.
Problema 2 :
Să se creeze tipul abstract de date (structura) – vector, care are pointer spre int şi numărul de elemente. Să
se definească funcţiile de iniţializare, de eliminare a vectorului, de setare/modificare a dimensiunii, de
acces la elementele vectorului, de calcul a mediei elementelor pozitive ale vectorului. Ca exemplu, în
funcţia main să se realizeze compararea a doi vectori.
1. Codul sursa :
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <iostream>
struct tara
{
char* nume;
char* continent;
long int locuitori;
};
tara indice[50];
void adaugare(int i)
{
}
}
int main()
{
int i=0,n=0,option;
menu:
cout<<"\n\n\n\t\t\tMENU\n\n\n";
cout<<"\t1.........Introducerea datelor"<<endl
<<"\t2.........Afisarea datelor"<<endl
<<"\t3.........Adaugarea datelor"<<endl
<<"\t4.........Modificarea datelor"<<endl
<<"\t5.........Sortarea datelor"<<endl
<<"\t6.........Cautarea informatiei"<<endl
<<"\t7.........Eliberarea Memoriei"<<endl
<<"\t0.........Iesire"<<endl;
cin>>option;
switch(option)
{
case 1:
cout<<"\n\n\t\t\tBAZA DE DATE\n\n";
afisare(i,n);
goto menu;
case 3:
if(n==0){
cout<<"\n\n\tIn primul rind introduceti lista de tari";
getch();
goto menu;
}else
adaugare(i);
n++;
afisare(i,n);
goto menu;
case 4:int nr;
afisare(i,n);
goto menu;
case 6:
cautare(i,n);
goto menu;
case 7:
cout<<"Eliberarea memoriei se va face pentru lista :"<<endl;
afisare(i,n);
eliberare(i,n);
cout<<"Memoria a fost eliberata!"<<endl;
n=0;
getch();
goto menu;
case 0:exit(1);
getch();
return 0;
}
Rezultatele compilarii :
Afisarea datelor :
Cautarea informatiei:
Modificarea datelor:
2. Codul sursa :
#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<process.h>
#include<stdlib.h>
#include<math.h>
struct Vector
{
int *point;
int n;
};
delete[] v->point;
v->point = newData;
v->n = newSize;
cout << "Dimensiunea noua e mai mare, introduceti " << newSize - v->n << " elemente" <<
endl;
for(int i = v->n; i < newSize; i++){
cin >> newData[i];
}
delete[] v->point;
v->point = newData;
v->n = newSize;
} else {
cout << "Same dimension";
}
int main()
{
int n,n2,n3,i,k=0,option;
float val,s=0,s2,medie;
Vector v,v2;
menu:
cout<<"\n\t\t\t.........MENU.........\n\n";
cout<<"\n\t\t\t1...Initierea vectorului";
cout<<"\n\t\t\t2...Afisarea vectorului";
cout<<"\n\t\t\t3...Schimbarea unui element";
cout<<"\n\t\t\t4...Media numerelor pozitive";
cout<<"\n\t\t\t5...Compararea cu al doilea vector(de aceeasi lungime)";
cout<<"\n\t\t\t6...Eliberarea memoriei";
cout<<"\n\t\t\t7...Modificare lungime";
cout<<"\n\t\t\t8...Iesire\n";
cin>>option;
switch(option)
{
case 1:
Afisare_Vector(&v);
getch();
goto menu;
case 3:
Afisare_Vector(&v);
cout<<"\nIntroduceti indicile elementului de schimbat ";
cin>>i;
cout<<"\n Elementul cu indicile "<<i<<"este "<<getElement(&v,i-1);
cout<<"\n Introduceti valoarea noua : ";
cin>>val;
setElement(&v,i-1,val);
Afisare_Vector(&v);
getch();
goto menu;
case 4:
Afisare_Vector(&v);
for (i=0;i<n;i++)
if(v.point[i]>0)
{
s+=v.point[i];
k++;
}
medie=s/k;
cout<<"\nSuma numerelor pozitive este : "<<s;
cout<<"\nMedia lor este : "<<medie;
getch();
goto menu;
case 5:
case 6:
Sterge(&v);
Sterge(&v2);
cout<<"\nMemoria a fost eliberata \a\a\a";
getch();
goto menu;
case 7:
cout<<"Dati lungimea noua : ";
cin>>n3;
setSize(&v, n3);
getch();
goto menu;
case 8: exit(0);
default:cout<<"\n\n\n\t\t\a\a\aAlegeti corect optiunea!!!\a\a\a";
getch();
goto menu;
}
return 0;
}
Rezultatele compilarii:
Initializarea, afisarea vectorului :