Top Banner
Informatica (PROGRAMMAZIONE)
112

Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Feb 18, 2019

Download

Documents

phamtruc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Informatica

(PROGRAMMAZIONE)

Page 2: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Informatica

Page 3: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Informatica

Computer Science

▪ Informazione: tutto ciò che possiede un significato per l’uomo

+▪Automatica: senza l’intervento dell’uomo

Page 4: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Evoluzione

1. Computer Science (Informatica) e Electronic Data Processing (EDP)

2. Information Technology (IT, Scienza dell’informazione)

3. Information and Communication Technology (ITC, Scienza della conservazione, elaborazione e trasmissione dell'informazione)

Page 5: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Computer

Calcolatore/Elaboratore

“Macchina per la risoluzione di problemi generici”

▪Elaborazione

▪Archiviazione

▪Trasmissione

Page 6: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Codifica delle informazioni

Linguaggio (strumento che sostituisce dei simboli agli oggetti e ai concetti)

▪naturale: utilizzato dall’uomo, ad es.:

▪ italiano (A–Z) 21 / inglese (A–Z) 26

▪ greco (α–ω) / russo (Њ Ц) / arabo (ف (ك

▪ formale: creato artificialmente senza eccezioni, ad es.:

▪ Morse ( . – )

▪ semaforo (rosso, giallo verde)

▪ numerazione binaria (0, 1)

▪ numerazione decimale (0–9)

Page 7: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Codifica delle informazioni

bit

byte

rappresentazione dei dati (conservazione) interi

reali

alfanumerici

trattamento dei dati (elaborazione) operatori aritmetici

operatori logici

invio di segnali (trasmissione) segnali analogici

segnali digitali

Page 8: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Architettura dei calcolatori

Page 9: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Architettura dei calcolatori

processore {39}

dispositivi di memoria

periferiche

sistema operativo {55}

file system {69}

reti e Internet

Page 10: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Componenti di un calcolatore

architettura del sistema

▪hardware: componenti fisici (elettrici, elettronici, meccanici, ottici) del sistema

< EPROM* + firmware** >

▪software: componenti logici (programmi) eseguiti dal sistema

*) Erasable Programmable Read Only Memory

**) microprogrammi per ROM

Page 11: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Classificazione tradizionale dei calcolatori

microcomputer o PC

workstation

minicomputer

mainframe

elaboratori per il calcolo parallelo

(supercomputer)

Page 12: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Architettura di Von Neumann(evoluta)

John Von Neumann(János Lajos Neumann)Budapest, 28Dic1903

Washington, 8Feb1957

Page 13: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Bus di sistema

Mezzo di conduzione delle informazioni all’interno del calcolatore

▪Bus DATI, trasmissione dati da e a CPU

▪Bus INDIRIZZI, trasmissione indirizzi a RAM

▪Bus CONTROLLI, trasmissione ordini daCPU a periferiche

Page 14: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Central Processing Unit (CPU)

(processore)

▪Acquisisce un’istruzione

▪Interpreta le istruzioni che compongono i programmi(un’istruzione alla volta)

▪Esegue le istruzioni dei programmi coordina la macchina

▪Carica le singole istruzione dalla MEMORIA CENTRALE (RAM)

Page 15: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Architettura della CPU

Page 16: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Unità Aritmetico-Logica (ALU)

ALU

Page 17: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Control Unit (CU)

CU

Page 18: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Bus interno

Bus di sistema

Page 19: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Orologio di Sistema(System Clock)

clock

Page 20: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Registri

A

B

PC

CIR

INTR

SR

AR DR CDR

Page 21: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Registri A e B

A

B

PC

CIR

INTR

SR

AR DR CDR

Page 22: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Status Register

A

B

PC

CIR

INTR

SR

AR DR CDR

Page 23: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Program Counter

A

B

PC

CIR

INTR

SR

AR DR CDR

Page 24: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Current Instruction Register

A

B

PC

CIR

INTR

SR

AR DR CDR

Page 25: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Address Register e Data Register

A

B

PC

CIR

INTR

SR

AR DR CDR

Page 26: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Control Driver Register

A

B

PC

CIR

INTR

SR

AR DR CDR

Page 27: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Interrupt Register

A

B

PC

CIR

INTR

SR

AR DR CDR

Page 28: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Memoria Centrale

(RAM, Random Access Memory)

Memorizza programmi

Memorizza dati

Memoria VOLATILE

Organizzata a livello logico come:

▪ Sequenza di Bytes (B)ciascuno da 8 bits (b)

▪ Raggruppati in words (8b ÷ 64b)

▪ Indirizzo (posizione) di ciascuna word:

Architettura 32b 232 indirizzo (4GB)

Architettura 64b 264 indirizzo (16GB2)

Page 29: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Capacità di memoria

1 bit (b)

1 Byte (B)

1 Kb (Chilo) = 1024 Byte = 210

Bytes

1 Mb (Mega) = 1024 Kb = 220

Bytes = 1048576 Bytes

1 Gb (Giga) = 1024 Mb = 230 Bytes

1 Tb (Tera) = 1024 Gb = 240 Bytes

1 Pb (Peta) = 1024 Tb = 250 Bytes

1 Eb (Exa) = 1024 Pb = 260 Bytes

Page 30: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Periferiche (dispositivi)

LOCALE (standalone)

▪ Tastiera

▪ Mouse

▪ Video

▪ Touch-screen

▪ Disco

▪ USB drive

▪ Stampante

▪ Foto/video camera, …

REMOTO (networking)

▪RJ45

▪Wi-Fi

▪Bluetooth

Page 31: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Memoria di massa

Disco magnetici, ottici, … (dispositivi elettro-meccanici)

USB drive (dispositivi elettronici)

obsoleti: floppy, nastri, schede perforate, …

▪Memoria PERSISTENTE

▪“Lenta”

▪“Capiente”

Page 32: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Software

Page 33: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Software

“Insieme dei programmi e delle procedure che servono a finalizzare gli strumenti

fisici alla risoluzione del problema presentato dall’utente del sistema”*

▪di base (sistema operativo)

▪applicativo

*) Lorenzi A., V. Moriggia (2012) Teoria e ambiente di programmazione, Atlas, p. 86.

