Introduzione a Python ed installazione di Jupyter

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Introduzione a Python ed installazione di Jupyter"

Transcript

1 Introduzione a Python ed installazione di Jupyter Marco D. Santambrogio [email protected] Emanuele Del Sozzo [email protected] Lorenzo Di Tucci [email protected] Giuseppe Natale [email protected] Marco Rabozzi [email protected] Alberto Scolari [email protected] Ver. aggiornata al 7 Novembre 2016

2 Agenda Introduzione a Python Tipi e costrutti Liste, dizionari e insiemi Funzioni Classi File 2

3 Installazione Anaconda fornisce: Python Virtual Machine IDE per la scrittura di codice Python (Spyder, Jupyter) Scaricare Anaconda dal seguente link: Scegliere solo Python 3.5 3

4 Cosa è Python? Python è un linguaggio di programmazione Di alto livello Interpretato Debolmente tipizzato Orientato agli oggetti E comodo per sviluppare rapidamente applicazioni e script Documentazione: 4

5 C vs Python C - Basso livello - Compilato - Fortemente tipizzato - Non a oggetti Python - Alto livello - Interpretato - Debolmente tipizzato - A oggetti 5

6 C vs Python C - Basso livello - Compilato - Fortemente tipizzato - Non a oggetti Python - Alto livello - Interpretato - Debolmente tipizzato - A oggetti Allocazione esplicita della memoria (gestione dei puntatori) Allocazione implicita della memoria 6

7 C vs Python C - Basso livello - Compilato - Fortemente tipizzato - Non a oggetti file.c Python - Alto livello - Interpretato - Debolmente tipizzato - A oggetti file.py gcc interprete Python codice macchina codice interpretato 7

8 C vs Python C - Basso livello - Compilato - Fortemente tipizzato - Non a oggetti Python - Alto livello - Interpretato - Debolmente tipizzato - A oggetti int a; a = 5; a = stringa ; //Corretto //Errore!! a = 5 a = stringa a = 1.3 #Corretto #Corretto #Corretto Il tipo della variabile va dichiarato esplicitamente Nessuna dichiarazione esplicita di tipo 8

9 C vs Python C - Basso livello - Compilato - Fortemente tipizzato - Non a oggetti Python - Alto livello - Interpretato - Debolmente tipizzato - A oggetti void sort(int * array){...}... int vet[] = {1, 6, 4, 8, 9}; sort(vet); vet = [1, 6, 4, 8, 9] vet.sort() sort è una funzione dell oggetto vet ed agisce su di esso 9

10 Introduzione alla sintassi Python Le variabili non vanno dichiarate prima di essere usate Non è necessario usare i punti e virgola alla fine di ogni istruzione I costrutti (if-else, for, funzioni) usano i due punti al posto delle graffe di apertura e devono essere indentati con spazi o tabulazione (evitare di usarli entrambi) I commenti si inseriscono con # (singola linea) o commento (multi linea/docstring) 10

11 Jupyter Una volta installato Anaconda, aprite Jupyter e create un nuovo notebook Python 11

12 Hello World Proviamo a scrivere un Hello World in Python e ad eseguirlo sull interprete 12

13 Input / Output Per leggere da linea di comando, usate la funzione input() Per stampare valori a schermo, usate la funzione print() Il risultato è: 13

14 Input / Output: stampa di stringhe Se volete stampare una stringa insieme ad un valore, è necessario convertire il valore in una stringa e concatenarli La concatenazione è fatta usando l operatore + I valori letti con input() sono stringhe! Per convertire un numero in una stringa, usate la funzione str(obj) Per passare da stringa ad intero, int(obj) se è possibile! 14

15 Esempio di tipizzazione debole Vediamo cosa succede quando prima assegniamo a due variabili i caratteri rappresentanti due numeri e li sommiamo Assegniamo ora alle stesse variabili i due interi precedenti e sommiamoli ancora 15

