TERZA ESERCITAZIONE AUTOGUIDATA

L'obiettivo di questa esercitazione è prendere dimestichezza con le funzioni, scrivendo un programma formato da più moduli che concorrano a risolvere un problema.

ESERCIZIO

L'esercizio da svolgere consiste nel progettare un programma per il calcolo della somma di due frazioni.
Il programma deve:
  1. ricevere in input quattro interi corrispondenti ai numeratori e ai denominatori delle frazioni da sommare

  2. fornire in output numeratore e denominatore della frazione (eventualmente semplificata) risultante dalla somma dei due numeri.

Risolveremo il problema in due passi.:

  1. nella prima parte scriveremo un programma, parziale.c, con due moduli
    (massimoComunDivisore e minimoComuneMultiplo)
  2. nella seconda parte verranno riutilizzati questi due moduli per implementare il programma finale.c

A. PRIMA PARTE (la soluzione è contenuta nel file mcmmcd.c)

Scrivere un programma che calcoli massimo comun divisore e minimo comune multiplo tra due numeri interi.
Il programma dovrà essere costituito da tre moduli:

  1. la funzione minimoComuneMultiplo, che calcola il minimo comune multiplo di due interi
  2. la funzione massimoComunDivisore, che calcola il massimo comun divisore di due interi
  3. la funzione main, che
    • legge due interi
    • chiama le due funzioni passando come parametri gli interi letti
    • stampa i risultati delle due funzioni

La funzione massimoComunDivisore calcola il risultato col metodo di Euclide.
La funzione minimoComuneMultiplo chiama la funzione massimoComunDivisore per calcolare il risultato
(il minimo comune multiplo è uguale al prodotto dei due numeri diviso il loro massimo comun divisore,
mcm(a,b) = a*b / MCD(a,b) ).

N.B.: minimoComuneMultiplo chiama massimoComunDivisore.

Dopo aver scritto e compilato il programma, effettuare l'esecuzione passo-passo
(premere ripetutamente fino alla fine dell'esecuzione F7 oppure F8).

Quando il programma è costituito da più moduli i comandi Step over (F8) e Trace Into (F7) hanno un effetto diverso.

Provare ad effettuare l'esecuzione passo passo prima con F8 e successivamente con F7.

Per seguire l'andamento del programma ispezionare le variabili che compaiono nella funzione massimoComunDivisore.

B. SECONDA PARTE (la soluzione è contenuta nel file sommaraz.c)

In questa seconda parte si deve sviluppare il programma per il calcolo della somma di due frazioni, utilizzando le due funzioni implementate nella prima parte. Ai due moduli della prima parte si deve aggiungere un terzo modulo che effettui la stampa del risultato. Il programma finale.c dovrà essere costituito da quattro moduli:

  1. la funzione minimoComuneMultiplo
  2. la funzione massimoComunDivisore
  3. la funzione risultato
  4. la funzione main, che
    • legge l'input
    • calcola il risultato usando gli altri moduli
    • verifica se il risultato deve essere semplificato
    • chiama la funzione che stampa il risultato

Per effettuare la somma di due frazioni si dovrà

  1. calcolare il mcm dei due denominatori che costituisce il denominatore della frazione_somma
  2. calcolare i numeratori delle frazioni equivalenti a quelle date con il nuovo denominatore
  3. sommare i nuovi numeratori per avere il numeratore della frazione_somma

Per semplificare una frazione si dovrà calcolare il MCD tra numeratore e denominatore

Per riutilizzare i moduli che avete già digitato nel file che risolve la parte A:

  1. senza chiudere il file corrente, aprite un nuovo file
  2. salvatelo con un nome diverso (ad es. finale.c)
  3. copiate le due funzioni nel nuovo file usando i comandi Copy e Paste del menù Edit, attivabili con il mouse oppure da tastiera

Utilizzando la tastiera:

  1. posizionarsi all'inizio del blocco da copiare all'interno del file parziale.c
  2. tenendo premuto il tasto SHIFT usare i tasti freccia per evidenziare tutto il blocco di interesse
  3. tenendo premuto il tasto CTRL digitare il tasto INS (attenzione che non sia attivato Num Lock)
  4. utilizzando il tasto F6 spostarsi sul file finale.c
  5. tenendo premuto il tasto SHIFT digitare il tasto INS (attenzione che non sia attivato Num Lock)
  6. utilizzando F2 salvate il file finale.c

Utilizzando la tastiera e i comandi dei menu a tendina:

  1. posizionarsi all'inizio del blocco da copiare all'interno del file parziale.c
  2. tenendo premuto il tasto SHIFT usare i tasti freccia per evidenziare tutto il blocco di interesse
  3. ALT + E + C equivale a Edit Copy
  4. ALT + W + N equivale a Window Next
  5. ALT + E + P equivale a Edit Paste
  6. ALT + F + S equivale a File Save

Utilizzando il mouse

Dopo aver scritto e compilato il programma, effettuare l'esecuzione passo-passo con F7.

ESERCIZIO PROPOSTO (la soluzione è contenuta nel file duecifun.c)

Modificare il programma duecifre.c (sviluppato nella seconda esercitazione) definendo i seguenti moduli:
  1. la funzione leggi_cifre: permette l'immissione del numero di due cifre (e relativi controlli)
  2. la funzione scrivi_pari: scrive in lettere le cifre pari
  3. la funzione scrivi_dispari: scrive in lettere le cifre dispari
  4. la funzione main opportunamente modificata