|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: May 2012
Messaggi: 24
|
C++ esercizio
Salve a tutti,
come da titolo vorrei una mano su un esercizio di programmazione. il testo dell'esercizio è il seguente: "Gli automobilisti sono sempre più attenti ai consumi delle proprie automobili. Un automobilista ha tenuto traccia del numero di km percorsi con la sua auto e del numero di litri di benzina acquistati durante il rifornimento. Così hanno fatto tutti gli automobilisti. Sviluppare un programma in c++ che immetta il numero di km percorsi ed il numero di litri di benzina acquistati da ogni automobilista e calcoli e mostri a video il numero di km percorsi con un litro di benzina. Questo calcolo e visualizzazione deve essere effettuato per un numero imprecisato di automobili, perchè alla fine dell'algoritmo si vuole ottenere una media dei km percorsi con un litro di benzina." Allora devo utilizzare solo i comandi if , else , while. il programma che ho scritto io è il seguente: #include <iostream> using namespace std; int main() { int a, b, totallitri, totalkm, counter; float mediakm, media; totallitri=0; totalkm=0; counter=0; cout<<"inserire i litri di benzina acquistati"; cin>>a; cout<<"inserire i km percorsi"; cin>>b; while(a!=(-1)){ totallitri=totallitri+a; counter=counter+1; cout<<"inserisci il numero di litri"; cin>>a; cout<<"inserisci i km percorsi"; cin>>b; totalkm=totalkm+b; } if(counter!=0){ mediakm=totalkm/totallitri; media=mediakm/counter; cout<<"la media di km percorsi è : "<<media<<endl; } else cout<<"non sono stati acquistati litri di benzina"; return 0; } ci sono ben 2 problemi il primo:mi da sempre zero come media. il secondo è che non si ferma quando viene immesso il valore -1 per i litri finchè non viene inserito il valore -1 anche per i km. potreste aiutarmi per favore? Grazie a tutti |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: May 2012
Messaggi: 24
|
ehm...
non ne vedo. per quanto riguarda il fatto che mi da sempre zero come media, penso sia dovuto al fatto che non gli ho detto che la media può essere un numero decimale. è corretto? se non ti scoccia potresti scrivere uno pseudo codice? così io poi cerco di tradurlo? |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: May 2012
Messaggi: 24
|
Grazie mille per le risposte,
mi potresti spiegare meglio la questione della posizione delle sommatorie? |
![]() |
![]() |
![]() |
#4 |
Junior Member
Iscritto dal: May 2012
Messaggi: 24
|
uguale a b giusto?
|
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: May 2012
Messaggi: 24
|
Ok,
ma allora come devo procedere? ![]() int main() { int a, b, totallitri, totalkm, counter; float media1, media; totallitri=0; totalkm=0; counter=0; cout<<"inserire i litri di benzina acquistati"; cin>>a; while(a!=(-1)){ counter=counter+1; cout<<"inserisci i km percorsi"; cin>>b; media=static_cast<float>(b)/a; cout<<"per questo serbatoio i km/ltso:"<<setprecision(6)<<setiosflags(ios::fixed | ios::showpoint)<<media<<endl; totalkm=totalkm+b; totallitri=totallitri+a; cout<<"inserisci il numero di litri"; cin>>a; } if(counter!=0){ media1=static_cast<float>(totalkm)/totallitri; cout<<"la media totale di km/lt è : "<<setprecision(6)<<setiosflags(ios::fixed | ios::showpoint)<<media1<<endl; } else cout<<"non sono stati acquistati litri di benzina"; return 0; } è corretto? ma mi sorge una curiosità: per questo eserfizio è necessario usare il counter?? Ultima modifica di sici_90 : 05-03-2015 alle 10:26. |
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: May 2012
Messaggi: 24
|
Allora vediamo un pò,
ho risolto quell'esercizio; ma ora avrei bisogno di una mano con un altro esercizio. devo scrivere un programma che stimi il valore della costante matematica e (numero di nepero)tramite la formula; e=1+1/(1!)+1/(2!).... allora ho cominciato a scriverlo è questo: Codice PHP:
perchè non fa la somma di tutte le frazioni, ma solo una frazione. come faccio a fargli sommare tutte le frazioni? (fatt sta per fattoriale) grazie! Ultima modifica di sici_90 : 06-03-2015 alle 16:34. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
Ma dove calcoli il fattoriale?
Per sommare le varie parti puoi scrivere ris = ris + 1/fatt; ma in fatt devi calcolare i vari fattoriali e questi non lo fai ... |
![]() |
![]() |
![]() |
#8 |
Junior Member
Iscritto dal: May 2012
Messaggi: 24
|
Ottimo grazie mille ora funziona!
nel ciclo while il fattoriale l'ho calcolato come fatt=fatt*b ho fatto prima un programma per calcolare il fattoriale di un numero! il programma è questo : Codice PHP:
|
![]() |
![]() |
![]() |
#9 |
Junior Member
Iscritto dal: May 2012
Messaggi: 24
|
vorrei chiedervi una mano su un altro esercizio ancora
![]() devo scrivere un programma che calcoli il valore di e elevato alla x. immagino che sia piu o meno come il programma precedente, ma non capisco come modificarlo. devo utilizzare la formula e^x=1+x/(1!)+x^2/(2!)... come posso procedere? |
![]() |
![]() |
![]() |
#10 |
Junior Member
Iscritto dal: May 2012
Messaggi: 24
|
questo è quello che ho fatto ... in linea teorica mi sembra corretto;
ma non riesco a far venire il risultato corretto. mi dareste una mano ? Codice PHP:
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:11.