16 Inclusione librerie Come in C, è possibile importare librerie (moduli) ed usare le funzioni definite all interno Esistono differenti modi di importare e usare i moduli: import os #importa lo spazio dei nomi del modulo os import os as O #importa lo spazio dei nomi del modulo os come O from os import * #importa tutto dallo spazio dei nomi del modulo os from os import curdir as CC from os import listdir as LS #importa un elemento specifico con un alias os.curdir os.listdir( Desktop ) O.curdir O.listdir( Desktop ) curdir listdir( Desktop ) CC LS( Desktop ) 16

17 Funzioni utili len(obj) riporta la lunghezza dell oggetto obj (stringa, lista, etc.) passata come argomento dir(obj) riporta tutti i dati e le funzioni contenute in un modulo help(obj) mostra la documentazione relativa ad un oggetto obj 17

18 Tipi e costrutti in Python

19 Tipi base I tipi (classi) base di python sono: tipi esempio int 1, 2, 3 float 1.5, 2.2, 4.3 bool True, False str abc, stringa list [1, 2, 3, 4], [ abc, def, ghi ] dict {chiave1: valore1, chiave2: valore2} tuple (1, 2, 3, 4), ( abc, def, ghi ) set {1, 2, 3, 4}, { abc, def, ghi } 19

20 Tipi base Per sapere il tipo di una variabile, usate la funzione type(obj) Per sapere I metodi e attributi di un tipo, usate la funzione dir sull oggetto, or la funzione help sul tipo 20

21 Operatori logici Operazioni C Python And logico && and Or logico or Not logico! not Uguaglianza ==,!= ==,!=, is, is not Confronto <, >, <=, >= <, >, <=, >= 21

22 Operatori logici - uguaglianza Operazioni C Python And logico && and Or logico or Not logico! not Uguaglianza ==,!= ==,!=, is, is not Confronto <, >, <=, >= <, >, <=, >= ==,!= verifica se due oggetti hanno lo stesso valore is, is not verifica se due oggetti sono lo stesso oggetto 22

23 If - else La struttura base di un if-else è: Se è necessario usare più if-else in cascata, usate elif: elif 23

24 Ciclo while La sintassi del ciclo while in Python è identica a quella del C: Inoltre, a differenza del C, è possibile inserire un ramo else alla fine del while Il ramo else verrà eseguito quando la condizione del while diventa falsa 24

25 Ciclo for Il ciclo for di Python è abbastanza diverso dal C Una variabile itera su una serie di valori in una sequenza La sequenza può essere: Una lista, dizionario, tupla, insieme Una stringa Un iteratore Anche alla fine del for si può inserire il ramo else 25

26 Iteratori Gli iteratori sono oggetti che restituiscono una sequenza di oggetti uno alla volta tramite il metodo next() L iteratore che si usa solitamente nel ciclo for è range, la cui sintassi è: Solo il parametro fine è obbligatorio, mentre inizio e passo opzionali: L iterazione va fino a fine escluso In mancanza di inizio, l interazione parte da 0 In mancanza di passo, il passo di default è 1 Il passo può essere inserito solo se è presente anche l inizio Se inizio è maggiore (o uguale) a fine, il for non verrà eseguito (a meno di un passo negativo) 26

27 Iteratori: esempi La variabile i va da 0 a 10 (escluso) con passo 1 La variabile i va da 20 a 30 (escluso) con passo 1 La variabile i va da 10 a 60 (escluso) con passo 5 La variabili i va da 20 a 10 (escluso) con passo -1 27

28 Break e continue Il comando break serve per uscire dall esecuzione di un ciclo (in questo caso, NON viene eseguito l eventuale else del ciclo) Il comando continue serve per saltare all iterazione successiva del ciclo 28

29 Liste, dizionari e insiemi in Python

30 Liste Le liste sono oggetti di dimensioni variabili che contengono altri oggetti in un ordine preciso dato dall inserimento Le liste possono contenere diversi tipi Differenza tra liste Python e array in C (tipi diversi e lunghezza dinamica) C - Gli array non possono contenere elementi di tipi diversi - Gli array non possono cambiare la propria dimensione Python - Le liste possono contenere elementi di tipi diversi - Una lista può cambiare la propria dimensione 30

