Dimensione: px
Iniziare la visualizzazioe della pagina:

Download ""

Transcript

1 Strutture dati in C e loro traduzione in assembler MIPS 1 Direttive assembler per l'allocazione dei dati Prima di iniziare a trattare il problema dell'allocazione delle varie strutture dati, introduciamo le direttive assembler che servono per allocare dati globali nel segmento dei dati, ovvero successivamente alla direttiva.data. Le direttive hanno a che fare con dati di tipo elementare (int, float, double, char), e possono essere impiegati anche per allocare sequenze di dati elementari gia inizializzati oppure non inizializzati. E' possibile specicare, prima delle direttive stesse, delle etichette seguite dai due punti. Le etichette di fatto corrispondono agli indirizzi di memoria in corrispondenza dei quali i dati verranno allocati dall'assemblatore. Le etichette possono poi essere usare dalle istruzioni per far riferimento alle aree di memoria relative, ad esempio possono essere riferite dalle istruzioni di lw e sw per leggere e scrivere, rispettivamente, in memoria. Le principali direttive per l'allocazione di dati inizializzati sono le seguenti:.half h1,...,hn # dich. di una sequenza di n half-word;.word w1,...,wn # dich. di una sequenza di n word (interi).byte b1,...,bn # dich. di una sequanza di byte.float f1,...,fn # dich. di una sequenza di float.double d1,...,dn # dich. di una sequenza di double.asciiz str # dich. di una stringa costante (terminata da 0) dove le liste alla destra delle direttive corrispondono alle inizializzazioni delle rispettive locazioni di memoria. I vari elementi delle liste sono allocati in memoria in locazioni contigue. Gli indirizzi dei vari elementi sono scelti in modo da rispettare degli allineamenti pressati. In particolare.half alloca i vari elementi su indirizzi multipli di 2, mentre.word,.float e.double su indirizzi multipli di 4. Le direttive.byte e.asciiz, poiche allocano dati di lunghezza 1B, non devono rispettare alcun allineamento. Si noti che lw/sw devono essere usati per accedere dati (4B) allineati alla parola (ind. multipli di 4), lh/sh per accedere dati (2B) allineati alla mezza parola (ind. multipli di 2), ed inne lb/sb per accedere dati (1B) allineati al byte. 1

2 Se l'indirizzo impiegato non rispetta l'allineamento relativo, si ottiene un'errore (eccezione causata da allineamento errato). La direttiva.align n puo invece essere impiegata per rompere lo schema di allineamento automatico imposto dalla direttiva seguente. In particolare, essa impone che il prossimo dato venga allineato con un indirizzo multiplo di 2 n. Quindi.align 2 impone l'allineamento alla parola, mentre.align 0 rimuove tutti gli allineamenti automatici imposti da.half,.word, ecc. Inne, la direttiva.space n alloca uno spazio di n byte nel segmento dei dati. L'allineamento ssato da.space puo essere controllato con la direttiva.align vista sopra. 2 Array mono-dimensionali (vettori) Si considerino i due vettori seguenti: int a[10]; char b[5]; Essi possono essere allocati in memoria rispettando gli allineamenti con le seguenti direttive:.data.align 2 a:.space 40 b:.space 5 Gli elementi dei due array sono allocati in memoria in maniera contigua. Tramite la direttiva.align 2 abbiamo forzato l'allineamento dei vari elementi dell'array a[] alla word (4B). Per esempio, se i due array sono allocati il primo a partire dall'indirizzo 0, il secondo dall'indirizzo 40, abbiamo il seguente layout di memoria: a[0] a[1] b[0] b[1] b[2] b[3] b[4] b[5] b[6] I due esempi seguenti illustrano un paio di funzioni C, con relativa traduzione MIPS, che restituiscono il valore dell'elemento di indice ind di un array di interi e di caratteri. Relativamente al codice assembler illustrato in Esempio 2.1, si noti la moltiplicazione per 4 (sll $a1, $a1, 2), che serve per tener conto della dimensione degli interi (4B). 2

