Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Esercizio da libro

Visualizzazione discussione

  1. #4
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Quote Originariamente inviata da senseilaus Visualizza il messaggio
    [...] eppure l'esercizio fa parte del capitolo dedicato alla spiegazione di un'interfaccia(con esempio), di una classe che la implementa(con esempio) e di una funzione che utilizza la classe. (L'esempio riguarda INTERFACCIA: Impiegato, CLASSE: ImpiegatoATEmpoPieno, FUNZIONE:Azienda).
    Ok, mi mancava questa parte, comunque confermo l'impressione che quella parte là di consegna che hai postato non sembra il massimo per com'è scritta.

    Quote Originariamente inviata da senseilaus Visualizza il messaggio
    Ahimè son tutte cose che non ho ancor visto.
    Immaginavo, sono però tutte cose che dovrai imparare ben presto (il try-catch magari un po' in seguito), se vuoi portarti avanti risparmi fatica in seguito (nel PS ti posto un link "interessante" a tal fine)


    Quote Originariamente inviata da senseilaus Visualizza il messaggio
    La mia idea, consapevole del fatto che sia molto sempliciotta nella mia inesperienza, era:
    codice:
    //Uno Scanner che contenga in "sc" i miei input 
    Scanner sc=new Scanner(System.in);
    final String MESSAGGIO="Inserisci età: ";
    int età=0;
    int etàPiùAlta=0;
    final int SENTINELLA=-1;
    
    //Ciclo while finchè non becco la sentinella
    while (true) {
    System.out.println(MESSAGGIO);
    età=sc.nextInt();//Da definire!!
      if (età==SENTINELLA)
    break
    trovaEtàPiùAlta(sc);//Definisco il metodo altrove
    Ora, i miei dubbi sono tre per l'appunto:
    1. Come faccio a conservare tanti elementi(numeri) in input in un solo "oggetto"? E' evidente che "età=sc.nextInt()" non sia il metodo adatto.
    2. Come confronto tra di loro e assegno valore ad ognuno di questi elementi?
    3. Come dovrei applicare l'esercizio già impostato in tutto questo?
    Come idea non va affatto male (va bene anche l'idea di usare le costanti, soprattutto per il valore di sentinella, ma non abusarne), alcuni appunti:

    - Non usare mai nomi di variabili, classi, o metodi che contengono nomi accentati, anche nelle stringhe sarebbe meglio stare attenti con l'encoding, una soluzione tradizionale è quella di usare l'apostrofo al posto degli accenti (non nelle variabili!), poi si può certo impostare l'encoding, ma è più sicuro evitare.
    - La variabile età non serve a nullla. Se vuoi memorizzare tutti i valori inseriti devi usare una struttura dati adeguata: un array di dimensione fissa o una lista (che in questo caso è più adatta allo scopo) sono le soluzioni più elementari, ce ne sono altre che per ora non ti servono. Ma comunque dovrai assegnare ciò che leggi da scanner a una variabile, che sarà locale al ciclo (es. int eta = sc ...).
    - Se vuoi memorizzare tutti i valori allora ha senso usare l'istruzione break e un metodo che trovi il massimo, però il metodo non dovrà mai e poi mai prendere come parametro lo scanner: i valori li hai già letti ed assegnati, quindi eventualmente passerei l'array o la lista che contiene i valori.
    - Se non vuoi memorizzare tutti i valori (non è richiesto!) allora il break è superfluo, perché il metodo può direttamente ritornare il valore del massimo.

    Per quanto riguarda le tue domande penso di aver già risposto alla prima (se non hai ancora visto array e liste devi farlo al più presto).

    Non sono sicuro di capire la tua seconda domanda perché non so che oggetto pensavi di usare per memorizzare i numeri, ma se usi un array o lista di interi il confronto lo fai direttamente con gli operatori < = > usati correttamente in una clausola if.
    Non so se il problema sia come trovare il massimo, ma se fosse questo il caso vorrei che mi dicessi tu la soluzione, è davvero immediato!

    Per la terza domanda intendi come collaudare la classe Age? Se sì ti basta una classe esterna che abbia un metodo main che istanzi un oggetto Age e poi richiami il suo metodo findHighestAge, passando uno Scanner come parametro (ricordati di creare un solo oggetto Scanner).

    PS: Se vuoi in questa discussione trovi qualcosa di molto interessante per il tuo problema: ti spiega perché in genere è meglio usare nextLine con lo Scanner al posto di nextInt, e mostra un uso del try-catch e dell' Integer.parseInt (in particolare il post #5 di @LeleFT)
    Ultima modifica di Ansharja; 07-09-2017 a 01:00

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.