Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Nel Formula 1 Technology and Media Centre di Biggin Hill, la velocità delle monoposto si trasforma in dati, immagini e decisioni in tempo reale grazie all’infrastruttura Lenovo che gestisce centinaia di terabyte ogni weekend di gara e collega 820 milioni di spettatori nel mondo
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
Il nuovo gimbal mobile DJI evolve il concetto di tracciamento automatico con tre modalità diverse, un modulo multifunzionale con illuminazione integrata e controlli gestuali avanzati. Nel gimbal è anche presente un'asta telescopica da 215 mm con treppiede integrato, per un prodotto completo per content creator di ogni livello
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-09-2008, 14:12   #1
Davidino.gbr91
Member
 
L'Avatar di Davidino.gbr91
 
Iscritto dal: Mar 2008
Città: Albano Laziale
Messaggi: 49
[c++] do while

salve...devo fare un programma con il do while ma non mi è ben chiaro come usarlo...
la traccia è la seguente:
"Leggere una serie di numeri fino ad incontrare il num 0...al termine stampare la media aritmetica dei numeri letti.
es: 7,5,8,4,0
media= 4.8

grazie in anticipo
Davidino.gbr91 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 14:23   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Qui non risolviamo gli esercizi degli altri, semplicemente aiutiamo se possiamo a superare le difficoltà.
Posta una tua implementazione per la soluzione dell'esercizio che devi risolvere e indicaci dove nello specifico hai difficoltà: saremo felici di aiutarti.

Con questo intendo dire che se devi risolvere l'esercizio con il costrutto do-while ma il tuo problema è che non sai come si usa il do-while la soluzione è studiare il do-while

Comunque a livello di traccia direi che il do-while lo devi usare per leggere la sequenza di numeri in input e memorizzarli temporaneamente in una "lista" per poi calcolare la media:
- leggi un numero
- se è zero ti fermi ed esci dal ciclo
- altrimenti inserisci il numero nella "lista"

quando il ciclo è terminato:
- processi la lista elemento per elemento per calcolare la media aritmentica dei valori.

Oppure potresti anche calcolare la media direttamente nel primo ciclo (nel do-while) man mano che processi ogni nuovo valore.
Prova a cominciare un'implementazione e posta qualcosa.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 19-09-2008 alle 14:29.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 14:24   #3
Davidino.gbr91
Member
 
L'Avatar di Davidino.gbr91
 
Iscritto dal: Mar 2008
Città: Albano Laziale
Messaggi: 49
il problema è ke se non ci spiegano chiaramente il do while ma ci spiegano solo un accenno io non sono in grado di risolvere l'esercizio
Davidino.gbr91 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 14:26   #4
BeLakor
Senior Member
 
Iscritto dal: Dec 2006
Città: Lodi
Messaggi: 588
Il ciclio do while funziona così:

Quote:
do
{
istruzioni
}
while (condizione);
(mi raccomando, ricordati il ; dopo la condizione che mi ha varie volte dato problemi... )

Per il tuo problema hai i tuoi valori int in un vettore. Con il ciclo ti vai a leggere il vettore e come condizione verifichi che vettore[i] sia diverso da 0.
Se è diverso prosegui diminuendo la variabile i con un bel i--.
Sempre all'interno del ciclio devi mettere una variabile "appoggio" che ad ogni ciclo sommerà il numero contenuto nel vettore e una seconda variabile che si incremente di 1 (n_elementi).
Quando la condizione vettore[i] diverso da 0 non sarà più vera, il ciclo termina.
A questo punto fuori dal ciclo basta fare media=appoggio/n_elementi.

Spero ti basti questa spiegazione...se non riesci ancora a venirne a capo chiedi pure

BeLakor
__________________
HWBot - BeLakor
Il mio PC: alimentatore LC POWER Arkangel 850Watt, scheda video Gigabyte GTX 970 4GB OC WF3, SSD Samsung 850 PRO, 2 Velociraptor 300 GB in raid 1, ASRock X99 OC Formula, 16GB G.Skill Ripjaws 4 Series DDR4-2400, I7 5820K
BeLakor è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 14:28   #5
Davidino.gbr91
Member
 
L'Avatar di Davidino.gbr91
 
