Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione alla Programmazione in Python: Esercizi di Base, Appunti di Elementi di Informatica

Informatica generale terzo anno di Marketing, Comunicazione aziendale e mercati globali. Appunti Python e SQL Professor Mazzei

Tipologia: Appunti

2019/2020

Caricato il 07/06/2020

ChiaraMontrasio
ChiaraMontrasio 🇮🇹

3.7

(3)

2 documenti

1 / 37

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
Somma=somma + indice
Indice N
Somma=0
Indice=1
Mentre (indice N):
Algoritmo
Procedura, composta da una serie di passi, per risolvere un problema.
Algoritmi di tipo matematico
Descritti da un linguaggio formale
1. Semantica significato corretto
2. Sintassi sequenza di parole corrette
Il significato di un programma per il computer è letterale e privo di ambiguità, e può essere
completamente interpretato mediante l’analisi dei simboli e della scrittura.
Un algoritmo è composto da:
a. Variabili (dati) in ingresso
b. Variabili (risultato) in uscita
c. Procedura
Esempi.
1. Dati due valori A e B, sommarli e scrivere il valore nella variabile C.
o Ingresso: A , B
o Uscita: C
o Procedura: C=A+B
2. Dato il valore L del lato di un quadrato, calcolare perimetro e area.
o Ingresso: L
o Uscita: perimetro, area
o Procedura: perimetro=L*4, area=L*L
3. Dato un numero N, calcolare il valore assoluto.
o Ingresso: N
o Uscita: Valore assoluto
o Procedura: Se N<0, valore assoluto=-N
Se N>0, valore assoluto=N
4. Sommare tutti i numeri interi positivi da 1 a N
o Ingresso: N
o Uscita: Somma
o Procedura: Iterazione quali condizioni ripetere, sotto quali condizioni.
Adatti alla comprensione
dell’esecutore.
Assegnamento valore
Operazioni elementari
Scegliere
Ripetere
Somma= somma + indice
Indice= indice + 1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25

Anteprima parziale del testo

Scarica Introduzione alla Programmazione in Python: Esercizi di Base e più Appunti in PDF di Elementi di Informatica solo su Docsity!

Somma=somma + indice

Indice ≤ N

Somma=

Indice=

Mentre (indice ≤ N):

Algoritmo

Procedura, composta da una serie di passi, per risolvere un problema.

  • Algoritmi di tipo matematico
  • Descritti da un linguaggio formale
    1. Semantica ⇢ significato corretto
    2. Sintassi ⇢ sequenza di parole corrette

Il significato di un programma per il computer è letterale e privo di ambiguità, e può essere

completamente interpretato mediante l’analisi dei simboli e della scrittura.

Un algoritmo è composto da:

a. Variabili (dati) in ingresso

b. Variabili (risultato) in uscita

c. Procedura

Esempi.

  1. Dati due valori A e B, sommarli e scrivere il valore nella variabile C.

o Ingresso: A , B

o Uscita: C

o Procedura: C=A+B

  1. Dato il valore L del lato di un quadrato, calcolare perimetro e area.

o Ingresso: L

o Uscita: perimetro, area

o Procedura: perimetro=L4, area=LL

  1. Dato un numero N, calcolare il valore assoluto.

o Ingresso: N

o Uscita: Valore assoluto

o Procedura: Se N<0, valore assoluto=-N

Se N>0, valore assoluto=N

  1. Sommare tutti i numeri interi positivi da 1 a N

o Ingresso: N

o Uscita: Somma

o Procedura: Iterazione ⇢ quali condizioni ripetere, sotto quali condizioni.

Adatti alla comprensione

dell’esecutore.

  • Assegnamento valore
  • Operazioni elementari

▪ Scegliere

▪ Ripetere

Somma= somma + indice

Indice= indice + 1

Chiamate al sistema operativo mascherate dal linguaggio di programmazione.

Coding

Il calcolatore ha limiti fisici ⇢ lavora su approssimazioni.

⇒ i numeri non potranno essere infiniti.

Esempio.

Calcolare gli zeri della funzione: 𝑓

𝑥

3

100

Ingressi di un programma:

  1. Da tastiera
  2. Da file

