Pensiero computazionale, coding, diagramma a blocchi

Testo di riferimento

Clicca per acquistare su Amazon il libro Programmazione Python per le scienze della vita

Le slide fanno riferimento al Capitolo 2 - Dal problerma alla soluziobne - (pp. 45 a pp 120)

Pensiero computazionale  
Coding, algoritmi, diagramma a blocchi e Python  
Prof. Salvatore Mancarella  
salvatore.mancarella@unisalento.it  
© Salvatore Mancarella  
Sommario  
üPensiero computazionale  
üCoding  
üAlgoritmi  
üDiagramma a blocchi  
© Salvatore Mancarella  
Tre domannde  
´ Cos’e il pensiero computazionale?  
´ Cos’è il coding?  
´ Infine, cosa c’entra questo con la vostra  
vita professionale  
© Salvatore Mancarella  
© Salvatore Mancarella  
Stress  
© Salvatore Mancarella  
Stress - Soluzione  
Utilizzare il pensiero computazionale  
© Salvatore Mancarella  
IL pensiero  
computazionale  
Che cos’è?  
© Salvatore Mancarella  
Il pensiero computazionale  
E’ un modo di pensare che ci aiuta a  
formulare «soluzioni costruttive» a  
problemi che dobbiamo risolvere  
© Salvatore Mancarella  
Facciamo un esempio  
Se vuoi raggiungere una  
vetta….  
© Salvatore Mancarella  
non puoi pensare di…  
Arrivarci subito e senza  
allenamento  
© Salvatore Mancarella  
L’obiettivo  
va raggiunto a piccoli passi.  
© Salvatore Mancarella  
Il pensiero  
computazionale  
è lo strumento  
che ci consente  
di passare da  
un’idea al  
procedimento  
per realizzarla  
© Salvatore Mancarella  
Imparare a  
programmare è  
il modo migliore  
per acquisire il  
pensiero  
computazionale  
© Salvatore Mancarella  
Quindi se la meta è la vetta  
devi allenarti  
© Salvatore Mancarella  
Pensiero computazionale  
Definizione formulata dalla dottoressa Jeannette  
Wing, direttrice del Dipartimento di Informatica  
della Carnegie Mellon University, secondo cui  
« il processo mentale che sta alla base della  
formulazione dei problemi e delle loro soluzioni  
così che le soluzioni siano rappresentate in una  
forma che può essere implementata in  
maniera efficace da un elaboratore di  
informazioni sia esso umano o artificiale».  
© Salvatore Mancarella  
Pensiero computazionale  
Ovvero è lo sforzo che un  
individuo deve mettere in  
atto per fornire a un altro  
individuo o macchina tutte e  
sole le “istruzioni” necessarie  
affinché questi eseguendole  
sia in grado di portare a  
termine il compito dato.  
© Salvatore Mancarella  
Pensiero computazionale  
DETTO IN PAROLE SEMPLICI  
QUANDO AFFRONTIAMO UN PROBLEMA O ABBIAMO UN’IDEA, SPESSO  
INTUIAMO LA SOLUZIONE MA NON SIAMO IN GRADO DI  
FORMULARLA IN MODO OPERATIVO PER METTERLA IN PRATICA.  
Il PENSIERO COMPUTAZIONALE E’ QUESTO  
LA CAPACITÀ DI DESCRIVERE UN  
PROCEDIMENTO COSTRUTTIVO CHE  
PORTI AD UNA SOLUZIONE  
CREATIVA, EFFICACE E NON  
AMBIGUA  
© Salvatore Mancarella  
© Salvatore Mancarella  
Pensiero computazionale  
pensiero computazionale  
,
aiuta a sviluppare competenze logiche e  
capacità di risolvere problemi in modo  
creativo ed efficiente, qualità che sono  
importanti per tutti gli ambiti lavorativo  
e sociale.  
Il modo più semplice e divertente  
di sviluppare il pensiero  
computazionale è attraverso la  
coding  
programmazione (  
contesto di gioco.  
) in un  
© Salvatore Mancarella  
Coding  
© Salvatore Mancarella  
Cosa è il coding?  
´ Per coding si intende, in informatica, la stesura di un  
programma, cioè di una di quelle sequenze di  
istruzioni che, eseguite da un calcolatore, danno  
vita alla maggior parte delle meraviglie digitali che  
usiamo quotidianamente  
´ Il coding fornisce una forma mentis che permetterà  
loro di affrontare problemi complessi  
´ Insomma imparare a programmare apre le mente  
© Salvatore Mancarella  
© Salvatore Mancarella  
© Salvatore Mancarella  
© Salvatore Mancarella  
© Salvatore Mancarella  
© Salvatore Mancarella  
© Salvatore Mancarella  
Step pensiero computazionale  
© Salvatore Mancarella  
Scomposizione  
Problema 1  
Problema 2  
© Salvatore Mancarella  
pensiero  
computazionale  
Verifica costante  
Trovare la soluzione  
Scomporre il problema in  
sottoproblemi  
Analizzare il problema e  
determinare gli obiettivi  
© Salvatore Mancarella  
© Salvatore Mancarella  
Algoritmi  
© Salvatore Mancarella  
Algoritmi  
Ogni giorno siamo chiamati a risolvere dei problemi, per es:  
1. Decidere se riconciliarci con l’amico con cui abbiamo  
litigato;  
2. Calcolare l’area di un rettangolo, note la base e  
l’altezza;  
3. Stabilire quale squadra di calcio vincerà il campionato,  
ecc.  
Noi cercheremo in questa sede di esaminare soltanto i  
problemi del secondo tipo, poiché solo tali problemi sono  
risolvibili mediante algoritmi  
© Salvatore Mancarella  
Cos’è un Algoritmi  
© Salvatore Mancarella  
Cos’è un Algoritmi  
´E’ una sequenza  
finita di passi  
(istruzioni), che  
devono essere  
eseguiti secondo  
un ordine  
prefissato per  
individuare la  
soluzione  
© Salvatore Mancarella  
Algoritmi  
Quando dobbiamo risolvere un  
problema è necessario  
individuare:  
´ Chi lo risolve;  
´ Quali risorse sono necessarie;  
´ Qual è il risultato che si vuole  
ottenere  
© Salvatore Mancarella  
Algoritmi - Chi lo risolve  
Es. devo spostarmi da un luogo ad un altro in  
comodità e velocemente  
´ Chi risolve questo problema  
© Salvatore Mancarella  
Algoritmi - Quali risorse sono  
necessarie  
´ Il carburante  
´ Il conducente  
´ …..  
© Salvatore Mancarella  
Algoritmi - Qual è il risultato che  
si vuole ottenere  
´ Arrivare a destinazione nel minor tempo possibile  
e comodamente  
© Salvatore Mancarella  
Algoritmi  
E’ però necessario analizzare prima il problema  
e poi trovare una strategia per risolverlo.  
´ Mentre la macchina può essere utilizzata  
solo per spostarsi,  
´ il COMPUTER è in grado di risolvere problemi  
di natura diversa.  
© Salvatore Mancarella  
Cos’è il COMPUTER?  
E’ un sistema di elaborazione che trasforma le informazioni che  
riceve in ingresso nei risultati che vogliamo ottenere  
© Salvatore Mancarella  
Caratteristiche dell’algoritmo  
L’algoritmo deve essere:  
´ Finito: composto da un numero finito di  
passi  
´ Deterministico: a fronte degli stessi dati in  
input deve produrre gli stessi risultati  
´ Non ambiguo: i passi che lo compongono  
devono essere interpretati in modo univoco  
dall’esecutore  
´ Generale: deve fornire la soluzione per tutti i  
problemi appartenenti ad una certa classe  
© Salvatore Mancarella  
Componenti di un algoritmo  
´DATI: sono gli oggetti  
su cui dobbiamo  
operare  
´ISTRUZIONI: sono le  
attività che devono  
essere svolte  
© Salvatore Mancarella  
I dati  
´ Ad ogni dato è associato un nome che lo  
identifica in modo univoco (es. lato,  
codice, imposta, ecc).  
´ I dati possono essere classificati secondo  
il modo in cui interagiscono con  
l’elaboratore:  
´ Input (forniti dall’esterno, es. prezzo,  
quantità, aliquota)  
´ Output (comunicati all’esterno, es.  
totale fattura)  
´ Lavoro (dati di lavoro, es. IVA).  
© Salvatore Mancarella  
I dati  
A seconda degli oggetti che  
rappresentano, possono essere:  
´ Numerici  
´Interi (es: il numero di abitanti –  
1,2,3..)  
´Reali (es: la temperatura 27,5°  
28,6°)  
´ Alfanumerici o stringhe  
´Codice fiscale, indirizzo, ecc..  
© Salvatore Mancarella  
I dati  
In base alla possibilità di cambiare il  
valore durante l’esecuzione  
dell’algoritmo, distinguiamo:  
´ Costanti, il cui valore rimane  
immutato nel tempo (es.aliquota  
IVA);  
´ Variabili, il cui valore può  
cambiare nel tempo (es. prezzo di  
un prodotto)  
© Salvatore Mancarella  
Le istruzioni  
Le istruzioni Analizziamo i tre tipi di istruzioni  
fondamentali:  
´ Lettura: attraverso la quale si assegna ad  
una variabile un valore tramite  
digitazione sulla tastiera del PC;  
´ Scrittura: permette di visualizzare tramite  
video o supporto cartaceo, un  
messaggio o il valore di una variabile;  
´ Assegnazione: permette di attribuire un  
valore ad una variabile.  
´ Es: A=3; oppure A=B+3;  
© Salvatore Mancarella  
Fasi per creare un algoritmo  
© Salvatore Mancarella  
Approccio alla creazione di  
un algoritmo  
´ Approccio 1  
Fase 3  
Fase 1  
Fase 2  
Fase 4  
´ Approccio 2  
Fase 1  
Fase 2  
Fase 3  
Fase 4  
© Salvatore Mancarella  
Rappresentazione degli algoritmi  
´Diagramma a blocchi o di  
flusso o Flow-chart:è il metodo  
più usato e si basa sull’uso di  
simboli a cui corrispondono  
delle precise operazioni.  
´Pseudocodifica : utilizza un  
linguaggio speciale per  
descrivere le istruzioni da  
eseguire  
© Salvatore Mancarella  
Diagramma a blocchi  
© Salvatore Mancarella  
Diagrammi a blocchi  
´ Un particolare simbolo  
grafico detto blocco  
elementare è associato a  
ciascun tipo di istruzione  
elementare.  
´ I blocchi sono collegati fra  
loro tramite frecce che  
indicano il susseguirsi delle  
istruzioni.  
© Salvatore Mancarella  
Diagrammi a blocchi  
´ È un linguaggio formale di  
tipo grafico per  
rappresentare gli algoritmi.  
´ Attraverso il diagramma a  
blocchi (o flow chart ) si può  
indicare l’ordine di  
esecuzione delle istruzioni.  
© Salvatore Mancarella  
Diagrammi a blocchi  
´ Ogni diagramma inizia con:  
´ E termina con  
© Salvatore Mancarella  
Diagrammi a blocchi  
´ I blocchi elementari sono i seguenti  
INPUT  
OUTPUT  
© Salvatore Mancarella  
Diagrammi a blocchi  
Un diagramma a blocchi descrive  
un algoritmo se:  
´ ha un blocco iniziale e uno  
finale;  
´ è costituito da un numero finito  
di blocchi azione e/o blocchi  
lettura/scrittura e/o blocchi di  
controllo;  
´ ciascun blocco elementare  
soddisfa le condizioni di  
validità.  
© Salvatore Mancarella  
Diagrammi a blocchi  
Condizioni di validità:  
´ ciascun blocco azione,  
lettura/scrittura ha una sola  
freccia entrante e una sola  
freccia uscente;  
´ ciascun blocco di controllo  
ha una sola freccia entrante  
e due frecce uscenti;  
© Salvatore Mancarella  
Esercizio n°3 (Condizione)  
´ Descrivere l’algoritmo che dato due numeri determina il valore  
maggiore e disegnare il diagramma a blocchi.  
© Salvatore Mancarella  
1) Formulare il problema e  
definire gli obiettivi da  
raggiungere  
´ Definiamo gli obiettivi da raggiungere ponendoci le  
seguenti domande:  
´ Qual è il risultato che si vuole ottenere?  
´ Calcolare il valore maggiore dal confronto di due numeri.  
´ Quali risorse sono necessarie?  
´ Il valore dei due numeri.  
© Salvatore Mancarella  
2) Analizzare e identificare la  
soluzione  
´ Possiamo considerare il testo “dato due numeri” che  
identifica quali sono i dati noti, invece il testo  
determinare il valore maggiore” identifica quali sono  
i dati da calcolare per risolvere il problema.  
´ Quindi possiamo riepilogare quanto segue:  
´ individuare i dati di input cioè valori noti:  
´ il valore dei due numeri, dichiariamo le variabili A e B;  
´ individuare i dati da elaborare:  
´ determinare il valore maggiore, se il valore di A è maggiore  
di B, la condizione è vera allora stampiamo “il valore  
maggiore è A” altrimenti stampiamo “il valore maggiore è  
B”;  
´ individuare i dati di output cioè i risultati da ottenere:  
´ in questo caso stampiamo il messaggio indicando il valore  
maggiore;  
© Salvatore Mancarella  
3)Formulare e trovare la  
soluzione  
© Salvatore Mancarella  
Fase 1 - Individuare gli elementi  
necessari per risolvere il  
problema.  
´ Gli elementi sono rappresentati dai:  
´ dati di input - i due valori e dichiariamo le variabili A e B;  
´ dati di output - il messaggio da visualizzare per  
rappresentare quale dei due valori è il maggiore.  
© Salvatore Mancarella  
Fase 2 - Acquisire le informazioni  
per risolvere il problema.  
´ Chiediamo all’utente di inserire i due valori, cioè A e B.  
Fase 3 - Determinare la  
soluzione al problema  
´ se il valore di A è maggiore di B, la condizione è vera  
allora visualizziamo “il valore maggiore è A” altrimenti  
visualizziamo “il valore maggiore è B”;  
© Salvatore Mancarella  
Fase 4 - Comunicare i risultati  
della soluzione al problema  
´ I risultati sono comunicati dal messaggio che viene  
visualizzato nella condizione.  
© Salvatore Mancarella  
© Salvatore Mancarella  
© Salvatore Mancarella  
Esempio  
Es. di diagramma di flusso per il calcolo della somma di  
due numeri  
© Salvatore Mancarella  
Esempio di pseuodocodifica  
PROGRAMMA somma  
INIZIO  
LEGGI (num1, num2)  
somma num1+num2  
SCRIVI (somma)  
FINE  
© Salvatore Mancarella  
Esercitazione  
1. Descrivere l’algoritmo che elenca le operazioni  
necessarie per calcolare il perimetro e l’area di una di un  
quadrato letto la misura del lato.  
2. Descrivere l’algoritmo che calcoli la percentuale di  
sconto del valore di un determinato bene.  
3. Date la temperatura di tre stanze differenti calcolare la  
temperatura media.  
4. Dato il numero di abitanti di un Comune di due anni fa e  
la popolazione attuale. Calcolare se il comune ha avuto  
un aumento o una diminuzione della popolazione e la  
rispettiva percentuale.  
5. Descrivere l’algoritmo che calcoli il valore scontato se il  
prezzo è maggiore di 50 si applica il 5% di sconto,  
altrimenti il 2%.  
© Salvatore Mancarella  
Soluzione Es. n°1  
© Salvatore Mancarella  
Analisi del problema  
´ Descrivere l’algoritmo che calcoli il valore scontato se  
il prezzo è maggiore di 50 si applica il 5% di sconto,  
altrimenti il 2%.  
´ Input à Prezzo  
´ Output à Valore Scontato  
´ Calcolo à Lo sconto da applicare  
© Salvatore Mancarella  
Soluzione Es. n°3  
Inizio  
Inserire il prezzo  
Prezzo  
>50  
ValoreScontato =  
Prezzo -2%  
ValoreScontato =  
Prezzo - 5%  
Stampa il  
ValoreScontato  
Fine  
© Salvatore Mancarella  
Esercitazione  
Devi organizzare un viaggio con i tuoi amici, devi  
esaminare i costi, confrontando le spese del viaggio in  
autobus o in treno per raggiungere la meta. Sulla base  
dei calcoli effettuati, devi decidere qual è il mezzo di  
trasporto più conveniente  
© Salvatore Mancarella  
Analisi del problema  
´ Dati di input  
´ Numero dei partecipanti à NP  
´ Costo del treno per persona(andata e ritorno) à CTP  
´ Costo complessivo dell’autobus à CA  
´ Dati di output  
´ Scelta più conveniente tra treno e autobus  
© Salvatore Mancarella  
Soluzione del problema  
´ Dati di input  
1. Acquisire il numero dei partecipanti à NP  
2. Acquisire il costo del treno per persona à CTP  
3. Il costo complessivo dell’autobus à CA  
´ Dati di calcolo  
à
1. CAP  
Costo dell’autobus per persona = CA/NP  
´ Dati di output  
´ SE il CAP è minore di CTP  
´ la scelta è Autobus  
´ ALTRIMENTI  
´ la scelta è Treno  
© Salvatore Mancarella  
© Salvatore Mancarella  
Esercitazioni  
1. Dati due numeri A e B verificare se A è il quadrato di B  
2. Data una temperatura T, visualizzare se si tratta di una  
temperatura: “sotto lo zero”, “uguale a zero” o “sopra  
lo zero”. Visualizzare il messaggio in output.  
3. Date le dimensioni di due rettangoli calcolarne l’area  
e determinare quale dei due ha la superficie  
maggiore.  
4. Realizziamo un algoritmo per il calcolo del  
valore massimo fra tre numeri presi in input, ovvero il  
numero maggiore.  
© Salvatore Mancarella  
Soluzione 1  
Dati due numeri A e B verificare se A è il quadrato di B  
´ Prendiamo in input A e B utilizzando il  
parallelogramma.  
´ Dopo utilizzare il rombo per verificare se A è uguale al  
quadrato di B. Cioè poniamo come test: A==B*B.  
´ Se la condizione è vera visualizziamo semplicemente  
in output, utilizzando il parallelogramma, il messaggio  
A è il quadrato di B‘.  
´ Altrimenti se la condizione è falsa visualizziamo in  
output il messaggio: ‘A non è il quadrato di B‘.  
© Salvatore Mancarella  
© Salvatore Mancarella  
Soluzione n°2  
Data una temperatura T, visualizzare se si  
tratta di una temperatura: “sotto lo zero”,  
uguale a zero” o “sopra lo zero”.  
Visualizzare il messaggio in output.  
© Salvatore Mancarella  
Soluzione n°2  
´ Possibili soluzioni  
T<0 T=0 T>0  
© Salvatore Mancarella  
Soluzione n°2  
´ Possibili soluzioni  
T<0 T=0 T>0  
© Salvatore Mancarella  
Soluzione n°2  
© Salvatore Mancarella  
Soluzione n°3  
´ Date le dimensioni di due rettangoli calcolarne l’area e  
determinare quale dei due ha la superficie maggiore.  
´ Per risolvere questo algoritmo dobbiamo prendere in  
input i dati necessari per calcolare l’area dei due  
rettangoli.  
´ Quindi prendiamo in input:  
´ b1 – indica la base del primo rettangolo  
´ h1 – indica l’altezza del primo rettangolo  
´ b2 – indica la base del secondo rettangolo  
´ h2 – indica l’altezza del secondo rettangolo  
´ Dopo calcoliamo l’area dei due rettangoli utilizzando  
due variabili A1 e A2.  
© Salvatore Mancarella  
Soluzione n°3  
´ Infine confrontiamo le due aree così ottenute per  
vedere quale delle due è maggiore. Quindi se A1 è  
maggiore di A2 scriviamo che A1 è maggiore.  
Altrimenti non possiamo ancora dire che A2 è  
maggiore di A1 in quanto dobbiamo verificare se  
sono uguali.  
´ Ecco quindi il diagramma di flusso che rappresenta  
l’algoritmo proposto.  
´ Notate che abbiamo messo le 4 variabili b1, h1, b2 e  
h2 per comodità nello stesso input.  
´
© Salvatore Mancarella  
Soluzione n°3  
© Salvatore Mancarella  
Soluzone n°4  
Realizziamo un algoritmo per il  
calcolo del valore massimo fra tre  
numeri presi in input, ovvero il  
numero maggiore.  
© Salvatore Mancarella  
Soluzione n°4  
´ Innanzitutto prendiamo in input i tre numeri: A, B e C.  
´ Dopo effettuiamo il test A>B cioè ci chiediamo A è  
maggiore di B?  
´ Abbiamo allora due possibilità:  
1. Se il test è vero possiamo tralasciare B e confrontare A  
con C. Ci servirà dunque un altro rombo per effettuare il  
secondo test  
2. Se il test iniziale (A>B) è falso allora vuol dire che A è  
minore di B, quindi sicuramente A non sarà il maggiore,  
pertanto confronto B con C, in questo modo: B>C  
© Salvatore Mancarella  
© Salvatore Mancarella  
Gli operatori Logici  
´ In questa soluzione utilizziamo l’operatore || che sta  
per or, cioè la funzione logica O.  
´ In questa soluzione utilizziamo l’operatore && che sta  
per and, cioè la funzione logica E.  
© Salvatore Mancarella  
Soluzione con gli operatori  
logici  
´ L’algoritmo si può risolvere anche in un altro modo. Ad  
esempio utilizzando gli operatori logici.  
´ In questa soluzione utilizziamo l’operatore && che sta  
per and, cioè la funzione logica E.  
´ Poniamo come prima condizione che A sia maggiore  
di B e contemporaneamente che A sia maggiore di  
C. Dunque in questo modo: A>B && A>C.  
© Salvatore Mancarella  
Soluzione con gli operatori  
logici  
´ Se tale condizione è vera chiaramente A è il  
maggiore.  
´ Altrimenti se A>B && A>C è falsa, vuol dire che A non  
può essere il maggiore, perché chiaramente non è  
comunque maggiore di entrambi. Dunque possiamo  
escludere A dal prossimo confronto e valutare solo B e  
C.  
´ Quindi controlliamo solo se B è maggiore di C e se tale  
condizione è vera il massimo sarà B, altrimenti il  
massimo sarà C.  
© Salvatore Mancarella  
© Salvatore Mancarella  
Soluzione con una variabile  
di comodo  
´ Utilizziamo un variabile di comodo MAX dove  
memorizziamo il primo valore preso in input A.  
´ se B è maggiore di MAX sostituisco il valore, altrimenti  
non faccio nulla in quanto MAX è più grande.  
´ Dopo controllo se C è maggiore di MAX e se vero  
sostituisco il valore, altrimenti come prima vuol dire  
che MAX è il maggiore.  
© Salvatore Mancarella  
© Salvatore Mancarella  
© Salvatore Mancarella  
© Salvatore Mancarella  
Linguaggio di programmazione  
Python  
© Salvatore Mancarella  
Le applicazioni (Programmi)  
Anche i programmi sono interpretati attraverso un’architettura a strati,  
composta da tre moduli funzionali (sottosistemi) concettualmente  
indipendenti tra loro:  
Interfaccia Utente (IU) – Acquisisce i dati e i  
comandi immessi in input dall’utente, e  
restituisce in output i risultati  
dell’elaborazione.  
© Salvatore Mancarella  
Le applicazioni (Programmi)  
Anche i programmi sono interpretati attraverso un’architettura a strati,  
composta da tre moduli funzionali (sottosistemi) concettualmente indipendenti  
tra loro:  
Logica Applicativa (LA) – Implementa gli  
algoritmi specifici per l’elaborazione dei dati e  
delle informazioni alla base dell’applicazione.  
Gestione Dati (GD)– Si occupa della  
memorizzazione dei dati e ottimizza i metodi  
per recuperarli, in modo da rendere il più  
efficiente possibile il loro reperimento e  
utilizzo.  
© Salvatore Mancarella  
Le applicazioni (Programmi)  
Un programma è una sequenza finita di istruzioni che, eseguite da un  
calcolatore elettronico (secondo la logica definita dal programma stesso),  
produce un’elaborazione su dei dati in ingresso per arrivare a produrre dei dati  
in uscita, che sono appunto il risultato di questa elaborazione.  
OUTPUT  
INPUT  
DATI IN  
INGRESSO  
DATI IN  
USCITA  
PROGRAMMA  
Visione lato utente  
© Salvatore Mancarella  
Codice sorgente  
´ Quando si realizza un software, il programmatore detta le  
istruzioni al computer tramite la scrittura di un codice  
sorgente in un determinato linguaggio di programmazione.  
Compilatore  
Programma  
Sorgente  
Programma  
Eseg
Visione latosviluppatore  
© Salvatore Mancarella  
Codice sorgente  
´ Il codice sorgente però non è direttamente eseguibile  
dalla CPU (Central Processing Unit), è necessario “tradurlo”  
in linguaggio macchina, ossia un file binario contenente  
microistruzioni gestibili dal processore.  
´ Diverse architetture di processori prevedono linguaggi  
macchina differenti  
Compilatore  
Programma  
Sorgente  
Programma  
Eseg
Visione latosviluppatore  
© Salvatore Mancarella  
Tipi di linguaggio di  
programmazione  
´ Interpretato il programma sorgente può essere eseguito  
direttamente dal calcolatore (interpretati),  
´ Compilato deve essere tradotto da un apposito  
compilatore (compilati) in linguaggio macchina per poter  
essere eseguito, ovvero per poter essere trasformato in un  
programma eseguibile.  
Compilatore  
Programma  
Sorgente  
Programma  
Eseg
Visione latosviluppatore  
© Salvatore Mancarella  
Linguaggio compilato  
© Salvatore Mancarella  
Linguaggio interpretato  
© Salvatore Mancarella  
Componenti di un algoritmo  
´DATI: sono gli oggetti  
su cui dobbiamo  
operare  
´ISTRUZIONI: sono le  
attività che devono  
essere svolte  
© Salvatore Mancarella  
I dati  
´ Ad ogni dato è associato un nome che lo  
identifica in modo univoco (es. lato,  
codice, imposta, ecc).  
´ I dati possono essere classificati secondo  
il modo in cui interagiscono con  
l’elaboratore:  
´ Input (forniti dall’esterno, es. prezzo,  
quantità, aliquota)  
´ Output (comunicati all’esterno, es.  
totale fattura)  
´ Lavoro (dati di lavoro, es. IVA).  
© Salvatore Mancarella  
I dati  
A seconda degli oggetti che  
rappresentano, possono essere:  
´ Numerici  
´Interi (es: il numero di abitanti –  
1,2,3..)  
´Reali (es: la temperatura 27,5°  
28,6°)  
´ Alfanumerici o stringhe  
´Codice fiscale, indirizzo, ecc..  
© Salvatore Mancarella  
Tipologia di dati  
© Salvatore Mancarella  
Dichiarazione delle variabili  
´ Quando creiamo una nuova variabile la  
stiamo dichiarando e per dichiarare variabili in Python  
basta fissarne il nome, seguito da un valore. Ecco  
alcuni esempi:  
© Salvatore Mancarella  
Dichiarazione delle variabili  
´ Ricollegandoci sempre a "Python è dinamico", anche  
se una variabile nasce stringa non è detto che debba  
morire tale:  
´ Anche se Python lo permette non è detto che tu debba  
scambiare i tipi continuamente. Una variabile che si  
chiama "name" non ha alcun motivo per diventare un  
numero.  
© Salvatore Mancarella  
Dichiarazione delle variabili  
´ Vale la pena chiarire anche che Python considera come  
variabili tutti i nomi che nel programma non sono  
contenuti tra virgolette. Questo significa che il seguente  
esempio:  
´ si legge come stringa Liz assegnata alla variabile name.  
Questo codice invece significa tutt'altro e non è  
neanche valido:  
© Salvatore Mancarella  
Come scrivere una variabile  
´ Facciamo qualche esempio. In alcuni linguaggi di  
programmazione le variabili vengono scritte con la  
forma cosiddetta camel case:  
© Salvatore Mancarella  
Come scrivere una variabile  
´ in Python questa forma è da evitare perché non è nè  
comune nè accettata dalla community.  
´ La forma corretta invece è:  
Separa quindi con un underscore i nomi lunghi  
© Salvatore Mancarella  
Come scrivere una variabile  
´ Un'altra cosa da evitare è il maiuscolo (a parte per un  
caso particolare):  
´ Un altro errore comune ma comprensibile che molti  
principianti commettono è quello di non avere  
consistenza nello scrivere i nomi delle variabili.  
´ La variabili devono essere parlanti  
© Salvatore Mancarella  
Come scrivere una variabile  
´ Questi piccoli accorgimenti migliorano la leggibilità  
del codice e rendono ciò che scrivi familiare anche  
agli altri sviluppatori Python.  
´
© Salvatore Mancarella  
I commenti  
´ A questo punto ti starai chiedendo cosa sono tutti  
questi cancelletti # nel codice.  
´ Il simbolo # in Python è un commento, e serve per  
lasciare indicazioni nel codice, sia per gli altri  
sviluppatori, sia per noi stessi.  
´ I commenti vengono ignorati dal motore Python e  
quindi sono molto utili per annotare e spiegare il  
codice, eliminare temporaneamente istruzioni, e così  
via.  
´
© Salvatore Mancarella  
I commenti  
´ Ci sono due tipi di commento in Python,  
´ il commento a linea singola:  
´ ed il commento multilinea:  
© Salvatore Mancarella  
Le istruzioni  
Le istruzioni Analizziamo i tre tipi di istruzioni  
fondamentali:  
´ Lettura: attraverso la quale si assegna ad  
una variabile un valore tramite  
digitazione sulla tastiera del PC;  
´ Scrittura: permette di visualizzare tramite  
video o supporto cartaceo, un  
messaggio o il valore di una variabile;  
´ Assegnazione: permette di attribuire un  
valore ad una variabile.  
´ Es: A=3; oppure A=B+3;  
© Salvatore Mancarella  
Step pensiero computazionale  
© Salvatore Mancarella  
Scomposizione  
Problema 1  
Problema 2  
© Salvatore Mancarella  
pensiero  
computazionale  
Verifica costante  
Trovare la soluzione  
Scomporre il problema in  
sottoproblemi  
Analizzare il problema e  
determinare gli obiettivi  
© Salvatore Mancarella  
Fasi per implementare un  
algoritmo  
© Salvatore Mancarella  
Algoritmi  
© Salvatore Mancarella  
´ https://colab.research.google.com/  
© Salvatore Mancarella  
La sequenza  
© Salvatore Mancarella  
Esercitazione n°1  
´ Dati due valori determinare il valore più grande  
© Salvatore Mancarella  
Codice Python  
© Salvatore Mancarella  
© Salvatore Mancarella  
Esercitazione 2  
1. Descrivere l’algoritmo che elenca le operazioni  
necessarie per calcolare il perimetro e l’area di una di un  
quadrato letto la misura del lato.  
2. Descrivere l’algoritmo che calcoli la percentuale di  
sconto del valore di un determinato bene.  
3. Date la temperatura di tre stanze differenti calcolare la  
temperatura media.  
4. Dato il numero di abitanti di un Comune di due anni fa e  
la popolazione attuale. Calcolare se il comune ha avuto  
un aumento o una diminuzione della popolazione e la  
rispettiva percentuale.  
5. Descrivere l’algoritmo che calcoli il valore scontato se il  
prezzo è maggiore di 50 si applica il 5% di sconto,  
altrimenti il 2%.  
© Salvatore Mancarella  
Soluzione Es. n° 2.1  
© Salvatore Mancarella  
Analisi del problema  
´ Descrivere l’algoritmo che calcoli il valore scontato se  
il prezzo è maggiore di 50 si applica il 5% di sconto,  
altrimenti il 2%.  
´ Input à Prezzo  
´ Output à Valore Scontato  
´ Calcolo à Lo sconto da applicare  
© Salvatore Mancarella  
Soluzione Es. n°2.5  
Inizio  
Inserire il prezzo  
Prezzo  
>50  
ValoreScontato =  
Prezzo -2%  
ValoreScontato =  
Prezzo - 5%  
Stampa il  
ValoreScontato  
Fine  
© Salvatore Mancarella  
Soluzione Es. 2.5  
´ Codice Python  
© Salvatore Mancarella  
Esercitazione 3  
Devi organizzare un viaggio con i tuoi amici, devi  
esaminare i costi, confrontando le spese del viaggio in  
autobus o in treno per raggiungere la meta. Sulla base  
dei calcoli effettuati, devi decidere qual è il mezzo di  
trasporto più conveniente  
© Salvatore Mancarella  
Analisi del problema  
´ Dati di input  
´ Numero dei partecipanti à NP  
´ Costo del treno per persona(andata e ritorno) à CTP  
´ Costo complessivo dell’autobus à CA  
´ Dati di output  
´ Scelta più conveniente tra treno e autobus  
© Salvatore Mancarella  
Soluzione del problema  
´ Dati di input  
1. Acquisire il numero dei partecipanti à NP  
2. Acquisire il costo del treno per persona à CTP  
3. Il costo complessivo dell’autobus à CA  
´ Dati di calcolo  
à
1. CAP  
Costo dell’autobus per persona = CA/NP  
´ Dati di output  
´ SE il CAP è minore di CTP  
´ la scelta è Autobus  
´ ALTRIMENTI  
´ la scelta è Treno  
© Salvatore Mancarella  
© Salvatore Mancarella  
Esercitazioni n°3  
1. Dati due numeri A e B verificare se A è il quadrato di B  
2. Data una temperatura T, visualizzare se si tratta di una  
temperatura: “sotto lo zero”, “uguale a zero” o “sopra  
lo zero”. Visualizzare il messaggio in output.  
3. Date le dimensioni di due rettangoli calcolarne l’area  
e determinare quale dei due ha la superficie  
maggiore.  
4. Realizziamo un algoritmo per il calcolo del  
valore massimo fra tre numeri presi in input, ovvero il  
numero maggiore.  
© Salvatore Mancarella  
Soluzione 3.1  
Dati due numeri A e B verificare se A è il quadrato di B  
´ Prendiamo in input A e B utilizzando il  
parallelogramma.  
´ Dopo utilizzare il rombo per verificare se A è uguale al  
quadrato di B. Cioè poniamo come test: A==B*B.  
´ Se la condizione è vera visualizziamo semplicemente  
in output, utilizzando il parallelogramma, il messaggio  
A è il quadrato di B‘.  
´ Altrimenti se la condizione è falsa visualizziamo in  
output il messaggio: ‘A non è il quadrato di B‘.  
© Salvatore Mancarella  
© Salvatore Mancarella  
© Salvatore Mancarella  
Soluzione n°3.2  
Data una temperatura T, visualizzare se si  
tratta di una temperatura: “sotto lo zero”,  
uguale a zero” o “sopra lo zero”.  
Visualizzare il messaggio in output.  
© Salvatore Mancarella  
Soluzione n°3.2  
´ Possibili soluzioni  
T<0 T=0 T>0  
© Salvatore Mancarella  
Soluzione n°3.2  
´ Possibili soluzioni  
T<0 T=0 T>0  
© Salvatore Mancarella  
Soluzione n°3.2  
© Salvatore Mancarella  
Soluzione n°3.3  
´ Date le dimensioni di due rettangoli calcolarne l’area e  
determinare quale dei due ha la superficie maggiore.  
´ Per risolvere questo algoritmo dobbiamo prendere in  
input i dati necessari per calcolare l’area dei due  
rettangoli.  
´ Quindi prendiamo in input:  
´ b1 – indica la base del primo rettangolo  
´ h1 – indica l’altezza del primo rettangolo  
´ b2 – indica la base del secondo rettangolo  
´ h2 – indica l’altezza del secondo rettangolo  
´ Dopo calcoliamo l’area dei due rettangoli utilizzando  
due variabili A1 e A2.  
© Salvatore Mancarella  
Soluzione n°3.3  
´ Infine confrontiamo le due aree così ottenute per  
vedere quale delle due è maggiore. Quindi se A1 è  
maggiore di A2 scriviamo che A1 è maggiore.  
Altrimenti non possiamo ancora dire che A2 è  
maggiore di A1 in quanto dobbiamo verificare se  
sono uguali.  
´ Ecco quindi il diagramma di flusso che rappresenta  
l’algoritmo proposto.  
´ Notate che abbiamo messo le 4 variabili b1, h1, b2 e  
h2 per comodità nello stesso input.  
© Salvatore Mancarella  
Soluzione n°3.3  
© Salvatore Mancarella  
Soluzione n°3.4  
Realizziamo un algoritmo per il  
calcolo del valore massimo fra tre  
numeri presi in input, ovvero il  
numero maggiore.  
© Salvatore Mancarella  
Soluzione n°3.4  
´ Innanzitutto prendiamo in input i tre numeri: A, B e C.  
´ Dopo effettuiamo il test A>B cioè ci chiediamo A è  
maggiore di B?  
´ Abbiamo allora due possibilità:  
1. Se il test è vero possiamo tralasciare B e confrontare A  
con C. Ci servirà dunque un altro rombo per effettuare il  
secondo test  
2. Se il test iniziale (A>B) è falso allora vuol dire che A è  
minore di B, quindi sicuramente A non sarà il maggiore,  
pertanto confronto B con C, in questo modo: B>C  
© Salvatore Mancarella  
© Salvatore Mancarella  
Gli operatori Logici  
´ In questa soluzione utilizziamo l’operatore || che sta  
per or, cioè la funzione logica O.  
´ In questa soluzione utilizziamo l’operatore && che sta  
per and, cioè la funzione logica E.  
© Salvatore Mancarella  
Soluzione con gli operatori  
logici  
´ L’algoritmo si può risolvere anche in un altro modo. Ad  
esempio utilizzando gli operatori logici.  
´ In questa soluzione utilizziamo l’operatore && che sta  
per and, cioè la funzione logica E.  
´ Poniamo come prima condizione che A sia maggiore  
di B e contemporaneamente che A sia maggiore di  
C. Dunque in questo modo: A>B && A>C.  
© Salvatore Mancarella  
Soluzione con gli operatori  
logici  
´ Se tale condizione è vera chiaramente A è il  
maggiore.  
´ Altrimenti se A>B && A>C è falsa, vuol dire che A non  
può essere il maggiore, perché chiaramente non è  
comunque maggiore di entrambi. Dunque possiamo  
escludere A dal prossimo confronto e valutare solo B e  
C.  
´ Quindi controlliamo solo se B è maggiore di C e se tale  
condizione è vera il massimo sarà B, altrimenti il  
massimo sarà C.  
© Salvatore Mancarella  
© Salvatore Mancarella  
Soluzione con una variabile  
di comodo  
´ Utilizziamo un variabile di comodo MAX dove  
memorizziamo il primo valore preso in input A.  
´ se B è maggiore di MAX sostituisco il valore, altrimenti  
non faccio nulla in quanto MAX è più grande.  
´ Dopo controllo se C è maggiore di MAX e se vero  
sostituisco il valore, altrimenti come prima vuol dire  
che MAX è il maggiore.  
© Salvatore Mancarella  
© Salvatore Mancarella  
© Salvatore Mancarella  
© Salvatore Mancarella  
Soluzione in Python  
© Salvatore Mancarella  
Iterazione  
© Salvatore Mancarella  
Iterazione  
´ In un algoritmo può capitare che  
alcune operazioni debbano essere  
eseguita più di una volta, cioè ripetute  
in modo identico  
´ La ripetizione di un insieme di  
istruzioni prende il nome di  
iterazione  
´ Il gruppo di istruzioni ripetute  
prende il nome di corpo del ciclo  
© Salvatore Mancarella  
Componenti essenziali  
´ Ad ogni iterazione dobbiamo sempre impostare le  
seguenti indicazioni:  
1. Condizione iniziale, il valore da cui partire  
2. Condizione finale, il valore da cui uscire  
3. Incremento, quanto deve incremento  
© Salvatore Mancarella  
Componenti essenziali  
Condizione iniziale  
Condizione finale  
Incremento  
© Salvatore Mancarella  
Istruzioni iterazione  
Iterazione può essere tradotto in un linguaggio di  
programmazione può essere:  
´ While  
´ For  
Classificazione dell’Iterazione  
´ Iterazione Definita  
´ quando il numero di iterazione è noto  
´ Iterazione Indefinita  
´ quando il numero di iterazione è sconosciuto  
© Salvatore Mancarella  
Esempi  
© Salvatore Mancarella  
Classificazione dell’Iterazione  
Possiamo osservare che i due scemi sono identici,  
cambia solo il controllo/test di uscita dal ciclo:  
´ Iterazione definita  
´ Il controllo/test viene fatto sul numero del contatore  
´ Iterazione Indefinita  
´ Il controllo/test viene fatto nel ciclo ed è una  
qualunque condizione logica.  
© Salvatore Mancarella  
Esercitazioni n°4  
(iterazione definita)  
1. Realizziamo un algoritmo per il calcolo del  
valore massimo fra tre numeri presi in input, ovvero il  
numero maggiore.  
2. Calcolare la somma, il prodotto e la media di 10 valori  
inseriti dall’utente.  
3. Calcolare il valore minimo di 10 valori inseriti  
dall’utente.  
4. Realizza un programma che determini la potenza  
intera di un numero utilizzando soltanto l’operatore  
prodotto. Il valore della potenza (l’esponente) e il  
numero (la base) sono immessi dall’utente. Utilizzare il  
ciclo while  
© Salvatore Mancarella  
Soluzione Es. n°4.1  
La variabile i serve per  
contare il numero di volte  
che le istruzioni devono  
essere ripetute  
Inizio  
i=1  
V
F
i<=3  
Inserire il valore  
V
F
valore>max  
max=valore  
i=i+1  
Stampa il valore  
max  
Fine  
© Salvatore Mancarella  
Esercitazione trovare il max  
© Salvatore Mancarella  
Soluzione in Python  
© Salvatore Mancarella  
Soluzione n°4.2  
© Salvatore Mancarella  
Esercitazioni n°4  
(iterazione indefinita)  
5. Un utente vuole acquistare una machina, ha come  
budget a disposizione 800. Il programma deve  
segnalare un messaggio se l’utente può permettersi di  
fare l’acquisto.  
6. Calcolare la somma, il prodotto e la media di n valori  
immessi dall’utente, dove non si conosce in partenza il  
numero preciso.  
7. Si vuole costruire un gazebo dopo aver inserito il budget  
di spesa massima, si determina il totale del preventivo  
inserendo il prezzo dei vari componenti, inviando un  
messaggio appena si supera il Budget a disposizione.  
8. Si riceve come dato d'ingresso una sequenza di numeri  
terminante per 0, i numeri sono al massimo 100, non è  
conosciuta a priori la lunghezza della sequenza. Visualizza  
il valore del numero maggiore e di quello minore  
© Salvatore Mancarella  
Soluzione n°4.5(For)  
(iterazione indefinita)  
Condizione iniziale  
Condizione finale  
Incremento à con  
l’istruzione for  
automaticamente  
incrementa di 1  
© Salvatore Mancarella  
Soluzione n°4.5 (While)  
(iterazione indefinita)  
Condizione iniziale  
Condizione finale  
Incremento  
© Salvatore Mancarella  
Soluzione n°4.6  
© Salvatore Mancarella  
Soluzione m°4.7  
© Salvatore Mancarella  
Esercitazioni n°4  
(riepilogo iterazione e sequenza)  
9. Sviluppare l’algoritmo che calcoli la successione di Fibonacci  
10. Dati in input i valori di due variabili a e b, vogliamo scambiarne i valori,  
così che al termine a contiene il valore di b e b quello di a.  
11. Si vuole costruire vari bilocali, ognuno è composto da una stanza da  
letto un bagno e una cucina, inserire le rispettive misure e calcolare  
l’area totale, considerando che dalle regole urbanistiche è ammesso  
la realizzazione al massimo di 60mq, non è conosciuta a priori il  
numero di tentativi che l’utente deve fare. Il programma termina  
quando l’area totale è maggior a quella ammessa, visualizzando il  
relativo messaggio di non realizzabilità altrimenti conferma  
l’ammissibilità alla realizzazione.  
12. Calcolare la somma, il prodotto e la media di n valori immessi  
dall’utente, dove non si conosce in partenza il numero preciso,  
bisogna considerare solo i numeri pari.  
13. Si riceve come dato d'ingresso una sequenza di numeri terminante  
per 0, i numeri sono al massimo 100, non è conosciuta a priori la  
lunghezza della sequenza. Visualizza il valore del numero maggiore e  
di quello minore dei valori multipli di 3.  
14. Si riceve come dato d'ingresso una sequenza di numeri terminante  
per 0, i numeri sono al massimo 100, non è conosciuta a priori la  
lunghezza della sequenza. Visualizza il valore del numero maggiore e  
di quello minore dei valori pari.  
© Salvatore Mancarella  
Soluzione n°4.9  
´ Ricordiamo che la successione di Fibonacci è una  
successione di numeri interi positivi in cui ciascun  
numero a cominciare dal terzo è la somma dei due  
precedenti eccetto i primi due che sono 1, 1  
© Salvatore Mancarella  
Soluzione n°4.9  
© Salvatore Mancarella  
Soluzione 4.10  
Dati in input i valori di due variabili a e b, vogliamo  
scambiarne i valori, così che al termine a contiene il valore  
di b e b quello di a.  
´ Ecco dunque un esempio:  
´ Se a=5 e b=4 vogliamo che al termine del nostro algoritmo  
sia a=4 e b=5.  
´ Ragioniamo quindi su una possibile soluzione! Sicuramente,  
per scambiare questi valori, una possibile soluzione può  
essere quella di utilizzare una variabile temporanea di  
appoggio.  
´ Chiamo questa terza variabile temp, e procedo in questo  
modo:  
© Salvatore Mancarella  
Soluzione n°10  
© Salvatore Mancarella  
Soluzione alternativa  
(assegnazione multipla)  
´ Introduciamo perciò il concetto di assegnazione multipla.  
´ Con l’assegnazione multipla in python si possono  
assegnare più variabili alla volta.  
´ Quindi ad esempio:  
´ a=b=5  
´ In questo caso sia a che b assumono il valore di 5.  
´ Oppure un’altra assegnazione che posso fare è questa:  
´ a, b= 5, 4  
´ In questo modo assegno ad a il valore 5 e a b il valore 4.  
© Salvatore Mancarella  
Soluzione alternativa  
(assegnazione multipla)  
Riprendiamo gli Esercizio n°4.9 e 4.10 e proviamo a  
trovare la soluzìone utilizzando il concetto di  
assegnazione multipla.  
´ Soluzione 4.9  
© Salvatore Mancarella  
Soluzione n°4.10  
© Salvatore Mancarella  
Soluzione n°4.12  
´ Esercitazione n°4.12  
© Salvatore Mancarella  
Soluzione n°4.13  
´ Esercitazione n°4.13  
© Salvatore Mancarella  
I vettori  
© Salvatore Mancarella  
Differenza tra una variabile  
e un vettore  
Vettore «vet»  
Posizione 0  
2
vet[0]  
vet[1]  
Variabile  
Int a  
Posizione 1  
4
6
9
2
Posizione 2  
Posizione 3  
vet[2]  
vet[3]  
© Salvatore Mancarella  
© Salvatore Mancarella  
Dichiarazine di un vettore in  
Python  
´ Per inizializzare un vettore nel codice  
Inserimento i  
valori nel  
vettore  
visualizza i  
valori nel  
vettore  
´ I dati sono inseriti dall’utente  
Inserimento i  
valori nel  
vettore  
visualizza i  
valori nel  
vettore  
© Salvatore Mancarella  
Esercitazioni n°5  
(vettori)  
1.  
Realizziamo un algoritmo per il calcolo del valore massimo fra tre numeri presi in input,  
ovvero il numero maggiore.  
2.  
Popolare una lista con 20 numeri a piacere. Dopo l’inserimento visualizzare tutti gli  
elementi della lista con il relativo indice. Dopo trovare il valore massimo tra quelli inseriti  
nella lista.  
3.  
4.  
5.  
L’utente dopo aver inserito 10 valori in una lista. Calcolare la somma, il prodotto e la  
media di 10 valori inseriti dall’utente.  
L’utente dopo aver inserito 10 valori in una lista. Calcolare il valore minimo di 10 valori  
inseriti dall’utente.  
L’utente dopo aver inserito 5 valori in un vettore. Visualizzare solo i numeri pari e la loro  
somma e il loro prodotto.  
6.  
7.  
L’utente dopo inserito 5 valori in un vettore. Deve eliminare solo i numeri pari.  
In una lista, di nome casuali, inserire n numeri interi random tra 1 e 30. Dopo l’inserimento  
visualizzare  
gli  
elementi  
della  
lista  
con  
gli  
indici.  
Poi contare e visualizzare quanti numeri non multipli di 3 sono stati inseriti nella lista.  
8.  
9.  
Realizza un programma che determini la potenza intera di un numero utilizzando soltanto  
l’operatore prodotto. Il valore della potenza (l’esponente) e il numero (la base) sono  
immessi dall’utente. Utilizzare il ciclo while  
L’utente dopo inserito 5 valori in un vettore. Deve eliminare solo i numeri dispari  
© Salvatore Mancarella  
Soluzione n°5.1  
´ Con dati inseriti dall’utente  
© Salvatore Mancarella  
Soluzione n°5.1  
´ Con dati inseriti nel codice  
Codice  
Risultato  
© Salvatore Mancarella  
Soluzione n°5.5  
© Salvatore Mancarella  
Soluzione n°5.6  
L’utente dopo inserito 5 valori in un vettore. Deve eliminare  
solo i numeri pari.  
´ Per eliminare gli elementi occorre partire dalla coda della  
lista, pertanto invertiamo l’intervallo del range in modo  
da considerare gli elementi che vanno da n-1 a 0.  
´ Non possiamo iniziare dall’inizio perché, nel momento in  
cui elimino il primo elemento, in automatico il secondo  
elemento passa in prima posizione al termine della prima  
iterazione. Quindi alla seconda iterazione avremo un  
elemento in meno e si avrà l’errore ‘out of range’.  
´ Dobbiamo personalizzare la funzione range  
© Salvatore Mancarella  
Soluzione n°5.6  
´ Come personalizzare la funzione range  
´ Per eliminare un valore nel vettore utilizziamo la  
funzione remove  
© Salvatore Mancarella  
Soluzione n°5.6  
´ Il codice Python  
© Salvatore Mancarella