Gli ARRAY in FORTRAN 90

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

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

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

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

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 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

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

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

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 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

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

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) Un insieme è una collezione di oggetti. Il concetto di insieme è un concetto primitivo. Deve esistere un criterio chiaro, preciso, non ambiguo, inequivocabile,

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

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente. Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito

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

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

void funzioneprova() { int x=2; cout<<dentro la funzione x=<<x<<endl; } FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo

Dettagli

http://www.programmiamo.altervista.org/c/oop/o...

http://www.programmiamo.altervista.org/c/oop/o... PROGRAMMIAMO Programma per la gestione di un conto corrente C++ - Costruttore e distruttore C++ Home Contatti Supponiamo ora di voler scrivere un programma a menu per la gestione di un conto corrente bancario.

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

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

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

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica I tipi strutturati: gli array e le strutture Claudio De Stefano - Corso di Fondamenti di Informatica 1 arrays un array (o vettore) è una sequenza di oggetti dello stesso

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

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

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

Anno 3. Funzioni: dominio, codominio e campo di esistenza

Anno 3. Funzioni: dominio, codominio e campo di esistenza Anno 3 Funzioni: dominio, codominio e campo di esistenza 1 Introduzione In questa lezione parleremo delle funzioni. Ne daremo una definizione e impareremo a studiarne il dominio in relazione alle diverse

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

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

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

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE LE SUCCESSIONI 1. COS E UNA SUCCESSIONE La sequenza costituisce un esempio di SUCCESSIONE. Ecco un altro esempio di successione: Una successione è dunque una sequenza infinita di numeri reali (ma potrebbe

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

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

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

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

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

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

Matematica in laboratorio

Matematica in laboratorio Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

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

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

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

Energia potenziale elettrica e potenziale. In queste pagine R indicherà una regione in cui è presente un campo elettrostatico.

Energia potenziale elettrica e potenziale. In queste pagine R indicherà una regione in cui è presente un campo elettrostatico. Energia potenziale elettrica e potenziale 0. Premessa In queste pagine R indicherà una regione in cui è presente un campo elettrostatico. 1. La forza elettrostatica è conservativa Una o più cariche ferme

Dettagli

Rendering air show e verifica della sincronizzazione

Rendering air show e verifica della sincronizzazione Capitolo 5 Rendering air show e verifica della sincronizzazione 5.1 Introduzione Il Rendering 3D dell evoluzioni acrobatiche costituisce uno degli aspetti cruciali dell applicazione realizzata. L ambiente

Dettagli

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

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

Prova di Laboratorio di Programmazione

Prova di Laboratorio di Programmazione Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare

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

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record 5.3 TABELLE In un sistema di database relazionali le tabelle rappresentano la struttura di partenza, che resta poi fondamentale per tutte le fasi del lavoro di creazione e di gestione del database. 5.3.1

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

Introduzione ai Metodi Formali

Introduzione ai Metodi Formali Intruzione ai Meti Formali Sistemi software anche molto complessi regolano la vita quotidiana, anche in situazioni life-critical (e.g. avionica) e business-critical (e.g. operazioni bancarie). Esempi di

Dettagli

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Cenni su algoritmi, diagrammi di flusso, strutture di controllo Cenni su algoritmi, diagrammi di flusso, strutture di controllo Algoritmo Spesso, nel nostro vivere quotidiano, ci troviamo nella necessità di risolvere problemi. La descrizione della successione di operazioni

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

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

Corso di Analisi Matematica Serie numeriche

Corso di Analisi Matematica Serie numeriche Corso di Analisi Matematica Serie numeriche Laurea in Informatica e Comunicazione Digitale A.A. 2013/2014 Università di Bari ICD (Bari) Analisi Matematica 1 / 25 1 Definizione e primi esempi 2 Serie a

Dettagli

Rette e curve, piani e superfici

Rette e curve, piani e superfici Rette e curve piani e superfici ) dicembre 2 Scopo di questo articolo è solo quello di proporre uno schema riepilogativo che metta in luce le caratteristiche essenziali delle equazioni di rette e curve

Dettagli

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

CONCETTO DI LIMITE DI UNA FUNZIONE REALE CONCETTO DI LIMITE DI UNA FUNZIONE REALE Il limite di una funzione è uno dei concetti fondamentali dell'analisi matematica. Tramite questo concetto viene formalizzata la nozione di funzione continua e

Dettagli

Ottimizazione vincolata

Ottimizazione vincolata Ottimizazione vincolata Ricordiamo alcuni risultati provati nella scheda sulla Teoria di Dini per una funzione F : R N+M R M di classe C 1 con (x 0, y 0 ) F 1 (a), a = (a 1,, a M ), punto in cui vale l

Dettagli

Protezione. Protezione. Protezione. Obiettivi della protezione

Protezione. Protezione. Protezione. Obiettivi della protezione Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in

Dettagli

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

Corrispondenze e funzioni

Corrispondenze e funzioni Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

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

Luigi Piroddi piroddi@elet.polimi.it

Luigi Piroddi piroddi@elet.polimi.it Automazione industriale dispense del corso 10. Reti di Petri: analisi strutturale Luigi Piroddi piroddi@elet.polimi.it Analisi strutturale Un alternativa all analisi esaustiva basata sul grafo di raggiungibilità,

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Invio SMS. DM Board ICS Invio SMS

Invio SMS. DM Board ICS Invio SMS Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove

Dettagli

CONCETTO DI ANNIDAMENTO

