Torna indietro   Hardware Upgrade Forum > Software > Programmazione

CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale
La prima tappa italiana della Road to CES porta a Milano i vertici della Consumer Technology Association, con una nuova griglia di lettura dei trend tecnologici e una posizione netta su dazi e regolamentazione dell'IA
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
OPPO ha appena lanciato sul mercato la nuova serie Find X10, che ha come smartphone premium il Find X10 Pro Max, uno smartphone completo, che fa del comparto fotografico il suo vero punto di forza. Ma sono tante le novità, tra cui l'AI che adesso diventa agentica. Ma andiamo a vedere nel dettaglio questo nuovo smartphone.
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
Abbiamo provato la beta di World of Warcraft: Forever, il Classic+ di Blizzard in arrivo il 4 novembre: la nuova razza Skyborne restituisce la sensazione di un gioco nuovo, ma le zone storiche conservano la noia divertita di Classic. Classi ribilanciate, sciamani anche nell'Alleanza e un motore grafico che in 4K gira bene anche su una RTX 3070. Cosa cambia in Forever? La risposta nell'articolo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-03-2015, 16:44   #1
sici_90
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
sici_90 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2015, 17:56   #2
sici_90
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?
sici_90 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2015, 19:17   #3
sici_90
Junior Member
 
Iscritto dal: May 2012
Messaggi: 24
Grazie mille per le risposte,
mi potresti spiegare meglio la questione della posizione delle sommatorie?
sici_90 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2015, 19:43   #4
sici_90
Junior Member
 
Iscritto dal: May 2012
Messaggi: 24
uguale a b giusto?
sici_90 è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2015, 10:15   #5
sici_90
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.
sici_90 è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2015, 16:26   #6
sici_90
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:
#include <iostream>

using namespace std;

int main()
{
    
int a, b;
    
float fatt, ris;
    
cout<<"inserisci a che termine della serie vuoi fermarti"<<endl;
    
cin>>a;

    
fatt=1;
    
b=1;
    
ris=1;
    while(
b<=a){
            
fatt=fatt*b;
            
ris=1/fatt;
            
b=b+1;
            }

            
cout<<"il numero di nepero è : "<<ris<<endl;
    return 
0;
} 
il problema sta nel risultato(ris)

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.
sici_90 è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2015, 16:43   #7
lorenzo001
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 ...
lorenzo001 è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2015, 16:50   #8
sici_90
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:
#include <iostream>

using namespace std;

int main()
{
    
int a, b;
    
float fatt;
    
cout<<"inserisci il numero di cui vuoi sapere il fattoriale"<<endl;
    
cin>>a;
    
fatt=1;
    
b=1;
    while(
b<=a){
        
fatt=fatt*b;
        
b=b+1;
    }
    
cout<<"il fattoriale del numero "<<a<<" è : "<<fatt<<endl;

    return 
0;
} 
sici_90 è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2015, 17:24   #9
sici_90
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?
sici_90 è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2015, 18:45   #10
sici_90
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:
#include <iostream>
#include<cmath>

using namespace std;

int main()
{
     
int a, b, n;
    
float fatt, ris;
           
cout<<"inserisci il numero a cui vuoi elevare e"<<endl;
           
cin>>a;
    
fatt=1;
    
b=1;
    
ris=1;
    
n=1;

    while(
b<=a){

            
fatt=fatt*b;
            
ris=ris+a/fatt;
            
b=b+1;

            
n=n+1;
            
a=pow(a,n);
            
cout<<"il valore è : "<<ris<<endl;

            }



    return 
0;
} 
sici_90 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato WoW Forever provato: il MMORPG che la community ...
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita TCL P80 Ultra: con un display AMOLED opaco &egra...
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio HUAWEI MatePad Air recensione: OLED opaco e tast...
Apple estende il Self Service Repair a i...
Linux, falle critiche del kernel pubblic...
Gli agenti AI diventano un incubo per le...
Fastweb e Vodafone verso il sistema unic...
70mai A800 Nano a 69,99€ su Amazon: dash...
Mini pacchi extra Ue, la tassa da 2 euro...
Metro 2033 Redux e Last Light Redux si a...
Silicio a 1.000 °C in un microonde: ...
Sigma FP2 senza mirino né slitta ...
Huawei Pura 90 Plus, preordini aperti in...
Addio al limite di 1,5 °C: il nuovo ...
Tor sotto attacco: manipolati oltre 300 ...
Volkswagen ID. EVERY1: l'elettrica da 20...
eMudhra lascia i certificati TLS dopo il...
Torna l'ora solare: risparmiati 300 mili...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:27.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v