Progrămel#1

Rezolvarea problemelor de matematica prin realizarea unor programe.
noobakaflo
utilizator
utilizator
Mesaje: 34
Membru din: 03 Noi 2010, 21:35

Progrămel#1

Mesaj de noobakaflo » 22 Noi 2010, 15:04

În primul rând vreau sa salut toti membrii acestui forum şi sper că ne vom înţelege bine ! :lol: Sunt nou pe forum..

Cod: Selectaţi tot

Scrieţi un program C/C++ care citeşte un număr natural nenul &#40;n<=100&#41; şi apoi n numere naturale,de maximum 4 cifre fiecare,reprezentând elementele unui tablou unidimensional.Programul afişează "Da" în cazul în care elementele tabloului pot fi rearanjate astfel încât să formeze un şir strict crescător , iar în caz contrar afişează mesajul "Nu".
Exemplu&#58; dacă n=6 şi tabloul unidimensional are conţinutul &#40;54,162,2,18,486,6&#41;,se va afişa Da. 
Eu am făcut astfel:

Cod: Selectaţi tot

OK=0;
for &#40;i=1; i<=n-1; i++&#41;
for &#40;j=i+1; j<=n; j++&#41;
If &#40;v&#91;i&#93;==v&#91;j&#93;&#41;
OK=1;
if &#40;OK==0&#41;
cout<<"Da";
else
cout<<"Nu";
E bună rezolvarea mea ?Sunt şi alte modalităţi de rezolvare?


Mulţumesc!

ElenaIulia
utilizator
utilizator
Mesaje: 77
Membru din: 25 Oct 2010, 20:52

Mesaj de ElenaIulia » 22 Noi 2010, 16:13

Problema cere deci sa testezi daca numerele sunt aranjate deja sau pot fi aranjate.
In cazul asta rezolavarea ta pare ok.....din cate ma pricep eu...

Avatar utilizator
larry91
utilizator
utilizator
Mesaje: 49
Membru din: 16 Sep 2009, 20:33

Mesaj de larry91 » 23 Noi 2010, 13:51

Modalitatea ta e aproape buna! Sunt si alte modalitati, unele chiar mai rapide, dar am sa iti modific exemplul tau!

Cod: Selectaţi tot

OK=1; 
for &#40;i=1; i<=n-1; i++&#41; 
for &#40;j=i+1; j<=n; j++&#41; 
If &#40;v&#91;i&#93;!=v&#91;j&#93;&#41;
&#123; 
OK=0; // s-a gasit un element care nu se afla pe pozitia corecta
break; // fortam iesirea din ciclu
&#125;
if &#40;OK==1&#41; 
cout<<"Da"; 
else 
cout<<"Nu"; 
Exemplul tau nu era bun pentru ca tu testai daca se afla elementele pe pozitia corecta si daca am fi presupus ca primul element e ok, atunci ok = 1, iar daca urmatoarele erau gresit puse atunci tu nu mai modificai starea ok-ului! Sper ca ai inteles! Succes!

noobakaflo
utilizator
utilizator
Mesaje: 34
Membru din: 03 Noi 2010, 21:35

Mesaj de noobakaflo » 24 Noi 2010, 12:02

Am înţeles,mulţumesc!

Scrie răspuns