Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Dal palco di Proofpoint Protect 2025 emerge la strategia per estendere la protezione dagli utenti agli agenti IA con il lancio di Satori Agents, nuove soluzioni di governance dei dati e partnership rafforzate che ridisegnano il panorama della cybersecurity
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
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 ab;
    
float fattris;
    
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 ab;
    
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 abn;
    
float fattris;
           
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


Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Zero combustibili fossili e controllo qu...
Corsair NAUTILUS 360 RS LCD: raffreddame...
Nuovo record nel mondo dei computer quan...
Sony e Universal combatteranno l'IA con....
Il Chips Act europeo attuale è un...
OnePlus 15: debutto globale con design '...
Amazon Prime: addio alla prova gratuita ...
Windows 11 25H2: guida passo-passo per l...
ECOVACS Deebot Mini sotto i 300€, robot ...
USA chiedono a Taiwan di produrre chip i...
Abbiamo provato Nothing Ear (3), gli aur...
Skoda 110 R elettrica: la storica coupé ...
Snapdragon X2 Elite Extreme: i benchmark...
Electronic Arts (EA) acquisita per 55 mi...
Dopo 30 anni, un modder aggiorna la prim...
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: 18:11.


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