Corso di Informatica

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Corso di Informatica"

Transcript

1 Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1

2 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down per un corretto sviluppo del software mediante l uso di sottoprogrammi. 3 I sottoprogrammi Nelle Unità precedenti si è vista l utilità di scomporre il procedimento risolutivo di un problema in sottoproblemi mediante la tecnica topdown. Ciascun sottoproblema, opportunamente risolto dà luogo ad un sottoprogramma, detto anche funzione. Vantaggi: semplificazione del procedimento risolutivo ripartizione dei compiti riutilizzo dei sottoprogrammi semplificazione del collaudo 4 2

3 I sottoprogrammi Il concetto di funzione può essere chiarito con la cosiddetta analogia del manager e dell impiegato. Il manager, capo di una organizzazione, assegna un dato compito a ciascuno dei suoi impiegati. Egli specifica a ciascun impiegato cosa deve fare o produrre. Ciascun impiegato individua come svolgere la mansione (funzione) affidatagli e restituisce le risposte desiderate al richiedente. cosa cosa MANAGER cosa Impiegato 1 Impiegato 2 Impiegato 3 come come come 5 I sottoprogrammi Problema: Leggere due valori interi a e b e stampare il minimo tra ATTIVITA : essi. disegnare la tabella delle variabili Nome a b min. Scopo Input Input Output Tipo Intero Intero Intero Contenuto Primo numero Secondo numero Minimo tra a e b ATTIVITA : scrivere l algoritmo corrispondente in NLS 6 3

4 I sottoprogrammi Tra breve vedremo perché queste variabili sono dichiarate in questo punto esterno al main Fase 2 Algoritmo principale Intero a,b,min; Algoritmo. CalcolaMinimo lettura (); minimo (); Stampa (min); Fine. Il programma principale CalcolaMinimo contiene la richiesta di esecuzione delle funzioni lettura() (che legge i dati di input a e b) e minimo() (che calcola il minimo tra i due valori a e b) La richiesta di esecuzione di una funzione all interno di un programma (detto programma chiamante) prende il nome di istanza. Un sottoprogramma è individuato da un nome (es. lettura(), minimo()) 7 I sottoprogrammi Fase 2 Algoritmo principale CalcolaMin() L algoritmo principale può essere anche rappresentato mediante i sottoprogrammi di cui si compone, come in figura. Il disegno prende il nome di albero delle chiamate e contiene, per ogni funzione, l elenco delle funzioni che essa a sua volta istanzia nell algoritmo. lettura() minimo() Stampa() All interno del codice di una funzione, possono comparire istanze ad altre funzioni. 8 4

5 I sottoprogrammi Fase 2 Algoritmi di sviluppo dei sottoproblemi La funzione lettura() ha il solo scopo di leggere le due variabili a e b. La funzione minimo() ha il solo scopo di calcolare il minimo tra a e b.void lettura () Leggi (a); Leggi (b); Fine; Vedremo fra breve il significato della parola void. void minimo () Se (a<b) min=a; Altrimenti min=b: Fine; Il corpo della funzione prende il nome di definizione della funzione ed è diverso dall istanza, che ne rappresenta la richiesta di esecuzione. 9 I sottoprogrammi Notiamo che un sottoprogramma: deve risolvere un singolo sottoproblema; possiede un aspetto sintattico simile a quello di un programma; può contenere istruzioni e s.d.c come un programma; è caratterizzato da un nome; può essere usato per eseguire semplicemente una serie di istruzioni (ad es. lettura()) o per calcolare uno o più valori (ad es. minimo()). 10 5

6 Il concetto di funzione Una funzione è una particolare relazione tra due insiemi: un insieme di partenza X (detto dominio) ed un insieme di arrivo Y (detto codominio). La funzione f fa sì che, ad ogni valore xє X, resti associato univocamente uno ed un solo valore yє Y e indichiamo ciò con y = f (x) La variabile indipendente x si dice argomento, mentre la y si dice valore della funzione. Il numero di argomenti di una funzione si dice arità di f: pertanto la funzione y = f (x) ha arità 1 (funzione unaria), 11 Dominio e codominio Esempi di istanze di funzioni unarie: Codominio In base al valore in ingresso, una funzione produce un risultato diverso. Intero doppio (Intero x); doppio (5) = 10 doppio (-4) = -8 Dominio Carattere primo (Stringa s); primo ( Oggi ) = O primo ( + ) =

