+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Java, metodo riduzione a minimi termini di una frazione

  1. #1
    helpforc non è in linea Scolaretto
    Luogo
    Roma
    Post
    66

    Java, metodo riduzione a minimi termini di una frazione

    Salve a tutti.

    Dunque, io ho una classe e il suo rispettivo metodo:

    codice:
    public classe Frazione
    {
        private int numeratore;
        private int denominatore;
    
         public Frazione riduzioneMinimiTermini(int n, int d)
         {
             Frazione ridotta;
             //Vari casi dove a ridotta vengono assegnati i vari valori in base ai casi appunto..
             return ridotta;
         }
    }
    Ho il mio main:

    codice:
    public static void main(String[] a)
    {
       Frazione f = new Frazione(0, 6);
       Frazione ridotta = f.riduzioneMinimiTermini(0, 6);
    }
    Praticamente devo dare in pasto al metodo l'oggetto f, e deve ritornarmi un nuovo oggetto ridotto ai minimi termini.
    Nel caso, ad esempio, la mia frazione fosse 0/6 il metodo dovrebbe tornarmi 0, un solo valore quindi. Dunque, il nuovo oggetto dovrebbe avere 0 come numeratore e.. basta. Però non posso lasciare il campo denominatore dell'oggetto vuoto. Come faccio?

    Grazie

  2. #2
    L'avatar di bottomap
    bottomap non è in linea Moderatore Globale
    Post
    4,130
    Ciao,

    Direi che c'è qualche problema di concetto.

    0 è uguale a 0/1 (così come a 0/6)... se restituisci 0/1 stai restituendo la frazione ridotta ai minimi termini.
    Lo stesso ad esempio se hai 6/2, la sua riduzione sarà l'intero 3, che è poi la frazione 3/1.
    In sostanza quando il risultato della riduzione è un intero X, la frazione corrispondente, da restituire, sarà sempre X/1.

    In alternativa, modificando la classe Frazione, puoi usare degli Integer ed impostare il denominatore a null quando si sta trattando un intero, ma questo impatta poi su qualsiasi altra cosa tu debba fare con quella classe (vanno inseriti tutti gli if necessari - compreso nel tuo metodo riduzioneMinimiTermini - a gestire il caso denominatore==null).


    Venite a farmi un saluto su http://www.bottomap.com/

    - Come porre domande in modo intelligente
    - Hai mai dato un'occhiata al
    Regolamento del Forum? Se la risposta è no, sarebbe proprio l'ora di farlo...
    - Il Crossposting è vietato dalla Netiquette.

    "Solo Puffin ti darà forza e grinta a volontà" - Charlie O'Brian
    "I gatti sono animali verso cui ho il massimo rispetto. I gatti e i non conformisti mi sembrano davvero i soli esseri in questo mondo che abbiano una coscienza pratica e attiva" - Jerome K. Jerome
    "Dun Dun DUNNN!" - Capitan Caos
    (per chiunque se lo fosse mai chiesto, il nick Bottomap è volutamente sgrammaticato)

  3. #3
    helpforc non è in linea Scolaretto
    Luogo
    Roma
    Post
    66
    Ho capito, grazie mille

  4. #4
    Luogo
    Veneto
    Post
    6

    Post

    Ciao, io ho fatto in questo modo, se può servirti, e mi sembra che funzioni.

    codice:
    import java.util.Scanner;
    
    public class SemplificareLeFrazioni {
    
    	public static void main(String[] args) {
    		
    		Scanner in = new Scanner(System.in);
    		
    		System.out.print("Inserisci_il_numeratore: ");
    		int num = in.nextInt();
    		
    		System.out.print("Inserisci_il_denominatore: ");
    		int den = in.nextInt();
    		
    		int max=den;
    		
    		if (num>den) {
    			System.out.println("La frazione è propria. ");
    			max=num;
    		}
    		if (num<den) {
    			System.out.println("La frazione è impropria. ");
    			max=den;
    		}
    		int num1=num;
    		int den1=den;
    		
    		for (int i=1; i<max; i++) {
    			
    			if (num%i==0 && den%i==0) {
    				num1=num/i;
    				den1=den/i;
    			}
    		}
    		System.out.println("La frazione semplificata è: " + num1 + " / " + den1 );
    
    	}
    
    }
    Esposito Vittorio

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi