6) Tradurre la definizione ottenuta nel punto 1 in Lisp e calcolare degli esempi sul computer.

Documenti analoghi
Esempio: rappresentare gli insiemi

Laboratorio di Python

Corso di Geometria BIAR, BSIR Esercizi 2: soluzioni

LISP e Calcolabilità

Il determinante. Calcolo del determinante di matrici particolari. matrici di ordine 2: sia. a11 a A = allora

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

Laboratorio di Python

MAPPA MULTIPLI E DIVISORI

1. Descrivere il significato della seguente istruzione se x è un vettore di 10 elementi reali:

Prodotto scalare e prodotto vettoriale. Elisabetta Colombo

ESERCIZI SULLE MATRICI

MATRICI. 1. Esercizi

1 Multipli di un numero

CLASSE 1 SEZIONE A PROGRAMMA DI MATEMATICA DOCENTE ENRICO PILI

n deve essere maggiore di 0, altrimenti il metodo restituisce null.

Anno 4 Matrice inversa

Determinanti. Definizione ed esempi. Definizione ed esempi. Proprietà dei determinanti Rango di matrici

Informatica B

ESERCITAZIONE CON EXCEL SULLE MATRICI

A = Quindi > b=a(:) b =

Laboratorio di programmazione

Registro Lezioni di Algebra lineare del 15 e 16 novembre 2016.

DIVISIONE TRA POLINOMI IN UNA VARIABILE

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

24 : 3 = 8 con resto 0 26 : 4 = 6 con resto 2

Programmazione I - Laboratorio

Programmazione Funzionale

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

2. Risolvere con il metodo di eliminazione di Gauss con pivoting parziale il seguente sistema lineare:

I. Foglio di esercizi su vettori linearmente dipendenti e linearmente indipendenti. , v 2 = α v 1 + β v 2 + γ v 3. α v 1 + β v 2 + γ v 3 = 0. + γ.

Calcolo letterale. è impossibile (*) x y. per x = -25; impossibile per y= Impossibile. 15 y

Lezioni di Algebra Lineare con applicazioni alla Geometria Analitica Errata Corrige. Fulvio Bisi, Francesco Bonsante, Sonia Brivio

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Esercitazione di Analisi Matematica II

Metodi per la risoluzione di sistemi lineari

Note per il corso di Geometria e algebra lineare Corso di laurea in Ing. Elettronica e delle Telecomunicazioni

Esercizi su alberi binari

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Foglio Elettronico Lezione 1

Aritmetica in Floating Point

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

Corso base di Matematica. - I numeri -

DIVISIBILITA, DIVISORI E MULTIPLI. Conoscenze

Brevissima introduzione al Lisp

Sistemi II. Sistemi II. Elisabetta Colombo

1) Hamming bound, coset, codici equivalenti

Esercitazione. Esercizio 1 Scrivere un programma che calcoli e visualizzi la somma degli interi pari da 2 a 1000 (estremi compresi)

PROGRAMMAZIONE: Le strutture di controllo

MATRICI E VETTORI APPROFONDIMENTO PER IL CORSO DI LABORATORIO DI INFORMATICA SARA POLTRONIERI

Esercitazioni di Algebra e Geometria

Moltiplicazione. Divisione. Multipli e divisori

APPUNTI DI MATEMATICA ALGEBRA \ CALCOLO LETTERALE \ MONOMI (1)

Matrici quadrate particolari

Liste. Università degli Studi di Milano

AMBIENTE EXCEL CALCOLO DEL RESTO DELLA DIVISIONE FRA NATURALI

LABORATORIO DI CIRCUITI ELETTRICI Nozioni generali e guida agli esperimenti. Rappresentazione grafica dei risultati sperimentali

1 Combinazioni lineari.

ESAME DI MATEMATICA I parte Vicenza, 05/06/2017. x log 2 x?

I termini dell operazione sono: la base, l esponente e il valore della potenza: DOVE 4 è la base 3 è l esponente 64 è il valore della potenza

Sui determinanti e l indipendenza lineare di vettori

