Esercizio semplice in java

di il
25 risposte

Esercizio semplice in java

Questo è il mio primo messaggio, a scuola stiamo imparando Java, ma non ci capisco niente. Devo fare questo esercizio... mano?

devo inserire due input, il primo numero e il secondo numero
poi con un if guardo se il primo numero è maggiore del secondo
Se è vero l'output sarà che il numero maggiore è il primo, se è falso il secondo numero è il numero maggiore

In pratica la consegna era "hai due numeri, stampa il maggiore"

devo fare anche altri esercizi li posterò dopo, spero tanto che qualcuno mi aiuti

25 Risposte

  • Re: Esercizio semplice in java

    Ciao e benvenuto sul forum. Idee tue?
    In particolare le cose essenziali qui sono queste:
    1. lettura (input) da console
    2. sintassi di if
    3. scrittura (output) su console

    Il problema è che queste cose le sai fare ma non sai metterle insieme oppure hai difficoltà anche sui singoli punti?
  • Re: Esercizio semplice in java

    minomic ha scritto:


    1. lettura (input) da console
    2. sintassi di if
    3. scrittura (output) su console
    grazie del benvenuto e della risposta
    Credo di avere problemi in tutte e tre le cose che hai elemencato ... Non so che sia console ...
    Sono esercizi che ci ha dato il prof per le vacanze di Natale, li ho fatti in algobuild quelli che sapevo, e adesso li voglio mettere in Java.
    Non so quale sia esattamente il mio problema, non parlo solo di Java ma in generale, non capisco un sacco di robe, gli altri non sembrano avere problemi a fare gli esercizi, io non ho la minima idea di dove cominciare ...

    Ci vorrebbe proprio qualcuno che mi fa l'esercizio così io capisco, ma poi che programma ci vuole per leggere i file che creo? Dove lo scarico?
    Siete molto gentili a rispondere, se non fosse per internet non avrei nemmeno una sufficienza a scuola
  • Re: Esercizio semplice in java

    Allora, per scrivere ed eseguire codice java in teoria non serve nulla: si può fare tutto da linea di comando. Tuttavia ti consiglio Eclipse, cioè l'IDE (ambiente di sviluppo) utilizzato maggiormente da chi sviluppa software in java.
    Io ti posto la soluzione del tuo esercizio (svolta in due modi diversi: scegli tu quella che preferisci). Ci sono anche tutti i commenti, quindi cerca di vedere bene cosa succede nel codice, poi se hai dubbi ne parliamo. Forza e coraggio!
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.Scanner;
    
    
    public class NumeroMaggiore {
    
    	public static void main(String[] args) {
    
    		// dichiarazione dei due numeri
    		int num1=0;
    		int num2=0;
    
    		// inizializzazione di un oggetto Scanner per la lettura degli input da console
    		Scanner scan = new Scanner(System.in);
    
    		// stampa della richiesta di inserimento del primo numero
    		System.out.print("Inserire il primo numero: ");
    
    		// lettura del primo numero
    		num1 = scan.nextInt();
    		
    		// consumo il carattere di fine linea che era rimasto
    		scan.nextLine();
    
    		// stampa della richiesta di inserimento del secondo numero
    		System.out.print("Inserire il secondo numero: ");
    
    		// lettura del secondo numero
    		num2 = scan.nextInt();
    		
    		scan.nextLine();
    
    		// confronti tra i due numeri e stampa delle conclusioni
    		if(num1==num2) System.out.println("I due numeri sono uguali");
    		else if(num1 > num2) System.out.println("Il numero maggiore è "+num1);
    		else System.out.println("Il numero maggiore è "+num2);
    
    		// chiusura dello scanner
    		//scan.close();
    
    
    		// ALTRO METODO POSSIBILE
    		
    		try {
    
    			// inizializzazione di un BufferedReader per la lettura da console
    			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    			
    			System.out.print("Inserire il primo numero: ");
    			
    			/* un po' più complesso di prima: leggo tutto quello che è stato inserito come se 
    			 * fosse una stringa (br.readLine().trim()), poi lo converto in un int (operazione
    			 * di parsing) (sperando che lo sia, altrimenti viene lanciata una eccezione che,
    			 * volendo, si potrebbe gestire)*/			
    			num1 = Integer.parseInt(br.readLine().trim());
    			
    			System.out.print("Inserire il secondo numero: ");
    			num2 = Integer.parseInt(br.readLine().trim());
    			if(num1==num2) System.out.println("I due numeri sono uguali");
    			else if(num1 > num2) System.out.println("Il numero maggiore è "+num1);
    			else System.out.println("Il numero maggiore è "+num2);	
    
    			br.close();
    
    		} catch (NumberFormatException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    
    	}
    
    }
    
  • Re: Esercizio semplice in java

    Grazie sei gentilissimo/a
    ovviamente ci sono un po' di cose che non capisco:
    Che cosa significano questi?
        import java.io.BufferedReader;
        import java.io.IOException;
        import java.io.InputStreamReader;
        import java.util.Scanner;
    Public significa che lo possono usare tutti, "class" che significa? E "void"? Intanto comincio a chiedere questo
  • Re: Esercizio semplice in java

    Dunque...
    1. gli import servono per "importare" alcuni pezzi che normalmente non sono disponibili ma vanno appunto aggiunti in caso servano. Nel nostro caso andiamo a dire che utilizzeremo gli oggetti BufferedReader, Scanner, eccetera. In ogni caso Eclipse li gestisce automaticamente.

    2. class è una delle parole chiave di java: definisce una classe. In Java non c'è il file main.c come nel C ma ogni cosa va scritta all'interno di classi che possono contenere il metodo main (ma possono anche non contenerlo). In questo caso ho definito una classe che si chiama NumeroMaggiore. Tipicamente un progetto è costituito da molte classi (anche parecchie decine) organizzate in package

    3. void significa che quel metodo non ritornerà alcun dato, cioè fa quello che deve fare e non comunica nessun risultato. Considera queste due funzioni:
    
    public static void funzione1() {
        faiQuelloCheVuoi...
    }
    
    public static int funzione2(int a, int b) {
        return (a+b);
    }
    
    Se chiami la prima viene eseguito il codice al suo interno e basta.
    Se invece scrivi ad esempio
    
    int mioRisultato=0;
    mioRisultato = funzione2(3, 5);
    
    troverai che mioRisultato vale 8 perché chiami funzione2 passandole i valori 3 e 5. Questa funzione2 elabora i valori passati e sputa fuori la loro somma. Si dice che funzione2 ritorna (o restituisce) un intero.
  • Re: Esercizio semplice in java

    Non abbiamo ancora fatto il C. Abbiamo fatto un po' di HTML, e CSS, poi abbiamo fatto gli algoritmi
    Che cos'è una classe?
    Cosa intendi per "importare alcini pezzi"?
    Non sto capendo quasi niente
  • Re: Esercizio semplice in java

    Sarò sincero: il fatto che tu non stia capendo quasi niente è piuttosto grave perché le classi e gli oggetti sono la base di Java (e in generale di tutta la OOP cioè la Object Oriented Programming). A questo punto consiglierei un libro o almeno qualche tutorial ben fatto online (ad esempio questo).
    Cerco comunque di rispondere alle tue domande: una classe è un insieme di variabili e metodi collegati da un certo senso comune. Ad esempio possiamo definire la classe Triangolo che abbia come variabile un
    private int lato;
    e come metodi
    
    public float calcolaArea() { ... }
    public float calcolaPerimetro() { ... }
    
    oltre ai famosi getter e setter e costruttori (vedi qualche manuale). In questo modo abbiamo definito la classe Triangolo e possiamo istanziare tutti i triangoli che vogliamo. Possiamo quindi dichiarare
    
    Triangolo primoTriangolo = new Triangolo();
    Triangolo secondoTriangolo = new Triangolo();
    ...
    
    Tutto questo non serviva nel tuo esercizio: non abbiamo definito oggetti ma abbiamo creato una classe contenente il solo metodo main.

    Per quanto riguarda l'importazione di pacchetti puoi leggere qui che è sicuramente spiegato meglio di come farei io.
  • Re: Esercizio semplice in java

    Ciao, posso provare a darti una risposta relativamente alle domande "cos'è una classe e cos'è un oggetto", domande che mi sono posto anche io la prima volta che sono entrato in contatto con Java.

    La programmazione OOP, e quindi anche Java, nasce dall'osservazione del mondo reale: tutti noi siamo circondati da oggetti, ognuno dei quali ha delle proprietà e delle capacità.

    I concetti di base del mondo OOP, almeno all'inizio, sono quelli di classe e oggetto(altrimenti detto istanza). Le definizioni di questi 2 concetti sono strettamente legate: una classe fattorizza tutte le caratteristiche che un insieme di oggetti possiede intrinsecamente, mentre un oggetto è un'istanza di tale classe.

    Puoi pensare alle classi come a dei concetti "astratti" (non so se hai studiato Platone, ma le classi assomigliano a ciò che Platone definisce "idee"). Gli oggetti, invece, sono delle istanze fisiche con le quali puoi interagire.
    Per fare un esempio con il mondo reale puoi pensare alle automobili: tutte le automobili possiedono determinate caratteristiche, come ad esempio la marca (una stringa), il modello (un'altra stringa), la cilindrata (un numero intero, se rappresentato in centrimetri cubi), il numero di porte (un altro intero), ecc..
    In java questo si traduce nel seguente codice:
    
    public class Automobile {
       String marca;
       String modello;
       int cilindrata;
       int numeroPorte;
    
       //Il seguente pezzo di codice è un costruttore: definisce come fare per creare 1 oggetto
       public Automobile(String m1, String m2, int c, int p) {
          marca = m1;
          modello = m2;
          cilindrata = c;
          numeroPorte = p;
       }
    }
    
    Nel mondo reale ciò che puoi incontrare è un'istanza di automobile, ovvero un oggetto: ad esempio potrai trovare una "fiat punto", una "alfa romeo giulietta", una "wolksvagen golf" e così via. In java ognuna di queste "entità" è detta oggetto, e viene creata a partire dalla relativa classe.
    Ad esempio:
    
    Automobile fiatPunto = new Automobile("Fiat", "Punto", 1600, 5);
    
    In sostanza tutti i programmi funzionano facendo interagire fra loro gli oggetti, mentre le classi fungono da "stampino" per creare gli oggetti.
  • Re: Esercizio semplice in java

    Ho sentito dire classe per la prima volta quando stavo facendo C almeno 12 anni fà.
    Il mio professore mi disse pensatela come ad una struct in piccolo, non è molto calzante ma può aiutare.
    All'amico consiglio un bel libro/manuale perché duole ammetterlo ma disconosce le basi della OOP.

    Inviato dal mio GT-I9100 con Tapatalk 2
  • Re: Esercizio semplice in java

    Mi sapete dire che signifca import javax.swing.*?
    E questo: import javax.swing.JOptionPane?
  • Re: Esercizio semplice in java

    Fare l'import significa rendere disponibili per l'utilizzo nel tuo codice alcune classi che normalmente non sono disponibili (perché non sempre utilizzate).
  • Re: Esercizio semplice in java

    Studia altrimenti non capirai mai nulla
    http://www.claudiodesio.com/download/oo_&&_java_5.zi
    almeno qui trovi anche le basi
  • Re: Esercizio semplice in java

    Grazie
    sto già guardando da qualche giorno dei tutorial che mi stanno aiutando un po', ma sono ancora molto indietro rispetto a quello che vuole che il prof facciamo ...
    Spero di farcela
  • Re: Esercizio semplice in java

    Mi sapreste spiegare che cosa sono le variabili in java?


    char
    byte
    short
    int
    long
    float
    double
Devi accedere o registrarti per scrivere nel forum
25 risposte