Iscritto dal: Mar 2008
Città: Albano Laziale
Messaggi: 49
in teoria io dovrei fare
do {
inserisci num...etcetc

while (devo mettere una condizione ke finke incontro lo 0 finisce il conto dei numeri)


e poi media=numeri / variabile appoggio...

giusto?
Davidino.gbr91 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 14:30   #6
BeLakor
Senior Member
 
Iscritto dal: Dec 2006
Città: Lodi
Messaggi: 588
Il vettore devi riempirlo prima, poi lo fai leggere nel ciclo

BeLakor
__________________
HWBot - BeLakor
Il mio PC: alimentatore LC POWER Arkangel 850Watt, scheda video Gigabyte GTX 970 4GB OC WF3, SSD Samsung 850 PRO, 2 Velociraptor 300 GB in raid 1, ASRock X99 OC Formula, 16GB G.Skill Ripjaws 4 Series DDR4-2400, I7 5820K
BeLakor è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 14:31   #7
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Davidino.gbr91 Guarda i messaggi
il problema è ke se non ci spiegano chiaramente il do while ma ci spiegano solo un accenno io non sono in grado di risolvere l'esercizio
Sì scusa, ho editato il mio messaggio, avevo postato un po' in fretta
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 14:33   #8
Davidino.gbr91
Member
 
L'Avatar di Davidino.gbr91
 
Iscritto dal: Mar 2008
Città: Albano Laziale
Messaggi: 49
tranquillo
ora provo a buttare giu qualcosa!
grazie a tutti cmq!
per qualsiasi cosa riposto qui!
Davidino.gbr91 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 14:37   #9
BeLakor
Senior Member
 
Iscritto dal: Dec 2006
Città: Lodi
Messaggi: 588
Aspettiamo di vedere cosa combini

BeLakor
__________________
HWBot - BeLakor
Il mio PC: alimentatore LC POWER Arkangel 850Watt, scheda video Gigabyte GTX 970 4GB OC WF3, SSD Samsung 850 PRO, 2 Velociraptor 300 GB in raid 1, ASRock X99 OC Formula, 16GB G.Skill Ripjaws 4 Series DDR4-2400, I7 5820K
BeLakor è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 14:39   #10
Davidino.gbr91
Member
 
L'Avatar di Davidino.gbr91
 
Iscritto dal: Mar 2008
Città: Albano Laziale
Messaggi: 49
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int i=1,media,num;
do {
cout <<"\n inserisci num: ";
cin >> num;
i++;
}
while (num=0);
media = i/num;
cout <<"\n la media e: "<<media;

system("PAUSE");
return EXIT_SUCCESS;
}


per ora ho cacciato fuori questo pero non riesco a trovare l'errore che ho fatto
Davidino.gbr91 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 14:47   #11
BeLakor
Senior Member
 
Iscritto dal: Dec 2006
Città: Lodi
Messaggi: 588
Aggiungo dei commenti al tuo codice senza giudicare struttura...

Quote:
Originariamente inviato da Davidino.gbr91 Guarda i messaggi
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int i=1,media,num; //dichiari 3 variabili integer (la media può avere la virgola), inizializzi i=1 (è sbagliato, il primo elemento di un vettore è nella posizione 0, non alla posizione 1), dichiarando "num" in questo modo non crei un vettore, ma una normale variabile
do {
cout <<"\n inserisci num: ";
cin >> num; //ma dove lo stai inserendo il numero? in una variabile normale? ogni volta sovrascrivi il valore precedente così...
i++; //cosa stai incrementando qui? incrementi la variabile i ma non la leggi da nessuna parte...
}
while (num=0); //fino a quando tu non inserisci il numero 0 il ciclo sopra non termina e nel momento in cui termina tu avrai proprio num=0
media = i/num; //il risultato di questa operazione non è possibile (non puoi dividere un numero per 0
cout <<"\n la media e: "<<media;

system("PAUSE");
return EXIT_SUCCESS;
}


per ora ho cacciato fuori questo pero non riesco a trovare l'errore che ho fatto
Conclusioni: cercavi un'errorino? :P
Io ti consiglierei di leggerti le basi di C++ perchè qui non ci siamo proprio

BeLakor
__________________
HWBot - BeLakor
Il mio PC: alimentatore LC POWER Arkangel 850Watt, scheda video Gigabyte GTX 970 4GB OC WF3, SSD Samsung 850 PRO, 2 Velociraptor 300 GB in raid 1, ASRock X99 OC Formula, 16GB G.Skill Ripjaws 4 Series DDR4-2400, I7 5820K
BeLakor è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 14:51   #12
Davidino.gbr91
Member
 
L'Avatar di Davidino.gbr91
 
Iscritto dal: Mar 2008
Città: Albano Laziale
Messaggi: 49
in questo esercizio non mi hanno richiesto l'uso di vettori altrimenti li dichiaravo
Davidino.gbr91 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 14:53   #13
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Per le prossime volte, quando posti codice, inseriscilo nei tag code, altrimenti diventa illeggibile, e se pure lo fosse, molti si asterrebbero dal farlo.

Cmq ci sono diversi errori:

1) media deve essere con la virgola
2) a num gli assegni 0, il confronto si fa con '=='
3) ti manca di fare media+= num ad ogni ciclo.



Sono stato lentissimo nel postare....
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 14:53   #14
BeLakor
Senior Member
 
Iscritto dal: Dec 2006
Città: Lodi
Messaggi: 588
O utilizzi un vettore, oppure nel ciclo metti una variabile che sovrascrivi ogni volta da input e una seconda variabile in cui sommi i valori...
Come preferisci tu....io personalmente userei un vettore..

BeLakor
__________________
HWBot - BeLakor
Il mio PC: alimentatore LC POWER Arkangel 850Watt, scheda video Gigabyte GTX 970 4GB OC WF3, SSD Samsung 850 PRO, 2 Velociraptor 300 GB in raid 1, ASRock X99 OC Formula, 16GB G.Skill Ripjaws 4 Series DDR4-2400, I7 5820K
BeLakor è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 15:04   #15
Davidino.gbr91
Member
 
