Fondamenti di Programmazione



Похожие документы
Il linguaggio Python

Il linguaggio Python

Laboratorio di Informatica

Introduzione al Python

Calcolare il massimo di una lista

Introduzione alla programmazione in C

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Python. Valerio Perticone

Le variabili. Olga Scotti

Funzioni in C. Violetta Lonati

Variabili e tipi di dato

Introduzione al MATLAB c Parte 2

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it

4 3 4 = 4 x x x 10 0 aaa

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Uso di base delle funzioni in Microsoft Excel

Richiesta pagina PHP (es: index.php)

Alcune regole di base per scrivere un programma in linguaggio C

Codifica: dal diagramma a blocchi al linguaggio C++

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

LINGUAGGI DI PROGRAMMAZIONE

PYTHON CHEAT SHEET. Rapido documentazione di consultazione per istruzioni, funzioni e tipi in Python. #stampa le variabili x e y

Guida all uso di Java Diagrammi ER

Struttura di un programma Java

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

FORMULE: Operatori matematici

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Informatica. Rappresentazione dei numeri Numerazione binaria

Strutture di controllo del flusso di esecuzione

Esercizi su. Funzioni

Vettori ed assegnamenti in R

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Usare Python in Linux

Analizzatore lessicale o scanner

Utilizzo delle formule in Excel

Descrizione di un algoritmo

Elementi di Algebra Relazionale

Javascript: il browser

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Introduzione al linguaggio C Gli array

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

un file in formato FASTA contenente un elenco di sequenze una espressione regolare una indicazione se si tratta di DNA,RNA,proteine

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

ci sono più problemi che programmi esiste un problema che non si può risolvere con un programma

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Arduino: Programmazione

I sistemi di numerazione

Corso di Informatica

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Gli algoritmi: definizioni e proprietà

Aritmetica: operazioni ed espressioni

Informatica pratica. File e cartelle

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

STRINGHE di un ALFABETO. Consideriamo un alfabeto di simboli V V è un insieme finito e non vuoto. Alfabeto della lingua inglese I={a,b,c,..

Ricorsione. (da lucidi di Marco Benedetti)

+ / operatori di confronto (espressioni logiche/predicati) / = > < Pseudo codice. Pseudo codice

Concetto di Funzione e Procedura METODI in Java

Algoritmi e strutture dati. Codici di Huffman

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

GESTIONE INFORMATICA DEI DATI AZIENDALI

Le stringhe. Le stringhe

Linguaggio C - Stringhe

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Programmare in Java. Olga Scotti

Matematica e giochi di gruppo

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

SISTEMI DI NUMERAZIONE E CODICI

Metodi Stocastici per la Finanza

La Stampa Unione. Individuare la lista indirizzi per la Stampa Unione

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Metodologie di programmazione in Fortran 90

BIEMMEPI RE-IMPARA A SCRIVERE. E presenta PLATE, un programma semplice ed intuitivo per l incisione di targhe.

Il file seme o file modello del disegno

Introduzione all Information Retrieval

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

Alla scoperta della nuova interfaccia di Office 2010

COMPILAZIONE DI UN APPLICAZIONE. 1) Compilare il file (o i file se più d uno) che contengono il testo del programma. compilatore

Introduzione a Dev-C++

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Транскрипт:

Fondamenti di Programmazione Capitolo 2 Variabili, Espressioni e Comandi Prof. Mauro Gaspari: gaspari@cs.unibo.it

Valori e Tipi Un valore (= value) è una delle entità fondamentali che i programmi sono in grado di manipolare (ad esempio un valore può essere un numero o una lettera). Fino ad ora abbiamo visto 2 valori: 2 (il risultato di 1 + 1. Hello, World! Ad ogni valore è associato un tipo (= type) ad esempio: 2 è un intero (tipo int in python) Hello, World! è una stringa (tipo string in python)

Tipo string string indica una sequenza di caratteri in inglese). Sia noi che l'interprete python possiamo riconoscere le stringhe perchè sono scritte tra virgolette. Interprete: NB1. Il comando print funziona per gli interi e per gli altri tipi. NB1. L'interprete e' in grado di stabilire il tipo di un valore con il comando type: type(valore). Tipo float per numeri con il punto decimale (perche' sono in virgola mobile floating point in inglese).

Stringhe e Numeri Interprete: Numeri tra virgolette come 17, 3.5 sono stringhe! Numeri con la virgola 1,000,000 non sono proprio numeri! NB. primo esempio di errore semantico: il codice viene eseguito senza errori ma l'argomento viene preso come una sequenza (lista) di numeri.