31 Creazione di una lista Una lista può essere creata in due modi: Operatore [ ] Funzione list() quindi evitate di chiamare una lista list! Esempi di creazione con l operatore [ ] [ ] crea una lista vuota [val1, val2, val3] crea una lista a partire dai valori inseriti Esempi di creazione con la funzione list() list() crea una lista vuota list(iteratore) crea una lista a partire dall iteratore 31

32 Lettura, inserimento e rimozione di elementi Lettura lista[indice] dove indice è la posizione dell elemento a cui voler accedere Inserimento append(val) inserisce l elemento val in coda alla lista insert(indice, val) inserisce un valore in posizione indice 32

33 Lettura, inserimento e rimozione di elementi Rimozione pop(indice) rimuove l elemento alla posizione indice remove(val) rimuove la prima occorenza del valore val 33

34 Scorrere gli elementi di una lista Per scorrere una lista solitamente si usa un ciclo for come in C E anche possibile iterare direttamente sulla lista In questo caso i assume il valore di ognuno degli elementi presenti all interno della lista 34

35 Altre operazioni sulle liste E possibile usare indici negativi sulle liste: -1 restituisce l ultimo elemento, -2 il penultimo, La funzione reverse() inverte una lista stessa 35

36 Altre operazioni sulle liste E possibile concatenare due liste con l operatore + Si può creare una lista di N elementi uguali moltiplicando una lista contenente gli elementi desiderati per N 36

37 Liste di liste Una lista può essere definita all interno di un altra lista Per accedere ad un certo elemento di una delle liste, si accede prima alla lista di interesse e poi all elemento corrispondente 37

38 Definire matrici tramite liste Le matrici in Python possono essere definite come lista di liste La lista più esterna contiene le righe della matrice, quelle più interne gli elementi delle colonne relative a quella riga Esempi di creazione di matrice Si possono creare matrici con righe di dimensioni diverse 38

39 List comprehension List comprehension è un metodo che permette di costruire liste in maniera veloce e compressa Si crea una lista a partire da una descrizione inserita tra [ ] x indica il valore che voglio andare ad inserire nella lista Il valore inserito nella lista può essere anche il risultato di operazioni 39

40 List comprehension La lista può essere costruita usando anche condizioni (if-else) E possibile costruire una matrice con list comprehension 40

41 Operatore ternario Questa list comprehension si basa su un operatore ternario, ossia un operatore che restituisce un certo valore basandosi sul fatto che una condizione sia vera o falsa Se la condition è vera, l output dell istruzione sarà il valore cond_true, altrimenti il valore cond_false 41

42 Tipi immutabili e mutabili Tipi immutabili Tipi mutabili int float bool str tuple list dict set I tipi immutabili vengono passati per copia alle funzioni: La funzione riceve una copia dei parametri Le modifiche ai parametri non vengono viste al di fuori della funzione I tipi mutabili vengono passati per riferimento alle funzioni: La funzione riceve il riferimento dei parametri (stile array in C) Le modifiche ai parametri vengono viste al di fuori della funzione 42

43 Dizionari I dizionari in Python sono uno strumento molto potente che consente di organizzare i dati sotto forma di coppie <chiave, valore> Data una chiave, è possibile chiedere al dizionario di fornirci il relativo valore (se presente) La chiave deve essere un tipo immutabile (int, float, str, ) mentre il valore può essere di qualunque tipo I dizionari vengono usati comunemente per salvare delle associazioni: Dato il nome ed il cognome di una persona (chiave), recuperare il suo numero telefonico (valore di tipo intero) Dato il nome di un corso (chiave) recuperare la lista dei docenti che hanno insegnato quel corso (valore di tipo lista) Dato il nome di una città (chiave) recuperare l elenco telefonico degli abitanti di quella città (valore di tipo dizionario) 43