ADT LISTA: altre operazioni non primitive ADT LISTA COSTRUZIONE ADT LISTA COSTRUZIONE ADT LISTA (2)

Somma di numeri binari

misura. Adesso, ad un arbitrario punto P dello spazio associamo una terna di numeri reali x

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

Esercizi di LISP. Marco Broglia. 09 novembre 2005

0 Insiemi, funzioni, numeri

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

I monomi Prof. Walter Pugliese

Rappresentazione dell Informazione

Note per la Lezione 4 Ugo Vaccaro

le frazioni NUMERATORE Termini della frazione le frazioni a cura di Barbara Colla 1 Linea di frazione (rappresenta la divisione) DENOMINATORE

Esercizi svolti. risolvere, se possibile, l equazione xa + B = O, essendo x un incognita reale

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Sistemi d equazioni lineari

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

COMPITI VACANZE ESTIVE 2017 MATEMATICA Scuola Media Montessori Cardano al Campo (VA)

Esercizi di ripasso: geometria e algebra lineare.

Prendiamo in considerazione la matrice tridiagonale

SISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI

2. Coordinate omogenee e trasformazioni del piano

Esercizi per il corso di Programmazione I

Richiami sullo studio di funzione

1 Forme quadratiche 1. 2 Segno di una forma quadratica Il metodo dei minori principali Soluzioni degli esercizi 7.

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 24 Gennaio 2011 COGNOME E NOME RIGA COLONNA MATRICOLA

Richiami di aritmetica (1)

Problema. Vettori e matrici. Vettori. Vettori

Risoluzione di problemi ingegneristici con Excel

Nozioni Preliminari e Terminologia. Alfabeti Stringhe Linguaggi

Sottospazi vettoriali. Nota Bene: Questo materiale non deve essere considerato come sostituto delle lezioni.

= elemento che compare nella seconda riga e quinta colonna = -4 In generale una matrice A di m righe e n colonne si denota con

Funzioni Pari e Dispari

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Liceo scientifico Pascal Manerbio Esercizi di matematica per le vacanze estive

MATLAB (II parte) Commenti. Input/Output (I/O) Istruzioni di Input/Output (I/O)

Lena Cota Guido Corso di Informatica - II livello. Excel 2003 Formule. Imparare a usare le formule con la pratica

Si dice multiplo di un numero a diverso da zero, ogni numero naturale che si ottiene moltiplicando a per ciascun elemento di N.

OBIETTIVI MINIMI DI MATEMATICA

Geometria BIAR Esercizi 2

Esercizi su strutture dati

Transcript:

Esercizi Lisp - 15 aprile 2013 1) Data la funzione RAZ in Lisp: (de raz (x y) (if (< x y) x (raz (- x y) y))) Quale funzione è calcolata da RAZ? 2) Data una funzione H in Lisp: (de h (n) (if (= 0 n) 0 (- n (h (- n 1))))) Quale funzione è calcolata da H? 3) Data una funzione F91 in Lisp: (de f91 (x) (if (> x 100) (- x 10) (f91 (f91 (+ x 11))))) Quale funzione è calcolata da F91? 4) Date due funzioni ABA et BAB in Lisp: (de aba (n) (if (= 0 n) 0 (bab (- n 1)))) (de bab (n) (if (= 0 n) 1 (aba (- n 1)))) Quali funzioni sono calcolate da ABA e BAB? 5) Definire una funzione QUOZ, che calcola la divisione intera sui numeri naturali usando solo somma, differenza e confronto con zero come funzioni di base. 6) Tradurre la definizione ottenuta nel punto 1 in Lisp e calcolare degli esempi sul computer. 7) Definire una funzione LG10, che calcola il numero di cifre del suo argomento in base 10; cioè più o meno il logaritmo in base 10 del suo argomento. 8) Tradurre la definizione ottenuta nel punto 4 in Lisp e calcolare esempi sul computer. 9) Scrivere una funzione PRIM, che decide se il suo argomento è un numero primo. Per esempio calcolando un fattore quando l'argomento non è primo e dare il numero stesso quando è primo. Provare l'esempio (PRIM 32399)

