Cateva intrebari (in legatura cu un program foarte simplu)
Ultima postare: nov 10 2012 15:38, Inițiat de
cfsmihai
, nov 09 2012 22:29
·
0
#1
Publicat: 09 noiembrie 2012 - 22:29
Buna ziua,
am inteles ca nu pot posta cod sau intrebari legate de teme pentru facultate, dar am o problema si nu imi pot da seama de ce apare. Pe Google nu m-am lamurit si nu am pe cine sa mai intreb. Daca exista cineva cu putin timp liber, am sa ii trimit intrebarea prin mesaj privat. Imi cer scuze pentru (mica) incalcare a regulamentului. Multumesc. |
#3
Publicat: 09 noiembrie 2012 - 23:43
OK, problema mea este ca oricum as face, rezultatul urmatorului calcul este 0. Sau daca schimb tipul variabilei din float in altceva, imi da alt raspuns fara sens. Mie imi pare scris corect, in C. De ce nu face inmultirea corect dintre variabila "euro" introdusa de la tastatura si constanta "ct = 4.3". Am observat ca daca declar valoarea lui "euro" din cod, rezultatul este corect. Astfel, am ajuns la concluzia ca e ceva in neregula cu scanf. Dar nu stiu... Am patit ceva similar si la alte exercitii, dar am schimbat una-alta si mi-a iesit. Nu am avut nici o baza concreta.
Multumesc. Enuntul problemei este in comentariu. #include <stdio.h> #include <stdlib.h> #include <math.h> /* Scrieţi un program care să ceară utilizatorului să tasteze un număr reprezentând euro şi afişează valoarea în lei (mizaţi pe o rată de schimb de 4,3 lei) */ int main() { float euro; float ron; float ct; ct = 4.3; ron = ct * euro; printf("Introduceti valoare in EURO: "); scanf("%f", &euro); printf(" \n Valoarea in RON este: %f", ron); getchar(); return 0; } |
#5
Publicat: 09 noiembrie 2012 - 23:52
dc. prog. e chiar aşa cum l-ai scris, ordinea e aiurea (citeşti euro DUPĂ ce înmulţeşti cu euro cu 4.3...)
orice program este o secvenţă ordonată de instrucţiuni; instrucţiunea N se excută DUPĂ instr. N-1 şi ÎNAINTE de N+1. Odată ce a făcut ron=ct*euro nu se mai întoarce acolo !!! (şi asta e valabil şi în alte limbaje, nu numai C) |
#6
Publicat: 09 noiembrie 2012 - 23:56
XON-XOFF, pe 09 noiembrie 2012 - 23:52, a scris:
dc. prog. e chiar aşa cum l-ai scris, ordinea e aiurea (citeşti euro DUPĂ ce înmulţeşti cu euro cu 4.3...) orice program este o secvenţă ordonată de instrucţiuni; instrucţiunea N se excută DUPĂ instr. N-1 şi ÎNAINTE de N+1. Odată ce a făcut ron=ct*euro nu se mai întoarce acolo !!! (şi asta e valabil şi în alte limbaje, nu numai C) Aveti dreptate. Acolo era problema. Nu stiu de ce am folosit ordinea asta. Multumesc pentru lamuriri Editat de cfsmihai, 09 noiembrie 2012 - 23:57. |
#8
Publicat: 10 noiembrie 2012 - 00:22
yonut_a, pe 10 noiembrie 2012 - 00:15, a scris:
Ai folosit ordinea aia pentru ca nu ai gandit inainte sa scrii cdul. continua asa si vei face o mare varza din cunostiintele tale Am crezut initial ca nu conteaza atata timp cat totul este declarat corect. Abia am inceput scoala si nu am mai avut de-a face cu programarea, excluzand cateva tutoriale vizualizate pe internet. In orice caz, am sa tin cont de ordinea instructiunilor de acum incolo. Multumesc inca o data. Editat de cfsmihai, 10 noiembrie 2012 - 00:23. |
#12
Publicat: 10 noiembrie 2012 - 11:59
cfsmihai, pe 10 noiembrie 2012 - 00:22, a scris:
Am crezut initial ca nu conteaza atata timp cat totul este declarat corect. Exact ce iti spuneam eu , nu ai gandit inainte sa scrii pasii logici pe care trebuie sa ii urmezi. Inainte de a scrie cod fa schema logica, o bucata de pseudocod si abia atunci cand toata logica este completa treci la scrierea codului |
#13
Publicat: 10 noiembrie 2012 - 12:03
Tu te-ai gandit la ceva de genul asta
#include <stdio.h> #include <stdlib.h> #include <math.h> /* Scrieti un program care sa ceara utilizatorului sa tasteze un numar reprezentând euro si afiseaza valoarea în lei (mizati pe o rata de schimb de 4,3 lei) */ float RON(float euro) { return euro * 4.3; } int main() { float valoareEuro; printf("Introduceti valoare in EURO: "); scanf("%f", &valoareEuro); printf(" \n Valoarea in RON este: %f", RON(valoareEuro)); getchar(); return 0; } Editat de dani.user, 10 noiembrie 2012 - 12:03. |
#14
Publicat: 10 noiembrie 2012 - 15:02
dani.user, pe 10 noiembrie 2012 - 12:03, a scris:
Tu te-ai gandit la ceva de genul asta #include <stdio.h> #include <stdlib.h> #include <math.h> /* Scrieti un program care sa ceara utilizatorului sa tasteze un numar reprezentând euro si afiseaza valoarea în lei (mizati pe o rata de schimb de 4,3 lei) */ float RON(float euro) { return euro * 4.3; } int main() { float valoareEuro; printf("Introduceti valoare in EURO: "); scanf("%f", &valoareEuro); printf(" \n Valoarea in RON este: %f", RON(valoareEuro)); getchar(); return 0; } structura ta ma cam depaseste. nu sunt sigur ca inteleg foarte bine tot ce se intampla acolo. in orice caz am rezolvat deja ce aveam de facut. doar am fost eu bleg si nu am tinut cont de ordinea corecta. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ Utilizatori activi: 1
0 membri, 1 vizitatori, 0 utilizatori anonimi