CONCETTO DI ANNIDAMENTO LEZIONE14 SQL ANNIDAMENTI PAG. 1 / 5 PROF. ANDREA ZOCCHEDDU LEZIONE14 SQL ANNIDAMENTI CONCETTO DI ANNIDAMENTO LINGUAGGIO SQL QUERY ANNIDATE Per annidamento si intende la possibilità che, all interno di

Dettagli

Nozione di algoritmo. Gabriella Trucco

Nozione di algoritmo. Gabriella Trucco Nozione di algoritmo Gabriella Trucco Programmazione Attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su particolari informazioni (dati), allo scopo di risolvere

Dettagli

Funzioni. Il modello console. Interfaccia in modalità console

Funzioni. Il modello console. Interfaccia in modalità console Funzioni Interfaccia con il sistema operativo Argomenti sulla linea di comando Parametri argc e argv Valore di ritorno del programma La funzione exit Esercizio Calcolatrice 2, presente in tutti i programmi

Dettagli

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore. 1 Esercizio 1 1. Immaginate di avere una calcolatore che invece che poter rappresentare i classici due valori per ogni bit (0/1) possa rappresentare 7 valori per ogni bit. (a) Quanti bit gli occorreranno

Dettagli

Studente: SANTORO MC. Matricola : 528

Studente: SANTORO MC. Matricola : 528 CORSO di LAUREA in INFORMATICA Corso di CALCOLO NUMERICO a.a. 2004-05 Studente: SANTORO MC. Matricola : 528 PROGETTO PER L ESAME 1. Sviluppare una versione dell algoritmo di Gauss per sistemi con matrice

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

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

IGiochidiArchimede-SoluzioniBiennio 22 novembre 2006

IGiochidiArchimede-SoluzioniBiennio 22 novembre 2006 PROGETTO OLIMPII I MTEMTI U.M.I. UNIONE MTEMTI ITLIN SUOL NORMLE SUPERIORE IGiochidirchimede-Soluzioniiennio novembre 006 Griglia delle risposte corrette Problema Risposta corretta E 4 5 6 7 8 9 E 0 Problema

Dettagli

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2

Dettagli

Come visto precedentemente l equazione integro differenziale rappresentativa dell equilibrio elettrico di un circuito RLC è la seguente: 1 = (1)

Come visto precedentemente l equazione integro differenziale rappresentativa dell equilibrio elettrico di un circuito RLC è la seguente: 1 = (1) Transitori Analisi nel dominio del tempo Ricordiamo che si definisce transitorio il periodo di tempo che intercorre nel passaggio, di un sistema, da uno stato energetico ad un altro, non è comunque sempre

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

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

Algebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa.

Algebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa. Algebra booleana Nel lavoro di programmazione capita spesso di dover ricorrere ai principi della logica degli enunciati e occorre conoscere i concetti di base dell algebra delle proposizioni. L algebra

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

Cosa dobbiamo già conoscere?

Cosa dobbiamo già conoscere? Cosa dobbiamo già conoscere? Insiemistica (operazioni, diagrammi...). Insiemi finiti/numerabili/non numerabili. Perché la probabilità? In molti esperimenti l esito non è noto a priori tuttavia si sa dire

Dettagli

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare

Dettagli

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R Studio di funzione Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R : allo scopo di determinarne le caratteristiche principali.

Dettagli

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo

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

RISOLUTORE AUTOMATICO PER SUDOKU

RISOLUTORE AUTOMATICO PER SUDOKU RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU

Dettagli

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO Macchine a stati finiti 1 G. MARSELLA UNIVERSITÀ DEL SALENTO Introduzione Al più alto livello di astrazione il progetto logico impiega un modello, la cosiddetta macchina a stati finiti, per descrivere

Dettagli

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione Gestione della memoria Paginazione Segmentazione Segmentazione con paginazione Modello di paginazione Il numero di pagina serve come indice per la tabella delle pagine. Questa contiene l indirizzo di base

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

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità Appunti: Tecniche di rilevazione e correzione degli errori 1 Tecniche di correzione degli errori Le tecniche di correzione degli errori sono catalogabili in: metodi per il rilevamento degli errori; metodi

Dettagli

Allocazione dinamica della memoria - riepilogo

Allocazione dinamica della memoria - riepilogo Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della

Dettagli

MAPPE DI KARNAUGH. Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica.

MAPPE DI KARNAUGH. Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica. MAPPE DI KARNAUGH 1. Generalità Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica. E ovvio che più semplice è la funzione e più semplice

Dettagli

Analisi dei Dati 12/13 Esercizi proposti 3 soluzioni

Analisi dei Dati 12/13 Esercizi proposti 3 soluzioni Analisi dei Dati 1/13 Esercizi proposti 3 soluzioni 0.1 Un urna contiene 6 palline rosse e 8 palline nere. Si estraggono simultaneamente due palline. Qual è la probabilità di estrarle entrambe rosse? (6

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

Metodi Stocastici per la Finanza

Metodi Stocastici per la Finanza Metodi Stocastici per la Finanza Tiziano Vargiolu vargiolu@math.unipd.it 1 1 Università degli Studi di Padova Anno Accademico 2011-2012 Lezione 6 Indice 1 Il metodo bootstrap 2 Esercitazione 3 Interpolazione

Dettagli

Una metodologia di progettazione di applicazioni web centrate sui dati

Una metodologia di progettazione di applicazioni web centrate sui dati Una metodologia di progettazione di applicazioni web centrate sui dati 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 2 0 1 1 / 2 0 1 2 Progettazione logica di un sito web centrato sui dati Si

Dettagli