Imparare il linguaggio di programmazione Python
In questo articolo sono riportati tutti i link relativi alle differenti lezioni utili per imparare il linguaggio di programmazione Python presenti in questo sito.
In questo articolo sono riportati tutti i link relativi alle differenti lezioni utili per imparare il linguaggio di programmazione Python presenti in questo sito.
In questo articolo sono riportati tutti i link relativi alle differenti lezioni utili per imparare il C++ presenti in questo sito.
In questo articolo sono riportati tutti i link relativi alle differenti lezioni utili per imparare i linguaggi di programmazione WEB presenti in questo sito.
Dispensa: Linguaggi di programmazione WEB
Cheatsheet: CSS
Obiettivo: Sono riportati in seguito una serie di esercizi utili per testare le proprie conoscenze nell’ambito dei linguaggi di programmazione strutturata relativamente all’utilizzo dei blocchi condizionali.
Gli esercizi, a complessità crescente, possono essere risolti utilizzando blocchi condizionali, blocchi condizionali nidificati e blocchi condizionali che prevedono l’utilizzo della logica booleana.
Per la risoluzione degli esercizi si suggerisce l’utilizzo del compilatore online:
https://www.onlinegdb.com/online_c++_compiler
ESERCIZI CON SELEZIONE SEMPLICE – IF ELSE
1) Realizzare un programma che permetta di inserire due numeri interi e determini il numero maggiore.
2) Realizzare un programma che permetta di inserire un numero e determinare il suo valore assoluto. (Un numero negativo deve diventare positivo, un numero positivo deve restare positivo).
3) Realizzare un programma che permetta di inserire l’età di un utente e determini se l’utente è maggiorenne oppure no.
4) Realizzare un programma che permetta di inserire il valore di un carattere e determini se il valore inserito è una vocale.
5) Realizzare un programma che permetta di inserire i coefficienti a, b, c di un’equazione di secondo grado e ne calcoli, se possibile, le soluzioni.
6) Realizzare un programma che permetta di inserire due differenti orari espressi nella forma ore, minuti e secondi (CONSIGLIO: utilizzare tre differenti variabili, una per le ore, una per i minuti, ed una per i secondi) e riporti quale dei due orari viene prima.
7) Realizzare un programma che permetta di determinare tra due differenti macchine quale delle due ha una velocità media maggiore date le seguenti informazioni: lo spazio percorso dalla macchina A, il tempo impiegato dalla macchina A a percorrere lo spazio, lo spazio percorso dalla macchina B, il tempo impiegato dalla macchina B a percorre lo spazio (CONSIGLIO: determinare le due velocità medie e poi confrontarle).
8) Realizzare un programma che permetta di inserire un numero intero e che determini se il numero inserito è positivo, negativo oppure zero.
ESERCIZI CON SELEZIONE NIDIFICATA
9) Realizzare un programma che permetta di inserire tre numeri interi e determini se questi numeri possano rappresentare le lunghezze dei lati di un triangolo. Ricorda: affinché un triangolo possa essere tale, la somma di ogni coppia lati deve essere maggiore dell’altro.
10) Realizzare un programma che legga tre valori rappresentanti le lunghezze dei lati di un triangolo e riporti se il triangolo è scaleno, isoscele o equilatero.
11) Realizzare un programma che permetta di inserire tre numeri interi e determini il valore maggiore.
Video Flowchart
Video Codifica Python
12) Realizzare un programma che permetta di inserire tre numeri interi e determini il valore minore.
13) Realizzare un programma che permetta di inserire tre numeri interi (i.e., A, B, e C) e determini se B è compreso tra A e C.
14) Realizzare un programma che permetta di applicare gli sconti applicati da un negozio. Nello specifico, se il prezzo degli acquisti è minore di 50€ il negozio effettuo lo sconto del 10%. Se il prezzo degli acquisti è maggiore di 50€ e minore di 100€, il negozio effettua lo sconto del 20%. Se il prezzo degli acquisti è maggiore di 100€, il negozio effettua lo sconto del 30%. Il programma deve chiedere all’utente di inserire il prezzo relativo ai propri acquisti e mostri a schermo lo sconto ed il prezzo finale da pagare.
| Spesa Totale | Sconto Applicato |
| totale<50 | 10% |
| 50<=totale<=100 | 20% |
| totale>100 | 30% |
15) Gli abbonamenti della metropolitana di Milano possono essere settimanali (S), mensili (M), o annuali (A) e valgono per la sola zona centrale (tipo 1), per la sola zona periferica (tipo 2) o per entrambe le zone (tipo 3). I costi sono quelli riportati nella seguente tabella. Realizzare un algoritmo che calcola il costo dell’abbonamento a partire dalla durata e dal tipo.
| Tipo/Zona | Settimanale | Mensile | Annuale |
| 1 | 10 Euro | 30 Euro | 250 Euro |
| 2 | 5 Euro | 20 Euro | 150 Euro |
| 3 | 15 Euro | 40 Euro | 300 Euro |
16) Realizzare un programma per determinare le tasse pagate da un lavoratore sulla base delle aliquote IRPEF 2022.
Nello specifico la percentuale di tasse viene determinata in funzione del reddito percepito come riportato nella seguente tabella.
| Reddito imponibile | Aliquota | Imposta dovuta |
| redditi fino a 15.000 euro | 23% | 23% sull’intero importo |
| da 15.001 fino a 28.000 euro | 25% | 3.450 euro + 25% sul reddito che supera i 15.000 euro fino a 28.000 euro |
| da 28.001 fino a 50.000 euro | 35% | 6.700 euro + 35% sul reddito che supera i 28.000 euro fino a 50.000 euro |
| oltre 50.001 euro | 43% | 14.400 euro + 43% sul reddito che supera i 50.000 euro |
VIDEO:
Obiettivo: Sono riportati in seguito una serie di esercizi utili per testare le proprie conoscenze nell’ambito dei linguaggi di programmazione strutturata. Tutti gli esercizi sono risolvibili semplicemente utilizzando istruzioni sequenziali senza l’utilizzo di blocchi condizionali o cicli.
Per la risoluzione degli esercizi si suggerisce l’utilizzo del compilatore online:
https://www.onlinegdb.com/online_python_compiler
1) Realizzare un programma per il calcolo del perimetro e dell’area di un rettangolo dato il valore del lato e dell’altezza.
Video Flowchart
2) Realizzare un programma per il calcolo del perimetro e dell’area di un quadrato dato il valore del lato.
3) Realizzare un programma per il calcolo del perimetro e dell’area di un trapezio isoscele dato il valore della base maggiore, base minore, altezza e lato obliquo.
4) Realizzare un programma per il calcolo della circonferenza e dell’area di un cerchio dato il valore del raggio. (ATTENZIONE: alla gestione del PiGreco: import math, math.pi).
5) Realizzare un programma per determinare la velocità media di una automobile dato lo spazio percorso ed il tempo impiegato
6) Realizzare un programma che permetta a un negozio di calcolare automaticamente il prezzo di vendita di un prodotto, utilizzando come input: il prezzo iniziale (senza sconto) la percentuale di sconto da applicare
7) Realizzare un programma che acquisisca tre numeri e calcoli la loro media aritmetica.
8) Realizzare un programma che, dato un numero di secondi, calcoli a quante ore, minuti e secondi corrispondono.
9) Realizzare un programma che calcoli il volume e la superficie totale di un parallelepipedo, date lunghezza, larghezza e altezza.
10) Realizzare un programma che calcoli il volume e la superficie di un cilindro, dati il raggio della base e l’altezza.
Video: risoluzione di alcuni esercizi
Obiettivo: Effettuare una semplice elaborazione di una immagine in scilab con l’obiettivo di aumentare o diminuire la luminosità di una foto.
Teoria Rappresentazione di una immagine:
Un’immagine in scala di grigi a 8 bit rappresenta ogni pixel con un singolo valore che descrive la sua luminosità. Questi valori possono variare da 0 (completamente nero) a 255 (completamente bianco), con 256 livelli intermedi che rappresentano diverse sfumature di grigio. Ogni pixel dell’immagine è associato a una matrice bidimensionale, dove ogni elemento della matrice contiene un valore di luminosità che definisce il tono di grigio di quel pixel. Nel contesto delle immagini a 8 bit, un’immagine in scala di grigi è generalmente memorizzata come una matrice di interi compresi tra 0 e 255. La rappresentazione in scala di grigi è particolarmente utile per applicazioni che richiedono analisi di luminosità o contrasto, come nel caso della visione artificiale, della fotografia in bianco e nero e nell’elaborazione delle immagini mediche.