3 Esempio 2.1 int elem(int a[], int ind) return(a[ind)); elem: sll $a1, $a1, 2 add $v0, $a0, $a1 lw $v0, 0($v0) La funzione e scritta in accordo alla politica caller-save. I parametri a e ind sono passati rispettivamente in $a0 e $a1. Il risultato della funzione e Esempio 2.2 char elem(char a[], int ind) return(a[ind)); elem: add $v0, $a0, $a1 lb $v0, 0($v0) La funzione e scritta in accordo alla politica caller-save. I parametri a e ind sono passati rispettivamente in $a0 e $a1. Il risultato della funzione e 3 Array bi-dimensionali La convenzione impiegata dal compilatore C per allocare array bi-dimensionali in memoria lineare e' quella di memorizzare il vettore per righe. Ovvero, prima tutti gli elementi della riga 0, di seguito e in maniera contigua tutti quelli della riga 1, ecc. Si consideri ad esempio l'array: int a[10][2]; che puo essere allocato in memoria rispettando gli allineamenti con le seguenti direttive:.data.align 2 a:.space 80 L'arraye poi allocato in memoria dall'assemblatore a partire da un indirizzo multiplo di 4. Se il primo elemento della prima riga (a[0][0]) e allocato a partire dall'indirizzo 0, abbiamo il seguente layout: a[0][0] a[0][1] a[1][0] Per accedere l'elemento a[i][j] e quindi necessario calcolare il displacement a partire dall'indirizzo corrispondente all'etichetta a. Si consideri, a proposito, che il primo elemento della riga i-esima, a meno di 3

4 calcoli che riguardano la dimensione del dato, e memorizzato a partire dal displacement: i*num colonne. Per selezionare l'elemento j-esimo della riga medesima basta quindi sommare j al displacement precedente, ottenendo quindi un diplacement uguale a: i*num colonne+j. Poiche nel processore MIPS l'indirizzamento e al Byte, per avere il displacement corretto bisogna anche moltiplicare per la dimensione del tipo di dato dell'array stesso: (i*num colonne+j)*size. Esempio 3.1 int el2(int a[][2], int i1, int i2) return(a[i1][12)); el2: sll $t0, $a1, 3 # i1*8 sll $t1, $a2, 1 # i2*2 addu $t0, $a0, $t0 addu $t0, $t1, $t0 lw $v0, 0($t0) La funzione e scritta in accordo alla politica caller-save. I parametri a e i1 e i2 sono passati, rispettivamente, in $a0, $a1 e $a2. Nel calcolo del displacement da sommare a $a0 bisogna considerare che num colonne=2, mentre size=4, per cui l'espressione (i*num colonne+j)*size diventa i*8+j*2. Il risultato della funzione e 4 Strutture Attraverso le struct e possibile in C denire collezioni di dati di tipo diverso, e riferire tali collezioni con uno stesso nome. Ad esempio, questa e una denizione di struttura C: struct elem int i[2]; double d; ; Alternativamente: typedef struct int i[2]; double d; type_elem; Nel primo caso, per denire una nuova variabile var di tipo struct elem, basta dichiararla come segue: 4

5 struct elem var; mentre nel secondo caso, avendo ridenito un nuovo tipo type elem, basta dichiararla come segue: type_elem var; Nel seguito useremo sempre la prima convenzione, senza usare typedef. L'allocazione della variabile var di tipo struct elem in memoria prevede l'allocazione contigua dei vari campi della struttura a partire da un indirizzo di partenza. Solitamente i vari campi della struttura vengono pero allocati in memoria rispettando l'allineamento denito dai tipi associati ai campi stessi. Questo puo portare ad alcuni sprechi di spazio tra un campo e l'altro. Ad esempio, se gli int e i double devono essere allineati alla word (4B), la variabile var di tipo struct elem verra cos memorizzata (considerando che il primo campo della struttura e allocato a partire dall'indirizzo 0): c //// i[0] i[1] d sprecando 3B in piu per l'allineamento tra il campo c ed il campo i[]. Inoltre, poichee possibile denire array di strutture, sempre per rispettare gli allineamenti e spesso necessario sprecare spazio tra una struttura e la successiva all'interno dell'array. Ad esempio, se deniamo il seguente array ar[], i cui elementi sono di tipo struct elem: struct elem int k; ; struct elem ar[10]; l'array verra cos memorizzato (considerando che il primo campo elemento dell'array sia allocato a partire dall'indirizzo 128, per cui l'etichetta ar corrispondera a 128): k c ///// k c ///// k La dimensione della struttura sara quindi 8B, considerando i byte nali (padding), che garantiscono l'allineamento del prossimo elemento dell'array, come parte integrante della struttura stessa. Questo tipo di gestione della memoria puo essere vericato da C tramite il seguente comando: 5

