Programmazione Funzionale

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione Funzionale"

Transcript

1 1/9 Programmazione Funzionale Esercizio sulle variabili locali Davide Mottin - Themis Palpanas March 12, 2014

2 OCaml Funzioni preparatorie Sommario 2/9

3 Funzioni preparatorie Costruire una funzione val even : int -> bool = <fun> che restituisca vero se un numero è pari, falso altrimenti. Creare una funzione odd che calcoli l opposto di even. OCaml 3/9

4 Funzioni preparatorie Costruire una funzione val even : int -> bool = <fun> che restituisca vero se un numero è pari, falso altrimenti. let even n = if n mod 2 = 0 then true else false;; Creare una funzione odd che calcoli l opposto di even. let odd n = not (even n);; OCaml 3/9

5 Un esercizio più complesso Costruire una funzione che stampi Pari e divisibile per 3 se un numero in input è pari e divisibile per tre, altrimenti Pari ma non divisibile per 3 oppure Dispari e divisibile per 3 e Dispari ma non divisibile per 3. Cercare di utilizzare, ove possibile, dichiarazioni locali. OCaml 4/9

6 ( P r i n t whether a number i s d i v i s i b l e by 2 and by 3 ) l e t p r i n t d i v i s i b i l i t y n = i f even n then l e t out = P a r i i n i f n mod 3 = 0 then p r i n t s t r i n g ( out ˆ e d i v i s i b i l e per 3 ) e l s e p r i n t s t r i n g ( out ˆ ma non d i v i s i b i l e per 3 ) e l s e l e t out = D i s p a r i i n i f n mod 3 = 0 then p r i n t s t r i n g ( out ˆ e d i v i s i b i l e per 3 ) e l s e p r i n t s t r i n g ( out ˆ ma non d i v i s i b i l e per 3 ) ; OCaml 5/9

7 Esercizio Che tipo ha la funzione seguente e a cosa serve? l e t a p p l y f ( n,m) = ( f n m) ; ; OCaml 6/9

8 Esercizio Che tipo ha la funzione seguente e a cosa serve? l e t a p p l y f ( n,m) = ( f n m) ; ;. (α β γ) α β γ Sapete fornire una possibile applicazione di questa funzione? OCaml 6/9

9 Esercizio Che tipo ha la funzione seguente e a cosa serve? l e t a p p l y f ( n,m) = ( f n m) ; ;. (α β γ) α β γ Sapete fornire una possibile applicazione di questa funzione? (possibile). apply (fun x y -> sqrt (x** y**2.0)) (3.,4.);; OCaml 6/9

10 Esercizio Costruire una funzione conditional apply che, preso in input due funzioni f e g ed un elemento x restituisca g applicata ad x se f (x) restituisce true e x altrimenti. Ragionare inoltre sul tipo della funzione scritta. OCaml 7/9

11 Esercizio Costruire una funzione conditional apply che, preso in input due funzioni f e g ed un elemento x restituisca g applicata ad x se f (x) restituisce true e x altrimenti. Ragionare inoltre sul tipo della funzione scritta. l e t c o n d i t i o n a l a p p l y f g x = i f f x then g x e l s e x ; ; Qual è il tipo? OCaml 7/9

12 Esercizio Costruire una funzione conditional apply che, preso in input due funzioni f e g ed un elemento x restituisca g applicata ad x se f (x) restituisce true e x altrimenti. Ragionare inoltre sul tipo della funzione scritta. l e t c o n d i t i o n a l a p p l y f g x = i f f x then g x e l s e x ; ; Qual è il tipo? Esercizio. Costruire una funzione to odd che preso in input un valore se è pari restituisce il suo successore, altrimenti restituisce lo stesso valore. OCaml 7/9

13 Esercizio Costruire una funzione conditional apply che, preso in input due funzioni f e g ed un elemento x restituisca g applicata ad x se f (x) restituisce true e x altrimenti. Ragionare inoltre sul tipo della funzione scritta. l e t c o n d i t i o n a l a p p l y f g x = i f f x then g x e l s e x ; ; Qual è il tipo? Esercizio. Costruire una funzione to odd che preso in input un valore se è pari restituisce il suo successore, altrimenti restituisce lo stesso valore. (possibile). let to odd x = conditional apply even succ x;; OCaml 7/9

