Corso di Informatica Modulo T3 2 Ambiente locale e globale
|
|
- Alberta Coppola
- 5 anni fa
- Visualizzazioni
Transcript
1 Corso di Informatica Modulo T3 2 Ambiente locale e globale 1 Prerequisiti Struttura elementare della memoria Area dati e area programma Programmazione elementare 2 1
2 Introduzione Lo scopo di questa Unità è capire come può avvenire l esecuzione di una funzione. Cosa succede quando avviene l istanza di una funzione? Si può usare una funzione per cambiare il valore di certe variabili? Diamo una risposta a questi quesiti. 3 Compiti e sottocompiti Quando avviene l istanza di una funzione, accadono alcuni eventi che vogliamo studiare e che somigliano molto a ciò che accade quando, mentre stiamo svolgendo un compito, ce ne viene chiesto un altro più urgente: sospendiamo il compito principale memorizziamo a che punto siamo arrivati cambiamo il contesto di lavoro eseguiamo il compito sopraggiunto ritorniamo al lavoro sospeso 4 2
3 L esecuzione di funzioni Quando viene istanziata una funzione, si svolge una serie di azioni analoghe. Per capire questo meccanismo, dobbiamo ricordare come un programma viene memorizzato nella RAM. Al momento dell istanza di una funzione nel programma chiamante, si ha la seguente serie di azioni: sospensione del programma in corso salvataggio dello stato del programma chiamante passaggio dei parametri dal programma alla funzione esecuzione della funzione ripristino del programma chiamante 5 L esecuzione di funzioni sospensione: il programma chiamante (di solito il main()) viene sospeso in modo temporaneo. salvataggio: viene salvato il contesto del programma chiamante (vengono salvati i valori dei registri e l indirizzo del punto di ritorno) passaggio dei parametri: l esecutore assegna ai parametri formali i valori dei parametri attuali presenti nell istanza della funzione esecuzione della funzione: l esecutore esegue le istruzioni contenute nella funzione, restituendo (se la funzione lo prevede) il valore di ritorno al programma chiamante. ripristino: l esecutore restituisce il controllo al programma chiamante, che riprende l esecuzione dal punto successivo a quello in cui è stato interrotto. 6 3
4 L esecuzione di funzioni RAM I1 I2 F(a,b) I3 I4 F(x,y) istruzioni Ritorno (1) (2) L esecuzione del programma viene sospesa all istruzione F(a,b) (1). Avviene il salvataggio dell indirizzo dell istruzione I3 () successiva (punto di ritorno) in una struttura apposita di sistema detta pila di attivazione. I valori di a e b vengono copiati in x ed y pila di attivazione. 7 L esecuzione di funzioni RAM I1 I2 F(a,b) I3 I4 F(x,y) istruzioni Ritorno (1) (2) Questa struttura è caratterizzata dal fatto che, analogamente ad una pila di piatti, è possibile aggiungere o togliere elementi soltanto dalla cima. In tal modo, quando una funzione ne chiama altre, gli indirizzi vengono estratti in ordine inverso a quello di immissione, così da riprendere l esecuzione dei lavori in sequenza corretta. pila di attivazione. 8 4
5 L esecuzione di funzioni RAM I1 I2 F(a,b) I3 I4 F(x,y) istruzioni Ritorno (1) (2) Dopo il salvataggio viene eseguita la funzione F(x,y) con i valori attuali (2) pila di attivazione. 9 (4) L esecuzione di funzioni (3) I1 I2 F(a,b) I3 I4 RAM F(x,y) istruzioni Ritorno (1) (2) Al termine della esecuzione (3) della funzione con il Ritorno, viene ripristinato lo stato del programma interrotto, memorizzato nella pila di attivazione, e ripresa (4) la sua esecuzione. pila di attivazione. 10 5
6 Cambiare i valori dei parametri Al momento dell istanza, l esecutore fa una copia dei parametri attuali ed opera su queste, non sulle variabili originali. Quindi la funzione NON è in grado di restituire in uscita i valori dei parametri modificati, avendo lavorato sulle loro copie. PROBLEMA: Come può la funzione restituire in uscita i valori dei parametri modificati? Sappiamo che al massimo può restituire un solo valore che mediante l istruzione Ritorno() viene comunicato al programma principale. Vediamo come un sottoprogramma possa restituire i valori modificati al programma chiamante. 11 Ambiente locale e globale Il programma chiamante e i sottoprogrammi operano ciascuno in una zona distinta della memoria che chiamiamo ambiente. L area dati di un programma si distingue in ambiente locale di ciascuna funzione (l insieme delle variabili accessibili alla funzione) e ambiente globale (quello accessibile a tutte le funzioni). Ambiente globale Ambiente locale sottoprogramma 1 Ambiente locale sottoprogramma
7 Visibilità locale delle variabili Le variabili dichiarate all interno di una funzione: prendono il nome di variabili locali sono allocate al momento dell istanza della funzione in un estensione dell area dati detta stack e vengono deallocate alla fine della funzione; NON sono visibili nelle funzioni esterne ad essa (sono private) possono avere lo stesso nome di variabili globali (ma, quando il controllo torna al programma chiamante, riprendono automaticamente il loro valore originario Poiché il programma principale è esso stesso una funzione, le variabili dichiarate nel suo interno sono variabili locali ad esso. Lo stack funziona secondo la tecnica LIFO (Last In First Out), per cui le variabili vengono allocate man mano che si istanziano le funzioni e vengono deallocate in ordine inverso. 13 Visibilità locale delle variabili Esempio Intero minimo() Inizio Intero m;. Se (a<b) m=a; Altrimenti m=b; Ritorna(m); Fine. La funzione minimo() calcola il minimo che è posto nella variabile locale Intero m che viene allocata nello stack all inizio della funzione e deallocata alla fine L istruzione Ritorna(m) comunica al programma principale il valore m, ponendolo nel nome della funzione (minimo). 14 7
8 Visibilità globale delle variabili Quando si vuole che una variabile abbia visibilità in tutto il programma, occorre definire la variabile all esterno di tutte le funzioni. In tal caso la variabile si dice variabile globale e sarà visibile ed utilizzabile da tutte le funzioni (è una variabile pubblica). Se una di esse modifica il valore di una variabile globale, il cambiamento sarà osservabile in tutte le altre funzioni. In alcuni casi questo fatto NON è desiderabile per cui in genere occorre preferire l uso di variabili locali. 15 Visibilità globale delle variabili Intero a, b; Algoritmo P Inizio Intero u, v;.. Fine. Intero f (Intero x) Inizio Intero m, n, u;.. Ritorna m; Fine; Nell esempio, la funzione f () può modificare le variabili globali a e b e le sue variabili locali m, n e u, ma non u e v (locali a P) Il programma P può modificare le variabili a e b e le variabili u e v, ma non le variabili m ed n (che sono locali ad f ()) La funzione f () può modificare la sua variabile locale u, poiché è la variabile visibile al momento, ma, all interno del programma P, la variabile u torna ad assumere il valore che aveva inizialmente 16 8
9 Visibilità globale delle variabili Quindi un primo modo per risolvere il PROBLEMA è usare le variabili globali: in questo caso una funzione può restituire più di un valore (modificato) ma presenta due svantaggi: obbliga alla dichiarazione di variabili globali, con conseguente spreco di spazio di memoria (sono variabili che occupano memoria per tutto il tempo di esecuzione del programma) impedisce la privatezza consentita invece dall uso di variabili locali Vediamo un altro modo per risolvere il PROBLEMA in cui una funzione debba modificare un suo parametro e restituirlo modificato al programma chiamante 17 Passaggio per indirizzo Come sappiamo, quando si passa un parametro ad una funzione, essa ne crea una copia ed elabora su questa. Questa tecnica prende il nome di passaggio del parametro per valore. Un altro interessante modo per risolvere il problema della modifica del valore da parte di una funzione è chiamato passaggio del parametro per indirizzo (detto anche passaggio per riferimento). Ciò può essere ottenuto passando alla funzione non la variabile, ma il suo indirizzo. In tal modo, al ritorno al programma chiamante, l indirizzo della variabile resterebbe il medesimo, ma ovviamente il suo contenuto risulterebbe modificato. 18 9
10 Passaggio per indirizzo Per indicare che passiamo l indirizzo del parametro e non il contenuto del parametro, utilizziamo la parola Ref (che ricorda la parola Riferimento) Ad esempio, lo scambio del valore di due variabili sarebbe: void Scambio (Ref Intero x, Ref Intero y) Inizio Intero temp; temp = x; x = y; y = temp Fine; x ed y rappresentano non il contenuto delle variabili, ma i rispettivi indirizzi L indirizzo delle due variabili resta lo stesso sia all interno che all esterno della funzione. Le modifiche che essa apporta, saranno effettuate non tramite il nome (contenuto) delle variabili ma attraverso i loro indirizzi. 19 Passaggio per indirizzo Algoritmo main() Inizio Intero a,b; Leggi(a); Leggi(b); Scambio(a,b); Stampa(a); Stampa(b); Fine. Nell istanza della funzione si inviano le variabili (i loro nomi). La funzione tramite la parola chiave Ref ne prende i rispettivi indirizzi e realizza lo scambio del contenuto di quegli indirizzi
11 Input e Output di funzioni Quindi, riassumendo: passaggio per valore: il parametro consente l input per la funzione; l output potrà essere il valore della funzione (se non è void) passaggio per indirizzo: il parametro consente sia l input che l output. Si usa quando la funzione in genere deve restituire più valori in uscita, oppure quando si vuole modificare il valore di un parametro formale e mantenere questa modifica anche nel programma chiamante. 21 Struttura di un sottoprogramma In generale un sottoprogramma ha il seguente aspetto: tipo ident (lista parametri) Inizio dichiarazione variabili locali istruzioni; Ritorna (espressione); Fine; tipo è il tipo di dato calcolato dalla funzione ident e restituito al programma principale tramite Ritorna (espressione) Se la funzione non restituisce alcun valore si pone void Indica la lista dei parametri formali Contiene la dichiarazione delle variabili locali della funzione (non hanno nessun riferimento nelle funzioni esterne) 22 11
12 Struttura di un sottoprogramma In generale un sottoprogramma ha il seguente aspetto: tipo ident (lista parametri) Inizio dichiarazione variabili locali istruzioni; Ritorna (espressione); Fine; La parola Fine va fatta seguire dal ; per indicare il termine della funzione ma non del programma principale. Contiene il blocco di istruzioni interne alla funzione. Ritorna (espressione) serve a comunicare al programma principale il risultato del calcolo effettuato dalla funzione. È assente nel caso di funzione void. 23 Utilità dei sottoprogrammi L uso dei sottoprogrammi consente di: semplificare l analisi del problema, dando una visione sintetica ma completa del problema principale semplificare la fase di realizzazione (sviluppo, compilazione, esecuzione e manutenzione) riutilizzare i sottoprogrammi in altri programmi 24 12
13 Sottoprogrammi predefiniti In tutti i linguaggi di programmazione, vengono forniti numerosi insiemi di funzioni già pronte per l utilizzo da parte del programmatore. Queste funzioni si dicono built-in, nel senso che sono a corredo del compilatore del linguaggio. Le funzioni predefinite sono raggruppate in insiemi detti librerie di sottoprogrammi. Si possono ad esempio avere librerie di tipo: matematico (elaborazioni matematiche, trigonometriche, ecc) stringa (elaborazione di stringhe) carattere (elaborazione su caratteri) 25 Argomenti Compiti e sottocompiti L esecuzione di funzioni Cambiare i valori dei parametri Ambiente locale e globale Visibilità locale delle variabili Visibilità globale delle variabili Passaggio per indirizzo Input e Output di funzioni Struttura di un sottoprogramma Utilità dei sottoprogrammi Sottoprogrammi predefiniti 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 sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni
DettagliCorso di Informatica
Corso di Informatica Modulo T -Struttura vettore 0/08/0 Prerequisiti Programmazione elementare Passaggio parametri per indirizzo 0/08/0 Introduzione I dati di tipo semplice (Intero, Reale, Carattere, Booleano)
DettagliCorso di Informatica
Corso di Informatica Modulo T3 3 Ricorsione Prerequisiti Programmazione elementare Tecnica top-down Struttura e funzionamento dei sottoprogrammi Pila di attivazione Metodo di Euclide per il calcolo del
DettagliCorso di Informatica
Corso di Informatica Modulo T2 1 Costanti, variabili ed espressioni 1 Prerequisiti Concetto matematico di variabile, costante ed espressione Valutazione di espressioni Sintassi e regole di precedenza nelle
DettagliLinguaggio C: le funzioni. Visibilità variabili e passaggio parametri
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
DettagliOttenere una modifica del parametro attuale
Ottenere una modifica del parametro attuale Le variabili passate come parametri a una funzione, se alterate durante l esecuzione, non cambiano valore all uscita dalla funzione (parametri passati per valore)
DettagliArchitetture dei Calcolatori
Architetture dei Calcolatori Lezione 8 -- 01/12/2011 Procedure Emiliano Casalicchio emiliano.casalicchio@uniroma2.it Create da: F. Lo Presti Modificate da: E.Casalicchio Le procedure q In ogni linguaggio
DettagliLinguaggio C: le funzioni. Introduzione e sintassi
ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni
DettagliFUNZIONI: IL MODELLO A RUN-TIME!
FUNZIONI: IL MODELLO A RUN-TIME! Ogni volta che viene invocata una funzione si crea di una nuova attivazione (istanza) del servitore viene allocata la memoria per i parametri e per le variabili locali
DettagliFUNZIONI: IL MODELLO A RUN-TIME
FUNZIONI: IL MODELLO A RUN-TIME Ogni volta che viene invocata una funzione si crea di una nuova attivazione (istanza) del servitore viene allocata la memoria per i parametri e per le variabili locali si
Dettagli7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
DettagliScope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano
Scope delle variabili e passaggio parametri Danilo Ardagna Politecnico di Milano 1-4-2014 Introduzione! Con le funzioni è stato introdotto un meccanismo per definire dei piccoli programmi all interno di
DettagliCorso di Informatica Modulo T1 1-Il concetto di algoritmo
Corso di Informatica Modulo T1 1-Il concetto di algoritmo 1 Prerequisiti Differenza tra esecutore e risolutore Problema e procedimento risolutivo Linguaggio naturale Repertorio di un esecutore Fasi di
DettagliLinguaggio C: le funzioni. Introduzione e sintassi
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Introduzione e sintassi La presente dispensa
DettagliAssembly (3): le procedure
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 13 1/23 Chiamata
DettagliCorso di Informatica
Corso di Informatica Modulo T5 1-Struttura Record 1 Prerequisiti Programmazione elementare Concetto di prodotto cartesiano Dati strutturati 2 1 Introduzione Lo scopo di questa Unità è introdurre il concetto
DettagliLe procedure. L insieme delle istruzioni (4) Prima della chiamata di una procedura. Le procedure (2) Architetture dei Calcolatori (lettere A-I)
Le procedure L insieme delle istruzioni (4) Architetture dei Calcolatori (lettere A-I) In ogni linguaggio di programmazione si struttura il proprio codice usando procedure (funzioni, metodi, ) L utilizzo
DettagliDefinizione di classi. Walter Didimo
Definizione di classi Walter Didimo Definizione di classi Fino ad ora abbiamo imparato a: creare oggetti da classi già pronte usare gli oggetti creati, invocando metodi la creazione e l uso di oggetti
Dettagli8. Modalità di passaggio dei parametri
8. Modalità di passaggio dei parametri Quando parliamo di procedure nel linguaggio di progetto, facciamo riferimento ai parametri di input, di output e di input/output; come sappiamo, un parametro è di
DettagliCorso di Informatica
Corso di Informatica Modulo T4 A1 Allocazione dinamica 1 Prerequisiti Programmazione elementare Programmazione ad oggetti Dati semplici e strutturati 2 1 Introduzione In molti problemi capita di non conoscere
DettagliRecord di Attivazione
Record di Attivazione La macchina virtuale Record di attivazione di funzioni e procedure Record di attivazione 1 LA MACCHINA VIRTUALE DEL C MODELLO A TEMPO DI ESECUZIONE Aree di memoria: Area del codice
DettagliProgrammazione II. Lezione 9. Daniele Sgandurra 16/11/2010.
Programmazione II Lezione 9 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 16/11/2010 1/31 Programmazione II Lezione 9 16/11/2010 Sommario 1 Gestione della Memoria 2/31 Programmazione II Lezione 9 16/11/2010
Dettagli20. Gestione della memoria. Andrea Marongiu Paolo Valente
20. Gestione della memoria Andrea Marongiu (andrea.marongiu@unimore.it) Paolo Valente Classi di memorizzazione Stiamo per vedere la classificazione di un oggetto in funzione del suo tempo di vita In particolare,
DettagliFUNZIONI. attribuire un nome ad un insieme di istruzioni parametrizzare l esecuzione del codice
Funzioni FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvono parti specifiche di un problema Una funzione permette di attribuire un nome ad un insieme di istruzioni
DettagliPROGRAMMAZIONE: I sottoprogrammi
PROGRAMMAZIONE: I sottoprogrammi Prof. Enrico Terrone A. S: 2008/09 Definizione Un sottoprogramma è un blocco di istruzioni a sé stante con un proprio nome. Il main (= sottoprogramma principale) è un caso
DettagliAssembly (3): le procedure
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano (Patterson-Hennessy:
DettagliAssembly IV Le procedure
rchitettura degli Elaboratori e delle Reti Lezione 14 ssembly IV Le procedure Proff.. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano (Patterson-Hennessy:
Dettaglipassaggio di vettori come parametri di funzioni/procedure. I Quando si passa un vettore come parametro ad una funzione, in
I Parametri di tipo vettore I Il meccanismo del passaggio per valore di un indirizzo consente il passaggio di vettori come parametri di funzioni/procedure. I Quando si passa un vettore come parametro ad
Dettagli15 April LABORATORIO 04 PROCEDURE STACK. CHIAMATA A PROCEDURE I. Frosio
15 April 2011 05 LABORATORIO 04 PROCEDURE STACK CHIAMATA A PROCEDURE I. Frosio 1 SOMMARIO Procedure Stack Chiamata a procedure 2 PERCHÈ LE PROCEDURE? 15 April 2011 Main Proc3 Proc2 Proc1 Programmazione
DettagliParametri Formali di una Funzione e Record di Attivazione
Parametri Formali di una Funzione e Attivazione Un record di attivazione rappresenta il mondo di una funzione, e contiene tutto ciò che ne caratterizza l esistenza, tra cui ad esempio: le variabili locali
Dettagliint main(){ int numero; /* numero di cui voglio calcolare il fattoriale */ int fatt; /* memorizzo il fattoriale di numero */ int somma=0;
Problema: CALCOLARE LA SOMMA DEI FATTORIALI DEI PRIMI 100 NUMERI NATURALI 0!+1!+2! + 99! #include int fattoriale(int); Calcolo fattoriale int main(){ int numero; /* numero di cui voglio calcolare
DettagliCorso di Informatica Modulo T1 C1-Sequenza e selezione
Corso di Informatica Modulo T C-Sequenza e selezione Prerequisiti Analizzare un problema Scrivere un algoritmo Istruzioni semplici Espressione logica 2 Introduzione La programmazione a salti crea diverse
DettagliLe classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:
Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata
DettagliStrutturare il codice: sottoprogrammi
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Motivazioni Alcuni problemi si presentano frequentemente durante lo sviluppo di un programma
DettagliGestione della memoria in Java. Emilio Di Giacomo e Walter Didimo
Gestione della memoria in Java Emilio Di Giacomo e Walter Didimo Gestione della memoria In questa lezione descriveremo un modello runtime (cioè a tempo di esecuzione) di gestione della memoria in Java
DettagliLa Gestione della Memoria. Carla Binucci e Walter Didimo
La Gestione della Memoria Carla Binucci e Walter Didimo Esecuzione di programmi Java L esecuzione di un programma Java richiede: la compilazione del codice Java in bytecode Java (un linguaggio macchina
DettagliOperativamente, risolvere un problema con un approccio ricorsivo comporta
! Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa!! La ricorsione consiste nella possibilità di definire una funzione in termini di se
DettagliGestione della memoria
Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto
DettagliCorso di Informatica
Corso di Informatica Modulo T1 B1 Il concetto di classe 1 Prerequisiti Programmazione elementare Conoscenza dell uso delle funzioni Utilizzo della UML 2 1 Introduzione Gli oggetti reali sono una infinità
DettagliLo scopo. Il primo esperimento. Soluzione informale. Le variabili
Lo scopo 2 Il primo esperimento Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video Ver. 2.4
DettagliCorso di Informatica
Corso di Informatica Modulo T1 2-Proprietà degli algoritmi 1 Prerequisiti Conoscere il concetto di M.C.D. tra due numeri interi Concetto intuitivo di funzione matematica 2 1 Introduzione Sappiamo scrivere
DettagliFondamenti di Informatica T. Linguaggio C: Stack e Ricorsione
Linguaggio C: Stack e Ricorsione FUNZIONI: IL MODELLO A RUN-TIME Ogni volta che viene invocata una funzione: si crea di una nuova attivazione (istanza) del servitore viene allocata la memoria per i parametri
DettagliProgrammazione II. Lezione 7. Daniele Sgandurra 9/11/2010.
Programmazione II Lezione 7 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 9/11/2010 1/24 Programmazione II Lezione 7 9/11/2010 Sommario 1 Gestione della Memoria 2/24 Programmazione II Lezione 7 9/11/2010
DettagliFUNZIONI. Esempi (pseudo-c): dare un nome a una espressione rendere tale espressione parametrica. float f(){ * sin(0.75); } float f1(int x) {
Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione
DettagliLa formalizzazione dell informazione: Dati e Diagrammi di Flusso
La formalizzazione dell informazione: Dati e Diagrammi di Flusso Codifica degli algoritmi Algoritmo formulato per essere comunicato tra esseri umani chiaro, sintetico e intuitivo codificato in linguaggi
DettagliConcetto 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
DettagliFunzioni. (Passaggio dei parametri per riferimento) Passaggio dei parametri
Funzioni (Passaggio dei parametri per riferimento) Passaggio dei parametri Per passaggio dei parametri si intende l associazione fra parametri attuali e parametri formali che avviene al momento della chiamata
DettagliStrutture dati nel supporto a run time
Strutture dati nel supporto a run time 1 Entità presenti quando un programma va in esecuzione programmi d utente (compilati) routines del supporto interprete I/O, librerie, routines per la gestione delle
DettagliFunzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)
Funzioni Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Strategie di programmazione Riuso di
DettagliCorso di PHP. Prerequisiti. 5 Funzioni
Corso di PHP 5 Funzioni 1 Prerequisiti Programmazione elementare in Php Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni Uso di parametri 2 1 Introduzione
DettagliStack e nidificazione dei sottoprogrammi Cos è un sottoprogramma? La chiamata di un sottoprogramma... 6
Stack e nidificazione dei sottoprogrammi... 2 Cos è un sottoprogramma?... 2 La chiamata di un sottoprogramma... 6 Lo stack... 9 Il nesting dei sottoprogrammi.... 12 Lo stack pointer... 17 Stack e nidificazione
DettagliConvenzioni di chiamata a procedure
Università degli Studi di Milano Laboratorio di Architettura degli Elaboratori II Corso di Laurea in Informatica, A.A. 2016-2017 Convenzioni di chiamata a procedure Nicola Basilico Dipartimento di Informatica
DettagliArgomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili
Linguaggio C Argomenti Avanzati! I puntatori! Stack! Visibilità delle Variabili 2 ! Il C consente di associare ai tipi di dati nomi definiti dal programmatore, mediante la parola chiave typedef! Dal punto
DettagliLe Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia
Le Funzioni in C Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2010/2011 docente: prof. Michele Salvemini 1/24 Sommario Le funzioni Il
DettagliLABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica. Algoritmi ricorsivi
LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna Partiamo da un
DettagliPassaggio dei parametri
Passaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sull environment
DettagliIntroduzione ai puntatori
Introduzione ai puntatori Algoritmicamente November 19, 2009 http://algoritmicamente.wordpress.com/ 1 Concetti fondamentali Nei linguaggi quali C, C++, il concetto e l'uso dei puntatori è estremamente
DettagliFUNZIONI FUNZIONI COME COMPONENTI SW
FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione
DettagliSpazio di indirizzamento virtuale
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 016-01 Spazio di indirizzamento virtuale Pietro Di Lena - pietro.dilena@unibo.it // The function name says it all int stack_overflow (){
DettagliProgrammazione (imperativa)
Programmazione (imperativa) Corso di Laurea in Informatica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Lunedì 12.00-13.00 e 14.00-16.00 Mercoledì 14.00-17.00 Laboratorio: Giovedì 12.00-13.00
DettagliPag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi
1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni La formalizzazione
DettagliIl linguaggio C. Istruzioni, funzioni, dati strutturati
Il linguaggio C Istruzioni, funzioni, dati strutturati Istruzioni Servono a dirigere il flusso di esecuzione di un programma controllano l ordine di esecuzione delle espressioni, quindi dei loro side effects
DettagliProcedure e funzioni A. Ferrari
Procedure e funzioni A. Ferrari Procedura Una procedura può essere rappresentata come una macchina in grado di eseguire un certo compito quando attivata. In un primo tempo la macchina deve essere costruita:
DettagliCalcolatori Elettronici Lezione A4 Programmazione a Moduli
Calcolatori Elettronici Lezione A4 Programmazione a Moduli Ing. Gestionale e delle Telecomunicazioni A.A. 2007/08 Gabriele Cecchetti Sommario Programmazione a moduli Programmi con linguaggi misti Tempo
DettagliIntroduzione al C. Unità 5 Funzioni
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 5 Funzioni D. Bloisi, A. Pennisi, S. Peluso, S. Salza Sommario Unità 5 Definizione
DettagliSotto programmi - Funzioni in C
Sotto programmi - Funzioni in C R. Gallo Settembre 2009 Sommario Le funzioni C/C++ sono l'implementazione in codice C/C++ di uno strumento presente in tutti i linguaggi di programmazione: i sottoprogrammi
DettagliTempo di vita e scope delle variabili
Tempo di vita e scope delle variabili Richiami sulla struttura di un programma C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume tutto in un unico file):
Dettaglicout << "Inserisci un numero:" << endl; cin >> n; ris = n*2; cout << "Il doppio di " << n << " e " << ris << endl;
Funzioni int n, ris; cout n; ris = n*2; cout
DettagliStrategie di programmazione
Funzioni Funzioni in C Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Funzioni in C Strategie
DettagliScope, Memoria e Tabella dei Simboli
Scope, Memoria e Tabella dei Simboli La tabella dei simboli è uno strumento fondamentale attraverso il quale interpreti e compilatori implementano la traduzione da un programma scritto in un linguaggio
DettagliAlgoritmi e Programmazione Avanzata. Pile e code. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino
Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Sommario ADT Pile Code. A.A. 2001/2002 APA - 2 1 Sommario ADT Pile Code. A.A. 2001/2002 APA - 3 ADT Le regole che
DettagliGestione dei sottoprogrammi. temporaneo passaggio del controllo dal programma in esecuzione ad un sottoprogramma
Gestione dei sottoprogrammi temporaneo passaggio del controllo dal programma in esecuzione ad un sottoprogramma programma CALL sottoprogramma RETURN Subroutine linkage CALL: viene salvato l indirizzo di
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliPile e code. Sommario. Algoritmi e Programmazione Avanzata. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino
Pile e code Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Sommario ADT Pile Code. A.A. 2002/2003 APA - Pile e code 2 Politecnico di Torino Pagina 1 di 23 Sommario
DettagliRecord di Attivazione Cenni sulla ricorsione
MASTER Information Technology Excellence Road (I.T.E.R.) Cenni sulla ricorsione Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il modello a RUN-TIME
DettagliLinguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. 1 Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa a valori delle variabili
DettagliCorso di Informatica
Corso di Informatica Modulo -Rappresentazione dei numeri relativi Prerequisiti rev Aritmetica dei numeri relativi Introduzione rev Passiamo ora allo studio della rappresentazione dei numeri interi relativi,
DettagliFUNZIONI COME COMPONENTI SW FUNZIONI COME COMPONENTI SW FUNZIONI MODELLO CLIENTE/SERVITORE
FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione
DettagliCorso di Informatica
Corso di Informatica Modulo T2 2 I tipi di dato Prerequisiti Concetto di relazione e funzione Concetto di insieme numerico Operatori aritmetici Operatori relazionali 2 Introduzione Abbiamo visto che un
DettagliPerché il linguaggio C?
Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare
DettagliSubroutine in linguaggio macchina: collegamento e passaggio dei parametri. Sottoprogrammi: richiami
Corso di Calcolatori Elettronici I Subroutine in linguaggio macchina: collegamento e passaggio dei parametri Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso
DettagliSubroutine in linguaggio macchina: collegamento e passaggio dei parametri
Corso di Calcolatori Elettronici I Subroutine in linguaggio macchina: collegamento e passaggio dei parametri Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso
DettagliLinguaggio C: Funzioni Valeria Cardellini
Linguaggio C: Funzioni Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Funzioni in
DettagliA.A. 2018/2019. Fondamenti di Programmazione in MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante
A.A. 2018/2019 Fondamenti di Programmazione in MATLAB Strutturazione del Codice Sorgente Docente Prof. Raffaele Pizzolante FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE Fondamenti di Programmazione in MATLAB:
DettagliPassaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei paramet
Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sull environment esterno Per riferimento
DettagliIl linguaggio C Funzioni e procedure
Il linguaggio C Funzioni e procedure modello cliente-servitore risultato Ambiente condiviso cliente servitore richiesta di servizio Sottoprogrammi Spesso può essere utile avere la possibilità di costruire
DettagliUniversità degli Studi di Cassino
Corso di Gestione dei sottoprogrammi Anno Accademico 2007/2008 Francesco Tortorella Gestione dei sottoprogrammi temporaneo passaggio del controllo dal programma in esecuzione ad un sottoprogramma programma
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Funzioni e Procedure. Marco D. Santambrogio Ver. aggiornata al 11 Marzo 2014
Funzioni e Procedure Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 11 Marzo 2014 Obiettivi Funzioni Scope delle variabili 2 La calcolatrice! Problema Si scriva un programma in C
DettagliAllocazione Dinamica della Memoria
Allocazione Dinamica della Memoria Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Allocazione Dinamica della Memoria 1 / 10 Scelta delle variabili Quando
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
DettagliUniversità degli Studi di Cassino e del Lazio Meridionale
di Cassino e del Lazio Meridionale Corso di Gestione dei sottoprogrammi Anno Accademico Francesco Tortorella Gestione dei sottoprogrammi temporaneo passaggio del controllo dal programma in esecuzione ad
DettagliLa ricorsione. Ver Claudio Fornaro - Corso di programmazione in C
La ricorsione Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C 2 Divide et impera Metodo di approccio ai problemi che consiste nel dividere il problema dato in problemi più semplici I risultati
DettagliLa gestione della memoria. Gestione della memoria. Uso della Memoria RAM
La gestione della memoria Gestione della memoria Stack di attivazione, Heap Come il compilatore-interprete, organizza i dati necessari all esecuzione del programma. Alcuni aspetti organizzativi già visti
DettagliFondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java
Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Programma Introduzione al calcolatore e Java Linguaggio Java, basi e
Dettagli