Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    185

    [GENERALE]Problema nella comprensione del testo

    Ciao a tutti,
    devo fare un programma in assembly MIPS, ma in questo caso il problema non è il linguaggio, ma la comprensione del testo
    Questo è il testo:
    scrivere e provare un programma che legga due interi non negativi x e y e visualizzi su console il loro prodotto prod(x, y) implementando le seguenti due funzioni ricorsive:
    http://dfiles.eu/files/28e8v6pp9
    Non ho capito come funziona, se io all'inizio inserisco ad esempio x=3 e y=0, allora alla chiamata della funzione prod(x, y) restituisco 0, ma se y che inserisco è maggiore di 0, che faccio? chiamo la funzione somma passandoli la x, e la chiamata a prod con la y diminuita di uno?

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    prod(3, 2)
    -sum(3, prod(3, 1))
    --sum(3, sum(3, prod(3, 0)))
    --sum(3, sum(3, 0))
    -sum(3, 3)
    6

    Risolve la moltiplicazione con questa formula:
    a * n = a1 + a2 + ... + an
    Cioè sommando n volte a...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    185
    Quindi una cosa del genere
    codice:
    public static void main(String[] args) {
    		int num1=0, num2=0;
    		int risultato=0;
    		
    		num1=Input.getInt("Inserire primo numero: ");
    		num2=Input.getInt("Inserire secondo numero: ");
    		
    		System.out.println("\nRisultato: "+prod(num1, num2));
    
    	}
    	
    	public static int prod(int x, int y){
    		System.out.println("Il valore di x è: "+x+", mentre quello della y è: "+y);
    		int risultato=0;
    		if(y==0){
    			return 0;
    		}else{
    			return somma(x, prod(x, y-1));
    		}
    		
    		//return 0;
    	}
    	
    	public static int somma(int x, int y){
    		System.out.println("FUNZIONE SOMMA: Il valore di x è: "+x+", mentre quello della y è: "+y);
    		if(y==0){
    			return x;
    		}else{
    			return somma(x, y-1);
    		}
    		
    		//return 0;
    	}

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    185
    Ma non mi torna, potreste controllare e aiutarmi a comprendere per favore?

  5. #5
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Non è
    codice:
    return somma(x, y-1);
    ma
    codice:
    return somma(x+1, y-1);
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    185
    Grazie mille

  7. #7
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Prego
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    185
    fra l'altro mi sono accordo che nel mio codice ho scritto
    codice:
    return somma(x, y-1)
    anzichè
    codice:
    return 1+somma(x, y-1)
    Come è anche scritto nel testo dell'esercizio maledetti errori di distrazione!

  9. #9
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    E' preferibile la forma che ti ho presentato io sopra...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    185
    dici? boh, il testo dice come ho fatto io però..
    Come mai dici che è preferibile?

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.