Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    9

    Altobasso in java

    Ragazzi ho provato a creare questo programmino dove scelto un numero random tra 0 e 100 io devo indovinarlo e se lo sbaglio mi dice se inserire un numero più alto o più basso.
    Il problema è che al primo tentativo il processo termina, ho provato mettendo un istruzione ripetitiva while ma non riesco.
    Quello che ho fatto mi funziona ma ho solo una "possibilità" per indovinare il numero rando:




    import fiji.io.*;

    // Esempi di operazioni con numeri interi
    class Prova
    {
    public static void main(String[] args)
    {
    /* Definizione variabili */

    int n,a;

    /* Corpo programma */


    n=(int)Math.random()*100;

    System.out.println("inserisci valore a");

    a = Lettore.in.leggiInt();


    if(a==n)

    System.out.println("Hai inserito il valore giusto");


    else if (a<n) {


    System.out.println("Inserisci un numero piu' alto");

    }

    else
    System.out.println("Inserisci un numero piu' basso");


    }

    }



    Altro dubbio...se dovessi aggiungere un altro valore che mi calcola i tentativi...come posso farlo?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477

    Moderazione

    Ho spostato la discussione nel forum dedicato a Java.
    In futuro, poni qui le tue domande relative a questo linguaggio.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ti invito ad usare anche i tag code per postare il codice (è più comprensibile per chi legge).

    prima domanda che ti faccio: per indovinare il numero, quanti tentativi fai? è giusto fare un ciclo while, ma la condizione di uscita quale è? questa mi sembra una soluzione

    codice:
    while (numberRead != number){
    if (numberRead > number) {
    //MAGGIORE
    }else {
    //MINORE
    }
    //LETTURA NUMERO IN INGRESSO
    }
    
    //SE ARRIVI QUI HAI INDOVINATO, STAMPA MEX
    prova qui ad aggiungere un "contatore" di cicli e ad uscire quando il tuo contatore supera un determinato valore (es. indovina con 5 tentativi)

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ehmmm moderatori non mi dava l'ok dell'invio del mex e l'ho inserito diverse volte, sistemate voi?? scusate non volevo

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    9
    Ok ho messo while prima dell if
    andando a compilare non c è nessun errore sintattico ma ce ne sta sicuramente uno logico
    perchè quando sbaglio il valore mi scrive "inserisci un numero più basso/alto" infinite volte
    in pratica prima si concludeva l applicazione dopo il primo tentativo
    ora invece mi scrive all infinito il commento e non posso comunque continuare
    le modifiche le ho apportate in questo modo:


    import fiji.io.*;
    // Esempi di operazioni con numeri interi
    class Prova { public static void main(String[] args)
    {
    /* Definizione variabili */

    int n,a;

    /* Corpo programma */

    n=(int)Math.random()*100;

    System.out.println("inserisci valore a");
    a = Lettore.in.leggiInt();

    while(a!=n) {

    if(a==n) System.out.println("Hai inserito il valore giusto");

    else if (a<n) {
    System.out.println("Inserisci un numero piu' alto");
    }
    else
    System.out.println("Inserisci un numero piu' basso");
    }
    }
    }

  6. #6

    Re: Altobasso in java

    Originariamente inviato da Pex16
    Ragazzi ho provato a creare questo programmino dove scelto un numero random tra 0 e 100 io devo indovinarlo e se lo sbaglio mi dice se inserire un numero più alto o più basso.
    Ecco come andrebbe fatto senza pensarci troppo in java:
    codice:
    import java.util.Scanner;
    
    public class Tester{
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            Scanner scan = new Scanner(System.in);
            int r = (int) (101*Math.random());
            int input = 0;
            
            System.out.print("Inserisci un numero: ");
            while( (input = scan.nextInt()) != r ){
            	if( input > r )
            		System.out.print("Inserisci un numero più basso: ");
            	else
            		System.out.print("Inserisci un numero più alto: ");
            }
            System.out.println("Il numero inserito è esatto!");
            System.out.println("Era stato generato il numero " + r);
        }
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da Pex16
    Ok ho messo while prima dell if
    andando a compilare non c è nessun errore sintattico ma ce ne sta sicuramente uno logico
    perchè quando sbaglio il valore mi scrive "inserisci un numero più basso/alto" infinite volte
    in pratica prima si concludeva l applicazione dopo il primo tentativo
    ora invece mi scrive all infinito il commento e non posso comunque continuare
    le modifiche le ho apportate in questo modo:
    appunto, hai preso le modifiche a metà non leggendo tutti i commenti. Ovvio che l'ultima istruzione del ciclo è la rilettura del valore in ingresso, altrimenti entri in un loop infinito (e guarda che ho messo il commento //LETTURA NUMERO IN INGRESSO ).
    Anche come ha detto Vincenzo è corretto, ti risparmia delle istruzioni prima e dentro il ciclo, ma a me piace poco (un errore sul buffer è più facilmente individuabile separando le istruzioni)

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477

    Moderazione

    Originariamente inviato da valia
    ehmmm moderatori non mi dava l'ok dell'invio del mex e l'ho inserito diverse volte, sistemate voi?? scusate non volevo
    Ho "sanato" la discussione. In futuro magari aspetta un attimo prima di ripostare.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    9
    Perfetto grazie a Vincenzo dal quale ho preso spunto e a Valia che purtroppo ho capito solo successivamente quello che mi aveva suggerito. Quello che ne è uscito funziona perfettamente e sono anche riuscito ad inserire il contatore dei tentativi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.