Corso di Linguaggi di Programmazione

Documenti analoghi
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

Programmazione Funzionale

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

Lezione 3 programmazione in Java

Ricordiamo come si definisce una funzione

Strutturare il codice: sottoprogrammi

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

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

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

L intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero.

Definizione di metodi in Java

Programmazione in Java (I modulo)

Laboratorio di programmazione

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Statements: blocchi di istruzioni

nome (lista_parametri) Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti

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

La sintassi del C APPENDICE H

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Rudimenti di Python. senza rodimenti di Python

La principale modalità di calcolo è l applicazione di funzioni

Informatica e Bioinformatica: Algoritmi

Le direttive del Preprocessore

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

Laboratorio di Informatica

Calcolare il massimo di una lista

Introduzione al Python

Istruzioni iterative (o cicliche)

Programmazione modulare

Fondamenti di Programmazione

Gestione degli impegni Requisiti generali Si fissi come ipotesi che la sequenza di impegni sia ordinata rispetto al tempo,, e che ogni lavoratore abbi

Il TDA Dictionary. Definizione informale. I metodi del TDA Dictionary 1. Applicazioni. I metodi del TDA Dictionary 2. I metodi del TDA Dictionary 3

Il C nel C++: Funzioni

I S T I T U T O T E C N I C O I N D U S T R I A L E S T A T A L E

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

6) Descrivere con un diagramma a blocchi un algoritmo che legga da input due numeri ne calcoli il prodotto in termini di somme ripetute.

Linguistica Computazionale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Il linguaggio C. Notate che...

Programmazione Procedurale in Linguaggio C++

Esempio di Prova Scritta

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Corso di Fondamenti di Informatica Classi di istruzioni 2

Programmazione in Python. Moreno Marzolla

Programmazione Procedurale in Linguaggio C++

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

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

Algebra di Boole Algebra di Boole

Verificare se una grammatica e LL(1) e costruirne la tabella di parsing. Verificare se una grammatica e LR(0) e costruirne la tabele ACTION e GOTO

Linguaggio C: introduzione

Mini-Corso di Informatica

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Fondamenti di Informatica T-1 Modulo 2

Cenni sul preprocessore e il suo utilizzo

Obiettivi di questa esercitazione

Esercizio. Esempio n= sommapari= , sommadispari=7+4+1

Compito di Programmazione, 22 marzo 2007 INFORMATICI E MULTIMEDIALI

Espressione di chiamata di funzione

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL

24 - Possibili approfondimenti

APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio

Basi di Dati: Corso di laboratorio

Strutture di Controllo. if (<condizione>) statement; if (<condizione>) statement; Istruzioni condizionali. Istruzione condizionale if.

Le Funzioni e la Ricorsione

Istruzioni di ripetizione in Java 1

Informatica e Bioinformatica: AND, OR, NOT

06AZN - Fondamenti di Informatica (GES, LOP, ORG) Esercitazione di laboratorio n. 8 (1/12/09)

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

Fondamenti di Programmazione

Fondamenti di Informatica T-1

Finestre di dialogo. Corso di Laboratorio di Programmazione Web. Controllo dell input e window.alert. prompt di stringhe!

Un esempio di if annidati

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

Calcolatori Elettronici Lezione A4 Programmazione a Moduli

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

Le basi del linguaggio Java

Esercitazione 3. Espressioni booleane I comandi if-else e while

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

Lezione 6 Le pile. Informatica. 28 Aprile 2016

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Linguaggio C: le funzioni

5 - Istruzioni condizionali

Tempo di vita e scope delle variabili

Esercizio 1 Liste: calcolo perimetro di un poligono

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch

Precedenza e associatività. Complementi sul C - 2. Esempi. Esempi

Algoritmi e basi del C Struttura di un programma

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Linguaggio C: le funzioni. Introduzione e sintassi

Algebra Relazionale. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Stringhe e Array. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 10 Novembre 2009 COGNOME E NOME RIGA COLONNA MATRICOLA

Programmazione Orientata agli Oggetti in Linguaggio Java

Definizione di metodi

Laboratorio di Programmazione 1 [Java]

Corso di Esercitazioni di Programmazione

Fondamenti di Informatica T1 Mappe

Python Parte 1: Caratteristiche di base

