Gli ARRAY in FORTRAN 90

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Gli ARRAY in FORTRAN 90"

Transcript

1 ELEMENTI DI PROGRAMMAZIONE Gli ARRAY in FORTRAN 90

2 Un ARRAY è un AGGREGATO di più DATI dello stesso TIPO (interi, reali, etc), ognuno univocamente individuato dal valore di uno oppure due.. e fino a sette indici. Il numero di indici definisce la DIMENSIONE dell array. Un array monodimensionale, che chiameremo VETTORE, è assimilabile concettualmente ad un elenco ordinato di valori di un certo tipo per esempio: (1, -5, 7, 0, 8) Come ogni altra variabile o costante con nome, un array può avere un NOME che lo individua globalmente come aggregato. Poi ci si potrà riferire ad un suo elemento utilizzando i succitati INDICI. Supponiamo, per esempio, di aver assegnato al vettore di cui sopra il nome Cinquina, allora Cinquina(2) sarà il suo secondo elemento cioè l intero -5. In realtà FORTRAN 90 consente un estrema flessibilità nell organizzazione del DOMINIO o RANGE di un indice. VETTORE: ( 1, -5, 7, 0, 8) RANGE: [-2, -1, 0, 1, 2] Definito così il RANGE, per riferirci all elemento -5 del vettore dovremo scrivere Cinquina(-1). Dall esempio è sufficientemente evidente che un RANGE è dato definendone gli estremi, nel nostro caso -2 e 2, così che l ESTENSIONE del vettore risulta come LIMSUP-LIMINF+1.

3 Gli array bidimensionali, che chiameremo MATRICI, sono concettualmente assimilabili a tabelle ordinate secondo indici di riga e colonna. Supponendo - ad esempio - data una matrice di nome Tabella, con elementi INTERI disposti su quattro righe e tre colonne, avremo lo schema concettuale che segue: L elemento Tabella(3, 2) individuerà quindi l intero 1024 posto all intersezione fra la terza riga e la seconda colonna.

4 In effetti, lo schema precedente illustra anche un ulteriore importante peculiarità degli Array multidimensionali così come implementati da FORTRAN 90: la cosiddetta organizzazione per colonne. Le frecce in figura evidenziano appunto un criterio di linearizzazione della struttura bidimensionale, un ordine interno, su cui al momento non ci soffermeremo ripromettendoci di riconsiderarlo al momento opportuno. Resta valido quanto detto sulla flessibilità del range per gli indici. Supponiamo di aver definito per l indice di riga: INIZIO=10, FINE=13 E per l indice di colonna: INIZIO=-1, FINE=1 Allora l elemento di matrice evidenziato in figura dovrebbe essere riferito come Tabella(12, 0).

5 La sintassi generale di una istruzione di dichiarazione Fortran 90 per un array è la seguente: tipo, DIMENSION(range1 [,range2 [..range7]] ) [, attributo,...] :: lista_di_array in cui tipo è il il tipo di appartenenza di tutti i componenti della lista_di_array, la parola chiave DIMENSION è un attributo che serve a specificare la dimensione dell array che si sta dichiarando, mentre range1,.. range7 forniscono i range in cui spaziano gli indici dell array in ogni dimensione. Esempi: INTEGER, DIMENSION(10) :: Numeri CHARACTER, DIMENSION(-2:5, 3) :: CharTab REAL, DIMENSION(-9:0, 2:5) :: RealTab! Numeri è un vettore di interi e dimensione 10! CharTab è una matrice di caratteri con 8 righe e 3 colonne! RealTab è una matrice di reali con 11 righe e 4 colonne

6 Un array deve essere, prima di ogni utilizzazione, esplicitamente inizializzato. L inizializzazione può essere effettuata a tempo di esecuzione, utilizzando una variabile indice, come negli esempi che seguono:! Esempio 1 INTEGER, DIMENSION(10) :: Numeri INTEGER i DO i=1,10 Numeri(i)=2**i END DO! Esempio 2 INTEGER, DIMENSION(-10:10:2) :: Numeri INTEGER i DO i=-10,10, 2 READ(*,*) Numeri(i) END DO

7 L inizializzazione può essere anche realizzata a tempo di compilazione, utilizzando i cosiddetti COSTRUTTORI:! Qui l array è inizializzato contestualmente alla sua! dichiarazione INTEGER, DIMENSION(5) :: Numeri=(/ 1, 5, -7, 3, 4 /) Comunque, il costruttore può essere utilizzato per inizializzare l array a tempo di esecuzione: INTEGER, DIMENSION(-2:2) :: Numeri Numeri =(/ 1, 5, -7, 3, 4 /)

