Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    12

    Problemini con java

    Ciao a tutti,
    Sono nuova su questo sito, mi sono iscritta al'università di informatica sono al primo anno.
    Ho iniziato a programmare in java è già ho i miei primi due problemi.
    Dovrei fare due programmi:

    1) calcolare esponenziale (non saprei da dove partire e quale ciclo fare)

    2) dato una serie di numeri interi dire qual'è il massimo e il secondo più massimo (qui sono andata avanti però mi dà qualche errore nella visualizzazione del secondo più grande)

    import java.util.Scanner;

    class DuePiuGrandi {

    public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    System.out.println("Immettere una sequenza di interi ");
    System.out.println("di almeno due elementi, ");
    System.out.println("terminata da una parola o da un non intero:");

    while(!input.hasNextInt()) {
    input.next();
    System.out.println("");
    System.out.println("immetti almeno due interi");
    }

    int x;
    int max = input.nextInt();
    int viceMax = 0;

    while (input.hasNextInt()) {
    x = input.nextInt();
    if(x >= max) {
    max = x;
    }
    else if((x > viceMax) && (x < max)) {
    viceMax = x;
    }


    }

    System.out.println("");
    System.out.println("Il valore massimo inserito e' : " + max);
    System.out.println("Il secondo valore massimo inserito e' : " + viceMax);
    }
    }


    Se qualcuno può aiutarmi...Scusate la banalità delle domande, ma è solo da un mese neanche che programma in java...

    Buon sabato a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    56
    1) Se si tratta solo di fare e^x, la classe java.lang.Math ha un bel metodo static double exp(double a)

    2) C'è un bug. Infatti nel caso in cui x>=max, non devi solo sostituire max con x, ma anche viceMax con il vecchio max. Inoltre nella condizione del secondo if non serve && (x < max), perchè è già così per il fatto che ci si trova nel ramo else del primo if.

    codice:
    while (input.hasNextInt()) {
    x = input.nextInt();
    if(x >= max) {
    viceMax = max;
    max = x;
    }
    else if(x > viceMax) {
    viceMax = x;
    }
    Comunque questa soluzione è molto procedurale e poco OO. Potresti costruire un array dallo Scanner e poi usare Arrays.sort() per ordinare l'array.

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

    Moderazione

    Originariamente inviato da Erika86
    Ciao a tutti,
    Sono nuova su questo sito
    Proprio perché sei nuova, dovresti dare una "leggiucchiatina" al nostro Regolamento per conoscere le norme di convivenza all'interno di questo spazio.

    Una di quelle più importanti riguarda l'attribuzione di titoli significativi alle discussioni.

    Nel caso in esame, ho provveduto io a modificare il titolo per renderlo maggiormente rappresentativo del contenuto; in futuro, cerca di farlo tu.

    Ciao e buon forum!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

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.