Transcript:

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 sono trattate allo stesso modo degli altri oggetti (numeri, liste, stringhe, simboli, ecc.): le funzioni possono prendere funzioni come argomento la forma speciale lambda permette di costruire funzioni le funzioni possono restituire funzioni

Funzione come argomento Uno dei parametri nella definizione della funzione rappresenta una funzione, e come tale viene utilizzato all interno del corpo - (define (function-application nome-fun x y) (nome-fun x y) ) L associazione tra il parametro e la funzione avviene in chiamata di funzione - (function-application + 3 4) associa + a nome-fun - (function-application list 3 4) associa list a nome-fun Esempio1: realizzare un programma Scheme che riceve una funzione ed una lista; se la lista è vuota restituisce () altrimenti applica la funzione alla lista. Esempio2: realizzare un programma Scheme che controlla alcune proprietà di coppie di elementi in una lista (alla lavagna).

Funzione predefinita map La funzione map viene utilizzata per applicare una funzione ad ogni elemento in una lista. Restituisce una lista i cui elementi sono il risultato che si ottiene applicando il suo primo argomento (la funzione) a ciascun elemento del secondo argomento (la lista). Esempi: - (map odd? (2 3 4 5 6)) restituisce (#f #t #f #t #f) - (map + (1 2 3) (10 20 30)) restituisce (11 22 33) Non è specificato in quale ordine vengono considerati gli elementi della lista.

Funzione predefinita apply La funzione predefinita apply restituisce il risultato che si ottiene applicando il suo primo argomento al secondo argomento Esempi: - (apply + (7 5)) 12 - (apply max (3 7 2 9)) 9 Limitazione: non funziona se al posto di una funzione viene passato come argomento una forma normale (e.g., and o or)

Funzioni che restituiscono funzioni - lambda (1) Dal λ-calcolo, dove una funzione f (x) = x + 2 viene espressa come λx.x + 2, e f (3) come (λx.x + 2)3 definizione: (lambda (lista-argomenti) corpo) - Es.: (lambda (x) (+ 2 x)) chiamata: ((lambda (lista-argomenti) corpo) args-formali) - Es.: ((lambda (x) (+ 2 x)) 3) restituisce 5 definizione funzione con nome: (define nome-funzione (lambda (lista-argomenti) corpo)) - Es.: (define somma2 (lambda (x) (+ 2 x)))

Funzioni che definiscono funzioni - lambda (2) Utilizzo della lambda-expression per definire funzioni (anche senza nome): come argomento a funzione - (map (lambda (num) (>= num 10)) (15 17) ) per creare funzioni che sono la combinazione di and oppure or di altre funzioni - (lambda (element) (and (number? element)(positive? element)) ) Esempio: (1) realizzare un programma Scheme che, presi due caratteri, restituisce la funzione sostituzione del primo carattere con il secondo (2) realizzare un programma Scheme che, presi due caratteri ed una lista, sostituisce ogni occorrenza del primo carattere nella lista con un occorrenza del secondo (alla lavagna).

Elementi di Python Tipi di dato: int: 3 float: 2.5 str: abc, abc list: [0, 1, 2], [0, 1, the ] tuple: (0, 1, 2), (0, 1, the ) dict: { a : 1, mamma : anna, 2: b }

Elementi di Python Python usa gli spazi per identificare blocchi di codice si indica l inizio di un blocco con : (vedi codice) costrutto if simile al C costrutto switch... case sostituito con if... elif due costrutti di iterazione: while e for (codice di esempio)

Elementi di Python Alcune operazioni su liste lst.append(x): include l elemento x in coda a lst lst.extend(l): include la lista L in coda a lst list.remove(x): rimuove la prima occorrenza di x in lst list.count(x): restituisce il numero di occorrenze di x in lst

Definizione di funzioni Elementi di Python Definizione di funzioni parola chiave def def <nome funzione>(<argomenti>): statement return al termine della funzione (codice di esempio)

Elementi di Python Funzioni come oggetti di primo livello Le funzioni sono oggetti di primo livello: possono essere passate come argomenti ad altre funzioni possono essere costruite e restituite da altre funzioni Funzioni che costruiscono funzioni parola chiave lambda f = lambda <argomenti>: <corpo della funzione da costruire> a questo punto f contiene una funzione (codice di esempio)

Elementi di Python Le funzioni Python possono restituire un numero arbitrario di valori def computexy()... return x,y >> a,b = computexy()