1 / 10

Programmazione di Calcolatori

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.

Download Presentation

Programmazione di Calcolatori

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programmazione di Calcolatori Le strutture di controllo Soluzione agli esercizi proposti Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi

  2. 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 max  -1 val Descrizione variabili: val: memorizza il valore corrente della sequenza max: memorizza il massimo corrente true val < 0 max End false false val > max true max  val Soluzione in: EsProposti\Lezione_XIII\Esercizio_1.c Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi

  3. Esercizio 1: il codice // 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 negativo int 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 { // acquisizione printf("\nProssimo elemento della sequenza:"); scanf("%d", &val); // calcolo del massimo corrente if (val > max) max = val; } while (val >= 0); // restituzione del massimo return(max); }; Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi

  4. Esercizio 1: il codice // chiamante int main () { printf("\nIl massimo della sequenza e': %d", MaxOfSeq()); return(1); } Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi

  5. Esercizio 2 Start Nome: MCM Variabili: int A, B, max, mcm, count Calcolare il minimo comune multiplo tra 2 interi positivi A, B Descrizione variabili: A: memorizza il primo intero B: memorizza il secondo intero max: memorizza il massimo tra i due interi mcm: memorizza il candidato corrente a minimo comune multiplo count: moltiplicato per max genera il prossimo candidato a minimo comune multiplo count  2 A > B max  A max  B true false mcm  max mcm % A = 0 and mcm % B = 0 false mcm  max*count cont  count+1 true mcm End Soluzione in: EsProposti\Lezione_XIII\Esercizio_2.c Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi

  6. Esercizio 2: il codice // sorgente: EsProposti\Lezione_XIII\Esercizio_2.c // direttive per il preprocessore #include <stdio.h> // funzione che calcola il massimo tra due interi positivi int massimo (int val1, int val2) { if (val1 > val2) return(val1); else return(val2); }; // funzione che calcola il minimo comune multiplo tra 2 interi positivi int 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); }; Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi

  7. Esercizio 2: il codice // chiamante int 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); } Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi

  8. Esercizio 3 Start Nome: MCD Variabili: int A, B, min, mcd, count Calcolare il massimo comun divisore tra 2 interi positivi A, B Descrizione variabili: A: memorizza il primo intero B: memorizza il secondo intero min: memorizza il minimo tra i due interi count: memorizza il candidato corrente a massimo comun divisore mcd: memorizza l’ultimo divisore comune individuato mcd  1 count  1 false true A > B min  A min  B true count > min mcd false End A % count = 0 and B % count = 0 count  count+1 false true mcd  count Soluzione in: EsProposti\Lezione_XIII\Esercizio_3.c Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi

  9. Esercizio 3: il codice 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); }; // chiamante int 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); } Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi

  10. Esercizio 3: il codice // sorgente: EsProposti\Lezione_XIII\Esercizio_3.c // direttive per il preprocessore #include <stdio.h> // funzione che calcola il minimo tra due interi positivi int minimo (int val1, int val2) { if (val1 > val2) return(val2); else return(val1); }; // funzione che calcola il massimo comun divisore tra 2 interi positivi int 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 … Programmazione di Calcolatori: Le strutture di controllo - soluzione agli esercizi

More Related