6 printf("%d\n", sizeof(struct elem)); Possimo ora dare una regola generale per scegliere l'allineamento dell'indirizzo iniziale di una struttura e garantire che: tutti i campi della struttura sia allineati opportunamente; l'indirizzo della struttura stessa sia anche l'indirizzo del primo campo della struttura stessa; i vari campi della struttura si possano individuare tramite un displacement costante a partire dall'indirizzo iniziale. Per eettuare questa scelta, basta considerare i tipi di tutti i campi contenuti nella struttura, scegliendo come allineamento dell'indirizzo iniziale della struttura l'allineamento piu severo tra quelli deniti dai vari campi della struttura stessa. Per esempio, se abbiamo un campo char (allineamento a 1B), un campo short int (allineamento a 2B), ed un campo int (allineamento a 4B), l'indirizzo iniziale della struttura dovra essere un multiplo di 4 (allineamento alla word=4b). 4.1 Accesso ai campi delle strutture Si consideri la seguente struttura: struct elem int i[2]; double d; ; In accordo alla regola data precedentemente, se i double devono essere allianeati alla word, l'indirizzo iniziale di una variabile di tipo struct elem deve essere anch'esso allineato alla word. Considerando che questo indirizzo iniziale sia 128: c ////// i[0] i[1] d Vediamo ora tre semplici esempi di funzioni che accedono ai vari campi di una struttura di tipo struct elem, il cui puntatore e passato come parametro delle funzioni stesse. Esempio 4.1 char ret_c(struct elem *ptr) return( ptr->c ); ret_c: lb $v0, 0($a0) La funzione e scritta in accordo alla politica caller-save. Il parametro ptr e passato in $a0. Il risultato della funzione e 6