7 Arità di una funzione Può accadere che il dominio consista di più di un insieme, per cui la funzione f calcola il valore y in corrispondenza ad un gruppo di valori x 1, x 2,,x n appartenente al dominio X 1 X 2 X n e ciò si indica con y = f (x 1, x 2,,x n ) Una funzione f che ha arità n si dice funzione n-aria, binaria se n=2, ternaria se n=3, ecc. 13 Esempi di funzioni Esempi di funzioni di arità 2: Intero somma (Intero x, Intero y); somma (3, 5) = 8 somma (-2, 5) = 3 Carattere car_in_pos (Stringa s, Intero i); car_in_pos ( casa, 2) = s car_in_pos ( tre, 0) = t Logico uguali (Intero n1, Intero n2); uguali (3, 5) = Falso uguali (6, 6) = Vero 14 7

8 I parametri formali La funzione minimo() dell esempio visto all inizio, calcola il minimo sempre e solo tra le due variabili a e b. Il dominio è Intero Intero Come si può generalizzare? void minimo (Intero x, Intero y) La parola chiave void indica un codominio generico e si usa quando la funzione non produce alcun valore in uscita Se (x<y) allora min=x; Altrimenti min=y: Fine; Le variabili Intero x, Intero y prendono il nome di parametri formali. Il calcolo del minimo min viene effettuato con i valori contenuti in queste variabili. 15 I parametri formali I parametri formali: sono variabili NON dichiarate nel programma principale che vengono usati semplicemente come segnaposto, per far capire il numero ed il tipo di variabili su cui la funzione opera; non sono utilizzabili per portare il loro valore all esterno delle funzioni in cui appaiono; sono individuati da un nome e da un tipo esattamente come si fa per le variabili; presentano il grande vantaggio che consentono di generalizzare l applicazione delle funzioni, ossia di renderle istanziabili anche mediante altre variabili (ovviamente dello stesso tipo). 16 8

9 I parametri formali ATTIVITA : nelle seguenti funzioni: 1. Intero doppio (Intero x); 2. Carattere primo (Stringa s); 3. Intero somma (Intero x, Intero y); 4. Carattere car_in_pos (Stringa s, Intero i); individuare dominio, codominio e parametri formali 1. D: Intero C: Intero Parametro formale x 2. D: Stringa C: Carattere Parametro formale s 3. D: Intero x Intero C: Intero Parametri formali x ed y 4. D: Stringa x Intero C:Carattere Parametri formali s ed i 17 I parametri attuali Ma come si fa ad attribuire ai parametri formali il valore effettivo su cui operare? Al momento dell istanza della funzione nel programma principale è necessario che essa venga eseguita inviando insieme alla funzione i valori effettivi su cui questa dovrà operare. Questi valori prendono il nome di parametri attuali o parametri effettivi e sono effettivamente variabili note al programma principale (ossia devono essere dichiarati nel suo interno) L esecutore copia i valori dei parametri attuali, nei corrispondenti parametri formali. 18 9

10 Interfaccia di chiamata In questo modo, se vogliamo calcolare il minimo tra due coppie di valori (a e b e poi c e d) il programma principale si scrive come Intero a, b, c, d, min; Algoritmo CalcolaMinimo lettura (); minimo (a, b); Stampa (min); minimo (c, d); Stampa (min); Fine. L istruzione con cui si istanzia una funzione, completa con gli eventuali parametri, si dice interfaccia di chiamata della funzione. 19 Corrispondenza tra parametri I parametri attuali: sono variabili che vanno dichiarate nel programma principale e servono a istanziare le funzioni devono corrispondere ai parametri formali come: - numero - ordine - tipo 20 10