Esercizi Lisp - 16.04.2013 Siano date le funzioni F e F+ delle lezioni sui numeri frazionari rappresentati come coppie, esempio:? (f+ (f 1 2) (f 1 3)) = (5 6) Altre operazioni aritmetiche in Lisp: 1) Scrivere una funzione F- che calcola la differenza tra numeri frazionari, in modo simile alla funzione F+ del corso, esempio:? (f- (f 1 2) (f 1 3)) = (1 6) 2) Scrivere una funzione F* che calcola il prodotto tra numeri frazionari, esempio:? (f* (f 1 2) (f 1 3)) = (1 6) 3) Scrivere una funzione F/ che calcola il quoziente tra numeri frazionari, esempio:? (f/ (f 1 2) (f 1 3)) = (3 2) Predicati 4) Scrivere una funzione Lisp F=, che compara due numeri frazionari. Deve dare 0, se i due argomenti rappresentano lo stesso numero frazionario, altrimenti dà 1. Esempio:? (f= (f 5 6) (f+ (f 1 2) (f 1 3))) = 0 5) Scrivere una funzione Lisp F<, che compara due numeri frazionari. Deve dare 0, se il primo argomento è più piccolo del secondo, altrimenti dà 1. Esempio:? (f< (f 1 2) (f 1 3)) = 1 6) Scrivere una funzione Lisp F>, che compara due numeri frazionari. Deve dare 0, se il primo argomento è più grande del secondo, altrimenti dà 1. Esempio:? (f> (f 1 2) (f 1 3)) = 0

Esercizi Lisp - 17 aprile 2013 1) Data la funzione PEX in Lisp: (de pex (x y) (cond ((= 0 y) 1) ((= 0 (rest y 2)) (quad (pex x (/ y 2)))) (t (* x (pex x (- y 1)))))) Dare dominio e codominio per PEX. Che funzione è calcolata da PEX? 2) Scrivere una funzione LQUAD in Lisp, che prende una lista di numeri come argomento e che produce una lista con tutti questi numeri al quadrato. Esempio: (lquad (list 3 25 13)) deve dare (9 625 169) 3) Fare come in 2 con la funzione Fattoriale al posto del quadrato. 4) Scrivere una funzione LPARI in Lisp, che prende una lista di numeri come argomento e che produce una lista che contiene sole i numeri pari della lista d'ingresso, ma non i numeri dispari. Se non ci sono numeri pari produce la lista vuota. Esempio: (lpari (list 49 22 5 40 3)) deve dare (22 40) 5) Fare la stessa cose come in 4, ma per numeri primi invece di numeri pari: Scrivere una funzione LPRIM in Lisp, che prende una lista di numeri come argomento e produce una nuova lista come risultato che contiene solo i numeri primi della lista d'ingresso. Usare la funzione PRIM dell'esercizio precedente. Esempio: (lprim (ll 20)) deve dare (19 17 13 11 7 5 3 2) 6) Data la funzione LDIV in Lisp: (de ldiv (x y) (cond ((null y) ()) ((= 0 (rest (car y) x)) (ldiv x (cdr y))) (t (cons (car y) (ldiv x (cdr y)))))) Dare dominio e codominio per LDIV. Che funzione è calcolata da LDIV? 7) Scrivere une funzione FPRIM in Lisp che fa la scomposizione di un numero in fattori primi. Cioe la funzione prende un numero come argomento e produce una lista che contiene tutti i sui fattori primi. Esempio: (fprim 16762) deve dare (2 17 17 29) e per ognuno numero x si verifica (prodlist (fprim x)) = x 8) Data la funzione VER in Lisp : (de ver (x y) (if (null x) y (ver (cdr x) (cons (car x) y))))

