Jump to content
emanuel.98

Intrebare informatica

Recommended Posts

Posted (edited)

Salutare tuturor!

Astazi am dat un test la informatica,si vreau sa va intreb pe voi daca este corect modul in care am rezolvat un exercitiu pe care l-am avut la test:

Cerinta: Se citeste un numar natural n de 3 cifre distincte.Sa se afiseze cel mai mic numar de trei cifre care se poate forma cu cifrele numarului dat.

Rezolvarea mea(pseudocod):

start

citeste n

a<- (n/100) %10

b<- (n/10) %10

c<- n%10 (am calculat cifrele numarului aici)

daca a>b && b>0 atunci aux<- a , a<-b , b<- aux

daca a>c && c>0 atunci aux<- a, a<-c, c<- aux

daca b>c atunci aux<- b, b<-c , c<-aux

(am ordonat cifrele numarului aici)

scrie a*100+b*10+c (am scris numarul dupa ordonarea cifrelor aici)

stop

In mod normal din cate am inteles ar trebui la sfarsit pusa conditia "daca a==0 scrie "eroare"(pentru ca numarul nu mai e de trei cifre),altfel scrie a*100+b*10+c"

La mine problema e "de ce am pus b>0 si c>0".Dupa cum m-am gandit eu,conditiile acelea previn interschimbarea dintre a si b respectiv dintre a si c daca b sau c sunt egale cu 0,ca altfel daca se interschimbau,indiferent daca b sau c erau egale cu 0 sau nu,putea sa devina un numar de 2 cifre sau ,in cazuri particulare, de o cifra.Astfel evit sa mai pun conditia cu a==0 deoarece,dupa algoritmul meu,cifra a nu poate sa devina 0 dupa ordonarea crescatoare a cifrelor numarului n.

Voi ce parere aveti?E corect?E gresit?Am uitat sa scriu ceva?Va rog sa imi spuneti in comentarii :)

PS:Sorry for the long post

PPS: Daca trebuia pusa problema in categoria "Ajutor",imi cer scuze.

Edited by emanuel.98
Posted
In mod normal din cate am inteles ar trebui la sfarsit pusa conditia "daca a==0 scrie "eroare"(pentru ca numarul nu mai e de trei cifre),altfel scrie a*100+b*10+c"

^ asta este o rezolvare lenesa care nu respecta cerinta

Rezolvarea ta este corecta si conform cerintei.

Programul ar trebui sa iti dea o eroare doar in cazul in care datele de intrare nu sunt in numar natural de 3 cifre.

Posted

Salut,

Eu as face asa in locul tau:

1. Verific daca input-ul meu se afla in intervalul [123,789], daca nu => eroare

2. Verific input-ul sa fie un numar natural (adica 123, nu 123,45)

! Aici poti permite orice tip de numar, daca folosesti tipul de date corect, in functie de limbajul de programare folosit (adica daca-ti rotunjeste 123,49 la 124 si 123,51 la 126).

3. Extrag fiecare numar introdus si le definesc fiecaruia o variabila separata/pun intru vector (iarasi, in functie de limbaj).

4. Aplic algoritmul de cautare a celui mai mic numar (sortare de orice fel vrei tu, iarasi, in functie de limbajul folosit)

5. Reconstruiesc cele 3 numere pe baza valorilor obtinute din algoritm

6. Afisez rezultatul

7. Comentez codul si il testez

8. Beau o bere

Daca vrei mai detaliat de-atat, spune si te rezolv.

Posted
Multumesc m3gatr0n :D

Pare mai viabila solutia ta insa cred ca depaseste putin nivelul meu de programator :)

Cand ai spus "Extrag fiecare numar" nu te-ai referit cumva la cifra?

Ba da, ma refeream la cifra.

De ce zici ca depaseste nivelul tau?

Pentru punctele 1,2 si 4 faci functii si aia e.

Bafta!

PS:

Niste sfaturi:

-inainte de a scrie o singura linie de cod gandeste-te la ceea ce vrei sa faci si CUM; pana nu iti e clar, n-are rost sa te apuci

-foloseste debugger-ul la maxim pana stapanesti limbajul, te va ajuta mult

-declara variabilele cu cap, astfel incat daca-ti citesti codul peste o luna sa stii ce face

-testeaza fiecare varianta ce-ti vine in minte si trateaza user-ul ca un neavizat

-ramai curios

-cauta sa intelegi logica, inveti solutia pe de rost

-citeste help-ul ca sa intelegi ce face o instructiune; limbajul e doar o unealta, nimic mai mult

-citeste si cauta sa intelegi coduri scrise de altii, te va ajuta sa vezi stiluri diferite

-daca te blochezi, fa o pauza si revino dupa cateva minute cu mintea clara

-cauta ajutor de la altii mai buni ca tine, doar asa poti inainta

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...