44 Creare un dizionario Un dizionario può essere creato in due modi: Operatore {} Funzione dict() Esempi di creazione con l operatore {} chiave Esempi di creazione con la funzione dict() valore 44

45 Aggiungere, modificare e rimuovere elementi Per aggiungere un elemento al dizionario o modificarlo se già esiste, si utilizzano le parentesi quadre: Per rimuovere un elemento dal dizionario partendo dalla sua chiave, si usa pop(chiave): 45

46 Accedere agli elementi di un dizionario Il numero di elementi presenti nel dizionario si ottiene usando len(dizionario) Per leggere il valore corrispondente ad una chiave si usano ancora le parentesi quadre Per verificare se una chiave esiste si può utilizzare l operatore in: 46

47 Iterare sugli elementi di un dizionario Un dizionario dà la possibilità di iterare sulle chiavi presenti al suo interno. Sfruttando le chiavi è poi possibile ottenere i valori corrispondenti Esempio: 47

48 Insiemi L insieme in Python è un tipo di dato che ha proprietà simili agli insiemi matematici Un insieme contiene un certo numero di elementi tutti distinti tra loro Gli elementi di un insieme non sono ordinati (come accade invece per le liste) Gli insiemi vengono comunemente usati per verificare la presenza o meno di un certo elemento 48

49 Creazione di un insieme Creazione di un insieme vuoto con set() Creazione di un insieme partendo da un iteratore set(iteratore) Creazione di un insieme a partire da una lista con set(lista) (elementi duplicati vengono considerati una sola volta) 49

50 Insiemi: operazioni base Inserimento di un nuovo elemento con add(elemento) (inserimenti multipli non hanno effetto) Rimozione di un elemento con discard(elemento) (la rimozione di un elemento non presente non genera errore) Verificare la presenza di un elemento usando in 50

51 Iterare sugli elementi di un insieme Per ottenere il numero di elementi presenti in un insieme, utilizzare la funzione len(insieme): Per scorrere uno ad uno gli elementi di un insieme è sufficiente usare il seguente ciclo for: 51

52 Insiemi: unione, intersezione, differenza Unione C tra l insieme A e l insieme B (l insieme di tutti gli elementi contenuti in A o in B): Intersezione C tra l insieme A e l insieme B (l insieme di tutti gli elementi contenuti in A e in B): Differenza C tra l insieme A e l insieme B (l insieme di tutti gli elementi contenuti in A ma non in B): Per scoprire quali altre operazioni sono possibili sugli insiemi, utilizzate la funzione help ( help(set()) ) 52

53 Funzioni in Python

54 Funzioni Le funzioni sono porzioni di programma riutilizzabili, che possono essere richiamate quando necessario Una funzione Python può ricevere 0 o più parametri e generare 0 o più output Differenza tra funzioni Python e funzioni C C - Le funzioni possono ritornare al più un risultato - Occorre dichiarare il tipo dei parametri e del risultato - Se necessario o lo si desidera, è possibile definire un prototipo Python - Le funzioni possono ritornare più risultati - Non occorre dichiarare i tipi dei parametri ed il tipo di risultato - Le funzioni vengono definite/ridefinite dinamicamente: no prototipi 54

55 Definizione e chiamata di una funzione Per definire una funzione si utilizza la parola chiave def seguita dal nome della funzione e dai nomi degli input (attenzione ai : finali ed all indentazione del codice!): La chiamata di funzione si esegue specificando il nome della funzione seguita degli eventuali valori di input NOTA: al momento della chiamata, la funzione deve essere stata definita 55

56 Passaggio di parametri - esempi Qual è l output? 56

57 Passaggio di parametri - esempi 2) Il valore di var viene copiato in a 3) modifica del valore di a 1) var assume il tipo int Qual è l output? 57

58 Passaggio di parametri - esempi Qual è l output? 58

59 Passaggio di parametri - esempi 2) a prende il riferimento di var 3) modifica all oggetto a cui a si riferisce 1) var assume il tipo list Qual è l output? 59

