08 | Progettare un algoritmo
Capitolo 08 · Teoria, esempio ragionato e verifica.
Prima di iniziare: completa il capitolo 07.
Concetti e definizioni
Un algoritmo descrive passi finiti e non ambigui per risolvere un problema. Prima del codice definisci input, output, vincoli e casi limite. Una traccia manuale registra i cambiamenti delle variabili; un invariante è una proprietà che resta vera durante il ciclo. Separare lettura, elaborazione e stampa aiuta a individuare gli errori.
Esempio completo
Salva come esempio.cpp. Compila con g++ -std=c++17 -Wall -Wextra esempio.cpp -o esempio; esegui ./esempio (PowerShell: .\esempio.exe).
#include <iostream>
int main() {
int positivi = 0;
for (int i = 0; i < 4; ++i) {
int x{};
if (!(std::cin >> x)) return 1;
if (x > 0) ++positivi;
}
std::cout << positivi;
}Segui l’esecuzione
2 -1 0 8 → 2. Dopo ogni iterazione, positivi conta solo i valori maggiori di zero letti fino a quel momento.
Prova tu
Leggi 5 numeri e trova il massimo senza inizializzarlo a 0.
Casi di prova e criteri di riuscita
-9 -4 -8 -7 -6 → -4. Inizializza il massimo con il primo valore valido.
Prima di proseguire
Descrivi a parole l’algoritmo, esegui i casi di prova e spiega almeno un possibile errore. Poi passa agli esercizi del capitolo 08.