Uscite:

  1. A video (comando print)
  2. Su file

File

Depositi di dati su memoria di massa (hard-disk, usb, ssd, cd, dvd)

Sono gestiti dal sistema operativo: bisogna chiedere al sistema operativo per adoperarlo.

I file sono di diverso tipo, noi utilizzeremo i FILE DI TESTO: depositare dati.

⇢ Per leggere e scrivere su file di testo si utilizza editore (blocco note, notpad++)

Operazioni su file

  • Aprire un file: chiedere al sistema operativo (S.O) di fornirci un modo per accedere

ad un file.

Come

▪ Lettura [r]: file già esistente

▪ Scrittura [w]: creazione di un nuovo file

▪ Lettura/scrittura [r+]

▪ Aggiunta (append) [a]: aggiungo dei dati alla fine di un file

Problemi

▪ [r]: il file non esiste (messaggio d’errore)

▪ [w]: non c’è spazio nel file

▪ In tutti i casi: non ho diritti per creare/scrivere/modificare il file.

  • Leggere un file
  • Scrivere su un file

Bisogna calcolare il punto medio e

ripetere l’operazione fino a

quando il valore e circa zero.

Nota Bene!

Ci possono essere più ELIF ma

un solo ELSE.

IF-ELIF-ELSE

Leggere un numero e scrivere positivo o negativo a seconda della sua natura.

⇢ Il problema implica una scelta tra due alternative:

IF (condizione)

Istruzione se condizione vera.

ELSE

Istruzione se condizione falsa

ELIF (condizione)

Permette di aggiungere una condizione in maniera più semplice.

Esercizio.

Dato un numero N, calcolare il suo valore assoluto e riscriverlo in N.

Condizione: N < 0

Azione: “calcolare l’opposto di N e riscriverlo in N”

⇢ in questo caso non serve un’alternativa: no Else, no Elif.

Esercizio.

Dato un numero N, se è positivo raddoppiarlo, se è negativo dimezzarlo, se è nullo non

fare nulla. Scrivere il risultato in N.

I rami ELSE e ELIF non sono

necessari e obbligatori.

Se fosse allineato con IF, l’istruzione sarebbe

terminata. Quindi il programma leggerebbe

l’ELSE e l’ELIF come errori.

Il p

Esercizio.

Dati i coefficienti di una equazione di secondo grado a, b, c, indicare il numero di radici

reali.

Se voglio conoscere anche il valore delle radici, bisogna aggiungere il seguente

procedimento:

Esercizio.

Dati tre numeri a, b, c, determinare il maggiore.

  • Trasformare il numero
  • Sostituirlo se è maggiore del maggiore fin ora letto
  • Sostituire se è minore del minore fin ora letto
  • Leggere il nuovo numero

Esercizio.

Leggere dei numeri e sommare i positivi. Smettere dopo aver letto 4 numeri o se la somma

è maggiore di 30.

Esercizio.

Leggere dei numeri da file finché non è terminato, dopodiché sommarli.

⇢ Come si fa a capire quando il file è terminato?

  1. Il metodo “readline” restituisce la stringa vuota ‘’ ‘’.
  2. Devo leggere il valore e non trasformarlo in float.

Esercizio.

Leggere da un file dei valori e determinare il valore massimo e il minimo letto (con una sola

lettura da file). Il file contiene almeno un valore.

Azioni:

In questo modo, maggiore e minore contengono dei valori presenti nella sequenza.

  • Leggerò il file finché non incontrerò la stringa vuota.
  • Conto quanti elementi ho letto.
  • Per contare i caratteri in una sequenza contenuta in un file, si utilizza

la variabile LEN(X).

  • È un problema di massimo
  • Si può inserire come valore iniziale della lunghezza massima il valore 0.

(le sequenze non hanno lunghezza negativa)

Esercizio.

In un file è contenuto almeno un valore. Calcolare la media e la varianza dei valori presenti

nel file effettuando una sola lettura del file.

⇢ non conosco le dimensioni del file:

Un file contiene, per ogni riga, sequenze di caratteri (stringhe).

⇢ Come si determina la lunghezza della sequenza più lunga contenuta nel file?

(il file contiene almeno una stringa)

