Test Intermedio Roberto Basili University of Rome Tor Vergata, Department of Computer Science, Systems and Production, 00133 Roma (Italy), [email protected] April 16, 2007 1 Definizione del problema Date due frazioni, espresse nella forma di due coppie di numeri interi positivi < num1, den1 >, e < num2, den2 > , definire una funzione che, senza l’uso della divisione reale (cioe’ tra numeri in virgola mobile) restituisca: • 1 o 2 per segnalare quale delle due frazioni e’ maggiore dell’altra • una terza frazione < num3, den3 > pari alla piu’ grande delle due, ridotta ai minimi termini Ad esempio la funzione dovr restituire 2 se le frazioni in ingresso sono < 1, 3 > e < 5, 10 >, con l’assegamento alla terza frazione < num3, den3 > della coppia < 1, 2 >. Il programma dovra’ poi consistere anche di un driver, cio di una funzione (main())per la lettura dei dati di ingresso riguardanti le frazioni, e di una funzione per la stampa a video dei risultati. Suggerimenti: Per ridurre una frazione ai minimi termini si puo’ ricorrere all’algoritmo di Euclide per il calcolo del massimo comun divisore tra il numeratore ed il denominatore di una frazione, che riportato qui sotto: Problema: Determinare il M.C.D. di due numeri naturali dati diversi da 0 Algoritmo Euclide (1) 1. Dividere il primo numero per il secondo. Chiamare R il resto della divisione 2. Se R=0 hai finito: il secondo numero e’ il M.C.D. 3. Se R<>0 si operino i seguenti cambiamenti: primo numero = secondo numero; secondo numero = R. 4. Torna all’istr.1. 1