11 Valore di ritorno Da alcuni esempi precedenti, abbiamo visto che una funzione può anche restituire un valore, detto valore di ritorno, che risulta dallo svolgimento di un calcolo Ad esempio Il tipo del valore di ritorno indica il codominio della funzione Il valore di ritorno viene restituito nel nome della funzione. Ritorna (espressione) pone il valore di espressione nel nome della funzione. Intero volume_cubo (Intero lato) Fine; Ritorna (lato*lato*lato); 21 Valore di ritorno In questo modo il programma chiamante può istanziare la funzione come se fosse una variabile. Ad esempio La funzione viene istanziata utilizzando come parametro un valore costante (5), o passando Stampa volume_cubo (5); una variabile (a), o assegnandola Stampa volume_cubo (a); ad una variabile (v). Intero v = volume_cubo(10); Se una funzione è di tipo void invece, si istanzia solo con il nome ed i parametri: Ad esempio: lettura(); 22 11

12 Valore di ritorno ATTIVITA : scrivere una funzione che calcoli il resto della divisione tra due interi Intero resto(intero n1, Intero n2) Ritorna (n1%n2); Fine; Esempi di istanze: Intero r;. Stampa (resto(8,4)); r = resto(5, 2); La funzione resto riceve Intero n1, n2 come parametri formali e calcola il resto mediante l operatore %. Il valore è direttamente ritornato al programma principale. La funzione resto() può essere istanziata: in stampa in una assegnazione 23 Valore di ritorno ATTIVITA : scrivere una funzione che calcoli la differenza positiva tra due interi Intero differenza (Intero x, Intero y) Se (x<y) Ritorna (y-x); Altrimenti Ritorna (x-y); Fine; Esempi di istanze: Intero m, a=5, b=1;. Stampa (differenza (2, 3)); m = differenza (a, b); La funzione differenza() riceve in ingresso i due parametri x ed y e restituisce al programma chiamante la differenza tra il maggiore ed il minore di essi La funzione differenza() può essere istanziata: in stampa in una assegnazione 24 12

13 Valore di ritorno Da quanto detto, nei sottoprogrammi non è opportuno usare funzioni di lettura/scrittura (a meno che la funzione sia espressamente una funzione destinata all input o all output), perché: l input della funzione avviene mediante i parametri l output è il risultato che la funzione fornisce al programma chiamante mediante la parola Ritorna. Se non c è alcun output, la funzione va dichiarata void. 25 Argomenti I sottoprogrammi Il concetto di funzione Dominio e codominio Arità di una funzione Esempi di funzioni I parametri formali I parametri attuali Interfaccia di chiamata Corrispondenza tra parametri Valore di ritorno 26 13

14 Altre fonti di informazione P.Gallo, F.Salerno Informatica Generale 1, ed. Minerva Italica G.Callegarin Corso di Informatica 1, ed. CEDAM 27 14

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T Scorrimento-Rotazione-Ricerca Prerequisiti Programmazione elementare Conoscenza ed uso di vettori Introduzione Lo scopo di questa Unità è approfondire il concetto di vettore

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA1 1.3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Strutture di controllo Scittura di semplici applicazioni Java 2 1 Introduzione In molti casi le

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

Funzioni e procedure

Funzioni e procedure Funzioni e procedure 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

Informatica. Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione

Informatica. Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Informatica Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, ed elaborazione dell informazione.

Dettagli

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

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

Dettagli

Le Macchine di Turing

Le Macchine di Turing Le Macchine di Turing Come è fatta una MdT? Una MdT è definita da: un nastro una testina uno stato interno un programma uno stato iniziale Il nastro Il nastro è infinito suddiviso in celle In una cella

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

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

Basi di dati. Le funzionalità del sistema non vanno però ignorate

Basi di dati. Le funzionalità del sistema non vanno però ignorate Basi di dati La progettazione di una base di dati richiede di focalizzare lo sforzo su analisi, progettazione e implementazione della struttura con cui sono organizzati i dati (modelli di dati) Le funzionalità

Dettagli

Alcuni Preliminari. Prodotto Cartesiano

Alcuni Preliminari. Prodotto Cartesiano Alcuni Preliminari Prodotto Cartesiano Dati due insiemi A e B, si definisce il loro prodotto cartesiano A x B come l insieme di tutte le coppie ordinate (a,b) con a! A e b! B. Es: dati A= {a,b,c} e B={,2,3}

