Sunteți pe pagina 1din 6

Laborator 4 „Utilizarea diferitelor structuri de date”.

1. Creați un tablou bidimensional de tip întreg. Introduceți date inițiale în fiecare element
al tabloului (masivului) de la tastatură. Creați posibilitatea de a modifica valoarea
elementului dorit de la tastatură, adică de la tastatură se întroduc coordonatele (rândul și
coloana) elementului care urmează să fie modificat, apoi, de la tastatură, se introduce și
valoarea noua a elementului tabloului.

2. Creați un vector (tablou unidimensional), elementele căruia vor fi structuri, ce vor


conține informații despre un student, și anume:
 Nume;
 Prenume;
 Anul, luna și ziua nașterii;
 Grupa în care învață.
Introduceți, de la tastatură informații despre fiecare student. Creați posibilitatea de a
modifica informația despre student la apelul utilizatorului, de la tastatură.

3. Punctul precedent realizaț-il folosind clasele.

4. De îndeplinit punctual 1, dar folosind pointeri.


#include <iostream>
using namespace std;

int main(int argc, char **argv)


{
int a[100][100], i,j,n,m,l,p,o,k;
cout<<"introduceti marimea masivului\nn=";
cin>>n; cout<<"\nm="; cin>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{cout<<"a["<<i+1<<"]["<<j+1<<"] = "; cin>>k; a[i][j]=k;}
cout<<a[0][0];
cout<<"masivul:";
for(i=0;i<n;i++)
{cout<<endl;
for(j=0;j<m;j++)
cout<<a[i][j]<<' ';
}

cout<<"\nintroduceti linia in care se afla elementul ce doriti sa fie modificat ";


cin>>i;
cout<<"introduceti coloana in care se afla elementul ce doriti sa fie modificat ";
cin>>j;
cout<<"introduceti noua valoare pentru elementul "<<"a["<<i<<"]["<<j<<"] = ";
i--;j--;
cin>>a[i][j];
for(i=0;i<n;i++)
{cout<<endl;
for(j=0;j<m;j++)
cout<<a[i][j]<<' ';
}
return 0;
}
5. Creați un vector (tablou unidimensional), elementele căruia vor fi structuri, ce vor
conține informații despre un student, și anume:
 Nume;
 Prenume;
 Anul, luna și ziua nașterii;
 Grupa în care învață.
Introduceți, de la tastatură informații despre fiecare student. Creați posibilitatea de a
modifica informația despre student la apelul utilizatorului, de la tastatură.
#include <iostream>
#include <string>

using namespace std;