14 Altri Esercizi Costruire una funzione che restituisca la funzione della retta dato in input m e q (i.e., f (x) = mx + q). Attenzione ai tipi. OCaml 8/9

15 Altri Esercizi Costruire una funzione che restituisca la funzione della retta dato in input m e q (i.e., f (x) = mx + q). Attenzione ai tipi. l e t l i n e m q x = m. x +. q ; ; OCaml 8/9

16 Altri Esercizi Costruire una funzione che restituisca la funzione della retta dato in input m e q (i.e., f (x) = mx + q). Attenzione ai tipi. l e t l i n e m q x = m. x +. q ; ; Esercizio Usando la funzione precedente costruire una funzione che dato in input due punti restituisce la funzione della retta passante per essi. Dato (x 1, y 1 ) e (x 2, y 2 ) m = y 2 y 1 x 2 x 1, q = y 1x 2 x 1 y 2 x 2 x 1 OCaml 8/9

17 Altri Esercizi Costruire una funzione che restituisca la funzione della retta dato in input m e q (i.e., f (x) = mx + q). Attenzione ai tipi. l e t l i n e m q x = m. x +. q ; ; Esercizio Usando la funzione precedente costruire una funzione che dato in input due punti restituisce la funzione della retta passante per essi. Dato (x 1, y 1 ) e (x 2, y 2 ) m = y 2 y 1 x 2 x 1, q = y 1x 2 x 1 y 2 x 2 x 1 l e t l i n e e q u a t i o n x ( x1, y1 ) ( x2, y2 ) = l i n e ( ( y2. y1 ) /. ( x2. x1 ) ) ( ( y1. x2. x1. y2 ) /. ( x2. x1 ) ) x ; ; OCaml 8/9

18 Altri Esercizi - 2 Costruire una funzione che preso in input due funzioni e una coppia (x,y) controlli se si intersecano in (x,y) OCaml 9/9

19 Altri Esercizi - 2 Costruire una funzione che preso in input due funzioni e una coppia (x,y) controlli se si intersecano in (x,y) l e t i n t e r s e c t i n l 1 l 2 ( x, y ) = ( l 1 x = y ) && ( l 2 x = y ) ; ; OCaml 9/9

20 Altri Esercizi - 2 Costruire una funzione che preso in input due funzioni e una coppia (x,y) controlli se si intersecano in (x,y) l e t i n t e r s e c t i n l 1 l 2 ( x, y ) = ( l 1 x = y ) && ( l 2 x = y ) ; ; Esercizio Costruire una funzione che calcoli il baricentro tra tre punti. OCaml 9/9

21 Altri Esercizi - 2 Costruire una funzione che preso in input due funzioni e una coppia (x,y) controlli se si intersecano in (x,y) l e t i n t e r s e c t i n l 1 l 2 ( x, y ) = ( l 1 x = y ) && ( l 2 x = y ) ; ; Esercizio Costruire una funzione che calcoli il baricentro tra tre punti. l e t b a r y c e n t e r ( x1, y1 ) ( x2, y2 ) ( x3, y3 ) = ( ( x1 +. x2 +. x3 ) /. 3., ( y1 +. y2 +. y3 ) /. 3. ) ; ; OCaml 9/9

Programmazione Funzionale

Programmazione Funzionale 1/11 Programmazione Funzionale Esercizi in preparazione dell esame Davide Mottin - Themis Palpanas May 28, 2014 Svolgimento d esame Inferire il tipo di un espressione Esercizi sul lambda-calcolo Esercizi

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

let quorem pair = ((fst pair)/(snd pair), (fst pair) mod (snd pair))

let quorem pair = ((fst pair)/(snd pair), (fst pair) mod (snd pair)) 1 PATTERN Consideriamo la definizione della funzione quorem: (* quorem: int * int -> int * int *) (* quorem(n,m) = quoziente e resto della divisione di n per m *) let quorem (n,m) = (n/m, n mod m) Per

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

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

Tecniche per risolvere problemi: riduzione a sottoproblemi più semplici. Ricorsione