Dettagli

Corso di Basi di Dati A.A. 2013/2014

Corso di Basi di Dati A.A. 2013/2014 Corso di Laurea in Ingegneria Gestionale Sapienza - Università di Roma Corso di Basi di Dati A.A. 2013/2014 8 - Progettazione Concettuale Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 27/04/2014

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

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Linguaggi di Programmazione Michele Tomaiuolo Linguaggi macchina I

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli

Linguaggio C - Funzioni

Linguaggio C - Funzioni Linguaggio C - Funzioni Funzioni: Il linguaggio C è di tipo procedurale; ogni programma viene suddiviso in sottoprogrammi, ognuno dei quali svolge un determinato compito. I sottoprogrammi si usano anche

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

Esempio. Esempio. Linguaggio di Programmazione. Linguaggi di programmazione. Linguaggio di computazione. Linguaggi di programmazione

Esempio. Esempio. Linguaggio di Programmazione. Linguaggi di programmazione. Linguaggio di computazione. Linguaggi di programmazione Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Problema e metodologie di progetto Linguaggio C: Introduzione Monica Mordonini Problema e Algoritmo

Dettagli

Comparatori. Comparatori di uguaglianza

Comparatori. Comparatori di uguaglianza Comparatori Scopo di un circuito comparatore é il confronto tra due codifiche binarie. Il confronto può essere effettuato per verificare l'uguaglianza oppure una relazione d'ordine del tipo "maggiore",

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

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

Algoritmo. Funzioni calcolabili. Unità 28

Algoritmo. Funzioni calcolabili. Unità 28 Prerequisiti: - Conoscenza dei numeri naturali e interi e delle loro proprietà. - Acquisizione del concetto di funzione. Questa unità è riservata al primo biennio dei Licei, eccezion fatta per il Liceo

Dettagli

ESAME DI FONDAMENTI DI INFORMATICA T-2 del 15/01/2013 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX

ESAME DI FONDAMENTI DI INFORMATICA T-2 del 15/01/2013 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX ESAME DI FONDAMENTI DI INFORMATICA T-2 del 15/01/2013 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX NB: il candidato troverà nell archivio ZIP scaricato da Esamix anche il software Start Kit

Dettagli

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

Dettagli

Le funzioni elementari. La struttura di R. Sottrazione e divisione

Le funzioni elementari. La struttura di R. Sottrazione e divisione Le funzioni elementari La struttura di R La struttura di R è definita dalle operazioni Addizione e moltiplicazione. Proprietà: Commutativa Associativa Distributiva dell addizione rispetto alla moltiplicazione

Dettagli

Informatica Generale Anno Accademico 2000-2001

Informatica Generale Anno Accademico 2000-2001 Informatica Generale Anno Accademico 2000-2001 Corso di Laurea in Economia e Commercio Informazioni Generali Ricevimento: Mercoledì 15.00-17.00 Libri di "riferimento": C. Gallo, Informatica Generale ed

Dettagli

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

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

Dettagli

Unità B3 Strutture di controllo

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

Dettagli

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO CLASSE DISCIPLINA MODULO Conoscenze Abilità e competenze Argomento 1 Concetti di base Argomento 2 Sistema di elaborazione Significato dei termini informazione, elaborazione, comunicazione, interfaccia,

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Tecniche avanzate di sintesi di algoritmi: Programmazione dinamica Algoritmi greedy

Tecniche avanzate di sintesi di algoritmi: Programmazione dinamica Algoritmi greedy Tecniche avanzate di sintesi di algoritmi: Programmazione dinamica Algoritmi greedy Dr Maria Federico Programmazione dinamica Solitamente usata per risolvere problemi di ottimizzazione il problema ammette

Dettagli

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n. 51-56025 PONTEDERA (PI) DIPARTIMENTO: Discipline Informatiche

ISTITUTO TECNICO INDUSTRIALE STATALE G. MARCONI Via Milano n. 51-56025 PONTEDERA (PI) DIPARTIMENTO: Discipline Informatiche PROGRAMMAZIONE COORDINATA TEMPORALMENTE Monte ore annuo 99 Libro di Testo Barbero, Vaschetto - Corso di Informatica - terzo anno Ed. Pearson SETTEMBRE OTTOBRE Modulo 0 : CODIFICA INFORMAZIONI Rappresentazione

Dettagli

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

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

Dettagli

Algoritmi. Maurizio Palesi. Maurizio Palesi 1

Algoritmi. Maurizio Palesi. Maurizio Palesi 1 Algoritmi Maurizio Palesi Maurizio Palesi 1 Cos è Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Un algoritmo è un metodo per la soluzione

Dettagli

PROGETTAZIONE CONCETTUALE

PROGETTAZIONE CONCETTUALE Fasi della progettazione di basi di dati PROGETTAZIONE CONCETTUALE Parte V Progettazione concettuale Input: specifiche utente Output: schema concettuale (astrazione della realtà) PROGETTAZIONE LOGICA Input:

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

Algebra Relazionale. algebra relazionale

Algebra Relazionale. algebra relazionale Algebra Relazionale algebra relazionale Linguaggi di Interrogazione linguaggi formali Algebra relazionale Calcolo relazionale Programmazione logica linguaggi programmativi SQL: Structured Query Language

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

Fondamenti di Informatica II

Fondamenti di Informatica II Fondamenti di Informatica II Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Introduzione, A.A. 2009/2010 1/8

Dettagli

Computer per risolvere problemi

Computer per risolvere problemi Computer per risolvere problemi L attenzione alla formalizzazione è essenziale quando risolutore ed esecutore sono diversi e questo comporta che siano di fondamentale importanza, nel risolvere un problema:

Dettagli

Lezione 9: Cambio di base

Lezione 9: Cambio di base Lezione 9: Cambio di base In questa lezione vogliamo affrontare uno degli argomenti piu ostici per lo studente e cioè il cambio di base all interno di uno spazio vettoriale, inoltre cercheremo di capire

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

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

Elementi di Informatica

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

Dettagli

Archivio CD. Fondamenti di Programmazione

Archivio CD. Fondamenti di Programmazione Archivio CD Una persona possiede un certo numero di CD musicali e desidera organizzare il proprio archivio tramite uno strumento software. Il programma deve permettere: - l inserimento di un nuovo CD nella

Dettagli

DAL PROBLEMA AL PROGRAMMA

DAL PROBLEMA AL PROGRAMMA DAL PROBLEMA AL PROGRAMMA Scopo del modulo Conoscere alcuni concetti fondamentali dell informatica:algoritmo, l automa, linguaggio formale Essere in grado di cogliere l intreccio tra alcuni risultati della

Dettagli

LAVORO ESTIVO DI INFORMATICA CLASSE 2O

LAVORO ESTIVO DI INFORMATICA CLASSE 2O LAVORO ESTIVO DI INFORMATICA CLASSE 2O PER COLORO CHE HANNO AVUTO LA SOSPENSIONE DEL GIUDIZIO, GLI ESERCIZI SVOLTI DEVONO ESSERE CONSEGNATI TASSATIVAMENTE IL GIORNO DELL'ESAME SCRITTO. A CHI È STATO ASSEGNATO

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

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

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

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

Dettagli

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

10 - Programmare con gli Array

10 - Programmare con gli Array 10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Quaderni di Informatica. InforMateMatica. Luigino Calvi

Quaderni di Informatica. InforMateMatica. Luigino Calvi Quaderni di Informatica InforMateMatica Luigino Calvi I.I.S. Negrelli-Forcellini - Feltre 2014 ii Indice 1 Insiemi, Relazioni e Funzioni 1 1.1 ELEMENTI ED INSIEMI...................... 2 1.2 RELAZIONI..............................

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 18 dicembre 2007 Esercizio 1: rappresentazione di una tabella di occorrenze L obiettivo è quello di rappresentare in modo efficiente

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio

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

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo:

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo: ALGORITMI 1 a Parte di Ippolito Perlasca Algoritmo: Insieme di regole che forniscono una sequenza di operazioni atte a risolvere un particolare problema (De Mauro) Procedimento che consente di ottenere

Dettagli

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

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

Dettagli

7. OSSA. Alessio Maculani

7. OSSA. Alessio Maculani 7. OSSA ossa è il modulo software realizzato in questo stage di laurea. Esso aggiunge all applicazione composta da MadCow, VisualOntoGraph e FormalAnnotation, gli strumenti necessari all utente annotatore

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E04 Esempi di algoritmi e programmi C. Limongelli - A. Miola Novembre 2011 1 Contenuti q Somma di una sequenza di numeri interi

Dettagli

Introduzione al corso

Introduzione al corso Introduzione al corso Introduzione all Informatica - corso E Docente: Ing. Irina Trubitsyna Obiettivi del corso Concetti di base sull informatica e sulla gestione delle informazioni Struttura e funzionamento

Dettagli

1. Operazioni binarie e loro proprietà.

1. Operazioni binarie e loro proprietà. INTRODUZIONE ALLE STRUTTURE ALGEBRICHE Lo studio delle strutture algebriche astratte innanzitutto consente economia di pensiero, mediante l'unificazione in teorie generali degli esempi particolari già

Dettagli

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio Appunti di informatica Lezione 2 anno accademico 2015-2016 Mario Verdicchio Sistema binario e logica C è un legame tra i numeri binari (0,1) e la logica, ossia la disciplina che si occupa del ragionamento

Dettagli

La Progettazione Concettuale

La Progettazione Concettuale La Progettazione Concettuale Università degli Studi del Sannio Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica CorsodiBasidiDati Anno Accademico 2006/2007 docente: ing. Corrado Aaron Visaggio

Dettagli

Logica del primo ordine

Logica del primo ordine Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A7_4 V1.3 Logica del primo ordine Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio

Dettagli

Sviluppo Applicazioni Mobile Lezione 7. Dr. Paolo Casoto, Ph.D - 2011

Sviluppo Applicazioni Mobile Lezione 7. Dr. Paolo Casoto, Ph.D - 2011 + Sviluppo Applicazioni Mobile Lezione 7 Dr. Paolo Casoto, Ph.D - 2011 + Credits I lucidi di questa lezione sono stati preparati da: Professor Stefano Mizzaro Professor Paolo Coppola e sono stati modificati

Dettagli

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali:

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Componenti di una applicazione Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Un sottosistema di interfaccia con l utente (IU, user interface o anche presentation

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

Corso di Calcolo Numerico Corso di Calcolo Numerico Dott.ssa M.C. De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Sistemi di Numerazione Sistema decimale La

Dettagli

La programmazione con vincoli in breve. La programmazione con vincoli in breve

La programmazione con vincoli in breve. La programmazione con vincoli in breve Obbiettivi Introdurre la nozione di equivalenza di CSP. Dare una introduzione intuitiva dei metodi generali per la programmazione con vincoli. Introdurre il framework di base per la programmazione con

Dettagli

Problemi, Algoritmi e Programmi

Problemi, Algoritmi e Programmi MASTER Information Technology Excellence Road (I.T.E.R.) Problemi, Algoritmi e Programmi Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Introduzione

Dettagli

Istituto Tecnico Commerciale Statale "ALDO PASOLI"

Istituto Tecnico Commerciale Statale ALDO PASOLI Istituto Tecnico Commerciale Statale "ALDO PASOLI" PIANO DI LAVORO ANNO SCOLASTICO 2011/2012 PROF. Domenico Dott. Francullo I.T.P. Prof..ssa Barbara Rag. Bellini MATERIA INFORMATICA GESTIONALE CLASSE 3^

Dettagli

Tipi di Dato Ricorsivi

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

Dettagli

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

ESAME DI FONDAMENTI DI INFORMATICA T-2 del 16/7/2014 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX

ESAME DI FONDAMENTI DI INFORMATICA T-2 del 16/7/2014 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX ESAME DI FONDAMENTI DI INFORMATICA T-2 del 16/7/2014 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX NB: il candidato troverà nell archivio ZIP scaricato da Esamix anche il software Start Kit

Dettagli

IL LINGUAGGIO Visual Basic

IL LINGUAGGIO Visual Basic Caratteristiche del linguaggio VB Linguaggio basato sugli eventi IL LINGUAGGI Visual Basic I programmi non sono procedurali, poiche non seguono una sequenza operativa. gni programma si basa infatti su

Dettagli

Appunti di Informatica 1. Gianluca Rossi

Appunti di Informatica 1. Gianluca Rossi Appunti di Informatica 1 Gianluca Rossi Versione maggio 2011 Indice 1 Algoritmi, macchine e linguaggi di programmazione 3 1.1 La macchina di Von Neumann........................ 5 1.2 Dal linguaggio macchina

Dettagli

Codifica: dal diagramma a blocchi al linguaggio C++

Codifica: dal diagramma a blocchi al linguaggio C++ Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU

Dettagli

Metodologie Informatiche Applicate al Turismo

Metodologie Informatiche Applicate al Turismo Metodologie Informatiche Applicate al Turismo 2. Cenni su Architetture degli Elaboratori e Programmazione Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo

Dettagli

Algoritmi Genetici. e programmazione genetica

Algoritmi Genetici. e programmazione genetica Algoritmi Genetici e programmazione genetica Algoritmi Genetici Algoritmi motivati dall analogia con l evoluzione biologica Lamarck: le specie trasmutano nel tempo Darwin e Wallace: variazioni consistenti

Dettagli

Il modello Entity-Relationship per il progetto delle basi di dati

Il modello Entity-Relationship per il progetto delle basi di dati 1 Il modello Entity-Relationship per il progetto delle basi di dati Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Le metodologie di progettazione delle Basi di Dati 2 Una metodologia

Dettagli

Permutazione degli elementi di una lista

Permutazione degli elementi di una lista Permutazione degli elementi di una lista Luca Padovani padovani@sti.uniurb.it Sommario Prendiamo spunto da un esercizio non banale per fare alcune riflessioni su un approccio strutturato alla risoluzione

Dettagli

ALGEBRA E LOGICA (v1.5)

ALGEBRA E LOGICA (v1.5) ALGEBRA E LOGICA (v1.5) Iniettività e suriettività: Per dimostrare che una funzione è iniettiva basta provare che se a1 = a2 => f(a1) = f(a2) per ogni valore di a (la cardinalità del codominio è maggiore

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il concetto di Algoritmo e di Calcolatore Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Cos

Dettagli

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

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005. Lezione 11

Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005. Lezione 11 Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005 Docente: Ugo Vaccaro Lezione 11 In questa lezione vedremo alcune applicazioni della tecnica greedy al progetto di algoritmi on-line. Vediamo

Dettagli

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Università Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Semantica operazionale dei linguaggi di Programmazione

Semantica operazionale dei linguaggi di Programmazione Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.

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

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo INPUT: dati iniziali INPUT: x,y,z AZIONI esempio: Somma x ed y

Dettagli

F O G L I O E L E T T R O N I C O

F O G L I O E L E T T R O N I C O Università degli Studi di Foggia Facoltà di Economia Corso di ELABORAZIONE AUTOMATICA DEI DATI PER LE DECISIONI ECONOMICHE E FINANZIARIE Classe XVII a.a. 2003/2004 Prof. Crescenzio Gallo F O G L I O E

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

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. www.dia.unisa.it/dottorandi/murano. Il linguaggio C II

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. www.dia.unisa.it/dottorandi/murano. Il linguaggio C II Laboratorio di Algoritmi e Strutture Dati Aniello Murano www.dia.unisa.it/dottorandi/murano 1 Il linguaggio C II 2 1 Indice (seconda parte) Funzioni Array Puntatori Preprocessore Storage Class Ricorsione

Dettagli

Il modello relazionale

Il modello relazionale Il modello relazionale Il modello relazionale è stato introdotto nel 1970 da E.F. Codd. Soltanto a metà degli anni ottanta ha trovato una buona diffusione sul mercato, in quanto all epoca della sua introduzione

Dettagli

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Dispensa 3. 1.1 YACC: generalità

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

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Strategie per la progettazione di algoritmi: memoizzazione e programmazione dinamica Numeri di Fibonacci Coefficienti

Dettagli