Informatică, întrebare adresată de catalinboritchi0, 8 ani în urmă

CINE MA POATE AJUTA ??? IMI TREBUIE URGENT !!! UN PROGRAM IN C++
De la tastatura se introduce numarul natural n, apoi componentele a doua tablouri liniare t1 si t2. Tablourile au cite n componente numere intregi, scrieti un program pentru a determina valoarea maxima a componentelor din fiecare tablou.

Răspunsuri la întrebare

Răspuns de andriesboss92
2

Rezolvare:

#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 ).


Alexia5410: Te rog, mă poți ajuta și pe mine la ultimul exercițiu postat de pe contul meu? Te rog mult!
anaamarria2005: Ma poti ajuta la ultima mea intrebare? dau 50 de puncte
dancialexandra39: mă poți ajuta și pe mine la ultima intrebare pe care am pus o ?
Alte întrebări interesante