Corso di Informatica



Похожие документы
Funzioni in C. Violetta Lonati

Corso di Informatica

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

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

Concetto di Funzione e Procedura METODI in Java

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

Lezione 8. La macchina universale

4 3 4 = 4 x x x 10 0 aaa

Corso di Informatica

Esempi di algoritmi. Lezione III

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

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Corso di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

LE FUNZIONI A DUE VARIABILI

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

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

Fasi di creazione di un programma

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

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

Descrizione di un algoritmo

La selezione binaria

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

Le Macchine di Turing

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

Introduzione. Informatica B. Daniele Loiacono

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

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

Progettaz. e sviluppo Data Base

Metodologie di programmazione in Fortran 90

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Introduzione alla programmazione in C

Soluzione dell esercizio del 2 Febbraio 2004

Analizzatore lessicale o scanner

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

24 : 3 = 8 con resto 0 26 : 4 = 6 con resto 2

SISTEMI DI NUMERAZIONE E CODICI

Lezioni di Matematica 1 - I modulo

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

Gestione del workflow

Come ragiona il computer. Problemi e algoritmi

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

Lezione 9: Cambio di base

Anno 3. Classificazione delle funzioni

Funzioni. Funzioni /2

Allocazione dinamica della memoria - riepilogo

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

FUNZIONE. Si scrive: A B f: A B x y=f(x) (si legge: f funzione da A in B) x f y= f(x)

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Prova di Laboratorio di Programmazione

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

Le funzioni reali di variabile reale

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

I PROBLEMI ALGEBRICI

Comparatori. Comparatori di uguaglianza

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

Corso di Informatica

Capitolo 2. Operazione di limite

Matematica in laboratorio

Esercizi su. Funzioni

RISOLUTORE AUTOMATICO PER SUDOKU

Nozione di algoritmo. Gabriella Trucco

Semantica Assiomatica

SOMMARIO I radicali pag I radicali aritmetici pag Moltiplicazione e divisione fra radicali aritmetici pag.

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Programmi e Oggetti Software

Algoritmi e diagrammi di flusso

Funzioni. Il modello console. Interfaccia in modalità console

Corso sul linguaggio Java

10 - Programmare con gli Array

Le variabili. Olga Scotti

IL CONCETTO DI FUNZIONE

2. GUIDA ALLA PREDISPOSIZIONE DEL DOSSIER DELLE EVIDENZE DA ESPERIENZA

Corrispondenze e funzioni

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Arduino: Programmazione

risulta (x) = 1 se x < 0.

Rappresentazione grafica di entità e attributi

Funzioni. Parte prima. Daniele Serra

INFORMATICA 1 L. Mezzalira

Reti di Telecomunicazione Lezione 8

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

AA LA RICORSIONE

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

Database. Si ringrazia Marco Bertini per le slides

Scheda di collaudo Integrazione NoTIER

Matematica generale CTF

Le L z e ione n e d i d V isu s a u l B asi s c Prof.ssa Paola Goi 1

Diagrammi di Interazione

Convertitori numerici in Excel

Esercitazione N7:Gioco dei 21 fiammiferi (impariamo java giocando)

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

Dalla progettazione concettuale alla modellazione di dominio

Registratori di Cassa

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Codifica: dal diagramma a blocchi al linguaggio C++

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

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

Транскрипт:

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

Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down 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

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

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

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

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 ( + ) = + 12 6

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

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

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

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

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

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

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

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