Page 34: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Sistema operativo

“Insieme dei programmi che consentono all’utente, o alle applicazioni

informatiche, di accedere alle operazioni di base per utilizzare le risorse del sistema

di elaborazione”*

*) Lorenzi A., V. Moriggia (2012) Teoria e ambiente di programmazione, Atlas, p. 87.

Page 35: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Modularità

In informatica, caratteristica di un

sistema o di un programma che si

compone di unità distinte, ognuna

delle quali assolve in genere un

compito specifico ed è capace di

interagire con le altre.

Page 36: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Modularità dei sistemi operativi

HARDWARE

Nucleo (kernel)

Gestore della memoria

Gestiore delle periferiche

File System

Interprete dei comandiGUI Prompt

Programmi applicativi

Page 37: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Software applicativo

Programma/Codice/Applicazione/App

“Insieme dei programmi non necessari al funzionamento del computer, ma che lo

rendono ‘specializzato’ in una particolare funzione durante tutto il periodo di

funzionamento dell’applicativo”

▪Sorgente (linguaggio di alto livello)

▪Eseguibile (linguaggio macchina)

Page 38: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Licenze

▪Software commerciale/proprietario

▪Freeware

▪Open-source

▪proprio codice

Page 39: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Linguaggio di alto livello

Linguaggio di programmazione ad alto livello

“E’ un linguaggio artificiale impiegato nella programmazione degli elaboratori, solitamente nato

dalla formalizzazione e semplificazione di un linguaggio naturale”

▪Diversamente dal linguaggio macchina (direttamente eseguibile da un computer) necessita di una traduzione (compilazione) nel linguaggio (macchina) compreso dall’elaboratore