8 INDICI Qualsiasi espressione che fornisce come risultato un intero è un indice valido per un array. Consideriamo, come esempio, il segmento di codice: REAL, DIMENSION(5) :: lista=(/ 3, 4, -5, 6, 3/) INTEGER :: i=1, j=5 WRITE(*,*) lista(i)!corretto, fornisce come output lista(1), quindi 3 WRITE(*,*) lista(i+j/2)!corretto, fornisce come output lista(3), quindi -5 WRITE(*,*) lista(i+0.5*j)!il compilatore denuncia un errore di tipo, infatti il valore dell espressione-indice è di!tipo reale WRITE(*,*) lista(i+j)!errore di out-range in compilazione

9 DO IMPLICITO Quando si lavora con gli array risulta particolarmente utile utilizzare un costrutto logico che consente di realizzare iterazioni per così dire implicite. Per esempio il segmente di codice che segue.. DO i=1,10 lista(i)=1000*i END DO potrebbe essere sostituito dalla singola linea di codice.. lista(i)=(/ (1000*i, i=1, 10) /) dove il costrutto (1000*i, i=1, 10) costituisce il cosiddetto DO IMPLICITO. In altre parole REAL, DIMENSION(5) :: lista=(/ 3, 4, -5, 6, 3/) INTEGER :: i=1, j=5 WRITE(*,*) lista(i)!corretto, fornisce come output lista(1), quindi 3 WRITE(*,*) lista(i+j/2)!corretto, fornisce come output lista(3), quindi -5 WRITE(*,*) lista(i+0.5*j)!il compilatore denuncia un errore di tipo, infatti il valore dell espressione-indice è di!tipo reale WRITE(*,*) lista(i+j)!errore di out-range in compilazione

10 Un array dinamico è dichiarato utilizzando l attributo ALLOCATABLE. Poichè le sue dimensioni non sono note all atto della dichiarazione, il limite di ciascuno dei suoi indici va sostituito con il simbolo dei due punti: tipo, ALLOCATABLE, DIMENSION(: [, :,...]) :: nome_array Esempi: integer, ALLOCATABLE, DIMENSION(:) :: elenco_interi character(10), ALLOCATABLE, DIMENSION(:,:) :: tabella_parole

11 Le estensioni di un array dichiarato ma non ancora allocato possono essere specificate utlizzando l istruzione ALLOCATE che ha appunto la funzione di riservare spazio in memoria per i suoi elementi. La sintassi della succitata istruzione è quella che segue: ALLOCATE(lista_di_array_dimensionati) Esempio: integer, ALLOCATABLE, DIMENSION(:) :: elenco_interi character(10), ALLOCATABLE, DIMENSION(:,:) :: tabella_parole ALLOCATE(elenco_interi(100), tabella_parole(0:9, 10))

12 L istruzione ALLOCATE rende disponibile al progettista un opzione per monitorare il successo dell operazione di allocazione. Il formato di questa versione estesa dell istruzione prevede l indicazione di una variabile intera che conterrà in esito all esecuzione dell operazione di allocazione un codice numerico di errore oppure il valore 0 se tutto è andato bene. ALLOCATE(lista_di_array_dimensionati, STAT=variabile_di_controllo) Esempio: INTEGER :: errore INTEGER, ALLOCATABLE, DIMENSION(:) :: elenco_interi ALLOCATE(elenco_interi(100), STAT=errore) IF (errore/=0) THEN PRINT*, "Allocazione dell array fallita, codice errore:, errore STOP END IF

13 Lo spazio di memoria occupato da un array correntemente allocato può essere liberato mediante l istruzione DEALLOCATE che ha la seguente sintassi: DEALLOCATE(lista_di_array [, STAT=variabile_di_controllo]) dove il significato e l uso della clausola STAT=variabile_di_stato sono identici a quelli visti per l istruzione di allocazione. E importante ricordare che una volta che un array sia stato deallocato i dati in esso immagazzinati sono definitivamente non più disponibili. L uso combinato delle istruzioni ALLOCATE e DEALLOCATE consente di lavorare con un array allocabile di dimensioni continuamente variabili. Attenzione: ALLOCATE(vettore(10)) ALLOCATE(vettore(20))!ERRORE Non è possibile riallocare lo stesso array prima di averlo deallocato!

14 program reverse_array_dinamico_errori implicit none integer, allocatable, dimension(:) :: elenco integer :: i, n, errore print*, "quanti elementi vuoi inserire?" read(*,*) n allocate(elenco(n), STAT=errore) IF (stato/=0) THEN PRINT*, "Allocazione degli array fallita, codice errore:, errore STOP END IF read(*,*) elenco elenco((/(i, i=n,1,-1)/))=elenco write(*,*) elenco deallocate(elenco) end program

15 TYPE :: coord3 REAL :: x REAL :: y REAL :: z END TYPE coord3 TYPE(coord3), ALLOCATABLE, DIMENSION(:) :: elenco_punti INTEGER :: n WRITE(*,*) Numero di punti da leggere: READ(*,*) n ALLOCATE(elenco_punti(n))

