Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-05-2007, 10:03   #1
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
Problemi con programma in C++...

Ciao raga.... volevo chiedervi un aiutino per questo programma.....Il testo dell'esercizio è già scritto...
Se nn vi chiedo troppo vorrei poterlo completare entro il 3 maggio per favore....grazie

/*Modificare il codice seguente per permettere:
1) la generazione del numero pseudocasuale
nell'intervallo 1..100.
2) un numero predefinito di tentativi del giocatore.
3) l'assegnazione di un punteggio inversamente
proporzionale al numero di tentativi effettuati. */

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
int magic; // numero magico
int guess; // tentativo del giocatore
int i; // num tentativi scelti
int nt=0; // condiz iniz di tentativi

randomize();
magic = random(100); // sceglie un numero a caso
cout << magic; // visualizza num scelto dal computer
cout << " \n Inserisci il numero di tentativi: ";
cin >> i; // inserisci i


do {
for (i;nt;i--) break; // decremento
do {
cout << " Scrivi il tuo numero: \n";
cin >> guess;
if(guess == magic) {
cout << "** Giusto ** ";
cout << magic << " era ora....finalmente!!!\n";
}
else {
cout << "...Mi dispiace, hai sbagliato.";
if(guess > magic)
cout << " Il tuo numero e' troppo alto.\n";
else cout << " Il tuo numero e' troppo basso.\n";
}
} while(guess != magic);

} while(i=0);

system("pause");
}
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 01-05-2007, 10:16   #2
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
1)Guarda qui per generare il numero:
http://www.cplusplus.com/reference/c...dlib/rand.html
2)Devi aver preso un codice già fatto e poi l'hai modificato giusto? Hai messo un po' troppi cicli, ne basta uno...
3)Ad esempio? 100/ntentativi?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 01-05-2007, 10:50   #3
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
ciao....no il programma da cui si doveva partire è il seguente....

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
int magic; // numero magico
int guess; // tentativo del giocatore

randomize();
magic = rand(); // sceglie un numero a caso

do {
cout << "Scrivi il tuo numero: ";
cin >> guess;
if(guess == magic) {
cout << "** Giusto ** ";
cout << magic << " è il numero magico.\n";
}
else {
cout << "...Mi dispiace, hai sbagliato.";
if(guess > magic)
cout << " Il tuo numero è troppo alto.\n";
else cout << " Il tuo numero è troppo basso.\n";
}
} while(guess != magic);

system("pause");
return 0;
}


Da qui praticamente dobbiamo aggiungere:
1) la generazione del numero pseudocasuale
nell'intervallo 1..100.
2) un numero predefinito di tentativi del giocatore.
3) l'assegnazione di un punteggio inversamente
proporzionale al numero di tentativi effettuati.

Fino adesso sn arrivato alla generazione del numero pseudocasuale.....non mi funzionano gli ultimi due punti....
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 01-05-2007, 11:08   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da pixie Guarda i messaggi
1) la generazione del numero pseudocasuale
nell'intervallo 1..100.
Vedi un mio esempio in <questo> thread.

Quote:
Originariamente inviato da pixie Guarda i messaggi
2) un numero predefinito di tentativi del giocatore.
Metti una variabile che contiene il numero di tentativi, inizializzata ad un certo valore (es. 10). Alla fine del ciclo decrementi tale contatore. Il while deve far ripetere il ciclo se guess != magic e se tentativi > 0

Quote:
Originariamente inviato da pixie Guarda i messaggi
3) l'assegnazione di un punteggio inversamente
proporzionale al numero di tentativi effettuati.
In questo caso puoi usare la stessa variabile spiegata al punto 2. Se si indovina quando sono rimasti 3 tentativi è chiaramente peggio di quando si indovina quando rimangono 9 tentativi. Così è già "inversamente proporzionale".
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 01-05-2007, 11:14   #5
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
Ok grazie mille...semmai vi faccio sapere se qualcosa nn va....ciao ciao
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 15:12   #6
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
ciao....potresti dirmi in linguaggio c++ cm si mette il punto 3? (assegnazione di un punteggio inversamente proporzionale al numero di tentativi effettuati)..grazie
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 15:33   #7
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da pixie Guarda i messaggi
ciao....potresti dirmi in linguaggio c++ cm si mette il punto 3? (assegnazione di un punteggio inversamente proporzionale al numero di tentativi effettuati)..grazie
Mi sembrava di averlo spiegato, sebbene a parole, ma chiaramente.
Se usi una variabile che tiene il numero di tentativi ancora da effettuare (quindi in decremento man mano), quello è già un valore inversamente proporzionale al numero di tentativi effettuati.

Codice:
int magic, guess;
int tentativi = 10;

