Corso di Programmazione

Documenti analoghi
Corso di Programmazione

Corso di Programmazione

Corso di Programmazione

Corso di Programmazione

Corso di Programmazione

Corso di Programmazione

Corso di Programmazione

Corso di Programmazione

Alberi binari: definizione e alcune proprietà

Corso di Programmazione

Alberi. Alberi: definizioni. Alberi Binari. Esercizi su alberi binari: metodi ricorsivi. Struttura dati per alberi generici. ASD-L - Luca Tesei

Il numero dei nodi al livello i è 1, per 0 i altezza L altezza h di un albero completamente sbilanciato con n nodi è h = n-1

alberi completamente sbilanciati

Esempio: rappresentare gli insiemi

Un albero completamente bilanciato o pieno (full) alberi completamente sbilanciati. Un albero binario completo

Alberi binari (radicati e ordinati) della radice Il padre del nodo 5 e del nodo 3

Esercizi su alberi binari

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Esercizio: punti e segmenti

L albero e un tipo astratto di dati usato per rappresentare relazioni gerarchiche.

Divide et impera su alberi

Per semplicità eliminiamo le ripetizioni nell'albero.

L albero costituito da un unico nodo r senza genitori è un albero, con radice r;

PROGRAMMAZIONE II canale A-D luglio 2008 TRACCIA DI SOLUZIONE

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione

Prova di Algoritmi e s.d. (1o anno) 7 Febbraio TESTO e RISPOSTE

Alberi ed Alberi Binari di Ricerca

Esercizio. 2 i=i*2) j=j*2)

Note per la Lezione 4 Ugo Vaccaro

Alberi binari e alberi binari di ricerca

Espressioni aritmetiche

Alberi binari e alberi binari di ricerca

Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi

Alberi ed Alberi Binari

Ricerca con una chiave k Assumiamo l esistenza di un descrittore albero con i campi: albero.radice (=null per l albero vuoto) albero.dimensione (=0 pe

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

Albero binario. Alberi binari (introduzione) Terminologia. Alberi di ricerca binaria (BST)

Esercizi per il corso di Algoritmi, anno accademico 2011/12

Esercitazione 3. Heapsort

d. Cancellazione del valore 5 e. Inserimento del valore 1

Algoritmi e Strutture Dati. HeapSort

Alberi binari e alberi binari di ricerca

Prova di Algoritmi e s.d. (1o anno) 17 Settembre TESTO e RISPOSTE

Un heap binario è un albero binario con le seguenti caratteristiche:

Laboratorio di Python

In questa lezione. Alberi binari: [CLRS09] cap. 12 per la visita inorder. visite e esercizi su alberi binari. Prof. E. Fachini - Intr. Alg.

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Organigramma Gerarchia. (Tree) Nessuna persona può avere più di un superiore Ogni persona può essere superiore di altre

Algoritmi e Strutture di Dati

Nozioni di base (II Parte)

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Moltiplicazione veloce di interi

Esercizi di programmazione ricorsiva. Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B)

Informatica 3. LEZIONE 9: Introduzione ai linguaggi funzionali. Modulo 1: Introduzione ai linguaggi funzionali Modulo 2: LISP

Alberi. CORDA Informatica. A. Ferrari. Testi da. Marco Bernardo Edoardo Bontà. Dispense del Corso di. Algoritmi e Strutture Dati

Alberi. Strutture dati: Alberi. Alberi: Alcuni concetti. Alberi: definizione ricorsiva. Alberi: Una prima realizzazione. Alberi: prima Realizzazione

Esercizi su ABR. Prof. E. Fachini - Intr. Alg.!1

Figura 1: 1) Si scriva la formulazione del problema come problema di PLI (con un numero minimo di vincoli) e la matrice dei vincoli.

Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.

Esercizi Capitolo 6 - Alberi binari di ricerca

Dati e Algoritmi 1: A. Pietracaprina. Alberi Binari

Esercitazione 8. Corso di Tecniche di programmazione. Laurea in Ingegneria Informatica

Esercizio 1. E vero che in un AVL il minimo si trova in una foglia o nel penultimo livello? FB = -1. livello 0 FB = -1. livello 1 FB = -1.

Fondamenti di Programmazione - Prof.ssa Gargano Anno Acc Esercitazioni 2009