16 TYPE :: coord3 REAL :: x REAL :: y REAL :: z END TYPE coord3 TYPE :: spezzata TYPE(coord3) :: inizio TYPE(coord3), ALLOCATABLE, DIMENSION(:) :: elenco_punti_intermedi TYPE(coord3) :: fine END TYPE spezzata INTEGER :: n WRITE(*,*) Numero di punti da leggere: READ(*,*) n ALLOCATE(elenco_punti(n))

17 PROGRAM confronta IMPLICIT NONE INTEGER, PARAMETER :: n=10 INTEGER, DIMENSION(n) :: a, b INTEGER :: i WRITE(*,*) Immetti il primo elenco di, n, interi: READ(*,*) (a(i), i=1, n) WRITE(*,*) Immetti il secondo elenco di, n, interi: READ(*,*) (b(i), i=1, n) IF (a==b) THEN WRITE(*,*) i due elenchi sono uguali! ELSE WRITE(*,*) i due elenchi non sono uguali! END IF END PROGRAM confronta

18 Modifichiamo il programma come segue: PROGRAM confronta INTEGER, PARAMETER :: n=10 INTEGER, DIMENSION(n) :: a, b INTEGER :: i WRITE(*,*) Immetti il primo elenco di, n, interi: READ(*,*) (a(i), i=1, n) WRITE(*,*) Immetti il secondo elenco di, n, interi: READ(*,*) (b(i), i=1, n) WRITE(*,*) Esito del confronto: WRITE(*,*) (a==b) END PROGRAM confronta La compilazione non darà errori ed in esecuzione potremmo avere il seguente risultato: Immetti il primo elenco di 10 interi:" Immetti il secondo elenco di 10 interi: Esito del confronto: F T T T F F F F T T

19 a b == == == == == == == == == == a==b F T T T F F F F T T Il confronto fra due array (conformi!) è quindi possibile e genera un array logico avente per contenuti i risultati del confronto, elemento per elemento!

20 IF (a==b) THEN IF (ALL(a==b)) THEN ALL è una cosiddetta funzione intrinseca di array, appartiene cioè ad una classe di funzioni specificamente pensate per evere come argomento/i degli array. In particolare ALL restituirà lo scalare logico.true. se il suo argomento (un array logico) contiene come elementi tutti.true., lo scalare.false. altrimenti.

21 a b ALL((a==b))! Restituisce.FALSE. ALL((a(1:4)==b(1:4)))! Restituisce.TRUE. ANY((a==b))! Restituisce.TRUE. ANY((a(5:8)==b(5:8)))! Restituisce.FALSE. Riuscite ad individuare cosa fa la funzione ANY?

22 Le funzioni intrinseche di array sono usualmente ricondotte, a seconda dell uso e degli scopi, a 7 categorie: 1. Funzioni di riduzione 2. Funzioni di interrogazione 3. Funzioni di costruzione 4. Funzioni di trasformazione 5. Funzioni topologiche 6. Funzioni di manipolazione 7. Funzioni algebriche

23 Funzioni di interrogazione (esempi) ALLOCATED (ARRAY) Indica se l ARRAY è o non è allocato. Il risultato è.true. se ARRAY è correntemente allocato,.false. altrimenti. Esempio: REAL, ALLOCATABLE, DIMENSION (:,:,:) :: myarr... PRINT*, ALLOCATED(myarr)! stampa il valore.false. ALLOCATE(myarr(10,0:9)) PRINT*, ALLOCATED(myarr)! stampa il valore.true.

24 Funzioni di costruzione (esempi) MERGE(TSOURCE,FSOURCE,MASK) Seleziona tra due valori, o tra gli elementi corrispondenti di due array, in accordo con la condizione specificata da una maschera. TSOURCE può essere uno scalare o un array di tipo qualsiasi. FSOURCE è uno scalare o un array avente stesso tipo di TSOURCE. MASK è un array logico. Il risultato (che ha lo stesso tipo di TSOURCE) viene determinato prendendo, elemento elemento, il valore corrispondente di TSOURCE (se MASK è.true.) o di FSOURCE (se MASK è.false.). Ad esempio, se la variabile intera r ha valore -3, allora il risultato di MERGE(1.0,0.0,r<0) ha valore 1.0, mentre per r pari a 7 ha the valore 0.0.

25 Funzioni di costruzione (esempi) Un esempio appena più complesso è il seguente. Se TSOURCE è l array: FSOURCE è l array: e MASK è l array:.false..true..true..true..true..false. allora l istruzione: MERGE(TSOURCE,FSOURCE,MASK) produce il risultato:

26 Funzioni di trasformazione (esempi) RESHAPE(SOURCE,SHAPE[,PAD]) Costruisce un array di forma differente a partire da un array di input. L argomento SOURCE è un array di tipo qualsiasi. Esso fornisce gli elementi per l array risultante. La sua ampiezza deve essere maggiore o uguale a PRODUCT(SHAPE) se PAD è omesso oppure se ha ampiezza nulla. L argomento SHAPE è un array di sette elementi al massimo, rango unitario e dimensione costante. Esso definisce la forma dell array risultante. Non può avere ampiezza nulla ed i suoi elementi non possono avere valori negativi. L argomento opzionale PAD è un array avente stesso tipo di SOURCE. Il suo compito è quello di fornire valori di riserva nel caso in cui l array risultante avesse ampiezza maggiore di SOURCE.