Esercizio.

𝜎

2

= 𝐸

[ 𝑥

2

] −

( 𝐸

[ 𝑥

])

2

Esercizio.

In un file ci sono dei numeri; trovare il valore maggiore e il numero di volte che compare. Il

file contiene almeno un valore.

  1. Trovare il maggiore

Attenzione!

Devo assegnare alla variabile “maggiore” un valore che esiste nel file.

⇢ leggo ed assegno il valore di massimo fuori dal file e poi continuo con la lettura.

  1. Verifico quante volte compare

FOR

Scorre automaticamente i valori di un elenco (anche di un file) finché l’elenco non è

terminato.

  • Si adatta bene per le letture di un elemento per volta
  • “FOR” variabile in elenco

⇢ azioni da ripetere mentre l’elenco non è vuoto

Esercizio.

Determinare l’elemento maggiore.

Bisogna andare per tentativi,

finché la soluzione non sia

accettabile

Esercizio esame.

Scrivere un algoritmo codificato in linguaggio Python che legge da file una sequenza di

numeri interi finché non viene inserito un valore uguale al primo valore inserito o non si

sono letti due numeri positivi consecutivi. L’algoritmo somma fra loro i valori maggiori del

primo valore letto e scrive tale somma nella variabile “sm’’.

Come si esce dal ciclo prima di verificare la condizione?

Si utilizza l’istruzione BREAK

  • Interrompe l’esecuzione del ciclo e passa alla prima istruzione dopo il ciclo.
  • Il break è opportuno che sia inserito.
  • Leggo i numeri del file (utilizzo il FOR)
  • Trasformo i numeri in float
  • Assegno il numero trasformato in int (altra variabile)
  • Verifico se i due numeri sono uguali
  • Incremento il contatore

Esercizio.

Leggere terne di numeri e sommare il valor medio di ogni terna.

  1. Leggere il file con WHILE.
  2. Operazioni

a. Leggere tre numeri dal file

b. Calcolarne la media

c. Sommarla alle altre medie.

  1. Condizione: mentre il file non è terminato.

Esercizio.

Leggere sequenze di numeri e determinare la media e la varianza.

Esercizio.

Leggere dei numeri e contare quanti numeri interi sono stati contenuti nella sequenza.

Procedimento:

Controllo:

Se il file è finito, x contiene la

stringa vuota che può essere

convertita in numero

Per ipotesi il file

contiene un numero

di valori multiplo di

tre e quindi y e z

sono sicuramente

presenti

Parametro formale

Variabile temporanea

(parametro attuale)

Nome

funzione

Funzioni (funzioni produttive)

Serie di istruzioni che esegue un calcolo, alla quale viene assegnato un nome. Per definire una

funzione bisogna specificarne il nome e scrivere la serie di istruzioni. In un secondo tempo,

possiamo “chiamare” la funzione mediante il nome che le abbiamo assegnato.

La chiamata di una funzione genera un nuovo valore, che di solito viene associato ad una variabile

o si usa come parte di un’espressione.

⇒ È una sequenza di istruzioni cui viene dati un nome e può essere generalizzata con dei

parametri.

Scopo:

  • Semplificare la lettura del codice
  • Evitare di riscrivere più volte la stessa sequenza di codice (semplifica il programma e limita

gli errori).

Aspetto sintattico:

  • def 𝑛𝑜𝑚𝑒𝑓𝑢𝑛𝑧𝑖𝑜𝑛𝑒 (𝑝𝑎𝑟𝑎𝑚𝑒𝑡𝑟𝑜 1 , … , 𝑝𝑎𝑟𝑎𝑚𝑒𝑡𝑟𝑜𝑁) #intestazione
  • 𝑖𝑠𝑡𝑟𝑢𝑧𝑖𝑜𝑛𝑒 #corpo

Richiamo della funzione:

Esempio.

L’istruzione RETURN

Il suo significato è: “ritorna subito da questa funzione e usa l’espressione seguente come valore di

ritorno.

Talvolta occorre prevedere due istruzioni di ritorno, una per ciascuna ramificazione di

un’istruzione condizionale.

Non appena viene eseguita un’istruzione “Return”, la funzione termina senza eseguire ulteriori