do {
    cout << "Scrivi il tuo numero: ";

    ......
} while (guess != magic && --tentativi > 0);

cout << "Il tuo punteggio e`: " << tentativi;
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 20:30   #8
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
Codice PHP:
/* 1) la generazione del numero pseudocasuale
    nell'intervallo 1..100.
    2) un numero predefinito di tentativi del giocatore.
    3) l'assegnazione di un punteggio inversamente
    proporzionale al numero di tentativi effettuati. */

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
  
int magic// numero magico
  
int guess// tentativo del giocatore
  
int i;     // num tentativi scelti
  
int nt=0;   // condiz iniz di tentativi

  
randomize();
  
magic random(100); // sceglie un numero a caso
  
cout << magic;  // visualizza num scelto dal computer
  
cout << "  \n Inserisci il numero di tentativi: ";
  
cin >> i;  // inserisci i


  
do {
    for (
i;nt;i--) break;  // decremento
  
do {
     
cout << "           Scrivi il tuo numero: \n";
    
cin >> guess;
     if(
guess == magic) {
      
cout << "** Giusto ** ";
        
cout << magic << "    era ora....finalmente!!!\n";
     }
     else {
        
cout << "...Mi dispiace, hai sbagliato.";
        if(
guess magic)
            
cout << " Il tuo numero e' troppo alto.\n";
        else 
cout << " Il tuo numero e' troppo basso.\n";
     }
  } while(
guess != magic);

  } while(
guess != magic && --0);  // punteggio

  
system("pause");

  return 
0;

Questo è il codice che ho creato....per favore potreste dirmi se funziona? è urgente devo consegnarlo doma....grazie
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 20:50   #9
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da pixie Guarda i messaggi
Questo è il codice che ho creato....per favore potreste dirmi se funziona? è urgente devo consegnarlo doma....grazie
Uhm, ecco cosa posso dirti:

a) Perché hai usato randomize()/random()??? Sono funzioni non standard e quindi poco portabili. Usa srand() e rand() che sono standard ANSI C.

b) Questo come te lo sei inventato?
for (i;nt;i--) break;
Un ciclo for in cui la espressione di inizializzazione è solo una variabile (quindi non fa nulla), in cui nt causa subito l'uscita dal ciclo (visto che nt è inizializzato a 0).

c) Non capisco la necessità di un doppio do-while annidato .... basta 1 solo ciclo do-while.

d) E la visualizzazione del punteggio dove la fai, visto che parlavi di gestire un punteggio??

e) Ultimo ma non meno importante: scrivi e indenta correttamente il codice!
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 20:57   #10
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
ok sarò ignorante fin che vuoi nel campo della programmazione ma la cosa mi appassiona....dunque dv c'è
cin >> i qui dovrei inserire il num di tentativi poi nel ciclo for si continua a decrementare questo num fino a 0 quindi ho fatto for (i;nt;i--) dv i-- è il decremento....scusa posso capire? se nn ti disturbo troppo hai msn? grazie
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 21:18   #11
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
Questo è il codice che ho scritto e nn credo sia ancora giusto....ma mi devi ancora risp al quesito precendente...
Codice PHP:
/* 1) la generazione del numero pseudocasuale
    nell'intervallo 1..100.
    2) un numero predefinito di tentativi del giocatore.
    3) l'assegnazione di un punteggio inversamente
    proporzionale al numero di tentativi effettuati. */

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
  
int magic// numero magico
  
int guess// tentativo del giocatore
  
int i;     // num tentativi scelti
  
int nt=0;   // condiz iniz di tentativi

  
srand();
  
magic rand(100); // sceglie un numero a caso
  
cout << magic;  // visualizza num scelto dal computer
  
cout << "  \n Inserisci il numero di tentativi: ";
  
cin >> i;  // inserisci i


    
for (i;nt;i--) break;  // decremento
  
do {
     
cout << "           Scrivi il tuo numero: \n";
     
cin >> guess;
     if(
guess == magic) {
        
cout << "** Giusto ** ";
        
cout << magic << "    era ora....finalmente!!!\n";
     }
     else {
        
cout << "...Mi dispiace, hai sbagliato.";
        if(
guess magic)
            
cout << " Il tuo numero e' troppo alto.\n";
        else 
cout << " Il tuo numero e' troppo basso.\n";
     }

  } while(
guess != magic && --0);  // punteggio
  
cout << "Il tuo punteggio e`: ";

  
system("pause");

  return 
0;

pixie è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 22:04   #12
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
PER FAVORE ATTENDO UNA RISPOSTA.....se nn consegno sto lavoro doma mi gioco il voto di sistemi e mia ma mi ammazza.....per favore vi prego ditemi se va bn
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 09:42   #13
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da pixie Guarda i messaggi
srand();
magic = rand(100);
Nessuna delle due va bene. Ti ho anche indicato all'inizio un thread in cui avevo fatto un esempio completo!

