Context engineering
La programmazione strutturata è una delle basi fondamentali dell’informatica. Il suo obiettivo è fornire un insieme di regole e buone pratiche che permettano di scrivere programmi chiari, leggibili e manutenibili nel tempo. Comprendere questo approccio significa imparare a progettare software che non solo funzioni, ma che possa essere facilmente compreso, corretto ed esteso anche da altri programmatori.
Negli anni ’60 e ’70, quando i programmi diventavano sempre più grandi e complessi, nacque l’esigenza di imporre ordine e rigore alla scrittura del codice. La programmazione strutturata è stata la risposta a questo bisogno: un paradigma che riduce la complessità tramite regole semplici e universali.
I tre costrutti fondamentali sono:
Sequenza
int a = 5;
int b = 10;
int somma = a + b; // eseguito dopo le due assegnazioni
Selezione
if/else, switch.x = 7
if x > 0:
print("Positivo")
else:
print("Negativo o zero")
Iterazione
for, while, do while.for(int i=0; i<5; i++){
System.out.println("Ciclo numero " + i);
}
👉 Con questi soli tre strumenti, qualsiasi algoritmo può essere espresso senza bisogno di salti arbitrari (goto), che rendono il codice difficile da leggere e mantenere.
Un programma complesso non dovrebbe mai essere affrontato come un unico blocco monolitico. La decomposizione è il principio guida:
Esempio in C (uso di funzione come sottoprogramma):
int somma(int a, int b){
return a + b;
}
int main(){
int risultato = somma(5, 7);
printf("%d", risultato);
}
Vantaggi:
Scrivere codice “che funziona” non basta: deve anche essere leggibile e mantenibile. Alcune regole fondamentali:
Indentazione coerente
Aiuta a visualizzare immediatamente le strutture logiche (cicli, condizioni).
for i in range(5):
if i % 2 == 0:
print(i, "pari")
Commenti chiari
Non servono a ripetere ovvietà, ma a spiegare perché si fa qualcosa.
// Calcola la media dei voti inseriti
double media = somma / numeroVoti;
Nomenclatura significativa
Variabili e funzioni devono avere nomi parlanti:
double calcolaMedia(double somma, int numero){
return somma / numero;
}
Principio DRY (Don’t Repeat Yourself)
Evitare duplicazioni di codice, creando funzioni riutilizzabili. La ridondanza aumenta il rischio di errori e rende il software più difficile da mantenere.
La programmazione strutturata è alla base di quasi tutti i linguaggi moderni (C, Java, Python, ecc.). Alcuni esempi di applicazione:
✅ In sintesi, la programmazione strutturata insegna a pensare in modo ordinato:
È il primo passo verso lo sviluppo software professionale e costituisce la base su cui si innestano paradigmi più complessi, come la programmazione orientata agli oggetti o la programmazione funzionale.
Consegna uno spezzone di codice scritto in modo confuso e chiedi di:
🔧 Esempio prima:
a=10
b=20
if a>b:
print("a maggiore")
else:
print("b maggiore")
✅ Esempio dopo:
# Confronta due numeri e stampa il maggiore
num1 = 10
num2 = 20
if num1 > num2:
print("num1 è maggiore")
else:
print("num2 è maggiore")
Progetta un semplice programma a scelta (es. calcolo media voti, convertitore di temperature, somma di numeri pari...) usando almeno:
Esempio:
Funzione che calcola se un numero è primo
(utilizzadef,for,if,return)
Dai un problema reale (es. organizzare una giornata scolastica, cucinare una ricetta, prenotare un volo) e chiedi di:
Esempio: “Organizza la giornata di scuola”
Quale delle seguenti NON è una struttura base della programmazione strutturata?
a) Sequenza
b) Ricorsione
c) Iterazione
d) Selezione
Cosa si intende per "modulo" in un programma?
a) Una parte casuale del codice
b) Una sezione che stampa su schermo
c) Un blocco indipendente con funzione specifica
d) Una struttura ciclica
Qual è lo scopo dei commenti in un programma?
a) Velocizzare l’esecuzione
b) Rendere il codice più leggibile
c) Salvare il codice automaticamente
d) Impedire errori di sintassi
Cosa significa l'acronimo DRY?
a) Don’t Repeat Yourself
b) Do Repeat Yourself
c) Don’t Run Yet
d) Develop Recent YAML
Quale tra questi è un buon esempio di nome di variabile?
a) a1
b) xz3
c) contatoreStudenti
d) 123nome
Scrivi un semplice programma (in pseudocodice o Python) che:
Commenti
Posta un commento