Page 40: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Linguaggi di programmazione

Due categorie:

▪Compilatiinteramente tradotti in linguaggio macchina e memorizzati in un file (programma/codice eseguibile)

▪ Interpretatitradotti ed eseguiti un’istruzione alla volta

Page 41: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

copyright

time

waster

Advantages and Disadvantages

▪ Compiled programs generally run faster than interpreted ones, because interpreted programs must be reduced to machine instruction at runtime (i.e. during the execution).

▪ However, with an interpreted language you can do things that cannot be done in a compiled language. ▪ For example, interpreted programs can modify

themselves by adding or changing functions at runtime. ▪ It is also usually easier to develop application in an

interpreted environment because you don’t have to recompile your application each time you want to test a small section.

▪ Even though interpreted programs are readable (by any other) and must be translated in machine language during any execution

edit in

execution

Page 42: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Linguaggi programmazione

▪FORTRAN (1956) FORmula TRANslation

▪COBOL (1960) COmmon Business Oriented Language

▪BASIC (1964) Beginners All-purposes Symbolic Instruction Code

▪RPG (1966) Report Program Generator

▪PASCAL (1971)

▪C e C++ (1974)

▪PYTHON (1991)

▪ JAVA (1995)

Page 43: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Compiled vs. Interpreted

▪ ProblemAnalysis

▪ AlgorithmImplementation

▪ Source Code (program)Compiling (+ linking)

▪ Executable (program)Execution (running)

COMPILED LANGUAGE

INTERPRETED LANGUAGE

FORTRAN, PASCAL, C ecc.

VBA, BASIC, PYTHON, etc.

.for, .pas, .c .bas, .py

.obj

.exe

execution

Page 44: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

PythonPARTE I

Page 45: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Python

▪ Guido van Rossum(inizio degli anni novanta)

▪ Free language

▪ www.python.org

IDE

▪ PyCharm

▪ PyScripter

Designer

▪ QtDesigner

▪ Glade3

Shell

iPython

IDLE

Python

PythonW

online

Page 46: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

OUTPUT: print

print "Hello world"

print 2 + 3

print a

Compatibilità con Python 3:

from __future__ import print_function

print("Hello world")

print(2 + 3, a)

print(dato, end="") # stampa succ. in linea

print(dato, end=' ') # stampa succ. in lineacon spazio

Page 47: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

COMMENTI

"""

autore: io

data: 1 Oct 2015

UN PO' DI COMMENTI

"""

# Commento fino all’acapo

print "Hello" # commento sulla riga

Page 48: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

OPERATORI

▪Aritmetici:

+ addizione

- sottrazione

* moltiplicazione

/ divisione reale

// divisione intera

% resto della divisione

** elevazione a potenza

Page 49: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

VARIABILI

▪In Python le varabili NON hanno bisogno di dichiarazione.

▪Le variabili vengono create attraverso l'assegnazione di un valore:

variabile = espressione

a = 5

ASSEGNAZIONE (NON UGUAGLIANZA!)

Page 50: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

LISTE

Collezione dinamica di dati eterogenei detti «elementi»

▪Esempi di liste[ 1, 2, 5, 3]

[3, "Rossi", 12800]

list(range(4))

▪Lista vuota[]

L = list()

Page 51: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

LISTE: operatori

▪Elemento i-esimo: L[i]

▪Concatenamento: [3] + ['AB', 3.14] + L

▪Stampa: print(L)

▪Numero di elementi: len(L)

▪Confronto (ne basta uno): == != > < >= <=

▪Ricerca del valore v nella lista L: v in L

▪Scansione: for elemento in L:

▪Sottolista dal secondo al quarto: L[1:4]

Page 52: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

LISTE: sottoliste

[0|1|2|3|4|5]

▪ NomeLista[ inizio : fine+1 ]

L[1:3] # [1, 2]

L[1:10:2] # [1, 3, 5]