Funzioni non lineari per modificare la luminosità:
Oltre alle funzioni iperboliche, altre funzioni non lineari come i logaritmi e le funzioni polinomiali sono utilizzate per modificare la luminosità dei pixel in modo non uniforme. Queste funzioni consentono di alterare l’intensità dei pixel in modo che alcune aree dell’immagine vengano più schiarite o scurite rispetto ad altre, permettendo così di applicare effetti visivi complessi.
Funzione Logaritmica:
Una delle funzioni più comuni per manipolare la luminosità in modo non lineare è la funzione logaritmica. La funzione logaritmica è utile per schiarire le aree scure dell’immagine senza modificare troppo le aree già chiare. La formula logaritmica applicata ai valori dei pixel può essere espressa come:
h(x) = 255*log(x+1)/log(255)
Questa funzione ha l’effetto di aumentare la luminosità nelle aree scure dell’immagine, rendendo più visibili i dettagli nelle ombre. Tuttavia, non ha un impatto significativo sulle aree già luminose, poiché il logaritmo cresce più lentamente man mano che x x aumenta. È particolarmente utile quando si desidera “illuminare” le ombre senza sovraesporre le luci.

Funzione Polinomiale:
Le funzioni polinomiali sono un’altra classe di funzioni non lineari utilizzate per modificare la luminosità. Una funzione polinomiale di grado nn applicata ai valori dei pixel può essere scritta come:
f(x) = 255*x^2/255^2
Questa funzione ha l’effetto di diminuire la luminosità nelle aree chiare dell’immagine.