27 Funzioni di trasformazione (esempi) Un semplice esempio di utilizzo della funzione RESHAPE è fornito dalla seguente istruzione: RESHAPE((/3,4,5,6,7,8/),(/2,3/)) la quale fornisce come risultato la matrice: mentre l istruzione: RESHAPE((/3,4,5,6,7,8/),(/2,4/),(/1,1/)) fornisce il seguente risultato:

28 Funzioni topologiche (esempi) MAXLOC(ARRAY [,MASK]) MINLOC (ARRAY [,MASK]) Restituiscono la posizione dell elemento di valore massimo/minimo di un array, di una sezione di array o lungo una specificata dimensione dell array.

29 Funzioni topologiche (esempi) L argomento ARRAY è un array di tipo intero o reale. L argomento opzionale MASK è un array logico compatibile con ARRAY. Il risultato è un array di tipo intero. Valgono le seguenti regole: a.l array risultante ha rango unitario e ampiezza pari al rango di ARRAY. b.se MASK è assente, gli elementi dell array risultante rappresentano gli indici della locazione dell elemento di ARRAY avente valore massimo/ minimo. Se MASK è presente, gli elementi dell array risultante rappresentano gli indici della locazione dell elemento di ARRAY avente valore massimo/ minimo fra quelli compatibili con la condizione specificata da MASK.

30 Funzioni topologiche (esempi) Esempi: Il valore di MAXLOC((/3,7,4,7/)) è 2, essendo questo l indice della posizione della prima occorrenza del valore massimo (7) nell array monodimensionale specificato come argomento. Sia mat l array: MAXLOC(mat,MASK=mat<5) fornisce il valore (/1,1/) poiché questi sono gli indici che puntano all elemento di valore massimo (4) fra tutti quelli minori di 5.

31 Esempi: Funzioni di manipolazione (esempi) TRANSPOSE(MATRIX) Traspone un array di rango due. L argomento MATRIX può essere un array bidimensionale di tipo qualsiasi. Il risultato della funzione è un array avente stesso tipo e stessi parametri di kind dell argomento MATRIX e forma (/n,m/) essendo (/m,n/) la forma dell argomento. L elemento (i,j)_mo dell array risultante coincide con il valore di MATRIX(j,i). A titolo di esempio, definita la seguente matrice mat: TRANSPOSE(mat) avrà valore:

32 Esempi: Funzioni algebriche (esempi) DOT_PRODUCT(VECTOR_A,VECTOR_B) Esegue il prodotto scalare di due vettori numerici (interi, reali o complessi) aventi stessa dimensione. Il risultato è uno scalare il cui tipo dipende dai vettori operandi VECTOR_A e VECTOR_B. In particolare: Se l argomento VECTOR_A è di tipo INTEGER o REAL allora il risultato avrà valore pari a SUM(VECTOR_A*VECTOR_B). Se l argomento VECTOR_A è di tipo COMPLEX, allora il risultato avrà valore pari a SUM(CONJG(VECTOR_A)*VECTOR_B). Se gli array operandi hanno dimensione nulla, il risultato vale zero se essi sono di tipo numerico oppure.false. se gli operandi sono di tipo logico.

33 Funzioni algebriche (esempi) Ad esempio, l istruzione: DOT_PRODUCT((/1,2,3/),(/3,4,5/)) restituisce il valore 26 (infatti: (1 3)+(2 4)+(3 5)=26) Invece, l istruzione: DOT_PRODUCT((/(1.0,2.0),(2.0,3.0)/),(/(1.0,1.0),(1.0,4.0)/)) fornisce l array (/17.0,4.0/). (infatti: (1-2j)(1+j)+(2-3j)(1+4j)=(1+2-j)+(2+12+5j)=17+4j)

Gli ARRAY in FORTRAN 90

Gli ARRAY in FORTRAN 90 ELEMENTI DI PROGRAMMAZIONE Gli ARRAY in FORTRAN 90 Andrea Prevete, UNINA2 INGEGNERIA MECCANICA/AEROSPAZIALE, a.a. 2012/13 Un ARRAY è un AGGREGATO di più DATI dello stesso TIPO (interi, reali, etc), ognuno

Dettagli

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione

Dettagli

APPUNTI DEL CORSO DI LABORATORIO DI CALCOLO AVANZATO

APPUNTI DEL CORSO DI LABORATORIO DI CALCOLO AVANZATO APPUNTI DEL CORSO DI LABORATORIO DI CALCOLO AVANZATO Concetti fondamentali di FORTRAN 90 MARCO LIMONGI Istituto Nazionale di Astrofisica Osservatorio Astronomico di Roma 1. CONCETTI FONDAMENTALI DI FORTRAN

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