60 Passaggio di parametri - esempi Qual è l output? 60

61 Passaggio di parametri - esempi 2) a prende il riferimento di var 3) a riceve il riferimento di una nuova lista 1) var assume il tipo list Qual è l output? 61

62 Funzioni: ritornare i risultati Per ritornare un risultato, è necessario utilizzare la parola chiave return separando i valori ritornati da virgola 62

63 Introduzione alle classi in Python

64 Classi Le classi sono delle strutture dati il cui scopo è quello di contenere variabili di tipo diverso e funzioni utili a fornire funzionalità relative ad un certo dato che si vuole rappresentare A differenza delle struct presenti in C, le classi possono contenere anche funzioni Una istanza di una classe si chiama oggetto C Python Dichiarazione di variabili o funzioni 64

65 Namespace Quando si crea una classe (vale anche per le funzioni), le variabili/funzioni che si dichiarano risiedono all interno dello spazio dei nomi (namespace) generato per quella classe/funzione Il namespace è un mapping da nomi a oggetti (simile ad un dizionario) che permette di invocare gli attributi e funzioni definite all interno di quel namespace Ad esempio, quando parte l interprete Python, alcune funzioni sono già presenti all interno del namespace iniziale, come print() E possibile aggiungere funzioni/attributi e altri namespace ad uno namespace tramite il comando import 65

66 Scope Lo scope è una regione testuale di un programma Python in cui è possibile invocare direttamente attributi/funzioni di un namespace Attributi/funzioni di una classe possono essere chiamati in modo diretto solo all interno della classe stessa, mentre, da fuori, è necessario usare un oggetto della classe per chiamarli (tramite l utilizzo del. ) All interno di uno scope, è possibile anche ridefinire attributi/funzioni definite in scope più esterni 66

67 Esempio var globale var ridefinita da test_scope Tramite global, test_scope modifica var 67

68 Definizione classe Per definire una classe, si usa la keyword class: class nomeclasse: All interno della definizione della classe, si possono dichiarare attributi e funzioni Il parametro self serve per indicare le variabili/funzioni definite dentro la classe, dall interno della classe stessa Creazione oggetto self non va passato durante l invocazione della funzione 68

69 Funzione init E possibile definire all interno della classe una funzione speciale chiamata init che serve per inizializzare gli attributi della classe durante la sua creazione Non è necessario che gli attributi siano già stati dichiarati a e b non erano già stati dichiarati I valori di a e b vanno passati durante la creazione dell oggetto 69

70 Ereditarietà Una classe può essere creata a partire da un altra classe già esistente e più generica La nuova classe eredita tutti gli attributi e funzioni definite nella classe padre L ereditarietà serve per specializzare una classe rispetto ad una classe generica Per ereditare da una classe padre, la sintassi è: class classefiglio(classepadre): Python supporta anche l ereditarietà multipla con la seguente sintassi: class classefiglio(classepadre1, classepadre2, classepadre3): 70

71 Esempio Classe da cui si eredita pass serve per non dover specificare l implementazione di una classe, funzione, if ecc. 71

72 Overriding L overriding si usa per ridefinire, all interno della classe figlio, funzioni che sono state già definite dalla classe padre, in modo da renderle più specifiche per il figlio Per eseguire l overriding, basta ridefinire una funzione usando lo stesso nome Di solito si esegue l overriding del costruttore init 72

73 Esempio Overriding della funzione init La funzione printval appartiene solo a classefiglio, non può essere chiamata da classepadre 73

74 File in Python

75 File Python fornisce varie funzionalità per operare su file In particolare, permette di: Aprire, Leggere, Scrivere, Chiudere file La documentazione per l utilizzo di funzioni di I/O è disponibile qui: 75

76 Funzioni su file Apertura file f = open(filename, mode) Nome del file Modalità di apertura: r : lettura w : scrittura (elimina il precedente contenuto) x : crea un nuovo file per la scrittura a : scrive in coda b : modalità binaria t : modalità testuale + : apre un file per aggiornarlo Chiusura file f.close() 76

