PROGRAMMAZIONE
Programmare = attività di risoluzione di un particolare problema in forma di testo, in modo tale
che questo possa essere interpretato e utilizzato dal calcolatore elettronico, risolvendo quel
determinato problema cambiando i dati
attività creativa i problemi potrebbero avere + soluzioni, ma bisogna trovare quella più
→ →
efficiente non ci sono soluzioni universali
→
Programmare è un’attività complessa scompongo il problema in sottoproblemi + semplici
→
Problem solving 4 passi
→
1. Comprendere il problema (See) individuare i dati importati, individuare precondizioni e
→
postcondizioni, variabili da calcolare ecc… devo semplificare il problema, ma
→
considerando tutte le variabili rilevanti
2. Elaborare un progetto (Plan) prima di scrivere un programma, devo capire come
→
affrontarlo metto in relazione dati e incognite, parto dal caso particolare per arrivare
→
al caso generale
3. Implementare il progetto (Do) realizzare il sistema da sperimentare
→
4. Controllare la soluzione (Check)
Soluzione formale = decomposizione in sottoproblemi e passi elementari, descrizione con
linguaggi formali
ALGORITMI trovo la soluzione al problema tramite un algoritmo
→
= procedimento che risolve un determinato problema attraverso un numero finito di passi
elementari (che possono essere anche ripetuti, se necessario iterazioni)
→
ho bisogno di
- dati: iniziali (istanza problema), intermedi, finali (soluzione)
- Passi elementari: azioni atomiche non scomponibili in azioni + semplici
- Processo: sequenza ordinata di passi
Proprietà algoritmo i singoli passi devono essere non ambigui, devono essere eseguibili e
→
devono avere una terminazione
Gli algoritmi possono essere tradotti in un linguaggio di programmazione per l’esecuzione su un
calcolatore
PROGRAMMAZIONE PYTHON
si tratta di un linguaggio interpretato, ovvero le istruzioni vengono eseguite da un interprete
→
(= programma che legge ed esegue singole istruzioni o script python)
Variabile = area di memoria associata ad un nome all’interno di un programma in nome della
→
variabile è usato nel programma per manipolare il valore memorizzato
i nomi delle variabili sono costituiti da
→ - Lettere maiuscole o minuscole, cifre o carattere underscore _
- Possono iniziare con una lettera o con _, ma non con una cifra
- Si distinguono lettere maiuscole e lettere minuscole
Per convenzione i nomi delle variabili sono a caratteri minuscoli utilizzo le lettere maiuscole
→
per indicare variabili costanti
Commenti = testo intelligibile all’uomo ed estraneo al programma sono ignorati dal
→
programma (aiutano il programmatore a comprendere cosa faccia il codice)
si indicano con il carattere # (i caratteri successivi a # fino al termine della riga sono ignorati)
→
Assegnazione l’assegnazione del valore di una variabile avviene usando l’operatore =
→
variabile = valore la riassegnazione di una variabile cambia il valore
→
Il secondo membro di un’assegnazione può anche essere un’espressione (che può comprendere
altre variabili, già definite)
a += 1 corrisponde alla lettura del valore corrente di a, al suo incremento di un’unità e alla
→
riassegnazione del nuovo valore
Per poter usare una variabile occorre che questa sia definita tramite l’assegnazione
→
- None: non-tipo
- bool: variabile booleana con valori True o False
- int: variabile intera
- float: variabile in virgola mobile
- str: stringa per rappresentare testi
Espressione combinazione valida di variabili, valori (letterali) e operatori che produce un valore
→
Le espressioni sono valutate dall’interprete che produce un risultato nella shell la valutazione
→
di un’espressione è immediata
Operatori sono classificati in unari (applicati ad un unico termine: -a), o binari (applicati a due termini: +)
→
Operatori algebrici: +, -, *, /, //(divisione intera), %(resto), ** (elevamento a potenza)
➢ Operatori di confronto: == (uguale), != (diverso), <, <=, >, >=
➢ l’esito di un confronto è booleano: True o False
↳
Operatori logici booleani: and, or, not
➢
Per la precedenza degli operatori si segue il criterio Pemdas per gli operatori algebrici
(parentesi, potenze, moltiplicazioni/divisioni, somma/sottrazione)
a parità di priorità si segue un ordine di applicazione degli operatori
→ - Associatività da sx a dx (la più utilizzata e generalmente preimpostata)
- Associatività da dx a sx
Statement unità di codice che esprime un’azione che deve essere eseguita
→
- Statement semplice statement completo in se stesso (es: espressioni, return)
→
- Statement composto costituito da altri statement (es: blocchi if-else)
→
Funzioni predefinite
print( ) scrive la rappresentazione testuale degli oggetti presenti tra gli argomenti
→
★ input( ) funzione per la lettura mi permette di scrivere sulla shell il valore
→ →
★ min( ), max( ) valore minimo e massimo degli argomenti
→
★ abs( ) restituisce il valore assoluto di un numero intero o in virgola mobile
→
★ type( ) funzione che determina il tipo di una variabile
→
★
DECISIONI
if esegue un blocco di istruzioni solo se una condizione è vera, dove la condizione è
→
un’espressione booleana
Il blocco di istruzioni all’interno dell’if è indentato, ovvero è stato aggiunto dello spazio prima
delle istruzioni
else esegue un blocco di istruzioni se la condizione nell’ultimo if non si è verificata
→
if e else sono allo stesso livello di indentazione
elif si usa per catene di if: appena una delle condizioni di test è vara, il relativo blocco di
→
istruzioni viene eseguito; se nessun test ha successo, viene eseguito l’else finale
Annidamento è possibile annidare un if all’interno di una delle due diramazioni di un altro if
→
(es: if a<b: le parole sono in ordine, else; se a>b: le parole sono invertite, altrimenti: le parole sono uguali)
CICLI
for permette di eseguire più volte un blocco di istruzioni (quando il numero di iterazioni è noto)
→
esecuzione per ogni elemento di una sequenza for nuova_variabile in sequenza (il valore
→
↳
di nuova_variabile è un diverso elemento ad ogni interazione)
Stringa = sequenza di caratteri
range = sequenza di interi range(start, end), dove start è incluso e end escluso
→
while intera fintanto che una condizione è verificata
→
while condizione: la condizione è valutata solo all’inizio di ogni iterazione
↳ istruzioni se la condizione è falsa fin dall'inizio, il ciclo viene saltato
→
Sentinella il valore sentinella non viene elaborato dal programma e tiene traccia del numero
→
di input elaborati
Continue fa saltare il ciclo all’iterazione successiva
→
break fa uscire dal ciclo immediatamente
→
TUPLA tipo predefinito del linguaggio Python corrispondente ad una sequenza di valori (non
→
può essere modificato) t1 = ‘a’, ‘b’, ‘c’
→
LISTA tipo predefinito del linguaggio Python corrispondente ad una sequenza di valori (può
→
essere modificato) l1 = [1, 2, 3]
→
- append(): aggiunta di singoli elementi in fondo alla lista l.append(n)
→
- extend(): aggiunta di una lista in fondo alla lista l.extend([n1, n2])
→
- pop(): eliminazione dell’elemento in fondo alla lista o dell’elemento con un determinato
indice l.pop() / l.pop(2) elimina l’elemento in posizione 2
→ →
- remove(): eliminazione di elementi specifici dalla lista l.remove(n1)
→
- sort(): ordina gli elementi (deve esistere un operatore di confronto < tra gli elementi e
devono essere tutti dati numerici) l.sort()
→
Tramite un ciclo for-on è possibile visitare i singoli elementi di una sequenza (sia per una tupla
che per una lista)
Accesso ai membri di una lista o tupla
tramite l’operatore [ ] seguito da uno o più indici
→
t = (1, 2, 3, 'prova')
for k in range(4):
print('membro' ,k, ' della tupla:' ,t[k]) t[k] permette di accedere all’elemento k-esimo della sequenza
→
len() dice la lunghezza della sequenza
→
Sottosequenza t[beg:end] beg = primo elemento incluso, end = primo elemento escluso
→ →
se l’indice iniziale non è indicato, si sottintende 0
→ se l’indice finale non è indicato, si sottintende la lunghezza della sequenza
→
Confronti di liste o tuple
si possono applicare gli operatori di confronto a due sequenze, il confronto segue l’ordine
→
lessicografico si confronta il primo elemento, se è vero si passa al successivo
→
-
Riassunto esame Fondamenti di informatica, Prof. Orio Nicola, libro consigliato Introduzione all'informatica per st…
-
Riassunto esame informatica, prof Console, libro consigliato Introduzione all'informatica, Console
-
Riassunto esame Introduzione all'informatica per l'editoria, prof. Maieli, testo consigliato Un po' di informatica …
-
Riassunto esame Fondamenti di informatica, Prof. Poletti Giorgio, libro consigliato Emotion Driven Design, Valentin…