Variabili Una variabile (= variable) e' un nome a cui viene associato (che riferisce a) un certo valore. NB. Le variabili sono comunemente utilizzate in tutti i linguaggi di programmazione: A volte la loro definizione tecnica si scosta un po' da quella appena data per python. Pero' il concetto intuitivo di legame tra nome e (possibile) valore e' in genere comune a tutti i linguaggi di programmazione ad alto livello.

Assegnamento Il comando di assegnamento (= assignment) crea nuove variabili e associa ad esse un valore. Esempio nell'interprete: >>> message = What's up, Doc? >>> n = 17 >>> pi = 3.14159

Diagramma di stato Si può usare un diagramma di per indicare i valori associati alle singole variabili in un certo momento (diagramma di stato). Spesso utile in fase di debugging.

Ancora assegnamento >>> s = PIPPOLONE >>> Nomi message n pi S riferisce a Valori "What's is up, Doc? 17 3.14159 "PIPPOLONE

Ancora Assegnamento >>> K = S >>> Nomi message n pi S K riferisce a Valori "What's is up, Doc? 17 3.14159 "PIPPOLONE

Tipo delle variabili Anche le variabili hanno associato un tipo. Il tipo di una variabile e' il tipo del valore a cui questa riferisce. Interprete Il comando print funziona anche sulle variabili! Il comando type funziona nche sulle veriabili!