▪ NomeLista[ ()inizio : ]

L[2:] # [2, 3, 4, 5]

L[-2:] # [4, 5]

▪ NomeLista[: fine+1 ]

L[:3] # [0, 1, 2]

▪ NomeLista[:]

L[:] # [0, 1, 2, 3, 4, 5]

Page 53: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

LISTE: metodi mutator

Mutator: cambiano lo stato interno dell’oggetto

L.append(elemento)Accoda elemento alla lista L

L.extend(M)Accoda la lista M alla lista L

L.insert(posizione, elemento)Inserisce l’elemento alla posizione, spostando i restanti di un posto (se posizione>len(L), accoda)

L.pop()Estrae (elimina e restituisce) l’ultimo elemento

L.pop(posizione)Estrae l’elemento in posizione

L.sort()Riordina gli elementi nella lista L, se di tipo uniforme

Page 54: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Liste: duplicazione

ATTENZIONE! L’assegnazione non crea una copiadella lista

L = [3, "Rossi", 12800]

M = L

L[1] = 10

print(M) # [3, 10, 12800]

L’assegnazione crea uno

pseudonimo (alias) della lista

Page 55: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Liste: duplicazione

Per duplicare una lista è necessario caricare un elemento per volta nella nuova lista

L = [3, "Rossi", 12800]

M = []

for m in L:

M.append(m)

L[1] = 10

print(M) # [3, "Rossi", 12800]

print(L) # [3, 10, 12800]

Page 56: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Liste: duplicazione

E’ anche possibile duplicare una lista attraversoil concatenamento con una lista vuota

L = [3, "Rossi", 12800]

M = [] + L

print("Lista M: ", M)

# Lista M: [3, 'Rossi', 12800]

print("Lista L: ", L)

# Lista L: [3, 10, 12800]

Page 57: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Stringhe

▪Stringa costante: "Salve Mondo"

▪Set di caratteri (p. 45)

▪Sequenze di escape (p. 40)

▪Concatenamento: "Hello" + "World"

"HelloWorld"0123456789

▪Sottostringhe

S[5] # 'W'

S[-3:] # 'rld'

Page 58: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Stringhe: metodi

▪ {108}

S.count(stringa)

S.find(stringa)

S.replace(vecchia-stringa, nuova-stringa)

S.split()

▪ATTENZIONE: questi metodi NON modificano la stringa di partenza

Page 59: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Formattazione del testo

▪Stringa formattata

"testo %tipo-di-formato altro testo" % dato

▪Tipo di formato stringa

%[[-]ampiezza[.troncamento] ]s

intero%ampiezzad oppure %ampiezzai

reale%ampiezza.precisionef

notazione esponenziale (scientifica/virgola mobile)

%ampiezza.precisionee

Page 60: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Formattazione del testo

r = "%6s" % 'abc‘ # ' abc'

print("<%-10s>" % "testo") # <testo >

"<%3.2s>" % "testo“ # < te>

"<%-10d>" % 3.14 # <3 >

"<%10i>" % 123.14 # < 123>

"<%-10.4f>" % 3.14 # <3.1400 >

"<%10.4f>" % 3.14 # < 3.1400>

"<%10.4e>" % 3.14 # <3.1400e+00>

▪ Con più dati

print("x=%.2f\ty=%.2f" % (2.5,3.14))

# x=2.50 y=3.14

Page 61: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Sistemi di numerazione

Page 62: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Sistema decimale

▪𝔻 ≡ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

Cifre del numero 3 8 7 5 2

Posizione 4 3 2 1 0 -1 -2

Peso 104 103 102 101 100 10-1 10-2

sommatoria 3100 810 71 5/10 2/100

387.52 = 3102 + 8101 + 7100 + 510-1 + 210-2

Page 63: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Sistema binario

▪𝔹 ≡ {0, 1}

Cifre del numero 1 1 0 1 1

Posizione 4 3 2 1 0 -1 -2

Peso 24 23 22 21 20 2-1 2-2