Corso di Laurea in INFORMATICA

Corso di Laurea in INFORMATICA Corso di Laurea in INFORMATICA Algoritmi e Strutture Dati MODULO 2. Algebre di dati Dati e rappresentazioni, requisiti delle astrazioni di dati, costrutti. Astrazioni di dati e dati primitivi. Specifica

Dettagli

3. La sintassi di Java

3. La sintassi di Java pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer

Dettagli

Fortran per Ingegneri

Fortran per Ingegneri Fortran per Ingegneri Lezione 5 A.A. 0/04 Ing. Davide Vanzo davide.vanzo@unitn.it Ing. Simone Zen simone.zen@unitn.it ufficio: Laboratorio didattico di modellistica ambientale ( piano) Tel interno: 488

Dettagli

Operazioni di input e output in Fortran 90

Operazioni di input e output in Fortran 90 Operazioni di input e output in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: file e formattazione DIS - Dipartimento di informatica

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

GUIDA BASE DI PASCAL

GUIDA BASE DI PASCAL 1 GUIDA BASE DI PASCAL Un algoritmo, nel suo significato più ampio, è sequenza logica di istruzioni elementari (univocamente interpretabili) che, eseguite in un ordine stabilito, permettono la soluzione

Dettagli

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

Istruzioni per il controllo di ciclo - ciclo a condizione generica

Istruzioni per il controllo di ciclo - ciclo a condizione generica Istruzioni per il controllo di ciclo - ciclo a condizione generica Permette di ripetere l esecuzione di un blocco di istruzioni finchè non viene verificata una condizione logica. Sintassi istruzione_1...

Dettagli

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di

Dettagli

Definizione di nuovi tipi in C

Definizione di nuovi tipi in C Definizione di nuovi tipi in C typedef Ancora sui tipi di dato Ogni elaboratore è intrinsecamente capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe

Dettagli

PROMEMORIA: Come creare, compilare ed eseguire programmi in Fortran 95

PROMEMORIA: Come creare, compilare ed eseguire programmi in Fortran 95 Corso di Laurea in Matematica - Laboratorio di Programmazione gr.2 a.a. 2014/15 SECONDA esercitazione in laboratorio --- Creazione e modifica di files ASCII per mezzo del programma gedit. --- Uso del compilatore

Dettagli

Vettori Algoritmi elementari di ordinamento

Vettori Algoritmi elementari di ordinamento Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Vettori Algoritmi elementari di ordinamento Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale

Dettagli

4. Operazioni elementari per righe e colonne

4. Operazioni elementari per righe e colonne 4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:

Dettagli

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

Applicazioni lineari