Nomi di variabili Un buon programmatore in genere sceglie i nomi delle variabili per ricordare per cosa sono utilizzate queste variabili. I nomi delle variabili possono essere di lunghezza arbitraria (in genere questo vale per quasi tutti i linguaggi ad alto livello moderni). I nomi delle variabili devono iniziare con una lettera e possono contenere sia lettere che numeri. Il carattere underscore ( _ ) puo' apparire nel nome di una variabile, ad esempio il_mio_nome e' un nome legale di variabile (utile per nomi con piu' parole). Nomi scoretti generano errori sintattici.

Esempi di nomi scorretti >>> 76trombones = "big parade" SyntaxError: invalid syntax >>> more$ = 1000000 SyntaxError: invalid syntax >>> class = "Computer Science 101" SyntaxError: invalid syntax La prima inizia con un numero. La seconda ha il carattere illegale $. Quale e' il problema dell'ultima?

Parole chiave Il problema e' che class e' una parola chiave (= keyword) di python. Python ha 28 parole chiave che non possono essere utilizzate come nomi di variabili. Le parole chiave sono utilizzate per le istruzioni del linguaggio. and continue else for import not raise assert def except from in or return break del exec global is pass try class elif finally if lambda print while

Comandi Un comando (= statement) e' un istruzione che puo' essere eseguita dall'interprete python. Quando si scrive un comando sulla riga di comando dell'interprete, python lo esegue e stampa il risultato. NB. ci sono comandi come l'assegnamento che non producono risultati. Uno script di solito contiene una sequenza di comandi. Interpete: esempi di comandi e script.

Valutazione di espressioni Un espressione (= expression) e' una combinazione di valori, variabili e operatori. L'interprete valuta le espressioni e se puo' restituisce un valore. Esempi con l'interprete NB1. le espressioni più semplici sono costituite solo da valori. >>> 17 17 >>> x 2

Differenza tra stampa e valutazione NB. Anche se in alcuni casi l'interprete sembra restituire le stesse coso i concetti di stampa e valutazione sono molto diversi tra loro. Quando l'interprete restituisce un valore lo restituisce cosi' come e'. Quindi questo puo' essere riutilizzato ad esempio assegnato ad una variabile. La stampa invece scrive sul video (vedremo anche da altre parti per esempio su un file) il valore dell'espressione. NB. Questa espressione non puo' essere riutilizzata dall'interprete, ad esempio assegnata ad una variabile.

Esempio interprete >>> message = "What's up, Doc?" >>> message "What's up, Doc?" >>> print message What's up, Doc?

Assegnamento e Espressioni Le espressioni possono essere utilizzate nella parte destra di un assegnamento. NB. la parte sinistra di un assegnamento deve essere sempre un nome di variabile.

Esempi >>> print 1 + 1 2 >>> t = 1 + 1 >>> t 2 >>> t = print 1 + 1 File "<stdin>", line 1 t = print 1 + 1 ^ SyntaxError: invalid syntax >>> print 1 + 1 2

Espressioni negli script Un espressione e' un comando legale in uno script ma non producono risultati. Ad esempio questo script non restituisce risultati. Come fare per stampare qualcosa? 17 3.2 "Hello, World!" 1 + 1

Operatori e Operandi Le espressioni in python si costruiscono con operatori. Gli operatori (= operators) sono simboli speciali che rappresentano operazioni (ad esempio funzioni matematiche). I valori utilizzati dagli operatori si chiamano operandi. Operatori matematici: +,, /, * (moltiplicazione), ** (esponente).

Espressioni con operatori 20+32 hour 1 hour*60+minute minute/60 5**2 (5+9)*(15 7) Se un espressione con un operatore contiene una variabile anche questa viene valutata e quindi sostituita con il suo valore. Esempi interprete.

Esempio espressioni matematiche >>> minute = 59 >>> minute/60 0 Come mai? nell'aritmetica convenzionale 59/60=0.98333 ma python sta eseguendo la divisione intera perche' i due operandi sono interi. di solito la divisione intera arrotonda con il troncamento: 0.98333 > 0.98333

Precedenza degli operatori La precedenza degli operatori stabilisce delle regole precise riguardo la valutazione delle espressioni con più operatori. Regole generali (PEMDAS): P: le parentesi hanno la precedenza maggiore. E: esponenziale. 2**1+1 > (2**1)+1 da risultato 3 MD: moltiplicazione e divisione con stessa precedenza. AS: addizione e sottrazione con stessa precedenza. 2*3 1 > (2*3) 1 da risultato 5 2/3 1 > (2/3) 1 da risultato 1 (NB 2/3 = 0 e' la div intera)

Operatori su stringhe In genere non è possibile effettuare operazioni matematiche su stringhe anche se le stringhe contengono numeri. Le seguenti operazioni sono illegali: message 1 "Hello"/123 message*"hello" "15"+2 Notare che in realta' l'operatore + funziona sulle stringhe: infatti realizza l'operazione di concatenazione tra stringhe: >>> pippo + pluto pippopluto Anche l'operatore * funziona sulle stringhe e realizza l'operazione di ripetizione: ha come argomenti una stringa e un intero: >>> pippo *3 pippopippopippo

Esempi operatori su stringhe >>>fruit = "banana" >>>bakedgood = " nut bread" >>>print fruit + bakedgood banana nut bread

Commenti Quando i programmi diventano piu' lunghi e strutturati a volte diventa difficile, guardando un pezzo di codice, capire cosa questo fa'. Utile in fase di debugging o di aggiornamento del codice. E' una prassi comune aggiungere al codice commenti (in genere tutti i linguaggi di programmazione ad alto livello lo permettono). In python i commenti iniziano con il simbolo #. Tutto quello che segue il simbolo # viene ignorato fino alla fine della riga dove si trova.

Esempio commenti Tipologie di commenti: documentare il significato delle operazioni; segnalare possibili fonti di errori; segnalare modifiche al codice. # compute the percentage of the hour that has elapsed percentage = (minute * 100) / 60 percentage = (minute * 100) / 60 # att. divisione int

Assegnamento e riferimenti Cosa accade in realtà, un esempio...

Nomi Valori >>> s = PIPPOLONE >>> s Riferisce a "PIPPOLONE

Nomi Valori >>> s = PIPPOLONE >>> t = pluto >>> s Riferisce a "PIPPOLONE t "PLUTO

Nomi Valori >>> s = PIPPOLONE >>> t = PLUTO >>> i = 5 >>> print i 5 >>> s t Riferisce a "PIPPOLONE "PLUTO i 5

Nomi Valori >>> s = PIPPOLONE >>> t = PLUTO >>> i = 5 >>> print i 5 >>> t = s s t Riferisce a "PIPPOLONE "PLUTO i 5

>>> s = PIPPOLONE >>> t = PLUTO >>> i = 5 >>> print i 5 >>> t = s >>> print a Traceback (most... File "<stdin>", line. NameError: name 'a' is not defined >>> Nomi s t Riferisce a i 5 Valori "PIPPOLONE

>>> s = PIPPOLONE >>> t = PLUTO >>> i = 5 >>> print i 5 >>> t = s >>> print a Traceback (most... File "<stdin>",... NameError: name 'a' is not defined >>> S = MINNI >>> print t PIPPOLONE s "PIPPOLONE t "MINNI i 5

>>> s = PIPPOLONE >>> t = PLUTO >>> i = 5 >>> print i 5 >>> t = s >>> print a Traceback (most... File "<stdin>",... NameError: name 'a' is not defined >>> S = MINNI >>> print t PIPPOLONE >>> del t >>> print t Traceback (most... File "<stdin>",... NameError: name 't' is not defined s i 5 "MINNI