L'Avatar di Davidino.gbr91
 
Iscritto dal: Mar 2008
Città: Albano Laziale
Messaggi: 49
hai perfettamente ragione...
mi conviene la variabile...mi rimetto all'opera
Davidino.gbr91 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 15:07   #16
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Scusate ma sto vettore chi l'ha tirato fuori????
non mi sembra che l'abbia chiesto l'esercizio.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 15:16   #17
BeLakor
Senior Member
 
Iscritto dal: Dec 2006
Città: Lodi
Messaggi: 588
Io l'ho tirato fuori il vettore, ma solo per comodità mia

Ho scritto chiaramente che può anche fare variabile di appoggio con la somma

Aspettiamo la tua soluzione Davidino

BeLakor
__________________
HWBot - BeLakor
Il mio PC: alimentatore LC POWER Arkangel 850Watt, scheda video Gigabyte GTX 970 4GB OC WF3, SSD Samsung 850 PRO, 2 Velociraptor 300 GB in raid 1, ASRock X99 OC Formula, 16GB G.Skill Ripjaws 4 Series DDR4-2400, I7 5820K
BeLakor è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 15:17   #18
Davidino.gbr91
Member
 
L'Avatar di Davidino.gbr91
 
Iscritto dal: Mar 2008
Città: Albano Laziale
Messaggi: 49
Codice:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int i,num,A[10];
    float media;
    
    do {
        cout <<"\n inserisci num: ";
        cin >> A[i];
        
        }
        while (num==0);
        media+= A[i];
        cout <<"\n la media e: "<<media;
        
    system("PAUSE");
    return EXIT_SUCCESS;
}
per ora ho riformattato cosi
Davidino.gbr91 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 15:18   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Il vettore appunto non ti serve, guarda meglio Inoltre quel codice non funziona.
Prendi come buona abitudine di usare sempre i double al posto dei float.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 15:21   #20
BeLakor
Senior Member
 
Iscritto dal: Dec 2006
Città: Lodi
Messaggi: 588
Codice:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int i,num,A[10];
    float media;
    
    do {
        cout <<"\n inserisci num: ";
        cin >> A[i];
        
        }
        while (num==0);
        media+= A[i];
        cout <<"\n la media e: "<<media;
        
    system("PAUSE");
    return EXIT_SUCCESS;
}
No no, non ci siamo
Se non riesci ad usare i vettori, usa variabile semplice.
Questo boh...non riesco a commentartelo, è proprio sbagliato come logica..

EDIT: provo a rispiegarmi meglio...
1) che variabili ti servono? una che riceve i dati da input, una che ti somma tutti i numeri che inserisci, una che si incrementa ogni volta che inserisci un numero e infine la double per la media
2) quali istruzioni si devono ripetere e quindi devi inserire nel ciclo? inserire valore da input nell'apposita variabile, aggiornare la variabile di somma numeri (somma=somma+num), incrementare la variabile che ti indica quanti valori hai inserito (quindi quante volte hai ripetuto il ciclo) di 1
3) quale condizione devi verificare per far partire il ciclo? devi verificare che il numero che inserisci in input sia diverso da 0, non uguale
4) termina il ciclio ed ora? ora puoi finalmente trovare il risultato (media=somma_numeri / numero di cicli eseguiti)...ovviamente somma_numeri è la famosa variabile che ogni volta aggiorni (somma=somma+num), mentre numero di cicli eseguiti e preso dalla variabile che incrementi ad ogni ciclo (i++)

BeLakor
__________________
HWBot - BeLakor
Il mio PC: alimentatore LC POWER Arkangel 850Watt, scheda video Gigabyte GTX 970 4GB OC WF3, SSD Samsung 850 PRO, 2 Velociraptor 300 GB in raid 1, ASRock X99 OC Formula, 16GB G.Skill Ripjaws 4 Series DDR4-2400, I7 5820K

Ultima modifica di BeLakor : 19-09-2008 alle 15:28.
BeLakor è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce Recensione Pura 80 Pro: HUAWEI torna a stupire c...
Opera Neon: il browser AI agentico di nuova generazione Opera Neon: il browser AI agentico di nuova gene...
Vibes sbarca in Europa: Meta sfida TikTo...
Tesla, approvato il pacchetto da 1.000 m...
Rockstar posticipa GTA 6 a novembre 2026...
Snap e Perplexity unite: dal prossimo an...
La Cina dice addio a NVIDIA? Il governo ...
Microlino, simbolo italiano della mobili...
Apple disattiverà la sincronizzaz...
Google lancia l'allarme: attenzione ai m...
Primo test drive con Leapmotor B10: le c...
'Non può essere un robot': l'uman...
Monopattino elettrico Segway Ninebot Max...
Syberia Remastered è disponibile:...
Sony scopre che tutti i modelli AI hanno...
Amazon nasconde un -15% su 'Seconda Mano...
Due occasioni Apple su Amazon: iPhone 16...
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: 05:58.


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