Applicazioni lineari Applicazioni lineari Esempi di applicazioni lineari Definizione. Se V e W sono spazi vettoriali, una applicazione lineare è una funzione f: V W tale che, per ogni v, w V e per ogni a, b R si abbia f(av

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

Tipi di Dato Ricorsivi

Tipi di Dato Ricorsivi Tipi di Dato Ricorsivi Luca Abeni September 2, 2015 1 Tipi di Dato Vari linguaggi di programmazione permettono all utente di definire nuovi tipi di dato definendo per ogni nuovo tipo l insieme dei suoi

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Sviluppato da Santoro Carlo Maurizio Matricola:0108/528 Sviluppo terminato il: 18/06/06 TRACCIA DEL PROGETTO Si costruisca, utilizzando la

Dettagli

Il Linguaggio Fortran 90/95. Raucci Biagio

Il Linguaggio Fortran 90/95. Raucci Biagio Il Linguaggio Fortran 90/95 Raucci Biagio Indice Premessa 9 1 Tipi ed espressioni 11 1.1 Elementi di base del linguaggio........................... 11 1.1.1 Istruzioni e commenti.............................

Dettagli

Metodologie di programmazione in Fortran 90

Metodologie di programmazione in Fortran 90 Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di

Dettagli

Rappresentazione grafica di entità e attributi

Rappresentazione grafica di entità e attributi PROGETTAZIONE CONCETTUALE La progettazione concettuale, ha il compito di costruire e definire una rappresentazione corretta e completa della realtà di interesse, e il prodotto di tale attività, è lo schema

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

Dettagli

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2011-2012 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma OTTAVA ESPERIENZA DI LABORATORIO L elaborazione dei files

Dettagli

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Scopo di questo approfondimento Lo scopo di questo approfondimento è rispondere alla domanda: e se nella vita mi troverò a dover utilizzare un linguaggio

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

Matlab: Strutture di Controllo. Informatica B

Matlab: Strutture di Controllo. Informatica B Matlab: Strutture di Controllo Informatica B Tipo di dato logico È un tipo di dato che può avere solo due valori true (vero) 1 false (falso) 0 I valori di questo tipo possono essere generati direttamente

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Il software e la programmazione

Il software e la programmazione Il software e la programmazione Concetti base sul software Elementi di programmazione Cenni sul linguaggio Pascal Che cosa è il software Determina ciò che un computer può fare Include istruzioni memorizzate

Dettagli

Algebra e calcolo relazionale. Ripasso. Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia

Algebra e calcolo relazionale. Ripasso. Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia Algebra e calcolo relazionale Ripasso Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia I 4 Livelli di astrazione Le Tabelle Livello fisico (o interno)

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Sommario della lezione

Sommario della lezione Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/36 Sommario della lezione Ulteriori esempi di applicazione della Programmazione Dinamica Esempio di applicazione

Dettagli

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica CONTROLLI AUTOMATICI e AZIONAMENTI ELETTRICI INTRODUZIONE A MATLAB Ing. Alberto Bellini Tel. 0522 522626 e-mail: alberto.bellini@unimore.it

Dettagli

Gli indirizzi dell Internet Protocol. IP Address

Gli indirizzi dell Internet Protocol. IP Address Gli indirizzi dell Internet Protocol IP Address Il protocollo IP Prevalente è ormai diventato nell implementazione di reti di computer la tecnologia sintetizzata nei protocolli TCP- Ip IP è un protocollo

Dettagli

Dispense del corso di Introduzione all Informatica della Facoltà Di Scienze Matematiche, Fisiche e Naturali dell Università della Calabria

Dispense del corso di Introduzione all Informatica della Facoltà Di Scienze Matematiche, Fisiche e Naturali dell Università della Calabria Introduzione all Informatica 1 Dispense del corso di Introduzione all Informatica della Facoltà Di Scienze Matematiche, Fisiche e Naturali dell Università della Calabria Programma del corso Programma di

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

Corso di Visione Artificiale. Matlab per Visione. Samuel Rota Bulò

Corso di Visione Artificiale. Matlab per Visione. Samuel Rota Bulò Corso di Visione Artificiale Matlab per Visione Samuel Rota Bulò Cos'è Matlab? MATLAB MATLAB - - MATrix MATrix LABoratory LABoratory Ambiente Ambiente di di sviluppo sviluppo ed ed esecuzione esecuzione

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

Calcolatori Elettronici Parte X: l'assemblatore as88

Calcolatori Elettronici Parte X: l'assemblatore as88 Anno Accademico 2013/2014 Calcolatori Elettronici Parte X: l'assemblatore as88 Prof. Riccardo Torlone Università Roma Tre L'assemblatore as88 Disponibile presso: CD-ROM allegato al libro di testo del corso

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

OBIETTIVI SPECIFICI DI APPRENDIMENTO

OBIETTIVI SPECIFICI DI APPRENDIMENTO Disciplina:... Anno scolastico: 20.../20... Classe/i :... Docente:... DI APPRENDIMENTO SEZIONE 1 Premesse matematiche Nozioni fondamentali sui sistemi di numerazione Sistemi di numerazione in base diversa

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

INFORMATICA - I puntatori Roberta Gerboni

INFORMATICA - I puntatori Roberta Gerboni 1 2 I puntatori in C++ Il puntatore un tipo di dato scalare, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un

Dettagli

La normalizzazione Trasformazione da concettuale a relazionale

La normalizzazione Trasformazione da concettuale a relazionale Oreste Signore (Oreste.Signore@cnuce.cnr.it) Definizione Il concetto di chiave Chiave primaria Chiave esterna L algebra relazionale Le operazioni Le operazioni speciali La normalizzazione Trasformazione

Dettagli

Elementi di Algebra Relazionale

Elementi di Algebra Relazionale Note dalle lezioni di INFORMATICA (per gli allievi della classe quinta - indirizzo MERCURIO) Elementi di Algebra Relazionale prof. Stefano D.L.Campanozzi I.T.C. Giulio Cesare Bari - a.s. 2008-2009 1 Introduzione

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Fondamenti di calcolo booleano

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Fondamenti di calcolo booleano Breve introduzione storica Nel 1854, il prof. Boole pubblica un trattato ormai famosissimo: Le leggi del pensiero. Obiettivo finale del trattato è di far nascere la matematica dell intelletto umano, un

Dettagli

Gli algoritmi: definizioni e proprietà

Gli algoritmi: definizioni e proprietà Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da

Dettagli

Modello relazionale. ing. Alfredo Cozzi 1

Modello relazionale. ing. Alfredo Cozzi 1 Modello relazionale E fondato sul concetto matematico di relazione tra insiemi di oggetti Una relazione su n insiemi A1, A2,..,An è un sottoinsieme di tutte le n-uple a1,a2,,an che si possono costruire

Dettagli

Dispensa 3. 1.1 YACC: generalità

Dispensa 3. 1.1 YACC: generalità Dispensa 3 1.1 YACC: generalità Il tool Yacc (acronimo per Yet Another Compiler Compiler) è uno strumento software che a partire da una specifica grammaticale context free di un linguaggio scritta in un

Dettagli

Ricerche, ordinamenti e fusioni. 5.1 Introduzione. 5.2 Ricerca completa

Ricerche, ordinamenti e fusioni. 5.1 Introduzione. 5.2 Ricerca completa Ricerche, ordinamenti e fusioni 5.1 Introduzione Questo capitolo ci permette di fare pratica di programmazione utilizzando gli strumenti del linguaggio introdotti finora. A una prima lettura possono essere

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 di

Dettagli

dall argomento argomento della malloc()

dall argomento argomento della malloc() Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È

Dettagli

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione basata sul campo d utilizzo. I principali package sono:

Dettagli

Informazioni generali sul corso

Informazioni generali sul corso abaroni@yahoo.com Informazioni generali sul corso Reporting direzionale Obiettivi del corso h Creare reports con DI 2 Pagina C.1 Argomenti h Cap. 13 Interruzione e Vista struttura h Cap. 14 Sincronizzazione

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE

DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE Il problema Un computer è usato per risolvere dei problemi Prenotazione di un viaggio Compilazione e stampa di un certificato in un ufficio comunale Preparazione

Dettagli

M.U.T. Modulo Unico Telematico. Specifiche tecniche interfaccia automatica per i Software Gestionali

M.U.T. Modulo Unico Telematico. Specifiche tecniche interfaccia automatica per i Software Gestionali M.U.T. Modulo Unico Telematico Specifiche tecniche interfaccia automatica per i Software Gestionali Data Redazione Documento 28/02/2011 Data Pubblicazione Documento Versione 2.1.0 Responsabile CNCE Giuseppe

Dettagli

Linguaggi di modellizzazione

Linguaggi di modellizzazione p. 1/5 Linguaggi di modellizzazione Come visto, il primo passo per risolvere un problema di decisione consiste nel formularne il modello matematico. Una volta definito il modello matematico lo dobbiamo

Dettagli

PRINCIPI DI SISTEMI OPERATIVI

PRINCIPI DI SISTEMI OPERATIVI PRINCIPI DI SISTEMI OPERATIVI ESERCIZIO del 28 NOVEMBRE 2003 Un distributore di benzina ha a disposizione P pompe e una cisterna da L litri. Le automobili arrivano al distributore e richiedono un certo

Dettagli

4. Proiezioni del piano e dello spazio

4. Proiezioni del piano e dello spazio 4. Proiezioni del piano e dello spazio La visualizzazione di oggetti tridimensionali richiede di ottenere una vista piana dell'oggetto. Questo avviene mediante una sequenza di operazioni. Innanzitutto,

Dettagli

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

Dettagli

(anno accademico 2008-09)

(anno accademico 2008-09) Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09) Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Rapida Introduzione all uso del Matlab Ottobre 2002

