MyLeoNes™

Funzioni: piccoli programmi con un nome — Informatica, 7–10 anni

Scopri come un programma può dare un nome a un gruppo utile di passaggi e riutilizzarlo quando serve.

Un nome per tanti passaggi

Una funzione è un insieme di istruzioni con un nome che svolge un compito utile. Invece di scrivere ogni volta gli stessi passaggi, un programma può chiamare la funzione con il suo nome. Per esempio, «disegnaQuadrato» può disegnare quattro lati uguali quando il programma lo richiede.

Perché dare un nome ai passaggi?

Il problema è la ripetizione: un programma grande può aver bisogno della stessa azione utile in dieci punti diversi. Copiarla dieci volte allunga il programma e crea dieci luoghi in cui si può dimenticare una modifica. Le funzioni sono nate per organizzare programmi sempre più grandi in parti chiare e riutilizzabili, più facili da gestire.

Una funzione per un quadrato

Creiamo una funzione chiamata «disegnaQuadrato» con questi passaggi: avanza di 40 centimetri, gira a destra di 90 gradi e ripeti la coppia quattro volte. Il programma conserva questi passaggi con il nome «disegnaQuadrato». In seguito, chiamare «disegnaQuadrato» nelle posizioni (1,1) e (5,3) disegna due quadrati senza riscrivere le istruzioni.

L’errore più comune

Un errore comprensibile è pensare che dare un nome ai passaggi li faccia eseguire subito. Di solito una funzione è solo una ricetta che aspetta di essere chiamata; non fa nulla quando viene creata. Se «disegnaQuadrato» viene definita ma non viene mai chiamata, non appare nessun quadrato. Il nome organizza il lavoro, ma è la chiamata ad avviarlo.

Dove si usano le funzioni

Le funzioni sono dietro azioni comuni come «riproduci un suono», «invia un messaggio» o «mostra il livello successivo». Un’app del meteo può usare una funzione per trasformare una temperatura in un colore in molti punti. Modificare quella funzione può migliorare ogni punto che la chiama; per questo i programmatori scelgono con cura i nomi dei compiti.

Continua a esplorare

Altre lingue

Caricamento di MyLeoNes™…