77 Funzioni su file Lettura file out = f.read(size) out = f.readline() Legge size caratteri Se omesso, legge fino alla fine del file Scrittura file f.write(stringa) Legge una riga del file Scrive una stringa su file E quindi necessario convertire i dati in stringhe per scriverli 77

78 Funzioni su file Posizione corrente nel file out = f.tell() Restituisce la posizione corrente all interno del file Cambiare posizione nel file f.seek(offset, da_dove) Offset: spiazzamento di caratteri rispetto ad un punto di riferimento da_dove: punto di riferimento Se 0: inizio file (valore di default) Se 1: posizione corrente Se 2: fine file 78

79 Esempio file Se il file non è aperto in modalità binaria, la funzione seek può avere come punto di riferimento solo l inizio del file 79

80 Link utili Sito hackathon Documentazione di Python 3 Manuale gratuito di Python 3 Codecademy corso interattivo di Python Documentazione di Pynq Documentazione di NumPy Documentazione di matplotlib 80

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa. 3 ITI - a.s. 2007-2008 Compiti di Informatica ESTATE 2008 ARRAY E STRINGHE Scrivere una funzione che carica da tastiera un array di n elementi e lo stampa invertendo il primo elemento con l'ultimo, il

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente

Dettagli

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

Linguaggio C: le funzioni. Introduzione e sintassi

Linguaggio C: le funzioni. Introduzione e sintassi ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio [email protected] Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

INDICE. Vista Libretto Pt. Coordinate 2. Inserimento e modifica dei punti di coordinate note 4. Inserimento e modifica dei punti di orientamento 5

INDICE. Vista Libretto Pt. Coordinate 2. Inserimento e modifica dei punti di coordinate note 4. Inserimento e modifica dei punti di orientamento 5 Prodotto da INDICE Vista Libretto Pt. Coordinate 2 Inserimento e modifica dei punti di coordinate note 4 Inserimento e modifica dei punti di orientamento 5 Menu File Importa 5 Menu File Esporta 6 Uscite

Dettagli

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22 Lezione 21 e 22 - Allocazione dinamica delle matrici - Generazione di numeri pseudocasuali - Funzioni per misurare il tempo - Parametri del main - Classificazione delle variabili Valentina Ciriani (2005-2008)

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

Stringhe e allocazione dinamica della memoria

Stringhe e allocazione dinamica della memoria Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi

Dettagli

Access. P a r t e t e r z a

Access. P a r t e t e r z a Access P a r t e t e r z a 1 Query: Concetti generali (2) Query 1 Tabella Query 2 Le query rappresentano viste differenti sul DB (possono coinvolgere una o più tabelle) 2 Creazione (1) Diverse possibilità,

Dettagli

Strutture di Controllo

Strutture di Controllo Introduzione Strutture di Controllo per strutture condizionali e cicliche Quando si affronta la programmazione si devono indicare al computer delle istruzioni da eseguire. Se il computer potesse comprendere

Dettagli

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna: Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VIII Tatiana Zolo [email protected] 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

Video Scrittura (MS Word) Prima Parte

Video Scrittura (MS Word) Prima Parte Video Scrittura (MS Word) Prima Parte Ripasso/approfondimento: Gestione Cartelle/File Crea una cartella UTE Informatica Base sul Desktop Click destro sul Desktop Posizionarsi su Nuovo Cliccare su Cartella

Dettagli

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione

Dettagli

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m

Dettagli

28/02/2014 Copyright V. Moriggia

28/02/2014 Copyright V. Moriggia Informatica per la Finanza 3 Le variabili in VBA Altri I/O 28/02/2014 Copyright 2005-2007 V. Moriggia 1 28/02/2014 3.2 Le variabili in VBA V. Moriggia 1 28/02/2014 3.3 Dichiarazione di variabili in VBA

Dettagli

Formule e funzioni. Manuale d uso