srand() serve per impostare il "seed" del generatore di numeri casuali. Pertanto deve ricevere come argomento un numero che indica il seed. Per questo numero tipicamente si usa il valore ritornato da time(), giusto per dare un valore sempre diverso (ad ogni secondo).
Quindi oltre ad includere <cstdlib> devi anche includere <ctime>

La srand() va messa così:

srand ((unsigned int) time (NULL));

La funzione rand() invece NON ha parametri. Ritorna un valore casuale tra 0 e RAND_MAX. Pertanto se vuoi avere il numero casuale tra un range diverso/particolare, devi fare tu dei calcoli.
Nel caso si voglia avere un range da 1 a 100 compresi, si può fare:

magic = ((int) (rand() / (RAND_MAX+1.0) * 100)) + 1;

Quote:
Originariamente inviato da pixie Guarda i messaggi
for (i;nt;i--) break; // decremento
Questo non serve a nulla. Il decremento di 'i' l'hai già fatto come predecremento nel while, ed è sufficiente!

Tra l'altro, come ho già detto prima, questo for è inutile. 'nt' l'hai messo a 0 e lo usi solo nel for, pertanto con nt=0, il for termina immediatamente!

Quote:
Originariamente inviato da pixie Guarda i messaggi
cout << "Il tuo punteggio e`: ";
Qui ti basta solo più mandare in output il valore di 'i'.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 17:23   #14
niko_lol
Member
 
Iscritto dal: Mar 2007
Messaggi: 276
for(int i=10; i < dim; i--)
{
Scrivi il codice che ti serve!
}
niko_lol è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 17:26   #15
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da niko_lol Guarda i messaggi
for(int i=10; i < dim; i--)
Sicuro sicuro??

Comunque il for non è l'ottimale in questo caso. La continuazione del ciclo è basata su 2 condizioni e comunque la richiesta del "guess" va fatta almeno una volta, pertanto vedo meglio il do-while.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 17:35   #16
niko_lol
Member
 
Iscritto dal: Mar 2007
Messaggi: 276
Si ok....io lì ho visto che ci sta un for.... e gli ho scritto come si fa un for! poi sta a lui vedere come fare....più programma e + capisce ecc etc!
niko_lol è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 22:29   #17
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Quote:
Originariamente inviato da andbin Guarda i messaggi
Sicuro sicuro??

Comunque il for non è l'ottimale in questo caso. La continuazione del ciclo è basata su 2 condizioni e comunque la richiesta del "guess" va fatta almeno una volta, pertanto vedo meglio il do-while.
E se fosse:
Codice:
for(int i=10; i<dim && guess!=magic; i--)
non sarebbe comunque ottimale? E' solo per curiosità...
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2007, 09:33   #18
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
E se fosse:
Codice:
for(int i=10; i<dim && guess!=magic; i--)
non sarebbe comunque ottimale? E' solo per curiosità...
Se ci pensi un attimo 'guess' lo prendi in input dentro il ciclo, quindi che senso ha il test la prima volta??? E poi scusa, 'dim' che valore dovrebbe avere?? Inoltre con i-- vai sempre in decremento e non c'è un test per bloccare ad un certo punto il decremento di 'i'!!! Cioè ... hai capito la questione?

Se proprio si volesse usare un for si dovrebbe fare così e usare un break per uscire dal ciclo:
Codice:
int tentativi, guess, magic;
...
cin >> tentativi;    /* input numero tentativi */
...
for ( ; tentativi > 0; tentativi--)
{
    ....
    cin >> guess;    /* input guess */

    if (guess == magic)
    {
        ....
        break;    /* esce dal ciclo */
    }
    ....
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
Il satellite spia russo Olymp-1 si &egra...
Rocket Lab prosegue l'assemblaggio del n...
Il Wet Dress Rehearsal della missione Ar...
31,4 Tbps: Aisuru sfonda il suo stesso r...
Giocattoli AI, una falla espone oltre 50...
OPPO Reno15 in viaggio con Gaia Gozzi: i...
Nuove revisioni per Abarth 600e: arrivan...
Intelligenza artificiale, re-training e ...
LG presenta a ISE 2026 la nuova serie di...
Alienware: disponibile in Italia il nuov...
Arrivano le bodycam sui treni di Ferrovi...
Nike taglia 775 posti negli USA: l'autom...
Crimson Desert si mostra in un nuovo gam...
Addio transistor? Questo dispositivo usa...
Jensen Huang: le fabbriche negli Stati U...
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: 21:48.


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