istruzioni. Il codice che viene a trovarsi dopo l’istruzione “Return” o in ogni altro punto che non

può essere raggiunto dal flusso di esecuzione, è detto codice morto.

Nota!

In una funzione produttiva, occorre accertarsi che ogni possibile percorso del flusso di

esecuzione del programma conduca ad un’istruzione “Return”.

➔ Dato che queste istruzioni “Return” si trova in due rami

di una condizione alternativa, solo una delle due sarà

effettivamente eseguita.

➔ Se x=0, nessuna delle due condizioni è vera e la funzione

termina senza incontrare un’istruzione Return.

Il valore di ritorno sarà None

≠ 0

Esercizio.

Scrivere la funzione che come parametri due numeri interi X e Y e somma tutti valori fra X

e Y estremi inclusi.

  • def 𝑠𝑜𝑚𝑚𝑎𝑁𝑢𝑚𝑒𝑟𝑖 (𝑋, 𝑌)

Nota!

Non è necessario che gli elementi di una

lista siano tutti dello stesso tipo.

Una lista all’interno di un’altra

lista è detta NIDIFICATA.

Definisco la lista

Prendo l’elemento di posizione 3

Prendo l’elemento partendo dalla fine della lista

L’elemento non appartiene alla lista

Liste

Una lista è una sequenza di valori. Mentre in una stringa i valori sono dei caratteri, in una lista

possono essere di qualsiasi tipo.

I valori che fanno parte di una lista vengono definiti ELEMENTI.

⇢ Il metodo per creare una lista consiste nel racchiudere i suoi elementi tra parentesi quadrate.

[ 10 , 20 , 30 , 40 ]

[‘primi 𝑝𝑖𝑎𝑡𝑡𝑖’, ‘𝑠𝑒𝑐𝑜𝑛𝑑𝑖 𝑝𝑖𝑎𝑡𝑡𝑖’, ‘𝑑𝑒𝑠𝑠𝑒𝑟𝑡’]

[‘𝑠𝑝𝑎𝑚’, 2. 3 , 5 , [ 10 , 20 ]]

[ ] ⇢ lista vuota

Ovviamente, si possono assegnare i valori della lista a variabili:

>>> numeri = [13, 28, 5]

>>> dolci = [‘salale di cioccolato’, ‘meringata’]

>>> print (numeri, dolci)

Gli elementi di una lista sono indicizzati in base alla loro

posizione.

Esempio.

SLICING

Un segmento o una porzione di lista è chiamato SLICE. L’operazione di selezione di una porzione di

lista è detta SLICING.

L’operatore [n:m] restituisce la porzione di lista nell’intervallo compreso tra “l’n-esimo” elemento

incluso fino all’”m-esimo” escluso.

  • Se non è specificato il primo indice [:m], la porzione parte dall’inizio della stringa.
  • Se manca il secondo indice [n:], la porzione arriverà fino in fondo alla lista.
  • Se vengono omessi entrambi [:], lo slicing è una copia dell’intera lista.
  • Se n ≥ m, il risultato è una lista vuota.

La fine non è mai inclusa

Viene scritto il valore contenuto il “l”. (indirizzo di memoria

del primo elemento della lista)

Prendi l’elemento “i” all’interno della lista.

Definizione della lista. Creo la variabile che indica

l’elemento del primo elemento della lista.

b. Se non serve il valore rimosso, possiamo usare l’operatore “del”.

Per rimuovere più di un elemento si può usare “del” con lo slicing.

  1. Modificare un elemento.

nomeLista [posizioneElemento] = nuovoValore

  1. Creare un intervallo di valori interi.

Range (inizio, fine)

  • Possono essere trasformati in lista con l’operazione “list(range(inizio, fine))”

Posso passare dalle liste ad una funzione?

Si, in modo simile alle variabili di tipo int e float.

Con una variabile x, senza passare attraverso una lista.

Operazione “ Range

Al termine dell’esecuzione il parametro

“vr” non è cambiato

Copio nel parametro “v” il valore del parametro attuale

Agisco sulla copia, il parametro attuale “vr” non

subisce alcun effetto

Definizione

della

variabile