Tecniche per risolvere problemi: riduzione a sottoproblemi più semplici. Ricorsione Tecniche per risolvere problemi: riduzione a sottoproblemi più semplici Ricorsione 1 Tecniche per risolvere problemi: riduzione a sottoproblemi più semplici Problema: dati tre numeri interi, calcolarne

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 5 Alberto Ceselli alberto.ceselli@unimi.it Università degli Studi di Milano 12 Marzo 2013 Le funzioni sono oggetti di prima classe in Scheme In Scheme le funzioni

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

Dettagli

Silvia Crafa

Silvia Crafa Introduzione ai Sistemi di Tipi Silvia Crafa silvia@dsi.unive.it Come nascono i tipi in informatica Cos è un tipo? Perché servono i tipi nei linguaggi di programmazione? Vediamo come nascono i tipi partendo

Dettagli

Definizione di nuovi tipi

Definizione di nuovi tipi Definizione di nuovi tipi Un tipo è un insieme di valori. Per definire un nuovo tipo occorre specificare: 1 un nome per il tipo 2 come costruire i valori del tipo, cioè quali sono i costruttori del tipo.

Dettagli

I punti di inizio e di fine della spezzata prendono il nome di estremi della spezzata. lati

I punti di inizio e di fine della spezzata prendono il nome di estremi della spezzata. lati I Poligoni Spezzata C A cosa vi fa pensare una spezzata? Qualcosa che si rompe in tanti pezzi A me dà l idea di un spaghetto che si rompe Se noi rompiamo uno spaghetto e manteniamo uniti i vari pezzi per

Dettagli

Le Funzioni e la Ricorsione

Le Funzioni e la Ricorsione Aula V Dip. di Matematica G. Castelnuovo Univ. di Roma La Sapienza Le Funzioni e la Ricorsione Igor Melatti Slides disponibili (assieme ad altro materiale) in: http://www.dsi.uniroma1.it/ melatti/programmazione1.2007.2008.html

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione II Tatiana Zolo zolo@cs.unipr.it 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento

Dettagli

AA Realizzare un interprete in OCaml

AA Realizzare un interprete in OCaml AA 2016-2017 17. Realizzare un interprete in OCaml 1 La stru/ura let x = 3 in x+x;; Parsing Programma (text-file) Rappresentazione Intermedia (IR) Let ( x, Num 3, B_op(Plus, Var x, Var x )) Num 6 Pre/y

Dettagli

DEFINIZIONE DI NUOVI TIPI Un tipo è un insieme di valori.

DEFINIZIONE DI NUOVI TIPI Un tipo è un insieme di valori. 1 DEFINIZIONE DI NUOVI TIPI Un tipo è un insieme di valori. Per definire un nuovo tipo occorre specificare: 1. un nome per il tipo 2. come costruire i valori del tipo, cioè quali sono i costruttori del

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

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi

Dettagli

Automa deterministico con prospezione 1. < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R. se a Gui(X α) senza spostamento della testina.

Automa deterministico con prospezione 1. < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R. se a Gui(X α) senza spostamento della testina. Automa deterministico con prospezione 1 < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R δ(a, a) = ε se a Gui(X α) senza spostamento della testina con spostamento della testina Grammatica 1S ( S ) 2S [ S ] 3S

Dettagli

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Funzioni Esercizio 1 Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Creare un altra funzione, di nome float cube(float x), che restituisce invece il

Dettagli

Istruzioni di ripetizione in Java 1

Istruzioni di ripetizione in Java 1 in Java Corso di laurea in Informatica Le istruzioni di ripetizione consentono di eseguire molte volte la stessa Si chiamano anche cicli Come le istruzioni condizionali, i cicli sono controllati da espressioni

Dettagli

TRADUZIONE STATE AND TRANSITION DIAGRAM UML E CORRETTEZZA DEI PROGRAMMI IN TLA+

TRADUZIONE STATE AND TRANSITION DIAGRAM UML E CORRETTEZZA DEI PROGRAMMI IN TLA+ TRADUZIONE DI STATE AND TRANSITION DIAGRAM UML E CORRETTEZZA DEI PROGRAMMI IN TLA+ a cura di: Eleonora Antonelli Simone Maletta Stefano Novara INDICE 1. Grammatica di TLA+ a cura di Eleonora Antonelli

Dettagli

C5. Triangoli - Esercizi