Rapida Introduzione all uso del Matlab Ottobre 2002 Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,

Dettagli

Programma di Paradigmi e possibili domande. Capitolo 1

Programma di Paradigmi e possibili domande. Capitolo 1 Definizione di macchina astratta Programma di Paradigmi e possibili domande Capitolo 1 Una macchina astratta per il linguaggio L detta ML, è un qualsiasi insieme di algoritmi e strutture dati che permettono

Dettagli

Von Neumann. John Von Neumann (1903-1957)

Von Neumann. John Von Neumann (1903-1957) Linguaggio macchina Von Neumann John Von Neumann (1903-1957) Inventore dell EDVAC (Electronic Discrete Variables AutomaFc Computer), la prima macchina digitale programmabile tramite un soiware basata su

Dettagli

Utilizzo e scrittura di classi

Utilizzo e scrittura di classi Utilizzo e scrittura di classi Corso di Programmazione 3 - Ingegneria dell Informazione e dell Organizzazione 14 novembre, 2001 Gino Perna Implementazione di classi in C++ UN ESEMPIO DI CLASSE: RISULTATI

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

Dettagli

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

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona e e Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario e ed implementazione in Java Visita di un grafo e e Concetti di base Struttura

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VI Tatiana Zolo tatiana.zolo@libero.it 1 LE STRUCT Tipo definito dall utente i cui elementi possono essere eterogenei (di tipo diverso). Introduce un nuovo tipo di

Dettagli

Unità B3 Strutture di controllo

