Fondamenti Di Programmazione

LAB Determina Massimo

Esercizio di Laboratorio sui Sottoprogrammi: determinazione del valore Massimo e Minimo tra due o tre numeri mediante l'uso di Funzioni dedicate.

Durata

20 minuti

Software

Flowgorithm / Pseudocodice

Linguaggio

Diagrammi di Flusso

Esercizio in Laboratorio: Calcolo del Massimo e del Minimo

Argomenti: funzioni di confronto, calcolo di Massimo e Minimo, passaggio parametri, Se...Allora interno alle funzioni

In questo laboratorio realizzeremo due funzioni fondamentali nella logica di programmazione: la funzione CalcolaMax e la funzione CalcolaMin. L'obiettivo è isolare la logica di confronto in sottoprogrammi dedicati per determinare i valori estremi tra due o più numeri dati in ingresso.

Traccia dell'Esercizio:

Progetta un algoritmo che legga due numeri reali inseriti dall'utente e ne determini sia il valore Massimo sia il valore Minimo tramite l'invocazione di due funzioni distinte.

L'algoritmo deve:

  • Definire la funzione CalcolaMax(a, b) che confronta a e b e restituisce il numero maggiore.
  • Definire la funzione CalcolaMin(a, b) che confronta a e b e restituisce il numero minore.
  • Nel programma principale (Main), chiedere all'utente due numeri reali.
  • Invocare entrambe le funzioni e stampare a schermo i valori di Massimo e Minimo ottenuti.

1. Tabella delle Variabili e Dominio dei Dati

Memoria: Dichiarazione e Ruolo delle Variabili e dei Parametri

Ambito (Scope) Nome Variabile Tipo di Dato Ruolo / Descrizione
Funzione
CalcolaMax
a, b Reale Parametri Formali: I due valori da confrontare.
maxVal Reale Ritorna: Il valore maggiore tra a e b.
Funzione
CalcolaMin
a, b Reale Parametri Formali: I due valori da confrontare.
minVal Reale Ritorna: Il valore minore tra a e b.
Main
Programma Principale
num1, num2 Reale Input / Parametri Attuali: I due valori inseriti dall'utente.
massimo Reale Elaborazione: Salva il risultato restituito da CalcolaMax.
minimo Reale Elaborazione: Salva il risultato restituito da CalcolaMin.

2. Algoritmo Risolutivo e Diagramma di Flusso

Rappresentazione: Flowchart e Pseudocodice affiancati

Diagramma di Flusso (Flowchart):
Diagramma di Flusso Massimo e Minimo
Funzione CalcolaMax: Restituisce il valore più grande tra a e b
Funzione CalcolaMin: Restituisce il valore più piccolo tra a e b
Main: Chiamate CalcolaMax(num1, num2) e CalcolaMin(num1, num2)
Pseudocodice con Numeri di Riga:
1 // DEFINIZIONE FUNZIONE MASSIMO
2 Funzione CalcolaMax(Reale a, Reale b) : Reale
3     Se (a > b) Allora
4         Ritorna a
5     Altrimenti
6         Ritorna b
7     Fine Se
8 Fine Funzione
9
10 // DEFINIZIONE FUNZIONE MINIMO
11 Funzione CalcolaMin(Reale a, Reale b) : Reale
12     Se (a < b) Allora
13         Ritorna a
14     Altrimenti
15         Ritorna b
16     Fine Se
17 Fine Funzione
18
19 // PROGRAMMA PRINCIPALE (MAIN)
20 Inizio
21     Reale num1, num2, massimo, minimo
22     Scrivi "Inserisci il primo numero:"
23     Leggi num1
24     Scrivi "Inserisci il secondo numero:"
25     Leggi num2
26
27     // Invocazione delle funzioni di confronto
28     massimo = CalcolaMax(num1, num2)
29     minimo = CalcolaMin(num1, num2)
30
31     Scrivi "Il valore massimo e': ", massimo
32     Scrivi "Il valore minimo e': ", minimo
33 Fine

3. Tabella di Traccia dell'Esecuzione (Trace Table)

Simulazione: Prova di esecuzione con input num1 = 12.5 e num2 = 45.0

Passo / Riga Azione / Istruzione Parametri Attuali ➔ Formali Valore Restituito Stato Variabili (Main)
Righe 21-25 Input valori da tastiera - - num1 = 12.5, num2 = 45.0
Riga 28 Invocazione CalcolaMax(12.5, 45.0) num1, num2 ➔ a = 12.5, b = 45.0 45.0 (45.0 > 12.5) massimo = 45.0
Riga 29 Invocazione CalcolaMin(12.5, 45.0) num1, num2 ➔ a = 12.5, b = 45.0 12.5 (12.5 < 45.0) minimo = 12.5
Righe 31-32 Stampa a schermo dei due risultati - - massimo = 45.0, minimo = 12.5

Osservazione

Nota come l'uso dell'istruzione Ritorna all'interno delle clausole Se fa interrompere immediatamente l'esecuzione della funzione non appena la condizione viene valutata, restituendo subito il valore corretto al Main!

La Sfida: Massimo tra Tre Numeri Sfruttando la Funzione a Due

Ora che hai capito come funziona la funzione CalcolaMax con 2 numeri, accetti la sfida?

Modifica il programma per trovare il Massimo tra TRE numeri inseriti dall'utente (n1, n2, n3) senza riscrivere una nuova funzione, ma annidando le chiamate a CalcolaMax:

  • Leggi tre numeri distinti dal programma principale.
  • Trova il massimo dei primi due: m12 = CalcolaMax(n1, n2).
  • Trova il massimo definitivo confrontando il primo risultato con il terzo numero: maxFinale = CalcolaMax(m12, n3).
  • In alternativa, prova a scriverlo in una riga sola: maxFinale = CalcolaMax(CalcolaMax(n1, n2), n3)!

Suggerimento: La funzione CalcolaMax originale a 2 parametri **non deve subire alcuna modifica**! Sfrutta il principio della composizione per risolvere un problema più complesso.


In sintesi

Argomenti: concetti principali, riepilogo, competenze

  1. Modularità del confronto: isolare la logica di confronto dentro funzioni riutilizzabili rende il Main estremamente sintetico.
  2. Composizione di funzioni: le funzioni CalcolaMax e CalcolaMin accettano due valori e restituiscono il valore estremale.

Cosa hai imparato
  1. Definire funzioni di confronto con istruzioni condizionali Se...Allora interne.
  2. Restituire un valore numerico risultante da un confronto logico.
  3. Invocare più funzioni distinte all'interno dello stesso programma principale.


Esercizio Svolto, Algoritmi, Funzioni, Massimo, Minimo, Confronto, Pseudocodice,