C5. Triangoli - Esercizi C5. Triangoli - Esercizi DEFINIZIONI 1) Dato il triangolo in figura completare al posto dei puntini. I lati sono i segmenti,, Gli angoli sono,, Il lato AB e l angolo sono opposti Il lato AB e l angolo

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Esercizi sui metodi Carla Limongelli Maggio 2010 Esercizi 1 Passaggio di parametri di tipo primitivo Indicare che cosa viene visualizzato sullo

Dettagli

Espressione composta da: Operatori Operandi (costanti, variabili, )

Espressione composta da: Operatori Operandi (costanti, variabili, ) Cenni linguaggio C: Espressioni Espressione: formula (regola di calcolo) che specifica sempre un valore Esempio: espressione algebrica: z=x* y, (x+3)/5 Espressione composta da: Operatori Operandi (costanti,

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e

Dettagli

Valutazione Lazy. Prefazione alla lezione

Valutazione Lazy. Prefazione alla lezione Valutazione Lazy Aniello Murano Università degli Studi di Napoli Federico II 1 Prefazione alla lezione Nella lezione precedente abbiamo introdotto i linguaggi (funzionali) con tipi di ordine superiore.

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Introduzione Istruzioni

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E03 Esempi di algoritmi e programmi A. Miola Novembre 2011 1 Contenuti q Progettazione di algoritmi q Problemi di ingresso - uscita

Dettagli

Fissiamo nello spazio un sistema di riferimento cartesiano ortogonale O, x, y, z, u.

Fissiamo nello spazio un sistema di riferimento cartesiano ortogonale O, x, y, z, u. Fissiamo nello spazio un sistema di riferimento cartesiano ortogonale O, x, y, z, u. Definizione Una quadriche è il luogo dei punti, propri o impropri, reali o immaginari, che con le loro coordinate omogenee

Dettagli

Definizioni ricorsive

Definizioni ricorsive Definizioni ricorsive Caso base : (* fact: int -> int *) let rec fact n = if n=0 then 1 else n * fact (n-1) n! = 1 2... n 1 n = (n 1)! n = n (n 1)! 0! = 1 Il fattoriale è definito in termini di se stesso,

Dettagli

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...

Dettagli

Frazioni. 8 Esercizi di Analisi Matematica Versione Argomenti: Operazioni sulle frazioni Tempo richiesto: Completare la seguente tabella: a b

Frazioni. 8 Esercizi di Analisi Matematica Versione Argomenti: Operazioni sulle frazioni Tempo richiesto: Completare la seguente tabella: a b 8 Esercizi di Analisi Matematica ersione 2006 razioni Argomenti: Operazioni sulle frazioni Difficoltà: Tempo richiesto: Completare la seguente tabella: a b a + b a b 1/3 1/2 1/3 1/2 1/3 1/2 a b a a + b

Dettagli

C6. Quadrilateri - Esercizi

C6. Quadrilateri - Esercizi C6. Quadrilateri - Esercizi DEFINIZIONI E COSTRUZIONI 1) Dato il seguente quadrilatero completa al posto dei puntini. I lati AB e BC sono I lati AB e CD sono I lati AD e sono consecutivi I lati AD e sono

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama

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

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

Programmazione web lato client con JavaScript. Marco Camurri 1

Programmazione web lato client con JavaScript. Marco Camurri 1 Programmazione web lato client con JavaScript Marco Camurri 1 JavaScript E' un LINGUAGGIO DI PROGRAMMAZIONE che consente di inserire codice in una pagina web Sintassi simile a Java (e al C), ma NON E'

Dettagli

Costruzioni geometriche. (Teoria pag , esercizi )

Costruzioni geometriche. (Teoria pag , esercizi ) Costruzioni geometriche. (Teoria pag. 81-96, esercizi 141-153 ) 1) Costruzione con squadra e riga. a) Rette parallele. Ricorda: due rette sono parallele quando.... oppure quando hanno la stessa. Matematicamente

Dettagli

Individuazione di sottoproblemi

Individuazione di sottoproblemi Individuazione di sottoproblemi Quando il problema è complesso conviene partire con una individuazione di sottoproblemi Scriviamo un algoritmo contenente azioni o condizioni complesse per l esecutore che

Dettagli

CLASSIFICAZIONE DELLE CONICHE AFFINI

CLASSIFICAZIONE DELLE CONICHE AFFINI CLASSIFICAZIONE DELLE CONICHE AFFINI Pre-requisiti necessari. Elementi di geometria analitica punti e rette nel piano cartesiano, conoscenza delle coniche in forma canonica). Risoluzione di equazioni e

