Algoritmi Base

Introduzione

Introduzione alla ricerca di Massimo e Minimo negli Algoritmi: impara ad applicare i confronti sequenziali, gestire la prima inizializzazione e rappresentare il flusso con flowchart e pseudocodice.

Durata

20 minuti

Software

Flowgorithm / Pseudocodice

Linguaggio

Diagrammi di Flusso

Ricerca di Massimo e Minimo

Argomenti: confronti di grandezza, variabili di confronto, inizializzazione al primo valore, selezione logica (>, <)

Determinare il valore massimo e il valore minimo all'interno di una sequenza di numeri è uno degli algoritmi di confronto fondamentali della programmazione.

La regola d'oro per l'inizializzazione di Max e Min:

1. Leggi il PRIMO numero 2. Assegnalo SIA a Max SIA a Min

Mai inizializzare Max a 0! Se l'utente inserisse solo numeri negativi (es. -5, -12, -3), un massimo inizializzato a zero rimarrebbe erroneamente 0!

Le Variabili Coinvolte nel Calcolo

Per confrontare N numeri inseriti in sequenza dall'utente, l'algoritmo impiega le seguenti variabili:

  • Variabile numero: Accoglie il dato corrente inserito ad ogni iterazione.
  • Variabile max: Memorizza il valore più grande trovato fino a quel momento.
  • Variabile min: Memorizza il valore più piccolo trovato fino a quel momento.
  • Variabile i: Contatore delle letture effettuate.

Rappresentazione dell'Algoritmo

Esempio Pratico: Ricerca di Massimo e Minimo su N Numeri

L'algoritmo chiede all'utente quanti numeri intende inserire (N), legge il primo per inizializzare max e min, e poi confronta i successivi tramite un ciclo.

Diagramma di Flusso (Flowchart):
Diagramma di Flusso Massimo e Minimo
1. Inizializzazione: Leggi primo numero ➔ max = num, min = num
2. Ciclo e Confronto: Se num > max ➔ max = num | Se num < min ➔ min = num
3. Output: Scrivi max, min
Pseudocodice Completo:
1 Inizio
2     // Dichiarazione variabili
3     Reale numero, max, min
4     Intero N, i
5
6     Scrivi "Quanti numeri vuoi confrontare?"
7     Leggi N
8
9     // Lettura del primo elemento per inizializzare max e min
10     Scrivi "Inserisci il 1° numero:"
11     Leggi numero
12     max = numero
13     min = numero
14
15     // Ciclo per i restanti N - 1 numeri
16     i = 2
17     Mentre i <= N Fai
18         Scrivi "Inserisci il prossimo numero:"
19         Leggi numero
20
21         // Verifica per il Massimo
22         Se numero > max Allora
23             max = numero
24         Fine Se
25
26         // Verifica per il Minimo
27         Se numero < min Allora
28             min = numero
29         Fine Se
30
31         i = i + 1
32     Fine Mentre
33
34     Scrivi "Il valore massimo è: ", max
35     Scrivi "Il valore minimo è: ", min
36 Fine

Errore Comune: Perché partire con i = 2 nel ciclo?

Poiché il 1° numero è già stato letto alle righe 10-11 per impostare il punto di partenza di max e min, il ciclo deve iniziare da i = 2 ed effettuare soltanto i restanti N - 1 confronti!

Per esercitarti a realizzare questo algoritmo in ambiente grafico, consulta la guida:

Quiz di Verifica: Massimo e Minimo

Rispondi alle 5 domande per verificare la tua comprensione sugli algoritmi di ricerca degli estremi numerici.

1. Perché è fondamentale inizializzare max e min con il primo numero letto dall'utente?

2. Se un utente inserisce la sequenza: -8, -3, -15, quale sarà il valore finale di max se lo inizializziamo erroneamente a 0?

3. Quando viene aggiornata la variabile `max` all'interno del ciclo?

4. Perché il ciclo `Mentre` parte da `i = 2` anziché da `i = 1`?

5. Nei diagrammi di flusso, quale blocco grafico si utilizza per la condizione `Se numero > max`?


In sintesi

Argomenti: concetti principali, riepilogo, competenze

  1. La ricerca di massimo e minimo richiede il confronto progressivo tra il valore corrente e il valore estremo memorizzato.
  2. La regola fondamentale impone di inizializzare le variabili max e min con il primo valore letto dall'utente.

Cosa hai imparato
  1. Comprendere perché non bisogna mai inizializzare il massimo a zero quando si gestiscono numeri negativi.
  2. Utilizzare la struttura di selezione (Se / IF) per aggiornare le variabili di confronto durante la lettura.
  3. Rappresentare la ricerca di estremi numerici in pseudocodice e nei diagrammi di flusso.


Algoritmi, Massimo, Minimo, Confronto, Selezione, Flowgorithm, Pseudocodice,