Formule e funzioni. Manuale d uso EXCEL Modulo 2 Formule e funzioni Manuale d uso Formule (1/2) Le formule sono necessarie per eseguire calcoli e utilizzano i valori presenti nelle celle di un foglio di lavoro. Una formula inizia col segno

Dettagli

5 - Istruzioni condizionali

5 - Istruzioni condizionali 5 - Istruzioni condizionali Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Strutture Dinamiche. Fondamenti di Informatica

Strutture Dinamiche. Fondamenti di Informatica Strutture Dinamiche Fondamenti di Informatica 1 Indice Allocazione e de-allocazione di memoria Liste e loro gestione Companies, srl 2 Allocazione e cancellazione di memoria malloc (sizeof (TipoDato));

Dettagli

perror: individuare l errore quando una system call restituisce -1

perror: individuare l errore quando una system call restituisce -1 perror: individuare l errore quando una system call restituisce -1 Quando una system call (o una funzione di libreria) non va a buon fine, restituisce come valore -1 Come si fa a sapere più precisamente

Dettagli

Fondamenti di Informatica T1 Mappe

Fondamenti di Informatica T1 Mappe Fondamenti di Informatica T1 Mappe Tutor Melissa Licciardello [email protected] Melissa Licciardello Fondamenti di Informatica T1 1 / 16 Mappe Matrice N x 2 : Gli elementi della prima colonna,

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

Quando usiamo Python in modo interattivo in genere e' lo shell utilizzato che gestisce l'indentazione e la deindentazione.

Quando usiamo Python in modo interattivo in genere e' lo shell utilizzato che gestisce l'indentazione e la deindentazione. INDICE Indentazione note sull'indentazione in script e moduli scritti con un editor di testo. istruzione if Truth testing in cicli if e while istruzione for istruzione while Uscita dai cicli for e while

Dettagli

Introduzione al Python

Introduzione al Python Andrea Passerini [email protected] Informatica Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti

Dettagli

Array multidimensionali e stringhe

Array multidimensionali e stringhe Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Array uni-dimensionali (richiami) Dichiarazione: int vet[100]; float x[50]; Gli elementi

Dettagli

Introduzione al Foglio Elettronico

Introduzione al Foglio Elettronico Microsoft Excel Introduzione al Foglio Elettronico Il Foglio Elettronico Si presenta come una grande tabella le cui righe e colonne si intersecano in celle Le celle possono contenere differenti dati Numeri

Dettagli

Programmazione in Python. Moreno Marzolla

Programmazione in Python. Moreno Marzolla Programmazione in Python Moreno Marzolla http://www.moreno.marzolla.name/ Copyright 2011, Moreno Marzolla (http://www.moreno.marzolla.name/teaching/labinf2011/) This work is licensed under the Creative

Dettagli

Codice Gray. (versione Marzo 2007)

Codice Gray. (versione Marzo 2007) Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.

Dettagli

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base Istituto Tecnico Industriale M. M. Milano Polistena Classe III D a.s. 2015/2016 C++ Guida Base Prof. Rocco Ciurleo - ITIS M. M. Milano Polistena - 3 D a.s. 2015/2016 1 Le Origini Il Linguaggio C++ è il

Dettagli

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come

Dettagli

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio C - sezione dichiarativa: costanti e variabili Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente

Dettagli

Capitolo 4: Tabelle. y(x) = x 3 ì 2x. Capitolo 4: Tabelle 67. Nota: le tabelle non sono disponibili nel modo di rappresentazione grafica 3D.

Capitolo 4: Tabelle. y(x) = x 3 ì 2x. Capitolo 4: Tabelle 67. Nota: le tabelle non sono disponibili nel modo di rappresentazione grafica 3D. Capitolo 4: Tabelle 4 Definizione di tabelle...68 Panoramica della procedura per generare una tabella...69 Impostazione dei parametri di tabella...70 Visualizzazione di una tabella in modo automatico...72

Dettagli

Introduzione al software R