Dare dominio e codominio per VER. Che funzione è calcolata da VER? 9) Scrivere una funzione LPIU in Lisp che prende due liste come argomenti e che decide se queste liste hanno la stessa lunghezza, senza calcolarla naturalmente; cioè senza usare operazioni aritmetiche. Quando i due argomenti hanno la stessa lunghezza, la funzione LPIU deve dare 0, altrimenti 1. Esempio: (lpiu (ll 4) (list 1 2 3 4)) deve dare 0 10) Prodotto scalare di vettori. Un vettore può essere rapresentato da una lista. Scrivere una funzione SCALPROD in Lisp, che prende due liste come argomento, e che produce un numero che è il prodotto scalare dei argomenti considerati come vettori. Naturalemente, le due liste hanno la stessa lunghezza. Esempio: (scalprod (list 3 2 1) (list -1 0 1)) deve dare -2

Esercizi Lisp - 18 aprile 2013 1) Data la funzione SART2 in Lisp: (de sart2 (x) (list (list (car (car x)) (car (cadr x))) (list (cadr (car x)) (cadr (cadr x))))) Dare dominio e codominio per SART2. Che funzione è calcolata da SART2? 2) Scrivere una funzione DET2 in Lisp, che prende una matrice quadrata di dimensione 2 come argomento e che calcola il suo determinante. Una matrice può essere rappresentata come una lista di righe, dove una riga è una lista piatta di numeri; ( 1 2 ) ( 3 4 ) sarà la lista ((1 2) (3 4)). Esempio: (det2 (list (list 1 2) (list 3 4))) deve dare -2 3) Data la funzione LLL in Lisp (de lll (x) (if (null x) () (cons (ll (car x)) (lll (cdr x))))) Dare dominio e codominio per LLL. Che funzione è calcolata da LLL? 4) Scrivere una funzione LLONG in Lisp che prende una lista di liste come argomento e che produce una lista di lunghezze di queste sottoliste. Esempio: (llong (list (ll 20) () (list 3))) deve dare (20 0 1) 5) Scrivere una funzione L<= in Lisp che prende due liste come argomenti e confronta le lunghezze, naturalmente senza calcolarle. Se il primo argomento ha una lunghezza minore o uguale a quella del secondo argomento, la funzione L<= deve dare T, altrimenti deve dare la lista vuota (). Esempi: (L<= (ll 2) ()) deve dare () (L<= (ll 2) (ll 3)) deve dare t. 6) Scrivere une funzione LINSERIRE in Lisp che prende una lista piatta e una lista di liste come argomenti. Il primo argomento è una lista qualsiasi, il secondo argomento contiene le liste ordinate sulla loro lunghezza in modo crescente. La funzione LINSERIRE deve inserire il primo argomento al posto giusto nel secondo per mantenere la relazione d'ordine, in modo simile alla funzione INSERIRE per numeri. Usare il predicato L<= del punto 5. Esempio: (LINSERIRE (ll 2) (list () (ll 4) (ll 5))) deve dare (() (2 1) (4 3 2 1) (5 4 3 2 1)) 7) Scrivere une funzione LORDINARE che prende una lista di liste come argomento e che produce una lista come risultato che contiene le stesse sottoliste dell argomento, ma ordinata in base alla lunghezza crescente. Usare la funzione LINSERIRE del punto 6 in modo simile alla funzione ORDINARE per numeri. Esempio: (LORDINARE (list (ll 3) () (list 2 4))) deve dare

(() (2 4) (3 2 1)) 8) Data la funzione BLAMOS in Lisp: (de blamos (x) (cond ((null x) 0) ((atom x) x) (t (+ (blamos (car x)) (blamos (cdr x)))))) Dare dominio e codominio per BLAMOS. Che funzione è calcolata da BLAMOS? 9) Scrivere una funzione PRODALB in Lisp che prende una lista qualsiasi come argomento e che calcola il prodotto di tutti gli numeri che si trovano ad un qualsiasi livello. Cioè la lista contiene normalmente anche sottoliste. Esempio: (prodalb (list 3 (ll 3) (list -2 4)) deve dare -48. 10) Scrivere una funzione PIATTA che prende una lista di liste come argomento e che produce una lista piatta come risultato che contiene tutte le foglie del argomento, cioè che non contiene più sottoliste. Esempio: (piatta (list 2 (list 3 4) (list 2))) deve dare (2 3 4 2)