struct student
{
char nume[15];
char prenume[15];
char dataN[11];
char grupa[9];
};
int main(int argc, char *argv[])
{int i,j,k,l,m,n,o,p;
cout<<"Introduceti numarul de studenti\nn = ";
cin>>n;
student * a = new student[100];
for(i=0;i<n;i++)
{
cout<<"Nume "<<i+1<<" "; cin>>a[i].nume; cout<<endl;
cout<<"Prenume "<<i+1<<" "; cin>>a[i].prenume; cout<<endl;
cout<<"Data nasterii zz.ll.aa "<<i+1<<" "; cin>>a[i].dataN; cout<<endl;
cout<<"Grupa "<<i+1<<" "; cin>>a[i].grupa; cout<<endl;
}

cout<<"Lista studentilor este:\n";


for(i=0;i<n;i++)
{cout<<endl;
cout<<"Nume "<<i+1<<" "<<a[i].nume; cout<<endl;
cout<<"Prenume "<<i+1<<" "<<a[i].prenume; cout<<endl;
cout<<"Data nasterii "<<i+1<<" "<<a[i].dataN; cout<<endl;
cout<<"Grupa "<<i+1<<" "<<a[i].grupa; cout<<endl;
}
char s[5];
a:
cout<<"\nDoriti sa modificati ceva? (Da/Nu)\n"; cin>>s;
if((s[0]=='D')&&(s[1]=='a'))
{
c:
cout<<"Introduceti numarul studentului ce doriti sa fie modificat ";
int nr;
cin>>nr;
if((nr>0)&&(nr<=n))
{cout<<"Introduceti noile date despre student:\n";
cout<<"Nume "<<nr<<" "; cin>>a[nr-1].nume; cout<<endl;
cout<<"Prenume "<<nr<<" "; cin>>a[nr-1].prenume; cout<<endl;
cout<<"Data nasterii zz.ll.aa "<<nr<<" "; cin>>a[nr-1].dataN; cout<<endl;
cout<<"Grupa "<<nr<<" "; cin>>a[nr-1].grupa; cout<<endl;

cout<<"Lista modificata a studentilor este:\n";


for(i=0;i<n;i++)
{cout<<endl;
cout<<"Nume "<<i+1<<" "<<a[i].nume; cout<<endl;
cout<<"Prenume "<<i+1<<" "<<a[i].prenume; cout<<endl;
cout<<"Data nasterii "<<i+1<<" "<<a[i].dataN; cout<<endl;
cout<<"Grupa "<<i+1<<" "<<a[i].grupa; cout<<endl;
goto a;
}
}
else {cout<<"Nu ati introdus un numar existent de student, trebuie sa introduceti un
numar intre 1 si "<<n<<'\n'; goto c;}
}
else if((s[0]=='N')&&(s[1]=='u')) {goto b;}
else cout<<"Nu ati introdus corect, daca doriti sa modificati ceva introduceti \"Da\" sau
\"Nu\"\n";
goto a;
b:
return 0;
}

3. Punctul precedent realizat, dar folosind clasele.


#include <iostream>
#include <string>

using namespace std;


class student
{public:
char nume[15];
char prenume[15];
char dataN[11];
char grupa[9];
};
int main(int argc, char *argv[])
{int i,j,k,l,m,n,o,p;
cout<<"Introduceti numarul de studenti\nn = ";
cin>>n;
student * a = new student[100];
//citirea
for(i=0;i<n;i++)
{
cout<<"Nume "<<i+1<<" "; cin>>a[i].nume; cout<<endl;
cout<<"Prenume "<<i+1<<" "; cin>>a[i].prenume; cout<<endl;
cout<<"Data nasterii zz.ll.aa "<<i+1<<" "; cin>>a[i].dataN; cout<<endl;
cout<<"Grupa "<<i+1<<" "; cin>>a[i].grupa; cout<<endl;
}
//afisarea
cout<<"Lista studentilor este:\n";
for(i=0;i<n;i++)
{cout<<endl;
cout<<"Nume "<<i+1<<" "<<a[i].nume; cout<<endl;
cout<<"Prenume "<<i+1<<" "<<a[i].prenume; cout<<endl;
cout<<"Data nasterii "<<i+1<<" "<<a[i].dataN; cout<<endl;
cout<<"Grupa "<<i+1<<" "<<a[i].grupa; cout<<endl;
}
char s[5];
a:
cout<<"\nDoriti sa modificati ceva? (Da/Nu)\n"; cin>>s;
if((s[0]=='D')&&(s[1]=='a'))
{
c:
cout<<"Introduceti numarul studentului ce doriti sa fie modificat ";
int nr;
cin>>nr;
if((nr>0)&&(nr<=n))
{cout<<"Introduceti noile date despre student:\n";
cout<<"Nume "<<nr<<" "; cin>>a[nr-1].nume; cout<<endl;
cout<<"Prenume "<<nr<<" "; cin>>a[nr-1].prenume; cout<<endl;
cout<<"Data nasterii zz.ll.aa "<<nr<<" "; cin>>a[nr-1].dataN; cout<<endl;
cout<<"Grupa "<<nr<<" "; cin>>a[nr-1].grupa; cout<<endl;
cout<<"Lista modificata a studentilor este:\n";
for(i=0;i<n;i++)
{cout<<endl;
cout<<"Nume "<<i+1<<" "<<a[i].nume; cout<<endl;
cout<<"Prenume "<<i+1<<" "<<a[i].prenume; cout<<endl;
cout<<"Data nasterii "<<i+1<<" "<<a[i].dataN; cout<<endl;
cout<<"Grupa "<<i+1<<" "<<a[i].grupa; cout<<endl;
goto a;
}
}
else {cout<<"Nu ati introdus un numar existent de student, trebuie sa introduceti un
numar intre 1 si "<<n<<'\n'; goto c;}
}
else if((s[0]=='N')&&(s[1]=='u')) {goto b;}
else cout<<"Nu ati introdus corect, daca doriti sa modificati ceva introduceti \"Da\" sau
\"Nu\"\n";
goto a;
b:
return 0;
}
4. Creați un tablou bidimensional de tip întreg. Introduceți date inițiale în fiecare element al
tabloului (masivului) de la tastatură. Utilizint pointeri creați posibilitatea de a modifica
valoarea elementului dorit de la tastatură, adică de la tastatură se întroduc coordonatele
(rândul și coloana) elementului care urmează să fie modificat, apoi, de la tastatură, se
introduce și valoarea noua a elementului tabloului.

#include <iostream>
using namespace std;

int main(int argc, char **argv)


{
int i,j,k;
int& n=*new int(0); cout << "n="; cin >> n;
int& m=*new int(0); cout << "m="; cin >> m;
int **a = new int *[n];
for(int i=0; i<n; i++)
{
a[i] = new int[m];
for(int j=0; j<m; j++)
{
cin >> a[i][j];
}
}
cout << endl << endl << "Matricea initiala are " << n << " linii si " << m << "
coloane:\n\n";
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{ cout << a[i][j] << ' ';
}
cout << endl << endl;
}// extragerea matricei totale
cout<<"\nintroduceti linia in care se afla elementul ce doriti sa fie modificat ";
cin>>i;
cout<<"introduceti coloana in care se afla elementul ce doriti sa fie modificat ";
cin>>j;
cout<<"introduceti noua valoare pentru elementul "<<"a["<<i<<"]["<<j<<"] = ";
i--;j--;
cin>>a[i][j];
for(i=0;i<n;i++)
{cout<<endl;
for(j=0;j<m;j++)
cout<<a[i][j]<<' ';
}
return 0;
}

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