Cine ma poate ajuta urgent cu un program in c++
ex 10 a)
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int main()
{
int n, max1, max2;
cout << "n = ";
cin >> n;
int t1[n], t2[n];
for(int i = 0; i < n; i++)
{
cout << "t1[" << i << "] = ";
cin >> t1[i];
}
cout<<endl;
for(int i = 0; i < n; i++)
{
cout << "t2[" << i << "] = ";
cin >> t2[i];
}
max1 = t1[0];
max2 = t2[0];
for(int i = 1; i < n; i++)
{
if( max1 < t1[i] )
max1 = t1[i];
if(max2 < t2[i] )
max2 = t2[i];
}
cout << "a) Valoarea maxima din vectorul t1 este: " << max1 <<endl;
cout << "Valoarea maxima din vectorul t2 este: " << max2 <<endl;
cout << "b) Valoarea maxima dintre elementele celor doua tablouri este: ";
if( max1 < max2 )
cout << max2 << " din tabloul t2";
else
cout << max1 <<" din tabloul t1";
}
Explicație:
Citesc n numar natural.
Declar doi vectori de dimensiunea n citita pentru a economisi spatiu si memorie in tablouri.
Citesc elementele fiecarui tablou in parte.
Conform cerintei ambele tablouri au aceeasi dimensiunea ceea ce permite aflarea maximului ambelor tablouri printr-o singura parcurgere.
Atribui celor doua variabile max1 si max2 prima valoare din vectori astfel incat compilatorul sa nu puna valori aleatorii in cele doua variabile astfel ca vom incepe parcurgerea de pe pozitia 1 a vectorului intrucat stim care este prima valoare ( cea din max1, respectiv max2 ). Comparam prima valoare cu cea de pe pozitia i din vector astfel ca in momentul in care valoarea maxima gasita pana la pozitia i-1 este mai mica decat o valoare aflata pe pozitia i, variabila maxima va memora valoarea de pe pozitia i, pana cand am ajuns la final de sir.
Acest principiu se aplica la ambele variabile max1, max2.
Exemplu:
n = 3
t1 = [ 1, 2, 3 ]
t2 = [ 1, 4, 2 ]
max1 = 1
max2 = 1
intru in secventa for(int i = 1, i < n, i++)
verific daca max1 < t1[ 1 ] ( t1[ 1 ] = 2, deci 1 < 2 adevarat ) ===> max1 = 2
verific daca max2 < t2[ 1 ] ( t1[ 2 ] = 4, deci 1 < 4 adevarat ) ==> max 2 = 4
reiau secventa for cu pasul i+1, adica pe pozitia 2 in vector.
Nu uitam faptul ca vectorul incepe de la pozitia 0 astfel ca pozitia 2 in vector reprezinta a treia variabila. Sunt doua lucruri care necesita atentie deoarece pot fi usor incurcate intre ele.
pentru i = 2
daca max1 < t1 [ 2 ] ( t1[ 2 ] = 3, deci 2 < 3 adevarat ) ===> max1 = 3
daca max2 < t2[ 2 ] ( t2[ 2 ] = 2, deci 4 < 2 FALS ) ===> nu se executa bloc instructiuni
reiau secventa for cu pasul i + 1, adica pe pozitia 3 in vector.
Verific daca i < n ---> 3 < 3 FALS, parasesc secventa for, continui instructiuni ulterioare ( in acest caz afisez mesaj ).