Programmazione Introduzione. Tipi numerici.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione Introduzione. Tipi numerici."

Transcript

1 Programmazione Introduzione. Tipi numerici. Samuel Rota Bulò DAIS Università Ca Foscari di Venezia

2 Outline Informazioni generali Introduzione alla programmazione Il linguaggio OCaML Numeri interi e reali

3 Il corso Docente : Samuel Rota Bulò (srotabul@dsi.unive.it) Ricevimento : da concordare via Homepage : srotabul/programming.html

4 Testi di riferimento M. Hailperin, B. Kaiser, K. Knight. Concrete Abstractions. ( J. Hickey. Introduction to Objective Caml. ( Emmanuel Chailloux, Pascal Manoury and Bruno Pagano. Developing Applications With Objective CaML. (

5 Outline Informazioni generali Introduzione alla programmazione Il linguaggio OCaML Numeri interi e reali

6 You think you know when you can learn, are more sure when you can write, even more when you can teach, but certain when you can program. Alan J. Perlis, Epigrams in Programming

7 A good programmer is someone who looks both ways before crossing a one-way street. Doug Linder, systems administrator

8 When someone says - I want a programming language in which I need only say what I wish done -, give him a lollipop. Alan J. Perlis, Epigrams in Programming

9 The only way to learn a new programming language is by writing programs in it. B. Kernighan & D. Ritchie

10 Cosa significa programmare? Programmare significa estendere le capacità di una macchina con nuove funzionalità finalizzate a risolvere nuovi problemi. Il compito del programmatore è insegnare alla macchina il procedimento attraverso il quale un determinato problema può essere risolto. Il linguaggio con cui il programmatore comunica questo procedimento alla macchina è detto linguaggio di programmazione.

11 Problem-solving Un bravo programmatore deve essere in grado di: 1. analizzare un problema (generalmente espresso in linguaggio naturale); 2. esprimerlo in modo astratto e formale (magari, aiutandosi con esempi); 3. formalizzare un procedimento risolutivo in un linguaggio preciso (algoritmo); 4. verificare che il procedimento sia corretto ed eventualmente rivisitarlo; 5. fare attenzione ai dettagli con atteggiamento auto-critico.

12 Insegnante Programmatore Insegnante Programmatore Studente Macchina Linguaggio di programmazione Linguaggio naturale L insegnante insegna allo studente degli algoritmi espressi in linguaggio naturale affinchè quest ultimo possa risolva problemi. Un programmatore in genere ha a che fare con macchine molto più stupide!

13 Macchina alla von Neumann Le macchine con cui abbiamo (comunemente) a che fare presentano un architettura alla von Neumann. Memory Control Unit Arithmetic Logic Unit Accumulator Input Output

14 Programmazione imperativa Paradigma di programmazione in cui la computazione è descritta mediante comandi che modificano lo stato del programma. Lo stato viene tipicamente modificato con comandi di assegnamento del tipo v = E o v := E. I comandi sono scritti sequenzialmente, separati tra di loro. È possibile esprimere condizioni, ripetizioni o organizzare il codice in procedure o funzioni. È il paradigma più diffuso: C, C++, Java, Pascal e derivati, Basic e derivati,... Caratteristiche strettamente legate all architettura di von Neumann.

15 Paradigma funzionale Radicalmente diverso dal paradigma imperativo. Il paradigma è slegato dalla macchina di von Neumann Paradigma di programmazione in cui la computazione è descritta mediante valutazioni di funzioni. Il programma è un espressione e l esecuzione del programma è la valutazione di questa espressione. In senso puro, un linguaggio funzionale non ha variabili e non ha stato. Non ci sono assegnamenti. Non c è sequenzialità dei comandi. Le funzioni sono alla base di tutto. Possono essere interpretate come valori, e possono essere argomento o valore di ritorno di altre funzioni. Al posto di istruzioni di ciclo vi è la ricorsione di funzioni.

16 Programma in astratto Siano σ 0 e σ n stato iniziale e finale di un programma Programma in un linguaggio imperativo Descrive una sequenza di comandi ci, i = 0,, n 1 tale per cui c σ 0 c 0 1 c σ1 2 c n 1 σ2 σn. Programma in un linguaggio funzionale Descrive una funzione f che dato l argomento σ 0 ritorna σ n σ n = f (σ 0 ).

17 Un esempio concreto: calcolo del fattoriale Fattoriale di n n! = n (n 1) 1, 0! = 1 Imperativo funzione FATTORIALE (n) x <- 1 mentre n>0 x <- n*x n <- n-1 ritorna x Funzionale funzione FATTORIALE (n) ritorna se n=0 1 altrimenti n * FATTORIALE(n-1)

18 Outline Informazioni generali Introduzione alla programmazione Il linguaggio OCaML Numeri interi e reali

19 Il linguaggio OCaML Linguaggio funzionale (non puro) Dialetto di ML (Meta-Language) Progetto Open Source dell INRIA (Istituto nazionale francese di ricerca in informatica) interprete/compilatore reperibile all indirizzo disponibile per Windows, Linux, Unix e MacOSX.

20 Alcune caratteristiche di ML Linguaggio funzionale: funzioni sono gli oggetti principali del linguaggio. Fortemente tipato: il tipo di ogni variabile ed espressione è determinato al momento della compilazione. Inferenza di tipo: i tipi delle espressioni vengono inferite. Raramente il programmatore assegna tipo direttamente. Polimorfismo: si possono scrivere funzioni che sono indipendenti dai tipi degli argomenti. Semantica formale: hanno interpretazione matematica.

21 Perchè OCaML? Didatticamente altri linguaggi funzionali sarebbero preferibili ad OCaML, come per es. Scheme. Infatti, OCaML non è un linguaggio funzionale puro, ma è prevalentemente funzionale. Utilizzato nel mondo del lavoro, ed è molto compatibile con F# (linguaggio della famiglia.net di Microsoft). Open source

22 L interprete OCaML Avviamo l interprete invocando ocaml Objective Caml version # L interprete rimane in attesa di espressioni da valutare. Le espressioni devono terminare con ;; per essere valutate. Per uscire digitare # exit 0;;

23 Outline Informazioni generali Introduzione alla programmazione Il linguaggio OCaML Numeri interi e reali

24 I numeri interi Il programma più semplice consiste in un numero: # 1;; - : int = 1 L interprete valuta l espressione ritornandone il valore 1 e il tipo int. Il tipo int rappresenta un sottoinsieme dei numeri interi Z. # ;; Integer literal exceeds the range of representable integers of type int Il tipo int in OCaML ha una rappresentazione a 32/64 bit a seconda dell architettura.

25 Alcune espressioni sugli interi # - -2;; (* Negazione *) - : int = 2 # 2 + 3;; (* Addizione *) - : int = 5 # 2-3;; (* Sottrazione *) - : int = -1 # 2 * 3;; (* Moltiplicazione *) - : int = 6 # 7 / 3;; (* Divisione intera *) - : int = 2 # 7 mod 3;; (* Modulo *) - : int = 1

26 Eccezioni Alcune espressioni possono generare degli errori controllabili chiamate eccezioni. Verranno approfondite più avanti. # 1 / 0;; (* Eccezione! *) Exception: Division by zero.

27 Forme alternative per i numeri interi Accanto alla forma decimale, possiamo esprimere un intero in forma ottale... # 0o17;; (* Forma ottale *) - : int = esadecimale... # 0x1F;; (* Forma esadecimale *) - : int = e binaria. # 0b11110;; (* Forma binaria *) - : int = 30

28 I numeri reali Il tipo float rappresenta un sottoinsieme dei numeri reali R estesi con i simboli ± e Nan (Not a number). # 1.2;; - : float = 1.2 # -1.2e-10;; (* notazione scientifica *) - : float = -1.2e-10 # -1.2E-10;; - : float = -1.2E-10 # 1E400;; (* approssimato a +infinito *) - : float = infinity # -1E400;; (* approssimato a -infinito *) - : float = neg_infinity

29 Tipizzazione forte di ML Ogni espressione deve avere un tipo. Se non è possibile determinare il tipo di un espressione questa genera un errore. # ;; (* Errore di tipo! *) ^^^ This expression has type float but is here used with type int # 1.1 * 0;; (* Errore di tipo! *) ^^^ This expression has type float but is here used with type int

30 Alcune espressioni sui reali # ;; (* Addizione *) - : float = 5. # ;; (* Sottrazione *) - : float = -1. # 2. *. 3.;; (* Moltiplicazione *) - : float = 6. # 7. /. 3.;; (* Divisione *) - : float = # 2. ** 3.;; (* Potenza *) - : float = 8. # int of float 1.2;; (* Conversione float -> int *) - : int = 1 # float of int 1;; (* Conversioni int -> float *) - : float = 1. # -.( );; (* Negazione *) - : float = -1.

31 Aritmetica floating-point L aritmetica dei floating-point è estesa tenendo conto dei simboli di infinito e Nan. Alcuni esempi sono: # -1. /. 0.;; (* -Infinito *) - : float = neg infinity # 0. /. 0.;; (* Indefinito *) - : float = nan # 1. /. infinity;; (* Zero *) - : float = 0.

32 Attenzione agli errori di tipo! # ;; (* Errore di tipo! *) ^ This expression has type int but is here used with type float

33 Una calcolatrice poco tascabile! Per ora abbiamo solo visto che possiamo fare semplici operazioni! Se scriviamo espressioni più complicate le operazioni rispettano l ordine di precedenza standard. Possiamo forzare la precedenza mediante parentesi. # * 3;; - : int = 7 # (1 + 2) * 3;; - : int = 9 # 1 + int_of_float (2.*.3.**2.**2.);; - : int = 163

Programmazione Caratteri, stringhe, tipo unit ed ennuple

Programmazione Caratteri, stringhe, tipo unit ed ennuple Programmazione Caratteri, stringhe, tipo unit ed ennuple Samuel Rota Bulò DAIS Università Ca Foscari di Venezia. Outline Caratteri e stringhe Booleani Il tipo unit Ennuple I caratteri Il tipo char rappresenta

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Andrea Marin Università Ca Foscari di Venezia Dipartimento di Informatica Corso di Programmazione a.a. 2011/2012 Corso di programmazione Docenti: Andrea Marin (linguaggio C + esercitazioni) I semestre

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Andrea Marin Università Ca Foscari di Venezia Dipartimento di Informatica Corso di Programmazione 2009 Corso di programmazione Docenti: Samuel Rota Bulò (linguaggi funzionali + esercitazioni) Andrea Marin

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

Salvatore Cuomo Prolusione

Salvatore Cuomo Prolusione Salvatore Cuomo Prolusione 1 Lezione n. Parole chiave: Algoritmo, Esecutore Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio Email Docente: salvatore.cuomo@unina. it

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

Sistemi di numerazione

Sistemi di numerazione SOMMARIO Sistemi di numerazione...2 Sistema decimale (o a base 10)...2 Sistema binario...2 Operazioni sui numeri binari...3 Espressioni logiche...4 Definizione...4 Prodotto Logico : AND...4 Somma Logica

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

Il Modello di von Neumann (2) Prevede 3 entità logiche:

Il Modello di von Neumann (2) Prevede 3 entità logiche: Introduzione all Architettura degli Elaboratori Sommario Macchina di von Neumann Esecuzione dei programmi Rappresentazione dei dati Dati numerici Dati alfabetici 1 2 Il Modello di von Neumann (1) L architettura

Dettagli

C O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O

C O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O Il linguaggio C C O P Y R I G H T ( C ) 2 0 0 8 W W W. F O N D A M E N T I. I N F O P E R M I S S I O N I S G R A N T E D T O C O P Y, D I S T R I B U T E A N D / O R M O D I F Y T H I S D O C U M E N

Dettagli

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi Basi della programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: Tipi di dato Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: esprimere in modo sintetico la loro rappresentazione in memoria, e un insieme di operazioni ammissibili permettere

Dettagli

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione Informatica 3 LEZIONE 1: Introduzione Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Informatica 3 Lezione 1- Modulo 1 Introduzione al corso Introduzione Corso di Informatica 3

Dettagli

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Descrizione delle operazioni di calcolo. Espressioni costanti semplici Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette

Dettagli

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

Dettagli

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile.

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile. Liceo Scientifico Vinci PROGRAMMA FINALE A.S. 2016/2017 Materia: INFORMATICA Classe 1Q Prof. Dardanelli Francesco PROGRAMMA SVOLTO NELL ANNO SCOLASTICO IL COMPUTER. Hardware e software. Il computer. Il

Dettagli

Tipi di dato primitivi

Tipi di dato primitivi Tipi di dato primitivi (oltre int) Tipi di dato primitivi int (già trattati) Valori logici (ricordati) Valori reali Valori carattere Informatica - A.A. 2009/2010 - Tipi di dato 2 1 Valori logici (il caso

Dettagli

Struttura del calcolatore

Struttura del calcolatore Mondo esterno Dati di ingresso Calcolatore Dati di uscita Mondo esterno Il calcolatore elabora dei dati di ingresso per ottenere dati in uscita In linea di principio, ma non solo, il compito svolto da

Dettagli

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Caratteristiche di un linguaggio ad alto livello

Caratteristiche di un linguaggio ad alto livello Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono

Dettagli

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione Informatica 3 Informatica 3 LEZIONE 1: Introduzione Lezione 1- Modulo 1 Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Introduzione al corso Politecnico di Milano - Prof. Sara Comai

Dettagli

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147-00161 Roma Università degli Studi La Sapienza Fondamenti di

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

ML è un linguaggio interattivo La modalità interattiva di OCaml Ciclo: LETTURA, VALUTAZIONE, STAMPA. Objective Caml version 3.06

ML è un linguaggio interattivo La modalità interattiva di OCaml Ciclo: LETTURA, VALUTAZIONE, STAMPA. Objective Caml version 3.06 1 ML è un linguaggio interattivo La modalità interattiva di OCaml Ciclo: LETTURA, VALUTAZIONE, STAMPA # Objective Caml version 3.06 Il cancelletto è il prompt di Caml. # 3*8;; - : int = 24 LETTURA: viene

Dettagli

LINGUAGGI DI PROGRAMMAZIONE!

LINGUAGGI DI PROGRAMMAZIONE! LINGUAGGI DI PROGRAMMAZIONE! Il potere espressivo di un linguaggio è! caratterizzato da:! quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente)! quali istruzioni

Dettagli

Introduzione agli Algoritmi

Introduzione agli Algoritmi Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione

Dettagli

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario I sistemi di numerazione Il sistema binario Altri sistemi di numerazione Algoritmi di conversione Esercizi 07/03/2012 2 Sistemi

Dettagli

La principale modalità di calcolo è l applicazione di funzioni

La principale modalità di calcolo è l applicazione di funzioni 1 La principale modalità di calcolo è l applicazione di funzioni Nei linguaggi funzionali puri non esistono strutture di controllo predefinite per la realizzazione di cicli quali for, while, repeat Un

Dettagli

Introduzione alla programmazione in linguaggio C

Introduzione alla programmazione in linguaggio C Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

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) gianfranco.rossi@unipr.it Indice 1 Introduzione

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione E una notazione con cui e possibile descrivere gli algoritmi. Programma: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni

Dettagli

Elementi di programmazione

Elementi di programmazione Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università

Dettagli

Concetti Introduttivi. Il Computer

Concetti Introduttivi. Il Computer Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta

Dettagli

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C Tipi predefiniti e operatori Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 RICHIAMI char 8 bit Valori interi

Dettagli

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Dettagli

1: Linguaggi di Programmazione

1: Linguaggi di Programmazione 1: Linguaggi di Programmazione paradigmi linguistici, costrutti semantica operazionale implementazione, strutture a tempo di esecuzione testi di consultazione T.W. Pratt & M.V. Zelkowitz, Programming languages.

Dettagli

Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni C#: Strumento Principe per.net Primo linguaggio orientato alle componenti della famiglia C/C++ Tutto è DAVVERO un oggetto

Dettagli

Programmazione Ricorsione in coda

Programmazione Ricorsione in coda Programmazione Ricorsione in coda Samuel Rota Bulò DAIS Università Ca Foscari di Venezia. Outline Ricorsione in coda Ricorsione in coda La ricorsione in coda (o tail-recursion) è un caso speciale di ricorsione

Dettagli

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande

Dettagli

Programmazione Ricorsione

Programmazione Ricorsione Programmazione Ricorsione Samuel Rota Bulò DAIS Università Ca Foscari di Venezia. Outline Ricorsione Cos è la ricorsione? In matematica... n! = { n (n 1)! se n > 0 1 altrimenti N = {0} {i + 1 : i N} Principio

Dettagli

Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati

Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Informatica 3 Lezione 10 - Modulo 1 Perchè

Dettagli

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione

Dettagli

Reporting Aziendale e Sistemi Informativi

Reporting Aziendale e Sistemi Informativi Economia e Management management e nuove tecnologie Reporting Aziendale e Sistemi Informativi Prof. Francesco Orciuoli DISA-MIS 04 - Sviluppo del Software, Tipi di Dati e Istruzioni sviluppo del software

Dettagli

Linguaggi di programmazione. Paradigmi di programmazione

Linguaggi di programmazione. Paradigmi di programmazione Linguaggi di programmazione Paradigmi di programmazione Linguaggi: un po di storia Albori: Macchine a programma memorizzato, Programmi come dati Linguaggio Macchina Assemblatore FORTRAN (calcolo scientifico)

Dettagli

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi MASTER Information Technology Excellence Road (I.T.E.R.) Programmare in C Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di Dati Valori Un insieme

Dettagli

Unità aritmetica e logica

Unità aritmetica e logica Aritmetica del calcolatore Capitolo 9 Unità aritmetica e logica n Esegue le operazioni aritmetiche e logiche n Ogni altra componente nel calcolatore serve questa unità n Gestisce gli interi n Può gestire

Dettagli

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin Linguaggio C Tipi predefiniti Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Il concetto di tipo (reprise) Nome che indica

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

Informatica Generale Andrea Corradini I linguaggi di programmazione

Informatica Generale Andrea Corradini I linguaggi di programmazione Informatica Generale Andrea Corradini 17 - I linguaggi di programmazione Sommario Cos'è un linguaggio di programmazione? Una prospettiva storica: linguaggi di prima, seconda e terza generazione I paradigmi

Dettagli

Introduzione alla Programmazione. Giselda De Vita

Introduzione alla Programmazione. Giselda De Vita Introduzione alla Programmazione Giselda De Vita - 2015 1 Sulla base dell ambito in cui si colloca il problema da risolvere, è opportuno adottare un linguaggio piuttosto che un altro: ² Calcolo scientifico:

Dettagli

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011 Tipi di dato, memoria e conversioni Alessandra Giordani agiordani@disi.unitn.it Lunedì 7 maggio 2011 http://disi.unitn.it/~agiordani/ Il linguaggio C è esplicitamente tipato: occorre esplicitamente associare

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

Introduzione alla programmazione. Walter Didimo

Introduzione alla programmazione. Walter Didimo Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata

Dettagli

Unità di apprendimento 6. Il software: dal linguaggio alla applicazione

Unità di apprendimento 6. Il software: dal linguaggio alla applicazione Unità di apprendimento 6 Il software: dal linguaggio alla applicazione Unità di apprendimento 6 Lezione 2 Conosciamo i linguaggi di programmazione In questa lezione impareremo: che cos è un linguaggio

Dettagli

Rappresentazione dell informazione. Argomenti trattati: Codifica: Teoria generale. Proprietà di una codifica:

Rappresentazione dell informazione. Argomenti trattati: Codifica: Teoria generale. Proprietà di una codifica: Rappresentazione dell informazione I calcolatori gestiscono dati di varia natura: testi, immagini, suoni, filmati, nei calcolatori rappresentati con sequenze di bit: mediante un opportuna codifica presentiamo

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, Traduttori e le Basi della Programmazione Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi

Dettagli

Fondamenti di Informatica T-1. Introduzione al linguaggio Java Input/output, variabili, tipi

Fondamenti di Informatica T-1. Introduzione al linguaggio Java Input/output, variabili, tipi Introduzione al linguaggio Java Input/output, variabili, tipi 2 Programmi e linguaggi Algoritmo sequenza finita di passi per risolvere in un tempo finito un problema Linguaggio di programmazione notazione

Dettagli

Espressioni e Comandi

Espressioni e Comandi Espressioni e Comandi March 24, 2017 Elementi di Base dei Programmi Ricordate? Macchina Astratta: Insieme di algoritmi e strutture dati che permettono di memorizzare ed eseguire programmi Abbiamo parlato

Dettagli

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

Dettagli

Programmazione 2. Introduzione al corso

Programmazione 2. Introduzione al corso Programmazione 2 Introduzione al corso Informazioni generali Sito del corso http://matematica.unipv.it/gualandi/programmazione2/ Orario lezioni: Martedi 9h00/11h00 Aula C8 o Lab. Mate Giovedi 14h00/15h00

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010 Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi

Dettagli

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione Il Progetto degli Algoritmi Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Dal problema a un programma comprensibile dal calcolatore

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

Introduzione alla Programmazione Funzionale

Introduzione alla Programmazione Funzionale Introduzione alla Programmazione Funzionale April 27, 2017 Paradigmi di Programmazione Programmi sviluppabili usando diversi paradigmi Imperativo: computazione come modifica di stato Funzionale: computazione

Dettagli

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) 1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano

Dettagli

Rappresentazione dell informazione. Argomenti trattati: Codifica: Teoria generale. Proprietà di una codifica:

Rappresentazione dell informazione. Argomenti trattati: Codifica: Teoria generale. Proprietà di una codifica: Rappresentazione dell informazione I calcolatori gestiscono dati di varia natura: testi, immagini, suoni, filmati, nei calcolatori rappresentati con sequenze di bit: mediante un opportuna codifica presentiamo

Dettagli

Introduzione alla programmazione strutturata

Introduzione alla programmazione strutturata FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio

Dettagli

Il linguaggio di programmazione Python

Il linguaggio di programmazione Python Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Rappresentazione dei dati in memoria

Rappresentazione dei dati in memoria Rappresentazione dei dati in memoria La memoria Una memoria deve essere un insieme di oggetti a più stati. Questi oggetti devono essere tali che: le dimensioni siano limitate il tempo necessario per registrare

Dettagli

Programmazione Funzionale

Programmazione Funzionale 1 Introduzione alla programmazione in un Programmazione Funzionale linguaggio funzionale Objective Caml di alto livello: un programma è una funzione; di tipo dichiarativo: il programmatore specifica che

Dettagli

Macchine Astratte. Luca Abeni. February 22, 2017

Macchine Astratte. Luca Abeni. February 22, 2017 Macchine Astratte February 22, 2017 Architettura dei Calcolatori - 1 Un computer è composto almeno da: Un processore (CPU) Esegue le istruzioni macchina Per fare questo, può muovere dati da/verso la memoria

Dettagli

Argomenti trattati: Rappresentazione dell informazione. Proprietà di una codifica: Codifica: Teoria generale

Argomenti trattati: Rappresentazione dell informazione. Proprietà di una codifica: Codifica: Teoria generale Rappresentazione dell informazione I calcolatori gestiscono dati di varia natura: testi, immagini, suoni, filmati, nei calcolatori rappresentati con sequenze di bit: mediante un opportuna codifica presentiamo

Dettagli

Progettazione Curricolare di MATEMATICA. Dalla Progettazione Curricolare alla Progettazione per Competenze. SCUOLA SECONDARIA di PRIMO GRADO

Progettazione Curricolare di MATEMATICA. Dalla Progettazione Curricolare alla Progettazione per Competenze. SCUOLA SECONDARIA di PRIMO GRADO Progettazione Curricolare di MATEMATICA Dalla Progettazione Curricolare alla Progettazione per Competenze CLASSE PRIMA SCUOLA SECONDARIA di PRIMO GRADO Competenze attese al termine della classe prima della

Dettagli

PROGRAMMAZIONE DISCIPLINARE

PROGRAMMAZIONE DISCIPLINARE Modello A2 Istituto d Istruzione Superiore POLO-LICEO ARTISTICO - VEIS02400C VENEZIA Liceo Artistico, Liceo Classico e Musicale Dorsoduro, 1073 30123 Venezia tel. 0415225252, fax 041 2414154 PROGRAMMAZIONE

Dettagli

Fondamenti di Informatica Il linguaggio C

Fondamenti di Informatica Il linguaggio C Fondamenti di Informatica Il linguaggio C http://agile.diee.unica.it mario.locci@diee.unica.it March 19, 2008 1 Contents 1 Introduzione 3 1.1 Compilatore............................ 3 1.2 Il linguaggio

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Annamaria Bria 1

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Annamaria Bria 1 Corso di INFORMATICA Laurea triennale - Comunicazione&DAMS Dr. Annamaria Bria 1 1 Dipartimento di Matematica Università della Calabria Corso di laurea intercalsse in COMUNICAZIONE&DAMS www.mat.unical.it/bria/informatica2011-12.html

Dettagli

I.4 Rappresentazione dell informazione

I.4 Rappresentazione dell informazione I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione

Dettagli

PROGETTAZIONE DISCIPLINARE DI DIPARTIMENTO

PROGETTAZIONE DISCIPLINARE DI DIPARTIMENTO Progettazione disciplinare di dipartimento Pag. 1 di 5 ANNO SCOLASTICO 2013-2014 PROGETTAZIONE DISCIPLINARE DI DIPARTIMENTO MATEMATICA classe prima FINALITÀ/OBIETTIVI GENERALI DI MATEMATICA Fornire strumenti

Dettagli

Corso di Laurea in INFORMATICA

Corso di Laurea in INFORMATICA Corso di Laurea in INFORMATICA INGEGNERIA DELLA CONOSCENZA E SISTEMI ESPERTI (a.a. 2010-2011) MODULO 1 Parte I 1.4 CLIPS: C Language Integrated Production System Introduzione all'ambiente CLIPS. Claudia

Dettagli

Introduzione al Calcolo Scientifico

Introduzione al Calcolo Scientifico Introduzione al Calcolo Scientifico Francesca Mazzia Dipartimento di Matematica Università di Bari Francesca Mazzia (Univ. Bari) Introduzione al Calcolo Scientifico 1 / 14 Calcolo Scientifico Insieme degli

Dettagli

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

La codifica. dell informazione

La codifica. dell informazione La codifica dell informazione (continua) Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da 0 a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero

Dettagli

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione Corso di Fondamenti di Informatica Linguaggi di Programmazione Anno Accademico Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di

Dettagli

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1 Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1 1) Dato un diagramma di flusso quali sono le condizioni necessarie perché si possa costruire un programma corrispondente?

Dettagli

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli

Dettagli

Componenti principali

Componenti principali Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

Introduzione al funzionamento di un calcolatore elettronico

Introduzione al funzionamento di un calcolatore elettronico 1 / 21 Introduzione al funzionamento di un calcolatore elettronico Natascia Piroso 23 settembre 2009 2 / 21 Sommario Che cos è un calcolatore? 1 Che cos è un calcolatore? Definizioni preliminari Il calcolatore

Dettagli

CURRICOLO DI ISTITUTO

CURRICOLO DI ISTITUTO ISTITUTO COMPRENSIVO G.PERLSC Ferrara CURRICOLO DI ISTITUTO NUCLEO TEMTICO Il numero CONOSCENZE BILIT S C U O L P R I M R I classe 1^ L alunno conosce: i numeri naturali, nei loro aspetti cardinali e ordinali,

Dettagli