Introduzione al software R Introduzione al software R 1 1 Università di Napoli Federico II [email protected] il software R Si tratta di un software molto flessibile che permette di compiere praticamente qualsiasi tipo di

Dettagli

3. Le routine evento in Access 2000/2003

3. Le routine evento in Access 2000/2003 LIBRERIA WEB 3. Le routine evento in Access 2000/2003 Le routine evento possono essere associate a un singolo controllo grafico (caselle di testo, pulsanti di comando, ecc.) presente all interno di una

Dettagli

Precorsi di matematica

Precorsi di matematica Precorsi di matematica Francesco Dinuzzo 12 settembre 2005 1 Insiemi Il concetto di base nella matematica moderna è l insieme. Un insieme è una collezione di elementi. Gli elementi di un insieme vengono

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

Il linguaggio C. Notate che...

Il linguaggio C. Notate che... Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione

Dettagli

La sintassi del C APPENDICE H

La sintassi del C APPENDICE H APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i

Dettagli

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro; EXCEL Modulo 3 I Grafici Grafici Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro; Quando si crea un grafico ogni

Dettagli

Lettura da tastiera e scrittura su monitor

Lettura da tastiera e scrittura su monitor Lettura da tastiera e scrittura su monitor Per poter leggere UN SINGOLO CARATTERE dalla tastiera e visualizzare UN SINGOLO CARATTERE sul monitor si possono utilizzare le funzioni: int getchar (void) (per

Dettagli

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1 Matlab 5 Funzioni Slide basate sul corso di C. Blundo A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 1 Funzioni Le funzioni sono utili quando occorre ripetere una serie di comandi più

Dettagli

VBA Principali Comandi

VBA Principali Comandi VBA Principali Comandi Sintassi Significato Esempio Dim As Dichiarazione Dim x As Integer di una variabile Dim , , ,.,

Dettagli

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un

Dettagli

Lab 01 Introduzione a Codelite

Lab 01 Introduzione a Codelite Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2011/2012 Lab 01 Introduzione a Codelite Lab01

Dettagli

Heap e code di priorità

Heap e code di priorità Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Esercitazione 4. Comandi iterativi for, while, do-while

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

Dettagli

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C... Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...

Dettagli

Analizzatori Lessicali con JLex. Giuseppe Morelli

Analizzatori Lessicali con JLex. Giuseppe Morelli Analizzatori Lessicali con JLex Giuseppe Morelli Terminologia Tre concetti sono necessari per comprendere la fase di analisi lessicale: TOKEN: rappresenta un oggetto in grado di rappresentare una specifica

Dettagli

4 GLI ARRAY E LE STRINGHE

4 GLI ARRAY E LE STRINGHE 13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione (con linguaggio di riferimento C++) Gianfranco Rossi Università di Parma Dip. di Matematica e Informatica 43100 Parma (Italy) [email protected] Indice 1 Introduzione

Dettagli

Introduzione al DEV C++

Introduzione al DEV C++ Introduzione al DEV C++ : Anno accademico 2006/2007 Fondamenti di informatica I Sommario 1. INTRODUZIONE... 3 2. SETUP... 5 2.1. Procedura di installazione... 5 2.2. Configurazione... 8 2.2.1. Opzioni

Dettagli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)

Dettagli

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente. HOMEWORKS Questi esercizi saranno proposti di tanto in tanto e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di

Dettagli

Costrutti condizionali e iterativi

Costrutti condizionali e iterativi Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni

Dettagli

Excel. I fogli di calcolo Le funzioni base Gli strumenti. 1

Excel. I fogli di calcolo Le funzioni base Gli strumenti.  1 Excel I fogli di calcolo Le funzioni base Gli strumenti www.vincenzocalabro.it 1 I fogli di calcolo Utilizzando questo programma possiamo costruire fogli di calcolo più o meno complessi che ci consento

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Mappe Tutor: Allegra De Filippo [email protected] a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 1 Mappe: definizione Tabelle a due colonne:

Dettagli