sommatoria 14 12 01 1/2 1/4

(110.11)2 = 122 + 121 + 020 + 12-1 + 12-2

= 4 + 2 + 0.5 + 0.25

= (6.75)10

Page 64: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Sistema binario: conteggio

▪ In base due (bin)

da 1 si passa a 10

da 11 si passa a 100

da 111 si passa a 1000

. . .

▪ In base dieci (dec)

da 9 si passa a 10

da 99 si passa a 100

da 999 si passa a 1000

. . .

00 0000

01 0001

02 0010

03 0011

04 0100

05 0101

06 0110

07 0111

08 1000

09 1001

10 1010

11 1011

12 1100

13 1101

14 1110

15 1111

16 10000

=21

=22

=23

=24

=20

Page 65: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Sistema binario: conversione in decimale

(1110)2 = 23 + 22 + 2 = 8 + 4 + 2 = (14)103 2 1 0

(0110'0111)2= (?)107 6 5 4 3 2 1 0

(1000'0001)2= (?)10

(0101'0100)2= (?)10

Page 66: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Sistema binario: massimo numero rappresentabile

Con quattro bit (binary digit)

0000 = 0

0001 = 1

...

1110 = 23 + 22 + 2 = 8 + 4 + 2 = 14

1111 = 23 + 22 + 2 + 1 = 15

10000 = 24 = 16

= 24 – 1

Page 67: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Sistema decimale: conversione in binario

84 20 42 2

0 21 21 10 2

0 5 21 2 2

0 1 21 01

1

1

0

0

00

Page 68: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Al mondo esistono 10 tipi di persone: quelle che capiscono l’aritmetica binaria, e quelle che non la capiscono.

Page 69: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Sistema esadecimale

▪ℍ ≡ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝐹}

Cifre del numero 3 A 7 F 2

Posizione 4 3 2 1 0 -1 -2

Peso 164 163 162 161 160 16-1 16-2

sommatoria 3256 1016 71 15/16 2/256

(3A7.F2)16 = 3162 + 10161 + 7160 + 1516-1 + 216-2

= 3256 + 1016 + 71 + 15/16 + 2/256

= 768 + 160 + 7 + 0.9375 + 0.0078125

= (935.9453125)10 (circa)

Page 70: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Sistema esadecimale:conteggio

▪ In base 16 (hex)

da 9 si passa a A

da A si passa a B

da F si passa a 10

da FF si passa a 100

. . .

▪ In base dieci (dec)

da 9 si passa a 10

da 99 si passa a 100

da 999 si passa a 1000

. . .

dec bin hex

00 0000 0

01 0001 1

02 0010 2

03 0011 3

04 0100 4

05 0101 5

06 0110 6

07 0111 7

08 1000 8

09 1001 9

10 1010 A

11 1011 B

12 1100 C

13 1101 D

14 1110 E

15 1111 F

Page 71: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Sistema esadecimale: conversione in binario e decimale

Conversione in binario

(7FD2)16

▪ 7 = 0111

▪ F = 1111

▪ D = 1101

▪ 2 = 0010

(0111'1111'1101'0010)2

Conversione in decimale

(7FD2)16

▪ 7 ⋅ 163 = 7 ⋅ 4096 = 28672

▪ 15 ⋅ 162 = 15 ⋅ 256 = 3840

▪ 13 ⋅ 161 = 13 ⋅ 16 = 208

▪ 2 ⋅ 160 = 2 ⋅ 1 = 2

▪ 28672 + 3840 + 208 + 2 =

(32722)10

Page 72: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Sistema binario: conversione in esadecimale

1001'0101 = (95)16

9 5

10110100

2 D

= (2D)16'

Page 73: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Rappresentazioneinterna dei dati

Page 74: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Numeri interi con segno

Tipo Valori Limite Bit

------------------------------------------------------------------------------------------------

Shortint - 128 .. 127 8

Integer - 32 768 .. 32 767 16

Longint - 2 147 483 648 .. 2 147 483 647 32

Byte 0 .. 255 8

Word 0 .. 65 535 16

Integer - 32 768 .. 32 767 16

Longint - 2 147 483 648 .. 2 147 483 647 32

Page 75: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Numeri interi con segno

▪Sistema con modulo e segno (MS)

(+5)10 = (????'????)2MS

= (0000'0101) 2MS

(–5)10 = (????'????)2MS

= (1000'0101) 2MS

▪Difetti (maggiori calcoli e confronti)

Esiste +0 e –0

Operazioni aritmetiche: se A>0 e B>0, …

Page 76: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Numeri interi con segno

▪Sistema in complemento a due (CA2)

L’ordinamento è mantenuto

Sottrazione con una Addizione:+3 + (–5) = –20011 + 1011 = 1110

Inversione di segno rapida:(–5)10

(5)10 = (0101)2

not(0101) = 1010 1010 + 1 = (1011)2

dec bin

7 0111

6 0110

5 0101

4 0100

3 0011

2 0010

1 0001

0 0000

–1 1111

–2 1110

–3 1101

–4 1100

–5 1011

–6 1010

–7 1001

–8 1000

Page 77: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Numeri reali

▪Rappresentazione in virgola fissa: a = xxxx.dddd

▪Forte riduzione dell’intervallo numerico rappresentato

▪Con una rappresentazione del tipo: xxx.dd, con quante cifre significative potrebbero essere rappresentati i valori: 1234567.8, 1324.5678, 0.00018888 ?

▪Quante cifre sarebbero necessarie per poter rappresentare valori del tipo: 1.5*10+50,

2.0*10-30 ?

Page 78: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Numeri reali in virgola mobile (o floating point)

▪Un numero reale 𝑎 in base 𝑏 può essere scritto:

𝑎 = 𝑥 ⋅ 𝑏±𝑛 = 𝑥𝐸 ± 𝑛 = ±𝑐0, 𝑐1𝑐2𝑐3…𝐸 ± 𝑛

con 𝑐0 ≠ 0

▪Esempi▪ -0.00123 -12.3E-4

▪ -12.34 -12.34E00

▪+1.2E-25 +0.0…12

▪0.1234E+30 12340…0

▪Normalizzazione: 1 ≤ 𝑥 < 𝑏

Page 79: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Mantissa e Esponente

𝑎 = ±𝑐0, 𝑐1𝑐2𝑐3𝑐4𝑐5…𝐸 ± 𝑛

±𝑐0, 𝑐1𝑐2𝑐3𝑐4𝑐5… ±𝑛

mantissa esponente

Page 80: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Sistema binario:mantissa ed esponente

▪Standard IEEE 754 (su 32 bit)

M = 1.m

E = e – k

k = 2(n–1) – 1

n = numero di bit per l’esponente (8)

Page 81: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Esempi di rappresentazione dei reali in virgola mobile

Tipo Valori Limite Bit--------------------------------------------------------------------------------------

Real 2.9 E-39 .. 1.7 E+38 48

Single 1.5 E-45..3.4 E+38 32

Double 5.0 E-324 .. 1.7 E+308 64

Extended 3.4 E-4932 .. 1.1 E+4932 80

Page 82: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Rappresentazioneinterna dei caratteri (codice ASCII)

Page 83: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Algebra booleana

Page 84: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

ALGEBRA BOOLEANACalcolo Proposizionale

George Boole 1815 – 1864

▪ In matematica, informatica ed elet-tronica, l'algebra di Boole è un ramo dell'algebra astratta che comprende tutte le algebre che operano con i soli valori di verità 0 o 1, detti variabili booleane o logiche.

▪L'algebra booleana è finalizzata al calcolo proposizionale

▪Proposizione“Frase alla quale può essere

attribuito un valore di verità:vero o falso”

Page 85: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

ALGEBRA BOOLEANACalcolo Proposizionale

Connettivi

+

A AND B

A OR B

NOT A

A XOR B

Valori di verità Vero (1)

Falso (0)

AND , , ,

OR , , + ,

XOR , ,

NOT , , -

proposizioni

atomiche

Proposizioni composte

op

era

tori

log

ici

Page 86: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Operatori logici: AND

Congiunzione

Tavola di verità

A B A and B

0 0 0

0 1 0

1 0 0

1 1 1

𝐴 ∙ 𝐵 𝐴 ∧ 𝐵

Page 87: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Operatori logici: OR

Disgiunzione

Tavola di verità

A B A or B

0 0 0

0 1 1

1 0 1

1 1 1

𝐴 + 𝐵 𝐴 ∨ 𝐵

Page 88: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Operatori logici: NOT

Negazione

Tavola di verità

A not A

0 1

1 0

¬ 𝐴 𝐴

Page 89: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Operatori logici: proprietà

▪ CommutativaA or B = B or AA and B = B and A

▪ Associativa(A or B) or C = A or (B or C)(A and B) and C = A and (B and C)

▪ DistributivaA or (B and C)

= (A or B) and (A or C)A and (B or C)

= (A and B) or (A and C)

▪ IdempotenzaA and A = AA or A = A

▪ Legge di assorbimentoA or (A and B) = AA and (A or B) = A

▪ not (not A) = A

▪ A or (not A) = Vero

▪ A and (not A) = Falso

Leggi di De Morgan

not(A and B) = (not A) or (not B)

not(A or B) = (not A) and (not B)

Page 90: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Operatori logici: XOR

Disgiunzione esclusiva

Tavola di verità

A B A or B

0 0 0

0 1 1

1 0 1

1 1 0

𝐴⊕𝐵

Page 91: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Operatori logici: IF-THEN

Implicazione

Tavola di verità

A B A or B

0 0 1

0 1 1

1 0 0

1 1 1

𝐴 → 𝐵

Page 92: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Operatori logici: IF-THEN

Esempio

A = Piero è bergamasco

B = Piero può essere italiano

▪ se Piero NON è bergamasco allora Piero può NON essere italiano

▪ se Piero NON è bergamasco allora Piero può essere italiano

▪ se Piero è bergamasco allora Piero può NON essere italiano

▪ se Piero è bergamasco allora Piero può essere italiano

𝐴 → 𝐵

Page 93: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

or

or

______________

Tavola di verità

(not A) and B

Operatori logici: funzione booleana

A B f(A, B)

0 0 0

0 1 1

1 0 1

1 1 1

A and (not B)

A and B

f(A,B) = ((not A) and B) or (A and (not B)) or (A and B)

= ((not A) and B) or (A or ((not B) and B))

= ((not A) and B) or (A or Falso) = ((not A) and B) or A

= ((not A) or A) and (B or A) = Vero and (B or A) = A or B

Page 94: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

PythonPARTE II

Page 95: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Tuple

▪Come le liste, ma costanti:

giorno = ('Lu','Ma','Me','Gi','Ve')

▪L’elenco è tra parentesi tonde, anziché quadre

Page 96: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Dizionari

▪Dati organizzati per associazione (tabelle)

{chiave : dato [, chiave:dato…]}

La chiave è quell’attributo (colonna) che garantisce l’unicità delle tuple (righe)

▪ Inizializzazione

Elenco = {'nome':'Mario', \'cognome':'Rossi', \'eta':35}

Page 97: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Dizionari: operazioni

▪Accesso agli elementi

Elenco['nome'] = 'Piero'

print(Elenco['sesso'])

print(Elenco.get('sesso', None))

▪Conversione in lista

list(Elenco.items())

Page 98: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Dizionari: operazioni

▪Scansione

for chiave in Elenco:

print(chiave, Elenco[chiave])

for (chiave, val) in Elenco.items():

print(chiave, val)

Page 99: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Dizionari: metodi

▪Valore del dizionario D con chiave k, se non esiste k restituisce default (se specificato)

D.get(k [, default])

▪Estrae il valore con chiave k e eliminal’elemento , se non esiste k restituisce default (se specificato)

D.pop(k [, default])

Page 100: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Dizionari: metodi

▪Elenca tutte le chiavi del dizionario D

D.keys()

▪Elenca tutti i valori del dizionario D

D.values()

▪Elenca tutte le tuple del dizionario D

D.items()

▪Elimina tutte le voci del dizionario D

D.clear()

Page 101: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Dizionari: altre operazioni

▪Numero di voci nel dizionario D

len(D)

Page 102: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Gestione delle eccezioni

try:

istruzioni-1

except ValueError:

istruzioni-2

▪Controlla il “buon esito” di un blocco di istruzioni (istruzioni-1).

▪ In caso di errore di run-time verranoeseguite le istruzioni-2.

Page 103: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Funzioni anomine

▪Funzioni anonime

lambda var-1 [,var-2, …]: espressione

Page 104: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Alias di funzioni

assoluto = abs

radq = math.sqrt

incrementa = lambda x: x+1

▪Liste di funzioni

L = [abs, math.sqrt, lambda x: x+1]

▪Dizionari di funzioni

DF = {'assoluto':abs,

'radq':math.sqrt,

'incrementa':lambda x: x+1}

Page 105: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Funzioni speciali

▪Mappatura

map( funzione ,dati )

▪Filtraggio

filter( funzione ,dati )

▪Riduzione

reduce( funzione ,dati )

(Per python 3 importare:)

# from functools import reduce

Page 106: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Object Oriented Programming(OOP)

▪Programmazione Orientata agli Oggetti

Nuova tecnica di programmazione che concentral’analisi sui dati e sulle azioni da applicare a questi

▪SUGGERIMENTO PRATICO:

Si tratta di un’INTEGRAZIONE di quanto già visto(singoli moduli e/o funzioni), da utilizzare in ognisituazione in cui torni utile, NON forzarel’implementazione esclusivamente agli oggetti

Page 107: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Grafici

▪Oggetto:

▪Turtle

from turtle import Turtle

▪pyplot

from matplotlib import pyplot

Page 108: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Grafici: Turtle

▪ from turtle import Turtle

▪ # ISTANZA (ESEMPLARE)

▪ t = Turtle()

▪ # NON SCRIVERE

▪ t.up()

▪ # Posizionamento sul piano

▪ t.goto(2,2)

▪ # PRONTI A SCRIVERE

▪ t.down()

▪ # TRACCIO UNA RIGA di 50 px

▪ t.forward(50)

▪ # CAMBIO DIREZIONE

▪ t.setheading(90)

▪ # TRACCIO UNA RIGA di 50 px

▪ t.forward(50)

Page 109: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Grafici: pyplot

from matplotlib import pyplot

p = pyplot

p.plot(x, y)

p.xlabel('time')

p.ylabel('frequence')

p.show()

Page 110: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Numeri pseudo-casuali

▪ import random

▪x = random.randint(1,6)

▪x = random.gauss(0,1)

Page 111: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

Files di testo

▪Apertura

f = open(nome file, modalità)modalità = 'w' oppure 'r'

▪Chiusura

▪f.close()

▪Lettura

▪f.read()

▪f.readline()

▪Scrittura

▪f.write(stringa)

Page 112: Informatica - dinamico2.unibg.itdinamico2.unibg.it/moriggia/ING/lucidi/InformaticaING.pdf · elaboratori per il calcolo parallelo ... In informatica, caratteristica di un ... Linguaggi

OOP: class

▪Nella Programmazione Orientata agliOggetti gli oggetti vengono definitiattraverso le classi e utilizzatiattraverso le istanze (o esemplari)

▪Una classe si compone di▪attributi: caratteristiche o prprietàdell’oggetto

▪metodi: azioni che l’oggetto può eseguire

▪eventi: lo stato in cui si trova un oggetto