7 Esempio int *ret_i(struct elem *ptr) return( ptr->i ); /* Il comando di sopra e' equivalente a: return ( &(ptr->i[0]) ); */ Esempio ret_i: addiu $v0, $a0, 4 La funzione e scritta in accordo alla politica caller-save. Il parametro ptr e passato in $a0. Il risultato della funzione e int ret_i1(struct elem *ptr) return( ptr->i[1] ); ret_i1: lw $v0, 4($a0) 4.2 Campi puntatore all'interno di strutture La funzione e scritta in accordo alla politica caller-save. Il parametro ptr e passato in $a0. Il risultato della funzione e La struttura denita precedentemente aveva come caratteristica che il vettore di interi int i[2] era completamente contenuto all'interno della struttura ed aveva lunghezza ssa. Se invece volessimo implementare una lista di strutture dove, per ogni struttura, il vettore i[] avesse lunghezza variabile, in C dovremmo dichiarare: struct elem int *i; double d; ; Se poi volessimo, a tempo di esecuzione, allocare un vettore di due interi, puntato dal puntatore i contenuto all'interno di una variabile di tipo struct elem, dovremmo scrivere:... struct elem var;... var.i = (struct elem *) malloc(2 * sizeof(int)); dove malloc(2 * sizeof(int)) alloca un'area di memoria contigua (di cui restituisce l'indirizzo) di dimensione 8B. Considerando che la variabile var deve essere allineata alla word (es. 128), e che l'area di memoria restituita da malloc() sia anch'essa allineata alla word 7

8 (es. 1024), l'assegnamento di sopra (var.i =...) produrrebbe la seguente situazione: c ////// i=1024 d \/ i[0] i[1] Nota che, anche se abbiamo cambiato la denizione della struttura, per riferire l'indirizzo dell'array i[] continueremo ad usare la notazione var.i, mentre per riferire il secondo elemento dell'array i[] continueremo ad usare la notazione var.i[1]. La traduzione assembler e invece completamente diversa. Per illustrare questo, rivediamo due degli esempi visti precedentemente: Esempio ed Esempio Negli esempi rivisti, la denizione di struct elem e quella nuova, con l'array i[] allocato dinamicamente a tempo di esecuzione. Esempio int *ret_i(struct elem *ptr) return( ptr->i ); /* Il comando di sopra e' equivalente a: return ( &(ptr->i[0]) ); */ ret_i: lw $v0, 4($a0) La funzione e scritta in accordo alla politica caller-save. Il parametro ptr e passato in $a0. Il risultato della funzione e Esempio int ret_i1(struct elem *ptr) return( ptr->i[1] ); ret_i1: lw $v0, 4($a0) lw $v0, 4($v0) La funzione e scritta in accordo alla politica caller-save. Il parametro ptr e passato in $a0. Il risultato della funzione e 8

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

puntatori Lab. Calc. AA 2007/08 1

puntatori Lab. Calc. AA 2007/08 1 puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008 Se devo memorizzare più valori che sono in qualche modo parenti dal punto di vista logico, posso usare il concetto di vettore di variabili (array). Ad esempio, se devo memorizzare le temperature di tutti

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

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

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

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

Le operazioni di allocazione e deallocazione sono a carico del sistema.

Le operazioni di allocazione e deallocazione sono a carico del sistema. Allocazione della memoria In C++ è possibile creare (allocare) variabili in maniera statica o dinamica. Nell allocazione statica una variabile esiste ed è utilizzabile dal momento della sua dichiarazione

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

Fondamenti di Informatica T. Linguaggio C: i puntatori

Fondamenti di Informatica T. Linguaggio C: i puntatori Linguaggio C: i puntatori Il puntatore E` 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

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 variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

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

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008 Programmazione I / Informatica generale Prova scritta 11 Giugno 2008 NOTA: Si trascuri ogni problema legato al tipo ed al valore di ritorno della funzione main. Inoltre, nei programmi è da sottintendere

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

Problem solving elementare su dati vettoriali

Problem solving elementare su dati vettoriali Problem solving elementare su dati vettoriali Introduzione Verifiche su sequenze di dati Selezione o ricerca di dati 2 2006 Politecnico di Torino 1 Introduzione (1/2) I problemi di verifica consistono

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)

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

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

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30' Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit5.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio di

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

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

Dettagli

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario

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

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore ARPA Fonte Dati Regione Toscana 1 Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.1 Data emissione 09/10/13 Stato FINAL 2 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 1.1 09/10/2013

Dettagli

Indirizzo di una funzione. Puntatori a funzioni. Definizione di variabili. Definizione di variabili

Indirizzo di una funzione. Puntatori a funzioni. Definizione di variabili. Definizione di variabili Indirizzo di una funzione 2 Puntatori a funzioni Ver. 2.4 Si può chiamare una funzione utilizzando l indirizzo di memoria dal quale inizia il codice eseguibile della funzione stessa L indirizzo di memoria

Dettagli

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante Esercizio 0 Scambio lettere Scrivere la funzione void scambiolettere(char *dest, char *lettere, int p_o_d) che modifichi la stringa destinazione (dest), sostituendone i caratteri pari o dispari (a seconda

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

Lezione 9: Strutture e allocazione dinamica della memoria

Lezione 9: Strutture e allocazione dinamica della memoria Lezione 9: Strutture e allocazione dinamica della memoria Laboratorio di Elementi di Architettura e Sistemi Operativi 9 Maggio 2012 Allocazione dinamica della memoria Memoria dinamica È possibile creare

Dettagli

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) (Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste

Dettagli

Programmazione dinamica

Programmazione dinamica Capitolo 6 Programmazione dinamica 6.4 Il problema della distanza di edit tra due stringhe x e y chiede di calcolare il minimo numero di operazioni su singoli caratteri (inserimento, cancellazione e sostituzione)

Dettagli

Tibet4DExt. Manuale Utente. Un Plug-in 4 th Dimension per accedere agli archivi di Tibet in linea. (Versione 1.7.x)

Tibet4DExt. Manuale Utente. Un Plug-in 4 th Dimension per accedere agli archivi di Tibet in linea. (Versione 1.7.x) Tibet4DExt Un Plug-in 4 th Dimension per accedere agli archivi di Tibet in linea (Versione 1.7.x) Manuale Utente Capitolo 1, Informazioni Generali Informazioni generali su Tibet4DExt Il plug-in Tibet4DExt

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

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

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...

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

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

I puntatori e l allocazione dinamica di memoria

I puntatori e l allocazione dinamica di memoria I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in

Dettagli

L ambiente di simulazione SPIM

L ambiente di simulazione SPIM Architettura degli Elaboratori e delle Reti Lezione 14 L ambiente di simulazione SPIM Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 14 1/28

Dettagli

Il simulatore SPIM SPIM

Il simulatore SPIM SPIM Il simulatore SPIM Architetture dei Calcolatori (lettere A-I) SPIM SPIM: un simulatore per eseguire programmi assembler scritti per processori MIPS32 Download e materiale relativo alla pagina Web http://www.cs.wisc.edu/~larus/spim.html

Dettagli

costruttori e distruttori

costruttori e distruttori costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,

Dettagli

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive Assembler di Spim Assembler di SPIM Il programma è organizzato in linee Ogni linea può contenere un commento che parte dal carattere # e si estende fino alla fine della linea Ogni linea che non sia bianca

Dettagli

Visibilità dei Membri di una Classe

Visibilità dei Membri di una Classe Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce

Dettagli

Il tipo di dato astratto Pila

Il tipo di dato astratto Pila Il tipo di dato astratto Pila Il tipo di dato Pila Una pila è una sequenza di elementi (tutti dello stesso tipo) in cui l inserimento e l eliminazione di elementi avvengono secondo la regola seguente:

Dettagli

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI ORDINAMENTO DEI DATI Quando si ordina un elenco (ovvero una serie di righe contenenti dati correlati), le righe sono ridisposte in base al contenuto di una colonna specificata. Distinguiamo due tipi di

Dettagli

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4];

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4]; ARRAY BIDIMENSIONALI Si possono definire array di qualunque tipo di dato, quindi anche di altre array float [][] mx = new float[3][4]; ovvero.. (float []) [] mx = new float[3][4]; La loro motivazione (storica)

Dettagli

Appello di Informatica B

Appello di Informatica B Politecnico di Milano Facoltà di Ingegneria Industriale 19 febbraio 2004 Appello di Informatica B Prof. Angelo Morzenti - Prof. Vincenzo Martena Cognome e nome: Matricola: Tipo di prova: recupero I prova

Dettagli

GaraviniSoftware srl MANUALE IVA. Aggiungere un Codice IVA

GaraviniSoftware srl MANUALE IVA. Aggiungere un Codice IVA MANUALE IVA Aggiungere un Codice IVA All interno del vostro programma 4D, nel menù Tristar, selezionare la voce Anagrafici Tabella IVA Cliccando su Nuovo, appare la seguente schermata ed è necessario compilarla

Dettagli

CALCOLATORI ELETTRONICI II

CALCOLATORI ELETTRONICI II CALCOLATORI ELETTRONICI II L ASSEMBLATORE Microsoft MASM MASM Argomenti della lezione Faremo riferimento al linguaggio sorgente accettato dall assemblatore Microsoft MASM nelle versioni successive alla

Dettagli

Istruzioni per l uso dei programmi MomCad, TraveCon, TraveFon

Istruzioni per l uso dei programmi MomCad, TraveCon, TraveFon Istruzioni per l uso dei programmi MomCad, TraveCon, TraveFon I tre programmi sono utility generali preparate appositamente per gli studenti (ma che potrebbero essere utili anche per professionisti). MomCad

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Architettura dei calcolatori e sistemi operativi Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Sommario Il processo di assemblaggio Il collegatore (linker) 2 Assemblatore: traduzione

Dettagli

Calcolare il massimo di una lista

Calcolare il massimo di una lista Calcolare il massimo di una lista Ieri abbiamo imparato a calcolare il massimo di una lista predefinita: lista = [4,24,-89,81,3,0,-12,31] max = lista[0] # questo e' un commento: primo elemento di lista

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

Esercizio: gestione di un conto corrente

Esercizio: gestione di un conto corrente Esercizio: gestione di un conto corrente Si realizzi un conto corrente bancario mediante: - una ASTRAZIONE DI DATO - un TIPO DI DATO ASTRATTO Il conto corrente è caratterizzato dalle seguenti informazioni:

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

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

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

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

Spiegazione Open Interest Storico:

Spiegazione Open Interest Storico: Spiegazione Open Interest Storico: Ogni volta che viene scaricata la chain delle opzioni, tutti i dati ottenuti vengono memorizzati anche nel database storico, che comprende quindi sia i valori degli Open

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

La gestione della memoria

La gestione della memoria La gestione della memoria DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII.UNISI.IT HTTP://WWW.DII.UNISI.IT/~RIGUTINI/

Dettagli

DATA BASE ON LINE (BANCA DATI MODULI SPERIMENTALI)

DATA BASE ON LINE (BANCA DATI MODULI SPERIMENTALI) Progetto regionale antidispersione per favorire l adempimento dell obbligo d istruzione 2 a annualità DATA BASE ON LINE (BANCA DATI MODULI SPERIMENTALI) MANUALE DI UTILIZZO Indice Premessa 3 Ingresso nel

Dettagli

LA CORRISPONDENZA COMMERCIALE

LA CORRISPONDENZA COMMERCIALE LA CORRISPONDENZA COMMERCIALE GLI ELEMENTI ESSENZIALI DELLA LETTERA COMMERCIALE Intestazione Individua il nome e il cognome o la ragione sociale di chi scrive; contiene inoltre l indirizzo e i recapiti

Dettagli

Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo

Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo - la durata del mutuo in anni - l importo del mutuo

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1 Pagina 1 Sommario...1 Apertura...2 Visualizzazioni...2 Elenco...2 Testo sul pulsante e altre informazioni...3 Comandi...3 Informazioni...4 Flow chart...5 Comandi...6 Pulsanti Principali e Pulsanti Dipendenti...6

Dettagli

Dispense di Informatica per l ITG Valadier

Dispense di Informatica per l ITG Valadier La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di

Dettagli

MANUALE PARCELLA FACILE PLUS INDICE

MANUALE PARCELLA FACILE PLUS INDICE MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella

Dettagli

Word processor funzione Stampa Unione

Word processor funzione Stampa Unione Word processor funzione Stampa Unione La funzione Stampa unione permette di collegare un documento che deve essere inviato ad una serie di indirizzi ad un file che contenga i nominativi dei destinatari.

Dettagli

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio AXO Architettura dei Calcolatori e Sistema Operativo processo di assemblaggio linguaggio assembly è il linguaggio simbolico che consente di programmare un calcolatore utilizzando le istruzioni del linguaggio

Dettagli

Alcuni consigli per un uso di base delle serie di dati automatiche in Microsoft Excel

Alcuni consigli per un uso di base delle serie di dati automatiche in Microsoft Excel Alcuni consigli per un uso di base delle serie di dati automatiche in Microsoft Excel Le serie Una serie di dati automatica è una sequenza di informazioni legate tra loro da una relazione e contenute in

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Guida operativa. My Legal Corner. BestSoft SOFTWARE IN SANITÀ

Guida operativa. My Legal Corner. BestSoft SOFTWARE IN SANITÀ Guida operativa My Legal Corner BestSoft SOFTWARE IN SANITÀ Via Bono Cairoli 28/A - 20127 Milano (MI) Help desk: 02 29529140 Num. Verde da fisso: 800 978542 E-mail: info@bestsoft.it Sito Internet: www.bestsoft.it

Dettagli

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli gerarchico e reticolare sono più vicini alle strutture

Dettagli

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

Dettagli

IL MIO PRIMO SITO NEWS USANDO GLI SCHEDARI

IL MIO PRIMO SITO NEWS USANDO GLI SCHEDARI Pagina 1 UN SISTEMA DI NEWS Sommario UN SISTEMA DI NEWS...1 Introduzione...2 Scelgo l'area su cui operare...3 Un minimo di teoria...3 Creo le Pagine...4 Definizione dello Schedario Novità...6 Compilo la

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice

Dettagli

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010 elementi di teoria dei grafi anno acc. 2009/2010 Grafi semplici Un grafo semplice G è una coppia ordinata (V(G), L(G)), ove V(G) è un insieme finito e non vuoto di elementi detti vertici o nodi di G, mentre

Dettagli

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1 PROGRAMMA GESTIONE TURNI MANUALE UTENTE INDICE 1 PREMESSA 3 2 COMANDI COMUNI 3 3 SEDI 3 4 FESTIVITÀ 4 5 PERIODI TURNI 4 6 COD. TURNI 6 7 TURNI SPORTIVI 9 8 COD. EQUIPAGGI 9 9 DISPONIBILITÀ 10 10 INDISPONIBILITÀ

Dettagli

Autorizzazioni Kronos Web

Autorizzazioni Kronos Web Autorizzazioni Kronos Web Inserimento Richieste All apertura la funzione si presenta così: Da questa funzione è possibile inserire le mancate timbrature e le richieste di giustificativi di assenza o autorizzazione.

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

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

La Stampa Unione. Individuare la lista indirizzi per la Stampa Unione

La Stampa Unione. Individuare la lista indirizzi per la Stampa Unione La Stampa Unione La Stampa unione consente di personalizzare con il nome, il cognome, l'indirizzo e altri dati i documenti e le buste per l'invio a più destinatari. Basterà avere un database con i dati

Dettagli

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio 1-La memoria dinamica La scrittura di un programma (indipendentemente dal linguaggio adottato) deve sempre tener conto

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

strutturare dati e codice

strutturare dati e codice Puntatori e passaggio parametri strutturare dati e codice Tipo di dati int * Pi ; Op. dereferenziazione j = *Pi ; Op. indirizzo Pi = &i ; By value int f(int i) ; a = f(b) ; By address int f(int * Pi) ;

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente

Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente Vediamo come utilizzare Word per costruire un modulo compilabile, ovvero una scheda che contenga delle parti fisse di

Dettagli

MIPS Instruction Set 2

MIPS Instruction Set 2 Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general

Dettagli

1 Applicazioni Lineari tra Spazi Vettoriali

1 Applicazioni Lineari tra Spazi Vettoriali 1 Applicazioni Lineari tra Spazi Vettoriali Definizione 1 (Applicazioni lineari) Si chiama applicazione lineare una applicazione tra uno spazio vettoriale ed uno spazio vettoriale sul campo tale che "!$%!

Dettagli

Software standard Alpi Label Ver. 2.2.0.0

Software standard Alpi Label Ver. 2.2.0.0 Pag. 1 di 16 Manuale utente Software standard Alpi Label Ver. 2.2.0.0 Pag. 2 di 16 1 SOMMARIO Sommario 1 Sommario... 2 2 Specifiche Tecniche... 3 3 Maschera Principale... 4 4 Funzioni menù... 7 Pag. 3

Dettagli

Tabelle Pivot - DISPENSE

Tabelle Pivot - DISPENSE Tabelle Pivot - DISPENSE Definizione Pivot Table: strumento che permette di riepilogare ed analizzare i dati di una tabella dinamicamente. Sono utilità che consentono di aggregare i dati secondo i criteri

Dettagli

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i Esercizi PHP 1. Scrivere uno script PHP che produca in output: 1. La tabellina del 5 2. La tavola Pitagorica contenuta in una tabella 3. La tabellina di un numero ricevuto in input tramite un modulo. Lo

Dettagli