Algoritmi e Strutture Dati. HeapSort

Alberi. Gli alberi sono una generalizzazione delle liste che consente di modellare delle strutture gerarchiche come questa: Largo. Fosco.

Esercizi su programmazione ricorsiva 3

Informatica 3. Informatica 3. LEZIONE 14: Alberi binari: introduzione. Lezione 14 - Modulo 1. Definizioni. Introduzione. Definizioni e proprietà

ESERCITAZIONI DI INTRODUZIONE AGLI ALGORITMI (A.A. 08/09)

5.1 Metodo Branch and Bound

Algoritmi e Strutture Dati Laboratorio 15/12/2008. Daniele Loiacono

ALGORITMI CORSO DI STUDIO IN INFORMATICA (laurea triennale) UNIVERSITÀ DEGLI STUDI DI CATANIA ANNO ACCADEMICO 2014/15

Introduzione agli algoritmi Prova di esame del 19/9/2016 Prof.sse E. Fachini - R. Petreschi. Parte prima

PROGRAMMAZIONE 1 e LABORATORIO (A,B) - a.a Prova scritta del 10/01/2012 SOLUZIONI PROPOSTE

Lezione 12 Tabelle Hash

Algoritmi e Strutture di Dati

Esercizi di Programmazione Prolog

Esercizi Capitolo 6 - Alberi binari di ricerca

Alberi e alberi binari I Un albero è un caso particolare di grafo

Alberi e alberi binari I Un albero è un caso particolare di grafo

Corso di Programmazione

1 Addendum su Diagonalizzazione

K-d-tree A L B E R T O B E L U S S I A N N O A C C A D E M I C O

Scritto di Algoritmi e s.d. (1o anno) 16 Gennaio 2004 TESTO E RISPOSTE

Laboratorio di Algoritmi

Laboratorio 26 Aprile 2012

Sviluppo di programmi

Fondamenti teorici e programmazione

Algoritmi e Strutture Dati

Esercitazioni del Corso di Fondamenti di Informatica ARRAY. Prof. Giuseppe Manco. A cura di Ing. Andrea Tagarelli

Codice Gray. (versione Marzo 2007)

Algoritmi Avanzati Soluzioni dello scritto del 2 febbraio 2004 (appello straordinario)

Dati e Algoritmi I (Pietracaprina) Esercizi su Priority Queue e Heap

7.1 Progettare un algoritmo per costruire ciclo euleriano di un grafo non orientato.

Soluzioni della settima esercitazione di Algoritmi 1

ADT Coda con priorità

Lezione 7 Alberi binari: visite e alberi di ricerca

min det det Allora è unimodulare se e solo se det 1, 1, 0 per ogni sottomatrice quadrata di di qualsiasi dimensione.

Appunti Senza Pretese di Programmazione II: Costruzione di un Albero Bilanciato

Transcript:

II Accertamento del 15 Marzo 2002 / A Risolvi i seguenti esercizi, riporta le soluzioni in modo chiaro negli appositi riquadri e giustifica sinteticamente le risposte utilizzando i fogli protocollo. Cosa calcola la procedura f? Calcola i risultati della valutazione delle espressioni Scheme: (f '(a (f '(a b (f '(a b c (f '(a b c d e ipotizza il risultato della generica valutazione (f '(1 2 3... n. (define f (lambda (x (if (null? x null (cons (car x (g (cdr x (define g (lambda (x (if (null? x null (f (cdr x Descrivi sinteticamente una possibile rappresentazione in Scheme delle matrici rettangolari (numeriche. Quindi definisci le procedure matrice, per costruire una matrice rettangolare di elementi nulli, ed elemento per acquisire l elemento corrispondente a una coppia di indici. ; Operazioni relative alle matrici ; (matrice <righe> <colonne> : naturale x naturale -> matrice ; (elemento <matrice> <indice> <indice> : matrice x naturale x naturale -> numero...... Supponi che sia data un opportuna realizzazione degli alberi binari, accessibile attraverso le operazioni introdotte qui di seguito. Utilizzando tali operazioni definisci una procedura in Scheme per verificare se un albero binario non vuoto è uno heap, cioè se il valore numerico di ogni nodo è minore del valore associato al corrispondente nodo padre. ; Operazioni relative agli alberi binari ; (singoletto? <albero> : albero -> booleano ; (sottoalbero-sinistro <albero> : albero -> albero ; (sottoalbero-destro <albero> : albero -> albero ; (nodo-radice <albero> : albero -> numero 4. Definizione di procedure in Scheme Definisci formalmente una procedura in Scheme per risolvere il seguente problema: dati due naturali x, y e una lista L di numeri naturali, calcolare la lista di tutti e soli gli elementi di L compresi nell intervallo [x, y]. 5. Dimostrazioni per induzione Considera la procedura f e dimostra per induzione che il valore dell espressione (f L, dove L è una lista non vuota di numeri, è dato dal minimo elemento di L. In particolare: (define f (lambda (L (f-iter (cdr L (car L (define f-iter (lambda (L x (cond ((null? L x ((< (car L x (f-iter (cdr L (car L (else (f-iter (cdr L x Scrivi formalmente la proprietà che intendi dimostrare per induzione. Scrivi formalmente la proprietà che esprime il caso base. Scrivi formalmente l ipotesi induttiva. Scrivi formalmente la proprietà che si deve dimostrare come passo induttivo. Dimostra formalmente il caso base. Dimostra formalmente il passo induttivo.

II Accertamento del 15 Marzo 2002 / B Risolvi i seguenti esercizi, riporta le soluzioni in modo chiaro negli appositi riquadri e giustifica sinteticamente le risposte utilizzando i fogli protocollo. Cosa calcola la procedura f? Calcola i risultati della valutazione delle espressioni Scheme: (f '(a (f '(a b (f '(a b c (f '(a b c d e ipotizza il risultato della generica valutazione (f '(1 2 3... n. (define f (lambda (x (if (null? x null (g (cdr x (define g (lambda (x (if (null? x null (cons (car x (f (cdr x Descrivi sinteticamente una possibile rappresentazione in Scheme delle matrici rettangolari (numeriche. Quindi definisci le procedure matrice, per costruire una matrice rettangolare di elementi nulli, ed assegnazione per assegnare l elemento corrispondente a una coppia di indici. ; Operazioni relative alle matrici ; (matrice <righe> <colonne> : naturale x naturale -> matrice ; (assegnazione <matrice> <indice> <indice> <valore> : matrice x naturale x naturale x numero -> matrice...... Supponi che sia data un opportuna realizzazione degli alberi binari, accessibile attraverso le operazioni introdotte qui di seguito. Utilizzando tali operazioni definisci una procedura in Scheme per verificare se un albero binario non vuoto è uno heap, cioè se il valore numerico di ogni nodo è maggiore del valore associato al corrispondente nodo padre. ; Operazioni relative agli alberi binari ; (singoletto? <albero> : albero -> booleano ; (sottoalbero-sinistro <albero> : albero -> albero ; (sottoalbero-destro <albero> : albero -> albero ; (nodo-radice <albero> : albero -> numero 4. Definizione di procedure in Scheme Definisci formalmente una procedura in Scheme per risolvere il seguente problema: dati due naturali x, y e una lista L di numeri naturali, calcolare la lista di tutti e soli gli elementi di L che non appartengono all intervallo [x, y]. 5. Dimostrazioni per induzione Considera la procedura f e dimostra per induzione che il valore dell espressione (f L, dove L è una lista non vuota di numeri naturali positivi, è dato dal massimo comun divisore (gcd degli elementi di L. In particolare: (define f (lambda (L (f-iter (cdr L (car L (define f-iter (lambda (L x (if (null? L x (f-iter (cdr L (gcd (car L x Scrivi formalmente la proprietà che intendi dimostrare per induzione. Scrivi formalmente la proprietà che esprime il caso base. Scrivi formalmente l ipotesi induttiva. Scrivi formalmente la proprietà che si deve dimostrare come passo induttivo. Dimostra formalmente il caso base. Dimostra formalmente il passo induttivo. 2

II Accertamento del 15 Marzo 2002 / C Risolvi i seguenti esercizi, riporta le soluzioni in modo chiaro negli appositi riquadri e giustifica sinteticamente le risposte utilizzando i fogli protocollo. Cosa calcola la procedura f? Calcola i risultati della valutazione delle espressioni Scheme: (f '(a (f '(a b (f '(a b c (f '(a b c d e ipotizza il risultato della generica valutazione (f '(1 2 3... n. (define f (lambda (x (g x null (define g (lambda (x y (cond ((null? x y ((null? (cdr x y (else (g (cddr x (cons (cadr x y Descrivi sinteticamente una possibile rappresentazione in Scheme delle matrici rettangolari (numeriche. Quindi definisci le procedure numero-righe, numero-colonne, per determinare le dimensioni, ed elemento per acquisire l elemento corrispondente a una coppia di indici. ; Operazioni relative alle matrici ; (numero-righe <matrice> : matrice -> naturale ; (numero-colonne <matrice> : matrice -> naturale ; (elemento <matrice> <indice> <indice> : matrice x naturale x naturale -> numero...... Supponi che sia data un opportuna realizzazione degli alberi binari, accessibile attraverso le operazioni introdotte qui di seguito. Utilizzando tali operazioni definisci una procedura in Scheme per verificare se c è un nodo di valore dato in un albero binario di ricerca non vuoto. Un albero binario di ricerca è tale che il sottoalbero sinistro di un nodo di valore n contiene solo nodi di valore minore di n e quello destro solo nodi di valore maggiore di n. ; Operazioni relative agli alberi binari ; (singoletto? <albero> : albero -> booleano ; (sottoalbero-sinistro <albero> : albero -> albero ; (sottoalbero-destro <albero> : albero -> albero ; (nodo-radice <albero> : albero -> numero 4. Definizione di procedure in Scheme Definisci formalmente una procedura in Scheme per risolvere il seguente problema: dati due naturali x, y e una lista L di numeri naturali, calcolare la lista di tutti e soli gli elementi di L che sono contemporaneamente multipli di x e di y. 5. Dimostrazioni per induzione Considera la procedura g e dimostra per induzione che il valore dell espressione (g L, dove L è una lista non vuota di numeri, è dato dal massimo elemento di L. In particolare: (define g (lambda (L (g-iter (cdr L (car L (define g-iter (lambda (L x (cond ((null? L x ((< (car L x (g-iter (cdr L x (else (g-iter (cdr L (car L Scrivi formalmente la proprietà che intendi dimostrare per induzione. Scrivi formalmente la proprietà che esprime il caso base. Scrivi formalmente l ipotesi induttiva. Scrivi formalmente la proprietà che si deve dimostrare come passo induttivo. Dimostra formalmente il caso base. Dimostra formalmente il passo induttivo. 3

II Accertamento del 15 Marzo 2002 / D Risolvi i seguenti esercizi, riporta le soluzioni in modo chiaro negli appositi riquadri e giustifica sinteticamente le risposte utilizzando i fogli protocollo. Cosa calcola la procedura f? Calcola i risultati della valutazione delle espressioni Scheme: (f '(a (f '(a b (f '(a b c (f '(a b c d e ipotizza il risultato della generica valutazione (f '(1 2 3... n. (define f (lambda (x (g x null (define g (lambda (x y (cond ((null? x y ((null? (cdr x (cons (car x y (else (g (cddr x (cons (car x y Descrivi sinteticamente una possibile rappresentazione in Scheme delle matrici rettangolari (numeriche. Quindi definisci le procedure numero-righe, numero-colonne, per determinare le dimensioni, ed assegnazione per assegnare l elemento corrispondente a una coppia di indici. ; Operazioni relative alle matrici ; (numero-righe <matrice> : matrice -> naturale ; (numero-colonne <matrice> : matrice -> naturale ; (assegnazione <matrice> <indice> <indice> <valore> : matrice x naturale x naturale x numero -> matrice...... Supponi che sia data un opportuna realizzazione degli alberi binari, accessibile attraverso le operazioni introdotte qui di seguito. Utilizzando tali operazioni definisci una procedura in Scheme per verificare se c è un nodo di valore dato in un albero binario di ricerca non vuoto. Un albero binario di ricerca è tale che il sottoalbero sinistro di un nodo di valore n contiene solo nodi di valore maggiore di n e quello destro solo nodi di valore minore di n. ; Operazioni relative agli alberi binari ; (singoletto? <albero> : albero -> booleano ; (sottoalbero-sinistro <albero> : albero -> albero ; (sottoalbero-destro <albero> : albero -> albero ; (nodo-radice <albero> : albero -> numero 4. Definizione di procedure in Scheme Definisci formalmente una procedura in Scheme per risolvere il seguente problema: dati due naturali x, y e una lista L di numeri naturali, calcolare la lista di tutti e soli gli elementi di L che sono multipli di x ma non di y. 5. Dimostrazioni per induzione Considera la procedura g e dimostra per induzione che il valore dell espressione (g L, dove L è una lista non vuota di numeri naturali positivi, è dato dal minimo comune multiplo (lcm degli elementi di L. In particolare: (define g (lambda (L (g-iter (cdr L (car L (define g-iter (lambda (L x (if (null? L x (g-iter (cdr L (lcm (car L x Scrivi formalmente la proprietà che intendi dimostrare per induzione. Scrivi formalmente la proprietà che esprime il caso base. Scrivi formalmente l ipotesi induttiva. Scrivi formalmente la proprietà che si deve dimostrare come passo induttivo. Dimostra formalmente il caso base. Dimostra formalmente il passo induttivo. 4

II Accertamento del 15 Marzo 2002 / A (f '(a (a (f '(a b (a (f '(a b c (a c (f '(a b c d (a c caso generale: (f '(1 2 3... n (1 3... k dove k = n se n è dispari k = n 1 altrimenti Definizione delle procedure: vedi in fondo (define heap? (lambda (T (if (singoletto? T #t (let ((sin (sottoalbero-sinistro T (des (sottoalbero-destro T (and (heap? sin (heap? des (< (nodo-radice sin (nodo-radice T (< (nodo-radice des (nodo-radice T 5

4. Definizione di procedure in Scheme (define selezione (lambda (x y lista (cond ((null? lista null ((or (< (car lista x (> (car lista y (selezione x y (cdr lista (else (cons (car lista (selezione x y (cdr lista 5. Dimostrazioni per induzione Dimostrazioni su foglio allegato. Proprietà da dimostrare per induzione: Proprietà dimostrata nel caso base: Per ogni lista di naturali L e per ogni numero x Per ogni numero x (f-iter L x min( {z / z elemento di L} {x} (Dimostrazione per induzione sulla lunghezza di L (f-iter λ x min( {x} = x (λ è la lista vuota Ipotesi induttiva: Per ogni lista di naturali L di lunghezza L = n 1, con n > 0, e per ogni numero x Proprietà dimostrata nel passo induttivo: Per ogni lista di naturali L' di lunghezza L' = n, e per ogni numero y (f-iter L x min( {z / z elemento di L} {x} (f-iter L' y min( {z / z elemento di L'} {x} 6

II Accertamento del 15 Marzo 2002 / B (f '(a ( (f '(a b (b (f '(a b c (b (f '(a b c d (b d caso generale: (f '(1 2 3... n (2 4... k dove k = n se n è pari k = n 1 altrimenti Definizione delle procedure: vedi in fondo (define heap? (lambda (T (if (singoletto? T #t (let ((sin (sottoalbero-sinistro T (des (sottoalbero-destro T (and (heap? sin (heap? des (> (nodo-radice sin (nodo-radice T (> (nodo-radice des (nodo-radice T 7

4. Definizione di procedure in Scheme (define selezione (lambda (x y lista (cond ((null? lista null ((and (>= (car lista x (<= (car lista y (selezione x y (cdr lista (else (cons (car lista (selezione x y (cdr lista 5. Dimostrazioni per induzione Dimostrazioni su foglio allegato. Proprietà da dimostrare per induzione: Proprietà dimostrata nel caso base: Per ogni lista di naturali L e per ogni naturale x > 0 Per ogni naturale x > 0 (f-iter L x gcd( {z / z elemento di L} {x} (Dimostrazione per induzione sulla lunghezza di L (f-iter λ x gcd( {x} = x (λ è la lista vuota Ipotesi induttiva: Per ogni lista di naturali L di lunghezza L = n 1, con n > 0, e per ogni naturale x > 0 Proprietà dimostrata nel passo induttivo: Per ogni lista di naturali L' di lunghezza L' = n, e per ogni naturale y > 0 (f-iter L x gcd( {z / z elemento di L} {x} (f-iter L' y gcd( {z / z elemento di L'} {x} 8

II Accertamento del 15 Marzo 2002 / C (f '(a ( (f '(a b (b (f '(a b c (b (f '(a b c d (d b caso generale: (f '(1 2 3... n (k... 4 2 dove k = n se n è pari k = n 1 altrimenti Definizione delle procedure: vedi in fondo (define trovato? (lambda (x T (cond ((= x (nodo-radice T #t ((singoletto? T #f ((< x (nodo-radice T (trovato? x (sottoalbero-sinistro T (else (trovato? x (sottoalbero-destro T 9

4. Definizione di procedure in Scheme (define selezione (lambda (x y lista (cond ((null? lista null ((and (= (remainder (car lista x 0 (= (remainder (car lista y 0 (cons (car lista (selezione x y (cdr lista (else (selezione x y (cdr lista 5. Dimostrazioni per induzione Dimostrazioni su foglio allegato. Proprietà da dimostrare per induzione: Proprietà dimostrata nel caso base: Per ogni lista di naturali L e per ogni numero x Per ogni numero x (g-iter L x max({z / z elemento di L} {x} (Dimostrazione per induzione sulla lunghezza di L (g-iter λ x max( {x} = x (λ è la lista vuota Ipotesi induttiva: Per ogni lista di naturali L di lunghezza L = n 1, con n > 0, e per ogni numero x Proprietà dimostrata nel passo induttivo: Per ogni lista di naturali L' di lunghezza L' = n, e per ogni numero y (g-iter L x max({z / z elemento di L} {x} (g-iter L' y max({z / z elemento di L'} {x} 10

II Accertamento del 15 Marzo 2002 / D (f '(a (a (f '(a b (a (f '(a b c (c a (f '(a b c d (c a caso generale: (f '(1 2 3... n (k... 3 1 dove k = n se n è dispari k = n 1 altrimenti Definizione delle procedure: vedi in fondo (define trovato? (lambda (x T (cond ((= x (nodo-radice T #t ((singoletto? T #f ((> x (nodo-radice T (trovato? x (sottoalbero-sinistro T (else (trovato? x (sottoalbero-destro T 11

4. Definizione di procedure in Scheme (define selezione (lambda (x y lista (cond ((null? lista null ((and (= (remainder (car lista x 0 (not (= (remainder (car lista y 0 (cons (car lista (selezione x y (cdr lista (else (selezione x y (cdr lista 5. Dimostrazioni per induzione Dimostrazioni su foglio allegato. Proprietà da dimostrare per induzione: Proprietà dimostrata nel caso base: Per ogni lista di naturali L e per ogni naturale x > 0 Per ogni naturale x > 0 (g-iter L x lcm({z / z elemento di L} {x} (Dimostrazione per induzione sulla lunghezza di L (g-iter λ x lcm( {x} = x (λ è la lista vuota Ipotesi induttiva: Per ogni lista di naturali L di lunghezza L = n 1, con n > 0, e per ogni naturale x > 0 Proprietà dimostrata nel passo induttivo: Per ogni lista di naturali L' di lunghezza L' = n, e per ogni naturale y > 0 (g-iter L x lcm({z / z elemento di L} {x} (g-iter L' y lcm({z / z elemento di L'} {x} 12

Esercizio 2 (define matrice (lambda (r c (if (= r 1 (cons (riga c null (cons (riga c (matrice (- r 1 c (define riga (lambda (c (if (= c 1 (cons 0 null (cons 0 (riga (- c 1 (define elemento (lambda (M i j (if (= i 1 (elemento-riga (car M j (elemento (cdr M (- i 1 j (define elemento-riga (lambda (R j (if (= j 1 (car R (elemento-riga (cdr R (- j 1 (define assegnazione (lambda (M i j x (if (= i 1 (cons (assegna-riga (car M j x (cdr M (cons (car M (assegnazione (cdr M (- i 1 j x (define assegna-riga (lambda (R j x (if (= j 1 (cons x (cdr R (cons (car R (assegna-riga (cdr R (- j 1 x 13

(define numero-righe (lambda (M (if (null? M 0 (+ (numero-righe (cdr M 1 (define numero-colonne (lambda (M (lunghezza (car M 14