Dettagli

Programmazione funzionale

Programmazione funzionale Cognome Nome Matricola Programmazione funzionale 12-09-2014 PROVA SCRITTA 1 2 3 4 5 Somma Il compito ha la durata di 1 ora, per la compilazione attenersi alle seguenti istruzioni: Scrivere in maniera chiara.

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

Informatica 1. Prova di recupero 15 Febbraio 2005

Informatica 1. Prova di recupero 15 Febbraio 2005 Informatica 1 Prova di recupero 15 Febbraio 2005 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo

Dettagli

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test Espressioni logiche Espressioni Logiche e Istruzione di Test Fondamenti di Informatica 1 Massimo Di Nanni Gennaio, 2001 Espressioni logiche nelle Istruzioni di Test e di Iterazione Calcolo del massimo

Dettagli

ESEMPIO: le variabili LETTURA/SCRITTURA DI VARIABILI. Specifica Leggere da tastiera un intero, un carattere, un float e un double. Stamparli a video.

ESEMPIO: le variabili LETTURA/SCRITTURA DI VARIABILI. Specifica Leggere da tastiera un intero, un carattere, un float e un double. Stamparli a video. ESEMPIO: le variabili LETTURA/SCRITTURA DI VARIABILI Specifica Leggere da tastiera un intero, un carattere, un float e un double. Stamparli a video. LETTURA/SCRITTURA DI VARIABILI Codice #include

Dettagli

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol. Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: genna18@iol.it sito: users.iol.it/genna18 Risoluzione di un problema Dato

Dettagli

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII. Tipi di dati fondamentali Tipi di dati fondamentali Linguaggi di Programmazione I Ferdinando Cicalese caratteri: char signed char unsigned char interi short int long interi unsigned short unsigned unsigned

Dettagli

2. APPUNTI SUI FASCI DI CIRCONFERENZE (raccolti dal prof. G. Traversi)

2. APPUNTI SUI FASCI DI CIRCONFERENZE (raccolti dal prof. G. Traversi) 2. APPUNTI SUI FASCI DI CIRCONFERENZE (raccolti dal prof. G. Traversi) La circonferenza è la curva di 2^ grado che viene individuata univocamente da tre punti non allineati e possiede la seguente proprietà:

Dettagli

Strutture dati dinamiche in C (II)

Strutture dati dinamiche in C (II) Strutture dati dinamiche in C (II) Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Le liste concatenate (ancora ma in modo più formale) L

Dettagli

TEST SULLE COMPETENZE Classe Seconda

TEST SULLE COMPETENZE Classe Seconda TEST SULLE COMPETENZE Classe Seconda 1 Una sola tra le seguenti proposizioni è FALSA Quale? A Se due punti A e B hanno la stessa ascissa, il coefficiente angolare della retta che li contiene non è definito

Dettagli

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione

Dettagli

Esempi di Problemi Iterativi

Esempi di Problemi Iterativi Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E07 C. Limongelli Dicembre 2011 1 Contenuti q Esercizi: Palindroma Anagramma Fibonacci 2 Palindroma q Scrivere un programma che

Dettagli

Esercizi su esponenziali, coni, cilindri, superfici di rotazione

Esercizi su esponenziali, coni, cilindri, superfici di rotazione Esercizi su esponenziali, coni, cilindri, superfici di rotazione Esercizio 1. Risolvere exp (exp (z)) = i. Esercizio. Risolvere i exp(z)z 4 + i exp(z)(1 + i) z 4 i 1 = 0. Esercizio. Risolvere exp(z) =

Dettagli

Programmazione è gestione di eventi

Programmazione è gestione di eventi FUNZIONI Ed Eventi Programmazione è gestione di eventi Evento 1 (tasto premuto) Evento 2 (mouse) Evento 3 (cambio frame) Oggetto Evento 4 (fine di un brano audio) Azioni per evento 1 1. Azione 1 2. Azione

Dettagli

Una libreria di funzioni per la geometria analitica

Una libreria di funzioni per la geometria analitica Una libreria di funzioni per la geometria analitica Michele Impedovo La geometria analitica del piano costituisce uno dei più importanti e consolidati argomenti di matematica. Un lavoro interessante parallelo

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 di controllo in C++

