Programmazione nella Scuola Primaria – 6

Maestra Rosalba parla di me! Qui: A proposito di coding, niente panico. Parla anche di Programma il futuro, di ben altro spessore rispetto a queste note. Ma sono cose diverse: io voglio solo far vedere agli insegnanti cos’è la programmazione. E smagare l’argomento, è una cosa talmente facile che ci riesco anch’io.

laptopsNel post precedente abbiamo visto che normalmente le istruzioni che formano il programma vengono eseguite nell’ordine in cui sono scritte. Cosa che però può variare come quando dobbiamo ripetere più volte una cosa simile. Abbiamo visto il caso delle tabelline dove è richiesta la moltiplicazione di un numero per 1, 2, … 10. Quella cosa viene chiamata ciclo. E in particolare quel ciclo è predefinito, sappiamo già che sarà eseguito 10 volte. Vediamo un caso semplice (che se non è molto semplice mica sono capace) in cui non sappiamo quante volte dovremo eseguirlo. Inoltre –due al prezzo di uno– vedremo anche come eseguire un’istruzione (o un gruppo di istruzioni, è la stessa cosa) sono se si verifica una particolare condizione.

Il programma ha un nome difficilissimo, congettura di Collatz. Ma niente panico, nèh!

# collatz.py - prima versione

n = 42 # cambiare questo numero 

print n,
while n > 1:
	if n % 2 == 1:
		n = 3 * n + 1
	else:
		n = n / 2
	print n,
print '\nfatto!'

Questo programma va scritto con il Blocco note nella cartella c:\prove, come raccontato la volta scorsa. Deve chiamarsi collatz.py, se del caso operate la magia sul nome come raccontato la volta scorsa.
Proviamo a vedere cosa fa, poi lo esamineremo in dettaglio. Aprinte il solito Prompt dei comandi, e eseguite (quello che dovete scrivere è in neretto):

c:
cd \prove
c:\python27\python collatz.py
42 21 64 32 16 8 4 2 1
fatto!

Se cambiamo la riga 3 mettendo 15 al posto di 42 otteniamo:

c:\python27\python collatz.py
15 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1
fatto!

OK? Esaminiamo in dettaglio il programma (ricordate che avevamo deciso di chiamare questo tipo di programmi script che fa più geek, o nerd, o saputi?).
Alla riga 3 assegno un valore alla variabile n. Come abbiamo visto precedentemente il segno # definisce un commento, ignorato da Python, lo usiamo nelle righe 1 e 3.
Alle righe 6-11 definiamo un ciclo indeterminato. Riga 6 tradotta diventa: “mentre la variabile n è maggiore di 1 fai”. Cosa fare è scritto nelle righe successive, rientrate rispetto a quella che definisce il ciclo.
Le righe 7-10 stabiliscono quale istruzione eseguire in funzione del verificarsi della condizione di riga 7. Riga 7 si legge così: “se il resto di n diviso 2 è uno fai”. Normalmente non diremmo “se n è dispari” ma il ‘puter non sa cos’è un numero dispari (poi glielo insegneremo, volendo).
Allora se n è dispari (riga 7) esegue riga 8 e cambia il valore di n che viene moltiplicato per 3 e poi aumentato di 1. Notare che riga 8 dipende da riga 7, quindi dev’essere rientrata.
Se invece la condizione “n è dispari” è falsa c’è l'”altrimenti fai” di riga 9. Questa riga dev’essere allineata con la 7 che stabilisce la condizione.
In questo caso verrà eseguita l’istruzione di riga 10 e a n verrà assegnata la sua metà.
In ogni caso verrà scritto il valore corrente di n, riga 11. Notare che se print finisce con una virgola non viene eseguito l’a-capo.
Usiti dal ciclo scriviamo un a-capo (\n, come abbiamo visto nel post precedente) e “fatto!“.

Semplice vero? Domande? Continuo?
Ci sono ancora le funzioni, i moduli e le alternative a Python.
E, come si diceva nel ’68 “ce n’est qu’un début”.

Annunci
Post a comment or leave a trackback: Trackback URL.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: