GESTIONE INFORMATICA DEI DATI AZIENDALI



Похожие документы
Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Il tipo di dato astratto Pila

10 - Programmare con gli Array

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

INFORMATICA 1 L. Mezzalira

Algoritmi di Ricerca. Esempi di programmi Java

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

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

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

La struttura dati ad albero binario

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

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

Concetto di Funzione e Procedura METODI in Java

La selezione binaria

Funzioni in C. Violetta Lonati

FONDAMENTI di INFORMATICA L. Mezzalira

La ricorsione. Politecnico di Milano Sede di Cremona

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

Arduino: Programmazione

Inizializzazione, Assegnamento e Distruzione di Classi

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

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:

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Allocazione dinamica della memoria - riepilogo

Sottoprogrammi: astrazione procedurale

Algebra Booleana ed Espressioni Booleane

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente.

dall argomento argomento della malloc()

Laboratorio di programmazione

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Elementi di Informatica

Descrizione di un algoritmo

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

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

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

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

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

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

I puntatori e l allocazione dinamica di memoria

Matlab: Strutture di Controllo. Informatica B

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

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

LINGUAGGI DI PROGRAMMAZIONE

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

RICORSIVITA. Vediamo come si programma la soluzione ricorsiva al problema precedente: Poniamo S 1 =1 S 2 =1+2 S 3 =1+2+3

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

Introduzione al linguaggio C Gli array

I tipi di dato astratti

Tecniche di traduzione da C ad assembly Note generali

Linguaggio C - Funzioni

Gestione dinamica di una pila

Programmazione in Java Parte I: Fondamenti

DAL DIAGRAMMA AL CODICE

4 3 4 = 4 x x x 10 0 aaa

Due algoritmi di ordinamento. basati sulla tecnica Divide et Impera: Mergesort e Quicksort

Esercizi Capitolo 6 - Alberi binari di ricerca

Variabili e tipi di dato

Alberi binari di ricerca

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

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

Fasi di creazione di un programma

Sistema operativo: Gestione della memoria

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Elementi di semantica operazionale

Elementi di semantica denotazionale ed operazionale

Linguaggio C. Fondamenti. Struttura di un programma.

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

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

Corso di Informatica

Corso di Tecniche di Programmazione

Istruzioni condizionali. Istruzioni condizionali IF-THEN- ELSE IF-THEN-ELSE. Statistica computazionale Carla Rampichini a.a.

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

3. La sintassi di Java

Informatica 3. Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Lezione 6 - Modulo 1. Errori durante l esecuzione. Il controllo dell esecuzione

Algoritmi e strutture dati. Codici di Huffman

Programmazione dinamica

Organizzazione degli archivi

Il memory manager. Gestione della memoria centrale

DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

ARRAY E STRINGHE. G. Frosini Slide 1

Algoritmi su array / 2

MANUALE PARCELLA FACILE PLUS INDICE

Esercizio: gestione di un conto corrente

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

Gli algoritmi: definizioni e proprietà

Fondamenti di Informatica - 9Cfu Corso di Laurea in Ingegneria Informatica (ord. 270)

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

Connessione ad internet

costruttori e distruttori

Il descrittore di processo (PCB)

+ / operatori di confronto (espressioni logiche/predicati) / = > < Pseudo codice. Pseudo codice

Architettura hardware

Транскрипт:

GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it

Rudimenti di programmazione Programming is an art, not a science Donald E. Knuth Come tutte le arti, la programmazione si basa su solidi concetti e tecniche, che, appropriatamente combinate, permettono l ideazione e la realizzazione di programmi implementabili usando i vari linguaggi di programmazione disponibili.

Alcuni concetti qua e là... Costanti : Variabili : Funzioni : valori che non cambiano durante l intera esecuzione del programma. (implementate da locazioni di memoria) contengono valori che possono cambiare durante l esecuzione del programma (procedure, sottoprogrammi) sezioni di codice che svolgono un ben specifico compito, usate come componente da programmi più complessi. Le funzioni sono una delle possibilità di implementazione del principio divide et impera: per risolvere un problema difficile lo si scompone in problemi più semplici. Si risolvono prima questi problemi e poi si usano le soluzioni trovate per risolvere il problema originale.

Dichiarazione di variabili, allocazione La dichiarazione di variabili serve al compilatore a capire quanta memoria vada riservata (allocata). E possibile avere allocazione statica o dinamica di memoria. Es. (statica) int x; char c; int vett[10]; Un intero (4 byte) Un carattere (1 byte) Un vettore di interi (10 4 = 40 byte) Si può accedere all i-esimo elemento di un vettore indicando l indice vett[i] L indice può iniziare da 0 o da 1, a seconda dei linguaggi.

Dichiarazione di variabili, allocazione Quando non è noto a priori il numero di variabili che saranno necessarie nel programma (ad es. perchè vengono passate da un altro programma o dall utente) è possibile allocare memoria dinamicamente. puntatoreavariabile = new(t) Alloca memoria sufficiente per una variabile di tipo T. Tipicamente restituisce un puntatore alla (l indirizzo della) memoria allocata. delete(var) Libera la memoria associata alla variabile var, allocata dinamicamente in precedenza da una chiamata a new.

Strutture dati Vi sono tipi di dato più complessi di struttura molto generale: Pile Code Liste Alberi, Grafi,... Strutture LIFO (Last In, First Out): l inserimento e l estrazione di oggetti possono avvenire solo da un lato Strutture FIFO (First In, First Out): l inserimento avviene da un lato, l estrazione dall altro Strutture dinamiche, pensate per inserimento e rimozione dinamica di dati. Possono essere monodirezionali, bidirezionali, ordinate,... Le varie strutture dati si differenziano per la complessità delle operazioni elementari (ricerca di un elemento, inserimento, cancellazione, ordinamento, ecc.)

Comandi... Comando ::= Comando ; Comando Assegnamento Condizionale Ciclo Funzione... Assegnamento : ad una variabile viene assegnato un valore. Il valore ivi contenuto precedentemente viene cancellato. Es. x = 0; var = var + 1; Nel secondo caso, var a sinistra del segno di uguaglianza indica la locazione di memoria in cui verrà scritto il risultato, mentre quello a destra il valore in essa attualmente contenuto. L effetto e di incrementare il valore di var di 1. Condizionale : if( condizione ) then comando1 (... else comando2 ) A seconda del valore di condizione (un espressione booleana, ad es. x > 3, o y == z), vengono effettuate azioni diverse. Se condizione è True viene eseguito comando1. Se il ramo else è presente, comando2 viene eseguito quando condizione è False. In generale, 0 corrisponde a False, qualunque altra cosa a True.

Comandi... Ciclo : Ripetizione di un comando un certo numero di volte, a seconda della condizione booleana (guardia). 1 while ( condizione ) do comando 2 do comando while ( condizione ) 3 repeat comando until ( condizione ) 4 for( iteratore ) do comando 1 il corpo del while viene eseguito finché condizione è True (anche nessuna volta). Quando diventa false, l istruzione termina, e si passa all istruzione successiva. 2 Idem, ma la guardia viene valutata dopo il corpo, che dunque viene eseguito almeno una volta. 3 Come 2, ma il corpo viene eseguito finchè la guardia è False. Quando è True il comando termina. 4 Ripetizione un numero prefissato di volte, noto fin dall inizio: Es. for (i = 1,10) do x = x + i;

Funzioni... tiporisultato Funzione(arg 1,..., arg n ) { Corpo } Le funzioni effettuano calcoli parziali e/o operazioni in genere riguardanti una parte specifica del programma. Possono restituire un valore, ed in generale prendono un certo numero di argomenti. Es. La funzione fatt(int n) calcola il fattoriale di n. int fatt(int n) { int i; int result = 1; for (i = 1,n) do result = result*i; return (result); } Chiamata (uso) della funzione: x = fatt(10); (Ora x = 3628800) i è una variabile locale alla funzione. La memoria necessaria per i viene liberata al termine della funzione.

Funzioni... Es. La funzione/procedura swap(t a, T b) scambia i valori dei due argomenti (entrambi di tipo T). Non restituisce nessun valore (void), ma modifica lo stato della memoria. void swap(t a, T b) { T temp; } temp = a; a = b; b = temp;

Passaggio dei parametri alle funzioni I due principali tipi di passaggio di parametri sono: Es. 1 Per valore : i valori delle espressioni/variabili indicate al momento della chiamata della funzione vengono copiati nelle locazioni di memoria corrispondenti ai parametri. Ogni eventuale elaborazione effettuata sui parametri non si riflette sulle variabili da cui i valori sono stati copiati. 2 Per puntatore : alla funzione viene passato l indirizzo della variabile di cui si vuol passare il valore. Oltre ad averlo a disposizione (diritto di lettura), si ha anche la possibilità di modificare il contenuto della variabile (diritto di scrittura). Per la funzione fatt è ragionevole il passaggio per valore Per la funzione swap è obbligatorio per entrambi i parametri il passaggio per puntatore, poichè scopo della funzione è proprio quello di modificarne i valori.