-
.
ho provato a fare un programma(traccia d'esame di qualche mese fa) che converta,tramite una funzione ricorsiva, gradi celsius in farenheit o viceversa a seconda della scelta dell'utente...il programma parte,ma da risultati sballati..dove sbaglio???
per favore help..
il programma scritto da me è questo:CODICE#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
double converti(double celsius,double far){
{ far=((5/9)*celsius) + 32;
return far;
}
{celsius=((far-32))*(9/5);
return celsius;
}
}
int main()
{
bool scelta;
double celsius;
double far;
cout<<"Convertire °F in °C o viceversa?(°F-°C=1; °C-°F=0;)"<<endl;
cin>>scelta;
if(scelta=1){
cout<<"Inserire una temperatura in gradi farenheit"<<endl;
cin>>far;
cout<<celsius<<" °F ="<<converti(celsius,far)<<" °C"<<endl;
}
else{
cout<<"Inserire una temperatura in gradi celsius"<<endl;
cin>>celsius;
cout<<celsius<<" °C ="<<converti(celsius,far)<<" °F"<<endl;
}
return 0;
}
ditemi qual'è l'errore,grazie???è urgente per favore..... -
.
l'ho modificato e ora parte,ma quando scelgo di convertire farenheit in celsiu va bene,mentre nell altro caso mi "sballa"..perchè?? CODICE#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
double converti1(double celsius){
double far;
far=((1.8)*celsius) + 32;
return far;
}
double converti2(double far) {
double celsius;
celsius=((far-32))*(1.8);
return celsius;
}
int main()
{
bool scelta;
double celsius;
double far;
cout<<"Convertire °F in °C o viceversa?(°F-°C=1; °C-°F=0;)"<<endl;
cin>>scelta;
if(scelta=1){
cout<<"Inserire una temperatura in gradi farenheit"<<endl;
cin>>far;
cout<<far<<" °F ="<<converti2(far)<<" °C"<<endl;
}
else {
cout<<"Inserire una temperatura in gradi celsius"<<endl;
cin>>celsius;
cout<<celsius<<" °C ="<<converti1(celsius)<<" °F"<<endl;
}
return 0;
}. -
Guglielmoqwerty.
User deleted
Ecco qui: CITAZIONE (aaa123 @ 12/12/2013, 13:03)CODICEdouble converti1(double celsius){
double far;
far=((1.8)*celsius) + 32;
return far;
}
Per trasformare da celsius tu fai
f = (1,8*c)+32CITAZIONECODICEdouble converti2(double far) {
double celsius;
celsius=((far-32))*(1.8);
return celsius;
}
E per trasformare in Fahrenheit fai
c=(far-32)*1.8
Dal punto di vista matematico non ha senso, perchè usando le proprietà delle equazioni da f = (1,8*c)+32 non puoi ottenere c=(far-32)*1.8 Semplicemente hai sbagliato perchè moltiplichi per 1.8 i f-32 invece di dividere. La formula corretta per il procedimento inverso è: °C = (°F − 32) / 1,8
tranquillo, è solo un errore di distrazione. -
.
ok,ma apparte la distrazione,prova a compilare il mio programma,quando scelgo di convertire celsius in farehneit mi escono cose sballate sullo schermo....prova e poi dimmi
se scelgo di convertire far in celsius tutto ok,digito 1(come scelta),inserisco i far e mi restituisce i celsius..se faccio viceversa(scelta 0) invece mi esce sempre di mettere i gradi farenheit..e qui l'errore..come lo correggo?. -
Guglielmoqwerty.
User deleted
Non ho il compilatore mi dispiace
E se devo essere sincero di C so poco, comincio a natale
Prima ti ho aiutato perchè l'errore era ovvio (quello) mentre questo che mi dici tu adesso on mi sembra possibile perchè in entrambi i casi compi le stesse operazioni...
Comunque ti do un piccolo consigli. Non serve che controlli che scelta sia uguale ad 1 perchè in C 1 equivale già a vero (come tutti i numeri diversi da zero). Quindi basta mettere
if(scelta) //codice
else //altro codice
L'unico cambiamento lo hai per i casi non previsti (se l'utente mette per esempio 5). Nel primo caso scelta è diverso da 5 e quindi viene eseguito l'"else", nel secondo caso 5 vale true (perché non è 0) e viene eseguito il primo
EIT:
Aspetta, ho notato una piccola cosa. Nell'if del sorgente c'è scritto scelta=1 ? Perchè mi sa che l'errore è lì. = è l'operatore di assegnamento, == quello di confronto. Quindi tu in ogni caso esegui l'if perchè scelta vale sempre 1 che non è 0 etc etc (cedi sopra). -
.
l'errore l'avevo già trovato ma grazie della risposta lo stesso...l'errore era proprio l'aver messo= nell if invece di ==
P.S.Non ho il compilatore mi dispiace
E se devo essere sincero di C so poco, comincio a natale
questo non è C...è C++. -
.
E' sempre lo stesso tipo di errore, ricorda che come in matematica = è un assegnamento. . -
.
si root faccio sempre lo stesso errore,è vero..è che proprio faccio fatica con = ed ==,ho capito la storia dell'assegnamento ma comunque faccio spesso confusione...come si dice da me a pratic spratic(la pratica spratica),più si fa una cosa e meglio la i fa(programmare in c++ in questo caso)....comunque spero che ettimana prossima finisca sto supplizio,e passi quest'esame del kaiser..già odiavo prima l'informatica,ma ora sono all'esaperazione...a schif c o cor(la odio col cuore).... . -
.
Questa è programmazione però, non informatica. Insomma, è un campo molto vasto l'Informatica, potresti anche trovare qualcosa che ti piace. . -
.Questa è programmazione però, non informatica. Insomma, è un campo molto vasto l'Informatica, potresti anche trovare qualcosa che ti piace.
la vedo dura,a me il pc in generale fa cag.re....oltre a usarlo per chattare su fb con la mia ragazza,vedere qualche telefilm e giocare a poker(che preferisco dal vivo,ma quando capita non disdegno giocare online) non lo uso per niente..figurati che non ho nessun videogame a casa,e oltre a usarlo per telefonare uso pochissimo anche il cellulare..sin da piccolo ho preferito la vita reale a quella virtuale,sono cresciuto per strada,e star davanti a uno schermo mi fa uscir scemo......la tecnologia mi piace,ma preferisco altre cose...con informatica io parlo di tutto ciò che concerne i pc(ergo anche la programmazione)...finito quest'esame tranne per lavoro o per eventuali evenienz,io e il pc torniamo degli estranei,ci "vediamo solo lo stretto necessario"..spero che con questa mia spiegazione capisca il perchè del mio astio verso il tuo mondo(quello del pc intendo)...sei gentile in tutti i post che apro,e ti ringrazio,ma,parafrasando una canzone di venditti, " l'informatica non sarà mai il mio mestiere"(lì dice la matematica,ma nel mio caso la matematica in parte lo sarà...)
detto ciò,i gusti son gusti..a me fa pena l'informatica a te(e tutti quelli su questo forum) invece piace..io preferisco altre cose,le mie passioni sono altre:le donne,il calcio,i film,il poker,etc...ma non certo il mondo dei pc....
buona serata root. -
.
Ah bhe, allora questa è un altra storia.
A me fanno cagare i motori, che siano motorini, moto, o auto. E come conseguenza mi fa anche cagare guidare l'auto, infatti guido il meno possibile. lol. -
.
bhe allora siamo agli antipodi:a te piace ciò che a me fa pena(l'informatica) e viceversa..io adoro i motori(ho scelto ing. meccanica perchè il mio sogno è lavorare alla ferrari,ma è un sogno,se viene bene,altrimenti posso anche "volare più basso")..a me guidare piace molto e mi rilassa,e posso assicurarti che a napoli il traffico non scherza..qui da noi il codice della strada per molti è un optional...ma nonostante ciò a me guidare rilassa molto i nervi...
la vita è bella perchè è varia,e nonostante le nostre differenze mi stai aiutando lo stesso e,anche se non ci conosciamo,ti ritengo un amico(o una specie )e va bene così quindi. -
Guglielmoqwerty.
User deleted
Ehi, e io? CITAZIONE (aaa123 @ 12/12/2013, 15:50)
Appunto, questo è il mio livello ^^
Comunque credo di aver capito che la differenza fra C e Anione doppio di Carbioni è il "uses namespace" etc etc. -
.
Concordo aaaa123.
Tra C e C++ ci sono differenze molto importanti, tanto che i linguaggi vengono definiti diversi.. -
Guglielmoqwerty.
User deleted
No, ok. Fin qui ci arrivo. Intendevo: non vedendo le classi come in Java direi che un punto di riferimento per capire se il programma è C o C++ (per adesso) è vedere se all'inizio è presente quella riga .