CONFRONTO TRA LE FUNZIONI:
Per comprendere al meglio l’effetto di queste funzioni sulle immagini vengono in seguito riproposti i differenti studi di funzione confrontati con l’equalizzazione della retta bisettrice del primo e del terzo quadrante

Codice SCILAB:
Il codice SCILAB presentato, si occupa di caricare un’immagine in formato .dat, applicare una trasformazione logaritmica per alterarne la luminosità e quindi visualizzare sia l’immagine originale che quella elaborata. Il codice è caratterizzato da differenti fasi:
.dat.In sostanza, l’immagine viene letta e poi trasformata utilizzando una formula logaritmica per migliorare la visibilità delle aree scure, per poi visualizzare entrambe le immagini.
FILE immagine:
https://www.arduinofacile.it/wp-content/uploads/2025/02/immagine.dat_.zip
Obiettivo: Determinare gli zeri di una funzione utilizzando il metodo di bisezione e sfruttando il software di calcolo numerico Scilab.
Il metodo di bisezione:
Il metodo di bisezione è un metodo numerico iterativo che serve per trovare una radice (zero) di una funzione continua su un intervallo [a, b], a condizione che la funzione cambi segno su quell’intervallo:
f(a)*f(b) < 0
Questo significa che la funzione passa da negativa a positiva (o viceversa), quindi c’è almeno uno zero in mezzo (per il teorema degli zeri di Bolzano).
Il funzionamento del metodo di bisezione:

Codice:
Un esempio del metodo di bisezione viene effettuato utilizzando il seguente codice Scilab il quale ha l’obiettivo di determinare gli zeri della funzione:
y = cos(x) – x
Esercizi:
Graficare le seguenti funzioni utilizzando il software di calcolo numerico Scilab:
Obiettivo: Determinare il valore di un integrale definito utilizzando il metodo dei rettangoli e sfruttando il software di calcolo numerico Scilab.
Il metodo dei rettangoli:
Il metodo dei rettangoli, o somme di Riemann, è un approccio numerico per approssimare l’integrale definito di una funzione su un intervallo [a, b]. È uno dei metodi più semplici per comprendere l’integrazione come somma di aree.
L’idea alla base di questo approccio è quella di suddividere l’intervallo [a,b] in n sotto-intervalli di ampiezza costante h=(b−a)/n. Su ciascun sottointervallo, si costruisce un rettangolo la cui altezza dipende dal valore della funzione in un punto scelto del sottointervallo.

Codice:
Un esempio del metodo dei rettangoli viene effettuato utilizzando il seguente codice Scilab il quale ha l’obiettivo di determinare il valore dell’integrale definito nell’intervallo [0, 2] della funzione
y = x^2
Esercizi:
Graficare le seguenti funzioni utilizzando il software di calcolo numerico Scilab:
Obiettivo: Analizzare alcune semplici funzioni elementari utilizzando il software di calcolo numerico Scilab.
Principi di calcolo numerico
Quando a scuola si studiano funzioni come sin(x), cos(x), 3x, etc… si pensa alle funzione come ad un oggetto continuo.
Nel immaginario comune, esistono un’infinità di valori tra due numeri, mentalmente è possibile “zoomare” in modo arbitrario la funzione, e questa avrà sempre un valore.
E’ importante considerare che un software di calcolo numerico come Scilab non può fare questo.
Nel dettaglio, Scilab, invece di “conoscere” tutta la curva, fa una cosa molto più semplice e concreta:
Nel codice presentemente riportato il software di calcolo numeri ha:

Un secondo metodo utile per graficare le funzioni, sicuramente meno intuitivo, è quello di utilizzare un ciclo for per elaborare un punto alla volta. Dal punto di vista pratico questo approccio è sicuramente molto meno intuitivo d’altro canto è sicuramente utile per rendere visibile cosa fa Scilab internamente, cioè valutare la funzione punto per punto.
Esercizi:
Graficare le seguenti funzioni utilizzando il software di calcolo numerico Scilab:
Arduino è collegabile al PC tramite un cavo USB. L’IDE (Integrated Development Environment) è l’ambiente in cui si scrive e si carica il codice sulla scheda Arduino (scaricabile dal sito ufficiale di Arduino (https://www.arduino.cc/). E’ possibile anche usare l’Arduino Web Editor per programmare online, anch’esso disponibile nel sito ufficiale di Arduino.
Un programma Arduino è chiamato sketch e usa un linguaggio simile a C/C++. Ogni sketch ha due funzioni fondamentali (spiegate nel dettaglio qui)
[crayon-6ad005a9c30ec240553476/]
Ogni funzione e in generale ogni blocco di codice, viene racchiuso tra parentesi graffe { e }. Il totale delle parentesi aperte { deve essere lo stesso di quelle chiuse }.
Ogni istruzione di programma termina con un punto e virgola ;
E’ possibile inserire dei commenti nel codice, utilizzando la doppia barra // per commentare su una linea e barra asterisco (e asterisco barra) /* … */ per commenti su più linee.
Nella funzione setup(), vengono tipicamente configurati i pin. La funzione da usare è pinMode. Ad esempio:
[crayon-6ad005a9c30fb235595292/]
[crayon-6ad005a9c30fe446068616/]
Altre funzioni importanti e ricorrenti sono:
Esistono molte altre funzioni, che vengono illustrate con gli esempi presenti nel sito.
Per altre funzioni, si rimanda ai tutorial ufficiali di Arduino.