Unità B3 Strutture di controllo (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: I/O su console Package Blocco di controllo Oggetto System.out Oggetto System.in Oggetto Tastiera Metodo readline() Strutture

Dettagli

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore Relazioni tra oggetti e classi : Generalizzazione Fondamenti di Informatica II 20. Laboratorio 6 Collegamenti e associazioni Le relazioni di tipo generalizzazione (specializzazione), servono per poter

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati schifano@fe.infn.it Laurea di Informatica - Università di Ferrara 2011-2012 [1] Strutture dati Dinamiche: Le liste Una lista è una sequenza di elementi di un certo tipo in cui è possibile aggiungere e/o

Dettagli

Parte 3. Rango e teorema di Rouché-Capelli

Parte 3. Rango e teorema di Rouché-Capelli Parte 3. Rango e teorema di Rouché-Capelli A. Savo Appunti del Corso di Geometria 203-4 Indice delle sezioni Rango di una matrice, 2 Teorema degli orlati, 3 3 Calcolo con l algoritmo di Gauss, 6 4 Matrici

Dettagli

Complessità computazionale

Complessità computazionale 1 Introduzione alla complessità computazionale Un problema spesso può essere risolto utilizzando algoritmi diversi Come scegliere il migliore? La bontà o efficienza di un algoritmo si misura in base alla

Dettagli

Lab. 1 - Introduzione a Matlab

Lab. 1 - Introduzione a Matlab Lab. 1 - Introduzione a Matlab Alcune informazioni su Matlab Matlab è uno strumento per il calcolo scientifico utilizzabile a più livelli, dalla calcolatrice tascabile, alla simulazione ed analisi di sistemi

Dettagli

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione Capitolo 2 MATRICI Fra tutte le applicazioni su uno spazio vettoriale interessa esaminare quelle che mantengono la struttura di spazio vettoriale e che, per questo, vengono dette lineari La loro importanza

Dettagli

Sistemi Informativi Territoriali. Map Algebra

Sistemi Informativi Territoriali. Map Algebra Paolo Mogorovich Sistemi Informativi Territoriali Appunti dalle lezioni Map Algebra Cod.735 - Vers.E57 1 Definizione di Map Algebra 2 Operatori locali 3 Operatori zonali 4 Operatori focali 5 Operatori

Dettagli

x 1 + x 2 3x 4 = 0 x1 + x 2 + x 3 = 0 x 1 + x 2 3x 4 = 0.

x 1 + x 2 3x 4 = 0 x1 + x 2 + x 3 = 0 x 1 + x 2 3x 4 = 0. Problema. Sia W il sottospazio dello spazio vettoriale R 4 dato da tutte le soluzioni dell equazione x + x 2 + x = 0. (a. Sia U R 4 il sottospazio dato da tutte le soluzioni dell equazione Si determini

Dettagli

Esercitazione 2 di verifica

Esercitazione 2 di verifica Architettura degli Elaboratori, 27-8 Esercitazione 2 di verifica Soluzione: mercoledì 24 ottobre Una unità di elaborazione U è così definita: Domanda 1 i) possiede al suo interno due componenti logici

Dettagli

Test del Software. Definizione SCOPO LIMITI DEL TEST

Test del Software. Definizione SCOPO LIMITI DEL TEST Definizione! Verifica dinamica del comportamento del software rispetto a quello atteso, utilizzando un insieme finito di casi di test, appropriatamente selezionati nel dominio di tutti i casi possibili

Dettagli

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag <script> inserito nella sezione <head> con la seguente sintassi:

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag <script> inserito nella sezione <head> con la seguente sintassi: JAVASCRIPT Introduzione Con l HTML siamo in grado di realizzare pagine web statiche. Con il linguaggio Javascript, invece, possiamo interagire modificando il contenuto della pagina. Il linguaggio javascript

Dettagli

Appunti sull uso di matlab - I

Appunti sull uso di matlab - I Appunti sull uso di matlab - I. Inizializazione di vettori.. Inizializazione di matrici.. Usare gli indici per richiamare gli elementi di un vettore o una matrice.. Richiedere le dimensioni di una matrice

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli

Corso di Esercitazioni di Programmazione

Corso di Esercitazioni di Programmazione Corso di Esercitazioni di Programmazione Introduzione Dott.ssa Sabina Rossi Informazioni Pagina web del corso: News Orari Mailing list Lezioni Esercitazioni Date esami Risultati esami.. http://www.dsi.unive.it/~prog1

Dettagli

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello): Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande

Dettagli

2 Progetto e realizzazione di funzioni ricorsive

2 Progetto e realizzazione di funzioni ricorsive 2 Progetto e realizzazione di funzioni ricorsive Il procedimento costruttivo dato dal teorema di ricorsione suggerisce due fatti importanti. Una buona definizione ricorsiva deve essere tale da garantire

Dettagli

Scheda I. 3 La non possibilità di duplicare il cubo con riga e compasso.

Scheda I. 3 La non possibilità di duplicare il cubo con riga e compasso. Scheda I. La non possibilità di duplicare il cubo con riga e compasso. Dopo Menecmo, Archita, Eratostene molti altri, sfidando gli dei hanno trovato interessante dedicare il loro tempo per trovare una

Dettagli

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE Andrea Bobbio Anno Accademico 2000-2001 Algebra Booleana 2 Calcolatore come rete logica Il calcolatore può essere visto come una rete logica

Dettagli