Attivita culturali Accesso cataloghi

Biblioteca Aldo Luppi

Come programmare il compagno di banco

Nella pillola precedente abbiamo visto come possiamo memorizzare e richiamare un'immagine utilizzando il sistema binario.

Proviamo ora a utilizzare questa informazione per creare il nostro primo programma.

Torniamo un attimo sulla definizione dell'informatica:
 “L’informatica si occupa della codifica BINARIA, della memorizzazione, della trasmissione e dell’elaborazione dell’informazione”. 
Quindi noi abbiamo dei dati e per farli manipolare dal computer dobbiamo "codificarli"  nel sistema binario.
Per poter ricevere il risultato dobbiamo fare sì che il computer ci restituisca i dati codificati in un sistema "umano".
Quindi l'informazione è  dato (ovvero sequenza di bit) + criterio di decodifica.
Solo quando è stabilito il criterio di codifica (e dunque di decodifica) ha dunque senso parlare di digitalizzazione dell'informazione secondo il seguente schema: 

INFORMAZIONE > CODIFICA > INFORMAZIONE CODIFICATA  > DECODIFICA > INFORMAZIONE.

Più avanti vedremo come il computer sia in grado di eseguire operazioni sui dati, quel che ci interessa ora è comprendere che per un programmatore (l'essere umano che scrive informazioni e istruzioni da inviare al computer) sarebbe difficilissimo scrivere tutto come sequenza di bit ovvero in codice binario.
Il programmatore, per scrivere il programma, utilizza quindi un linguaggio di programmazione.
Quello che viene scritto dal programmatore si chiama codice sorgente. Questo codice poi viene interpretato (l'interprete, in informatica, è un altro programma in grado di fare eseguire al computer delle operazioni partendo dal codice sorgente) oppure viene compilato ( cioè tradotto in istruzioni di linguaggio macchina da un programma detto compilatore). 
Il linguaggio macchina può essere direttamente eseguito dal processore del computer ed è ovviamente basato su un alfabeto binario. 

  

Che caratteristiche deve avere un linguaggio di programmazione? Tutti i linguaggi di programmazione esistenti sono definiti da un lessico (insieme delle parole che possono essere utilizzate all'interno di quel linguaggio), una sintassi (insieme delle regole di quel linguaggio) e una semantica (i modelli matematici che permettono l'esecuzione delle istruzioni fornite in quel linguaggio).

Sappi che i linguaggi di programmazione sono tantissimi, con logiche e strutture molto diverse tra loro.
In tutti troveremo comunque almeno:
istruzione: comando che impone un cambiamento
variabile e costante: un dato che viene memorizzato in un luogo della memoria del pc. Se il dato è fisso è una costante, se invece il valore dipende dalle operazioni che il programma farà eseguire è una variabile.
Espressione: combinazione tra le variabil e costanti e gli operatori, un operatore è il simbolo che, in quel linguaggio, fa combinare in un certo modo i dati.

Inziamo a programmare il nostro compagno di banco.


Vogliamo che il nostro compagno disegni un'immagine.

Vi ricorderete che per digitalizzare un'immagine con la strategia raster dobbiamo rendere l'immagine a colori, descrivibile come sequenza di pixel di colori diversi.

Quindi dobbiamo sovrapporre una griglia all'immagine e semplificarla facendola diventare una sequenza di pixel (quadratini di diversi colori).
      
Per programmare il nostro compagno di banco la prima cosa da fare è accertarsi di avere due griglie identiche:
Ora il nostro compagno di banco ha una griglia di uguali dimensioni alla nostra originale e con delle righe etichettate nella medesima sequenza.
   

Adesso dobbiamo definire l'istruzione "colora": 
Come si esegue "colora"? 
Gli possiamo dire: "iniziando dalla prima riga in alto e dal primo pixel a sinistra, riempi un certo numero di pixel  utilizzando il colore  indicato.
Qando incontri il simbolo "+" significa che devi cambiare colore, quando incontri il simbolo ";" significa che hai terminato la riga e devi passare a quella successiva.

Non abbiamo usato nessun linguaggio di programmazione realmente esistente ma abbiamo definito delle istruzioni, abbiamo visto delle regole (da quale pixel si deve partire, cosa succede quando si incontra il segno + o il segno;) e abbiamo visto che i valori di colore e quantità di pixel possono variare. Per quanto complicati possano essere i linguaggi tutti presentano questi elementi.

Vediamo come verrebbero le istruzioni nel caso in figura che abbiamo creato
  

A: 5blu + 5nero  + 5blu ;
B: 3blu + 2nero  + 5giallo + 2nero + 3blu;
C: 2blu + 1nero + 9giallo + 1nero + 2blu;
D: 1blu + 1nero + 11giallo + 1nero + 1blu;
E: 1blu + 1nero + 11giallo + 1nero + 1blu;
F: 15nero;
G: 1nero  + 1giallo  + 1nero  + 2bianco + 4nero  + 2bianco  + 2nero  + 1giallo  + 1nero;
H: 1nero + 1giallo  + 1nero  + 1bianco  + 3nero  + 1giallo  + 1nero  + 1bianco  + 3nero + 1giallo  + 1nero;
I: 1nero  + 2giallo  + 3nero  + 3giallo  + 3nero  + 2giallo  + 1nero;
L: 1nero  + 13giallo + 1nero;
M: 1blu + 1nero + 8giallo + 1nero + 2giallo + 1nero + 1blu;
N: 1blu + 1nero + 3giallo + 3nero + 3giallo + 1 nero + 1blu;
O: 2blu + 1nero + 9giallo + 1 nero + 2 blu;
P: 3blu + 9nero + 3blu.

Alla ricerca dei "Bachi"

Un Bug (in italiano può essere tradotto come baco) in informatica è un errore nel programma. Un programmatore deve quindi effettuare il debug del programma prima di venderlo.
Come farlo un debug in questo caso? confronta la tua immagine con quella prodotta dal tuo compagno di banco. Ci sono differenze? 

Nel gioco che segue puoi provare ad eseguire dei programmi simili a quello appena imparato.

Pagina aggiornata il 21-04-2021 da Biblioteca Luppi - Pagina visualizzata 260 volte