Obiettivo dell'esercitazione:
Scrivere un programma che:
Per risolvere l'esercizio bisogna definire i seguenti moduli:
Per correggere gli eventuali errori logici del programma usare gli strumenti di correzione offerti dal debugger dall'ambiente Turbo C che riassumiamo brevemente:
In particolare
In particolare
Copiare il file driveint.c nel direttorio C:\TEMP ed aprire il file all'interno del Turbo C. Il file contiene un programma che implementa un menu per verificare il risultato dell'esecuzione di alcune funzioni su interi.
Nel programma mancano le definizioni di alcune funzioni: si richiede di completarlo. In particolare, le funzioni da aggiungere devono implementare le operazioni aritmetiche di somma, prodotto ed esponenziazione tra interi nonnegativi, supponendo di NON POTER USARE GLI OPERATORI del C + e - SUGLI INTERI, ma di POTER USARE SOLO l'istruzione di assegnazione e il confronto tra due variabili di tipo intero(Fate finta che la versione del TurboC con la quale state lavorando sia difettosa e non vi permetta di usare gli operatori + o - e il valore 1).
Le funzioni vanno realizzate in modo ricorsivo, utilizzando le seguenti definizioni induttive
somma | prodotto | esponenziazione |
somma(x,y) = x se y = 0 |
prod(x,y) = 0 se y = 0 |
esponente(x,y) = 1 se y = 0 |
somma(x,y) = 1 + (somma(x, y-1)) se y > 0 |
prod(x,y) = somma(x, prod(x, y-1)) se y > 0 |
esponente(x,y) = prod(x, esponente(x, y-1)) se y > 0 |