Strutture di controllo in C++ Strutture di controllo in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Il controllo: selezione Spesso la sequenza delle istruzioni non e prevedibile a priori ma dipende strettamente dalle configurazioni

Dettagli

ESERCIZI SVOLTI SU: GEOMETRIA TRIDIMENSIONALE. 2. Fissato un sistema di riferimento cartesiano dello spazio euclideo O, i, j, k,

ESERCIZI SVOLTI SU: GEOMETRIA TRIDIMENSIONALE. 2. Fissato un sistema di riferimento cartesiano dello spazio euclideo O, i, j, k, ESERCIZI SVOLTI SU: GEOMETRIA TRIDIMENSIONALE 1. Fissato un sistema di riferimento cartesiano dello spazio euclideo O, i, j, k, determinare un equazione omogenea del piano parallelo al vettore v = i+j,

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Esempi di Problemi Iterativi

Esempi di Problemi Iterativi Corso di Laurea Ingegneria Civile Elementi di Informatica Esempi di Problemi Iterativi C. Limongelli Esempi di Problemi Iterativi 1 Contenuti Esercizi: Palindroma Anagramma Fibonacci Esempi di Problemi

Dettagli

C5. Triangoli. C5.1 Definizioni. C5.2 Classificazione dei triangoli in base ai lati

C5. Triangoli. C5.1 Definizioni. C5.2 Classificazione dei triangoli in base ai lati 5. Triangoli 5.1 efinizioni Un triangolo è un poligono con tre lati. In figura 5.1 i lati sono i segmenti =c, =b e =a. Gli angoli (interni) sono α = ˆ, β = ˆ e γ = ˆ. Si dice che un angolo è opposto a

Dettagli

Sincronizzazione. Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Sincronizzazione. Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Sincronizzazione Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Soluzioni hardware Le soluzioni hardware al problema della SC possono essere classificate

Dettagli

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità

Dettagli

Esercitazione: Implementazione in linguaggio C dell ADT. Stack con l utilizzo. di linked list

Esercitazione: Implementazione in linguaggio C dell ADT. Stack con l utilizzo. di linked list Esercitazione: Implementazione in linguaggio C dell ADT Stack con l utilizzo di linked list Laboratorio di Programmazione Introduzione un ADT (Abstract Data Type) è un modello (formale) che generalizza

Dettagli

define define int int int double

define define int int int double Programma in C #include ; # define bott_vol =2.0; # define latt_vol = 0.355; int main () {int bott_num = 4; int latt_num = 10; double totale = bott_vol * bott_num + latt_vol * latt_num; printf(

Dettagli

Algoritmi e Strutture Dati - Prof. Roberto De Prisco A.A Seconda prova di verifica (4 Febbraio 2005)

Algoritmi e Strutture Dati - Prof. Roberto De Prisco A.A Seconda prova di verifica (4 Febbraio 2005) Algoritmi e Strutture Dati - Prof. Roberto De Prisco A.A. 004-00 Seconda prova di verifica (4 Febbraio 00) Laurea/Diploma in Informatica Università di Salerno Nome e Cognome: Matricola: 1 3 4 TOTALE /1

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

Laboratorio Informatica

Laboratorio Informatica Laboratorio Informatica Le funzioni Massimo Marchi http://marchi.usr.dsi.unimi.it/ Le funzioni Introduzione Massimo Marchi - http:// marchi.usr.dsi.unimi.it/ Le funzioni nelle formule! L utente per creare

Dettagli

Introduzione a R. Monica Marabelli. 30 Ottobre 2015

Introduzione a R. Monica Marabelli. 30 Ottobre 2015 Introduzione a R Monica Marabelli 30 Ottobre 2015 Cos é R? R é un programma utile per l analisi dei dati R puó essere utilizzato per: elaborare dati svolgere analisi statistiche effettuare rappresentazioni

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case

Dettagli

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Dettagli

Formalismi per la descrizione di algoritmi

Formalismi per la descrizione di algoritmi Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano

Dettagli

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin

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

Programmazione 1 A.A. 2015/2016

