programmazione di calcolatori
DESCRIPTION
Programmazione di Calcolatori. Le strutture di controllo Soluzione agli esercizi proposti. Esercizio 1: diagramma di flusso. Calcolare il massimo di una sequenza non vuota di numeri interi positivi terminata da un intero negativo. Start Nome: MaxOfSeq Variabili: int val, max. - PowerPoint PPT PresentationTRANSCRIPT
G. Amodeo,C. Gaibisso Programmazione di Programmazione di
CalcolatoriCalcolatori
Le strutture di controlloSoluzione agli esercizi
proposti
Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi 1
G. Amodeo,C. Gaibisso Esercizio 1: diagramma di Esercizio 1: diagramma di
flussoflusso
Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi 2
Calcolare il massimo di una sequenza non vuota di numeri interi positivi terminata da un intero
negativo
StartNome: MaxOfSeqVariabili: int val, max
val
val < 0
false
true
max End
val > max
true
max val
false
max -1
Descrizione variabili:
val: memorizza il valore corrente della sequenzamax: memorizza il massimo corrente
Soluzione in: EsProposti\Lezione_XIII\Esercizio_1.c
G. Amodeo,C. Gaibisso
Esercizio 1: il codiceEsercizio 1: il codice
Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi 3
// sorgente: EsProposti\Lezione_XIII\Esercizio_1.c// direttive per il preprocessore#include <stdio.h>// Funzione che calcola il massimo di una sequenza non vuota di numeri interi// positivi terminata da un intero negativoint MaxOfSeq() { // definizione delle variabili per il valore corrente della sequenza e il // corrispondente massimo int val, max; // inizializzazione del massimo corrente max = -1; // ciclo di acquisizione della sequenza e calcolo del massimo corrente do {// acquisizioneprintf("\nProssimo elemento della sequenza:");scanf("%d", &val);// calcolo del massimo correnteif (val > max) max = val;} while (val >= 0); // restituzione del massimo return(max); };
G. Amodeo,C. Gaibisso
Esercizio 1: il codiceEsercizio 1: il codice
Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi 4
// chiamanteint main () { printf("\nIl massimo della sequenza e': %d", MaxOfSeq()); return(1); }
G. Amodeo,C. Gaibisso
Esercizio 2Esercizio 2
Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi 5
Calcolare il minimo comune multiplo tra 2
interi positivi
Soluzione in: EsProposti\Lezione_XIII\Esercizio_2.c
Descrizione variabili:
A: memorizza il primo interoB: memorizza il secondo interomax: memorizza il massimo tra i due interimcm: memorizza il candidato corrente a minimo comune multiplocount: moltiplicato per max genera il prossimo candidato a minimo comune multiplo
max A
StartNome: MCMVariabili: int A, B, max, mcm, count
falseA > B
true
A, B
mcm
max B
mcm % A = 0and
mcm % B = 0
End
mcm max*count
cont count+1
count 2
mcm max
false
true
G. Amodeo,C. Gaibisso
Esercizio 2: il codiceEsercizio 2: il codice
Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi 6
// sorgente: EsProposti\Lezione_XIII\Esercizio_2.c// direttive per il preprocessore#include <stdio.h>// funzione che calcola il massimo tra due interi positiviint massimo (int val1, int val2) { if (val1 > val2) return(val1); else return(val2); };// funzione che calcola il minimo comune multiplo tra 2 interi positiviint MCM(int A, int B) { // definizione della variabile per il massimo tra i due valori di input e per // per il candidato corrente a minimo comune multiplo int max; int mcm; // definizione della variabile che moltiplicata per il massimo tra i due valori di // input genera il prossimo candidato a minimo comune multiplo int count; // inizializzazione delle variabili count = 2; max = massimo(A, B); mcm = max; // verifica se il candidato corrente e' il minimo comune multiplo while (!((mcm%A == 0) && (mcm%B == 0))) // aggiorna il valore del candidato corrente mcm = max * count++; // restituisce il minimo comune multiplo return(mcm); };
G. Amodeo,C. Gaibisso
Esercizio 2: il codiceEsercizio 2: il codice
Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi 7
// chiamanteint main () { // definizione delle due variabili di input int x, y; // acquisizione delle variabili di input printf("\nPrimo valore? "); scanf("%d", &x); printf("\nSecondo valore? "); scanf("%d", &y); // visualizza il minimo comune multiplo tra le // variabili di input printf("\nIl mcm tra %d e %d e' %d", x, y, MCM(x, y)); return(1); }
G. Amodeo,C. Gaibisso
Esercizio 3Esercizio 3
Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi 8
Calcolare il massimo comun divisore tra 2 interi
positivi
min A
StartNome: MCDVariabili: int A, B, min, mcd, count
trueA > B
false
A, B
min B
A % count = 0and
B % count = 0
End
count count+1
mcd 1count 1
count > min mcd
mcd count
false
true
true
false
Descrizione variabili:
A: memorizza il primo interoB: memorizza il secondo interomin: memorizza il minimo tra i due intericount: memorizza il candidato corrente a massimo comun divisoremcd: memorizza l’ultimo divisore comune individuato
Soluzione in: EsProposti\Lezione_XIII\Esercizio_3.c
G. Amodeo,C. Gaibisso
Esercizio 3: il codiceEsercizio 3: il codice
Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi 9
continua …
// testa tutti i valori compresi tra 1 e il minimo tra i valori di input while (count <= min) { // verifica se il candidato corrente è un divisore comune per i valori di input ed // aggiorna il valore della variabile per l'ultimo di tali divisori individuato if ((A%count == 0) && (B%count == 0)) mcd = count; // aggiorna il valore del candidato corrente count++; } // restituisce il massimo comun divisore return(mcd); };// chiamanteint main () { // definizione delle due variabili di input int x, y; // acquisizione delle variabili di input printf("\nPrimo valore? "); scanf("%d", &x); printf("\nSecondo valore? "); scanf("%d", &y); // visualizza il massimo comun divisore tra le variabili di input printf("\nIl mcd tra %d e %d e' %d", x, y, MCD(x, y)); return(1); }
G. Amodeo,C. Gaibisso
Esercizio 3: il codiceEsercizio 3: il codice
Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi 10
// sorgente: EsProposti\Lezione_XIII\Esercizio_3.c// direttive per il preprocessore#include <stdio.h>// funzione che calcola il minimo tra due interi positiviint minimo (int val1, int val2) { if (val1 > val2) return(val2); else return(val1); };// funzione che calcola il massimo comun divisore tra 2 interi positiviint MCD(int A, int B) { // definizione della variabile per il minimo tra i due valori di input int min; // definizione della variabile per il candidato corrente a massimo comun divisore // e per l’ultimo divisore comune individuato per i valori di input individuato int count; int mcd; // inizializzazione delle variabili mcd = count = 1; min = minimo(A, B);
continua …