Programmazione 1 A.A. 2015/2016 Cognome e Nome Matricola Programmazione 1 A.A. 2015/2016 Appello del 16 Dicembre 2015 Compito n 1 Prima parte Esercizio 1 (10 punti) Cosa stampa il seguente frammento di codice Java? int[] A = {3, 8, 91,

Dettagli

Laboratorio di Matematica e Informatica 1

Laboratorio di Matematica e Informatica 1 Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi

Dettagli

Esiste però anche un ambiente globale: quello dove tutte le funzioni sono definite. Qui si possono anche definire variabili, dette variabili globali

Esiste però anche un ambiente globale: quello dove tutte le funzioni sono definite. Qui si possono anche definire variabili, dette variabili globali AMBIENTE LOCALE E GLOBALE In C, ogni funzione ha il suo ambiente locale che comprende i parametri e le variabili definite localmente alla funzione Esiste però anche un ambiente globale: quello dove tutte

Dettagli

Funzioni. function [<risultati>] = nome_funzione ([ par.formali ])

Funzioni. function [<risultati>] = nome_funzione ([ par.formali ]) MATLAB Le funzioni Funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, calcola un valore come risultato, esattamente come avviene anche per una

Dettagli

Esercizi di logica. Ivan Valbusa 5 dicembre 2012

Esercizi di logica. Ivan Valbusa 5 dicembre 2012 Esercizi di logica Ivan Valbusa 5 dicembre 2012 Gli esercizi proposti di seguito coprono solo una piccola parte del programma del corso. Sono mediamente più difficili di quelli presenti sul manuale di

Dettagli

La parabola. Giovanni Torrero Aprile La poarabola come luogo geometrico

La parabola. Giovanni Torrero Aprile La poarabola come luogo geometrico La parabola Giovanni Torrero Aprile 2006 1 La poarabola come luogo geometrico Definizione 1 (La parabola come luogo geometrico) La parabola è il luogo geometrico formato da tutti e soli i punti del piano

Dettagli

Problema: conteggio occorrenze

Problema: conteggio occorrenze Problema: conteggio occorrenze start read N,X i := 0 occorrenze := 0 vero vero i < N vettore[i]=x falso write occorrenze end occorrenze := occorrenze + 1 falso i := i + 1 Codice Javascript: prima parte

Dettagli

Esercizi di Analisi Matematica I

Esercizi di Analisi Matematica I Esercizi di Analisi Matematica I (corso tenuto dal Prof Alessandro Fonda) Università di Trieste, CdL Fisica e Matematica, aa 2012/2013 1 Principio di induzione 1 Dimostrare che per ogni numero naturale

Dettagli

1. MyAir. Analizzare anche i criteri funzionali

1. MyAir. Analizzare anche i criteri funzionali Esercizi di verifica: progettazione di casi di test usando criteri strutturali. 1. MyAir Si consideri il metodo stimalivelli, con la seguente specifica: dato un vettore di associati del club MyAir, restituisce

Dettagli

CORREZIONE FORMATIVA 2 ( RETTA IN FORMA PARAMETRICA E FASCI)

CORREZIONE FORMATIVA 2 ( RETTA IN FORMA PARAMETRICA E FASCI) CORREZIONE FORMATIVA 2 ( RETTA IN FORMA PARAMETRICA E FASCI) D1 E' dato il fascio 2x+4y +k(8x+5y 6)=0 trovare le coordinate del centro... Risposta. Le rette base del fascio sono r1 : 2x+4y-=0 r2 : 8x+5y-6=0

Dettagli

Esercizi per la prova in itinere (con soluzioni)

Esercizi per la prova in itinere (con soluzioni) Esercizi per la prova in itinere (con soluzioni) Programmazione e Analisi di Dati Mod. A Programmazione Java ATTENZIONE: per la soluzione di questi esercizi usare solo i costrutti del linugaggio Java e

Dettagli

Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli. Formule iterative

Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli. Formule iterative Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli Formule iterative L algoritmo che, comunemente, viene presentato a scuola per l estrazione della radice quadrata è alquanto laborioso e di scarsa

Dettagli

1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio

1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio soluzione di un problema 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio rappresentazioni disponibili in C++:

Dettagli

lato obliquo trapezio isoscele Un quadrilatero che ha i lati opposti paralleli. Ogni parallelogramma ha... D α + β π

lato obliquo trapezio isoscele Un quadrilatero che ha i lati opposti paralleli. Ogni parallelogramma ha... D α + β π Ripasso Scheda per il recupero Trapezi e parallelogrammi OMNE he cos è un trapezio? RISOSTE Un trapezio è un quadrilatero con una coppia di lati opposti paralleli: i lati paralleli si chiamano basi del

Dettagli

GEOMETRIA ANALITICA 1 IL PIANO CARTESIANO

GEOMETRIA ANALITICA 1 IL PIANO CARTESIANO GEOMETRI NLITIC 1 IL PINO CRTESINO Il piano cartesiano è costituito da due rette orientate e tra loro perpendicolari chiamate assi cartesiani, generalmente una orizzontale e l altra verticale, sulle quali

Dettagli

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori 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

Zeri di una funzione. Funzioni continue - Proprietà. certo intervallo dell'asse x. da: a ξ. cui f(x)=0. precisione desiderata (iterazione( iterazione)

Zeri di una funzione. Funzioni continue - Proprietà. certo intervallo dell'asse x. da: a ξ. cui f(x)=0. precisione desiderata (iterazione( iterazione) Zeri di una funzione Ricerca delle (eventuali) radici reali di una funzione che si supporrà definita e continua in un certo intervallo dell'asse x La ricerca delle radici approssimate e' composta da: 1)

Dettagli

Corso Arduino Maggio Riccardo Binetti Lezione 1 - Blinking LEDs with style

Corso Arduino Maggio Riccardo Binetti Lezione 1 - Blinking LEDs with style Corso Arduino 2014 21 Maggio 2014 Riccardo Binetti punkerbino@gmail.com Lezione 1 - Blinking LEDs with style Riccardo Binetti Arduino 2014 Lezione 1 1 / 24 Fate domande Riccardo Binetti Arduino 2014 Lezione

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario La classe String Lettura da input di dati numerici (tipo int) Stampa di dati numerici Uno sguardo al codice Esercizi 21/03/2011 2

Dettagli

Il punteggio totale della prova è 100/100. La sufficienza si ottiene con il punteggio di 60/100.

Il punteggio totale della prova è 100/100. La sufficienza si ottiene con il punteggio di 60/100. ISI Civitali - Lucca CLASSE, Data Nome: Cognome: Nei test a scelta multipla la risposta esatta è unica Ad ogni test viene attribuito il seguente punteggio: 4 punti risposta corretta 1 punto risposta omessa

Dettagli

A B = { x x A x B} A B x y x A y B

A B = { x x A x B} A B x y x A y B MEMBER?( s, I ) POWER_SET(A) POWER_SET(A, n) INCLUSIONE ( ) UNION ( ) INTERSECTION ( ) A B = { x x A x B} A B = { x x A x B} A B = { x x A x B} = (, ) { } A B x y x A y B Dato un insieme I, la funzione

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Reti di Calcolatori

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Reti di Calcolatori Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Reti di Calcolatori Architettura del calcolatore Elementi di Programmazione Esempi di algoritmi e programmi Conversione

Dettagli

Esempio (if): equazione di secondo grado

Esempio (if): equazione di secondo grado Esempio (if): equazione di secondo grado /* Programma che calcola le radici di un equazione di secondo grado: ax2+bx+c=0 */ #include /*libreria standard matematica*/ main() { float a,b,c; /*coefficienti

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)

Dettagli

STUDIO. Esercizi proposti a lezione cap. 3 rev. dic. 2007 da Ulmann, Widom Introduzione ai database. indirizzo. titolo. nome. recitain. attori.

STUDIO. Esercizi proposti a lezione cap. 3 rev. dic. 2007 da Ulmann, Widom Introduzione ai database. indirizzo. titolo. nome. recitain. attori. Basi di dati ad oggetti:un esempio ODL-OQL 1. Caso filmoteca: modello dei dati lunghezza tipo_pellicola via città indirizzo titolo anno FILM attori recitain ATTORE nome posseduto da lunghezza_in_ore (

Dettagli

Don Bosco, A.S. 2013/14 Compiti per le vacanze - 1C

Don Bosco, A.S. 2013/14 Compiti per le vacanze - 1C Don Bosco, A.S. 01/14 Compiti per le vacanze - 1C 1. Rappresenta per elencazione ciascuno dei seguenti insiemi: A { x x è una lettera della parola cattedra } B { x N x < 7 } C { x N x è pari x 10 } D {

Dettagli