Funzioni. Fondamenti di Informatica, Ingegneria Elettronica, Università La Sapienza Roma. aa R. Beraldi
|
|
- Baldo Brunelli
- 4 anni fa
- Visualizzazioni
Transcript
1 Funzioni Qualunque programma C potrebbe essere realizzato senza far uso di funzioni (tranne ovviamente il main). Le funzioni cioè non aggiungono alcuna capacità di calcolo Il vantaggio delle funzioni consiste nel fatto che un programma può essere modularizzato Una funzione è cioè un modulo del programma Suddividere un programma in moduli ha i seguenti vantaggi: Agevola lo sviluppo di programmi di grosse dimensioni Leggibilità (una funzione risolve un sottoproblema) Flessibilità (si può cambiare l implementazione di una funzione senza che il resto del programma debba essere cambiato)
2 int max(int,int); parte visibile interfaccia (prototipo) parte non visibile corpo Le istruzioni del corpo sono nascoste al resto del programma. Questo assicura che in nessun modo di possa fare riferimento ad esse. Se l implementazione cambia, ma l interfaccia rimane inalterata, allora il resto del programma non deve essere cambiato (chi usa le funzioni non si accorge del cambiamento) E buona norma evitare che la funzione modifichi le variabili ad essa esterne int n=2; int f(void); main () { int x=2; x=f()+f(); /*x=8?*/ int f(){ n*=2; return n;
3 double potenza (double base, int esponente); main {... x=potenza(4,5); parametri formali parametri attuali I parametri attuali devono corrispondere ai formali in termini di: numero, tipo, posizione valgono le regole di promozione fra tipi (il valore attuale è assegnato al parametro formale corrispondente) int max(int a,b) { if a>b return a; return b; main () { int z; z=max(3,2); z=max(max(3,2),5); z=max (2*z,18)
4 intestazione blocco blocco costituisce il corpo della funzione intestazione costituisce l intestazione della funzione ed ha la seguente forma: identificatore-tipo identificatore (lista-parametri-formali) identificatore-tipo specifica il tipo del valore di ritorno, ovvero il tipo del risultato restituito alla funzione chiamante (se manca viene assunto int) identificatore specifica il nome della funzione ed un qualsiasi identificatore C valido lista-parametri-formali serve a passare informazioni dalla funzione chiamante a quella chiamata e viceversa: una lista di dichiarazioni di parametri (tipo e nome) separate da virgola ogni parametro una variabile la lista di parametri puo` essere vuota char LeggiCarattere () {... int MCD(int a, int b) {... double Potenza(double x, double y) {... void scrivi() {... Non ci deve essere un ; tra l intestazione ed il corpo. Per default il tipo di un parametro è int. double Potenza(double a, b) {... equivale a double Potenza(double a, int b) {... e non a double Potenza(double a, double b) {... Non si possono definire funzioni all interno di altre funzioni. Quindi tutte le funzioni sono definite allo stesso livello.
5 tipo-di-ritorno nome-funzione (lista-parametri-formali); ; finale al posto del blocco nella lista di parametri formali Il nome dei parametri può mancare Sintassi: identificatore (lista-parametri-attuali) identificatore specifica il nome della funzione lista-parametri-attuali è una lista di espressioni separate da virgola Semantica: attivazione di B da parte della funzione A Sospendi l esecuzione di A Copia i parametri attuali in quelli formali (passaggio per valore) Esegui le istruzioni di B facendo una Riprendi l esecuzione di A dal punto in cui B era stata attivata Per poter essere attivata una funzione deve essere visibile nel punto in cui avviene la chiamata
6 sistema operativo main 1 F 2 3 G H attivazione ritorno!"" ,5 F 2,3 F G diretta indiretta
7 # I dati locali ad una funzione sono memorizzati all interno di un area di memoria gestita in modo dinamico, secondo una politica LIFO: Last In First Out. Tale area di memoria è detta stack Lo stack è composto da singoli elementi, chiamati Record Di Attivazione (RDA) Per ogni attivazione di funzione viene creato un nuovo RDA in cima alla pila. Al termine dell attivazione della funzione il RDA viene rimosso dalla pila Ogni RDA contiene (fra l altro): le locazioni di memoria per i parametri formali le locazioni di memoria per le variabili locali l indirizzo della prossima operazione da eseguire nella funzione chiamante 1. Il Sistema Operativo attiva main 2. main attiva P 3. P attiva Q RDA di R RDA di Q 4. Q attiva R RDA di P RDA del main
8 $ E il periodo in cui esiste la cella di memoria associata alla variabile, ossia la variabile permane in memoria Variabili con permanenza automatica = esistono in memoria per il tempo in cui il blocco in cui sono dichiarate è attivo Le variabili dichiarate nel corpo di una funzione sono locali alla funzione stessa ed hanno tempo di vita limitato alla durata dell attivazione Variabili con permanenza statica = esistono in memoria dall inizio dell esecuzione del programma alla fine dell esecuzione Le variabili globali hanno permanenza statica nella memoria Lo specificatore static indica che una variabile locale assume permanenza statica Es.: void f(void) { static int x;.... La variabile x viene inizializzata alla prima attivazione della funzione e conserva il suo valore tra attivazioni successive; essa è locale, quindi visibile solo all interno della funzione f % Lo scope di un nome è la porzione di programma all interno del quale tale nome può essere usato. Per un variabile automatica, dichiarata all inizio di una funzione, lo scope è la funzione stessa (variabile locale). Essa è visibile anche nei blocchi interni, a meno che non venga dichiarata una variabile con lo stesso nome I parametri di una funzione sono variabili locali Lo scope di una variabile esterna ad ogni blocco, o di una funzione, va dal punto in cui essa è dichiarata al termine del file sorgente in cui si trova (variabile globale)
9 int i = 1, j = 2, k = 3; /* variabili globali */ void Q(void) { long i = 4; char c = 'Z'; { /* blocco interno a Q */ float j = 8.5; /* sono visibili: float j, long i,char c, int k, Q */ /* sono visibili: int i, char c, int j int k, Q*/ /* Q */ int main(void) { /* sono visibili: int i, int j, Q, main*/ E conveniente: 1. dichiarare tutte le funzioni (tranne main) 2. definire il main 3. definire le funzioni dichiarate al punto 1 Esempio: double potenza(double,int);/*dichiarazione*/ int main(void) { /*corpo del main*/ x=potenza(b,e); /*attivazione funzione*/ double potenza(double base, int esponente) {/*definizione*/ /*corpo di Potenza*/ In questo modo l ordine delle dichiarazioni e definizioni è irrilevante.
10 int max (int,int); main(){ int i, j, massimo; scanf("%d%d", &i, &j); printf("massimo = %d\n,max(i,j)); return 0; ; int max(int m, int n) { if (m > n) return m; else return n; Scrivere una funzione che stampi un albero di natale di altezza H, usando un carattere generico c Esempio: $ $$$ $$$$$ $$$$$$$ H=4,c= $ H=4,c= +
11 void stampaalbero(int,char); /*prototipo*/ void stampaalbero(int H,char c) { /*definizione*/ int i,j; /*variabili locali*/ for (i=1;i<=h;i++) { for (j=1;j<=h-i;j++) printf(" "); for (j=1;j<=2*i-1;j++) printf( %c,c); printf("\n"); & assert.h ctype.h errno.h stdlib.h float.h limits.h locale.h string.h math.h setjmp.h signal.h time.h stdarg.h stdef.h stdio.h
12 ' Ogni libreria standard ha un corrispondente file header, che contiene definizioni di costanti (esempio #define N 10) definizioni di tipo (vedi dopo) Definizioni dei prototipi delle funzioni della libreria Esempi: <stdio.h> input/output <stdlib.h> allocazione della memoria, numeri casuali, utilità generali <string.h> manipolazione di stringhe <limits.h> limiti del sistema per valori interi <float.h> limiti del sistema per valori reali <math.h> funzioni matematiche Il file d intestazione (con estensione.h) può essere scritto anche per funzioni sviluppate dal programmatore. "( ) printf scanf fprintf fscanf putchar getchar output formattato su standard output input formattato da standard input output formattato su file input formattato da file scrive un carattere su standard output legge un carattere da standard input
13 "( system rand malloc passa una stringa all interprete del S.O. generazione numeri casuali allocazione memoria dinamica Esempio system( dir ); system( pause ); sqrt(x) exp(x) log(x) radice quadrata e x logaritmo naturale log10(x) logaritmo in base 10 fabs(x) valore assoluto ceil(x) floor(x) pow(x,y) fmod(x,y) arrotonda all intero più piccolo x arrotonda all intero più grande x x y resto di x=y (in virgola mobile) sin(x), cos(x), tan(x) trigonometriche (x espresso in radianti) Bisogna includere il file di header (#include <math.h>) Sia argomenti che valore di ritorno sono reali in doppia precisione, ovvero di tipo double (e non float).
14 ! E possibile avere più attivazioni di una stessa funzione f (ognuna con il suo RDA) Ciò può accadere indirettamente: f cha attiva g che attiva f; o direttamente: f che ri(attiva) se stessa In alcuni casi è conveniente usare questa caratteristica per risolvere problemi in modo elegante Esempio: fattoriale (definizione induttiva) 0!=1, e n!=n (n-1)! (se n>0) Negli schemi ricorsivi si identifica sempre un caso base (che si risolve subito) Un caso ricorsivo (che fa riferimento alla definizione, senza essere una tautologia!)! algoritmo ricorsivo per il calcolo del fattoriale if n <= 1 then return 1 else calcola il fattoriale di n-1, sia esso t return n*t long fatt(int i) { if (i<=1) return 1; else return (i*fatt(n-1));
15 Esempio 1: fattoriale ricorsivo Esempio 1:Invertire una stringa di caratteri letta da input terminata con. Esempio: Ciao. ->.oaic Esempio 3: Calcolare i primi N numeri della serie di Fibonacci, definita come: F(0)=0; F(1)=1; F(n)=F(n-1)+F(n-2) (n>1) Esercizio : Un programma che stampi la successione dei movimenti dei dischi per risolvere il problema delle torre di Hanoi long fattoriale(long n) { if (n < 0) return -1; if (n == 0) return 1; else return n * fattoriale(n-1);
16 #include <stdio.h> #include <stdlib.h> void inverti(); main () { inverti(); printf("\n");system("pause"); return 0; void inverti() { int c; if ((c=getchar())!='.') inverti(); putchar(c); Fibonacci long fibonacci(long n) { if (n==0 n==1) /*caso base*/ return n; else return fibonacci(n-1) + fibonacci(n-2);
17 f( 3 ) return f( 2 ) + f( 1 ) return f( 1 ) + f( 0 ) return 1 return 1 return 0 &* Secondo la leggenda: dei monaci stanno spostando 64 dischi; quando avranno finito, ci sarà la fine del mondo Descrizione del gioco: Tre perni: Una pila di dischi di dimensione decrescente su un perno, gli altri vuoti Si deve spostare su un altro perno tutti i dischi, usando il terzo perno come appoggio condizioni: E possibile spostare un solo disco alla volta un disco più grande non può mai stare su un disco pi piccolo Programma che stampa la sequenza di spostamenti da fare: muovi un disco dal perno x al perno y
Linguaggio 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
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,
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
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliProgrammazione ricorsiva.
In quasi tutti i linguaggi di programmazione evoluti è ammessa la possibilità di definire funzioni/procedure ricorsive: durante l esecuzione di una funzione F è possibile chiamare la funzione F stessa.
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 ricorsiva: cenni
In quasi tutti i linguaggi di programmazione evoluti è ammessa la possibilità di definire funzioni/procedure ricorsive: durante l esecuzione di una funzione F è possibile chiamare la funzione F stessa.
DettagliFunzioni. Corso di Fondamenti di Informatica. Laurea in Ingegneria Industriale
Funzioni Corso di Fondamenti di Informatica Laurea in Ingegneria Industriale Funzioni Per definire un programma complesso è necessario affrontarlo dividendolo in parti separate (dividi ed impera): modularizzazioni.
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
DettagliFunzioni. Corso di Fondamenti di Informatica
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Funzioni Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e dei
DettagliFunzioni in C. Informatica Generale - Funzioni in C Versione 1.0, aa p.1/25
Funzioni in C Informatica Generale - Funzioni in C Versione 1.0, aa 2005-2006 p.1/25 Definizione di funzione () è
DettagliLinguaggio C: le funzioni
Linguaggio C: le funzioni prof. Lorenzo Porcelli e mail: genna18@iol.it sito: http://users.iol.it/genna18 Introduzione attraverso un esempio Problema: Conoscendo le misure di n rettangoli, determinare
DettagliRicorsione: C era una volta un Re
Ricorsione: C era una volta un Re I C era una volta un Re seduto sul sofà che disse alla sua serva raccontami una storia e la serva incominciò: I C era una volta un Re seduto sul sofà che disse alla sua
DettagliCorso Programmazione
Corso Programmazione 2009-2010 (docente) E-mail: aiolli@math.unipd.it Web: www.math.unipd.it/~aiolli Dipartimento di Matematica Pura ed Applicata Torre Archimede, Via Trieste 63 PARTE 3 2 Variabili Le
DettagliGestione della memoria
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliRicorsione in C. slides credit Prof. Paolo Romano
Ricorsione in C slides credit Prof. Paolo Romano 2 Divide et impera Metodo di approccio ai problemi che consiste nel dividere il problema dato in problemi più semplici I risultati ottenuti risolvendo i
DettagliUnità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa
DettagliInput/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari
Input/Output Lettura e scrittura Caratteri e Stringhe: Terminale e file Input/output console file caratteri stringhe formattato ascii binari Linguaggio ANSI C Input/Output - 1 La libreria standard del
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
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
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
DettagliIntroduzione alla Ricorsione
Introduzione alla Corso di Informatica A Vito Perrone Indice La formulazione in termini ricorsivi di problemi e algoritmi La ricorsione come strumento di programmazione L esecuzione dei sottoprogrammi
DettagliVariabili e Funzioni. Informatica 1 / 19
Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:
DettagliIntroduzione al linguaggio C Primi programmi
Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliIn C i sottoprogrammi si realizzano attraverso le funzioni. Una funzione può essere vista come una scatola nera:
Modularizzazione Quando abbiamo a che fare con un problema complesso spesso lo suddividiamo in problemi più semplici che risolviamo separatamente, per poi combinare insieme le soluzioni dei sottoproblemi
DettagliPreprocessore, linker e libreria standard
Preprocessore, linker e libreria standard Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 IL PREPROCESSORE Programma sorgente
DettagliLezione 19 e Allocazione dinamica della memoria - Direttive al preprocessore - Libreria standard - Gestione delle stringhe
Lezione 19 e 20 - Allocazione dinamica della memoria - Direttive al preprocessore - Libreria standard - Gestione delle stringhe Valentina Ciriani (2005-2008) Laboratorio di programmazione Valentina Ciriani
DettagliFondamenti di Informatica II 3. Funzioni in C++ (parte 1)
Introduzione alle funzioni in C++ Fondamenti di Informatica II 3. Funzioni in C++ (parte 1) Corso di Laurea in Ingegneria Informatica A.A. 2008-2009 2 Semestre Corso (A-M) int main() int n, fattoriale=1;
DettagliInformatica (A-K) 12. Linguaggio C -3
Introduzione alle funzioni in C Informatica (A-K) 12. Linguaggio C -3 int main() int i,n, fattoriale=1; printf( Inserire Numero: ); scanf( %d, &n); for (i =2; i
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
DettagliIntroduzione al linguaggio C Funzioni
Introduzione al linguaggio C Funzioni Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati
DettagliEsercitazione 11. Liste semplici
Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene
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
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C Materiale disponibile sul sito http://www.fisica.unile.it/~martello/corsi/dottorato/tecnooo/tecnooo_03-04/index.html
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
DettagliLaboratorio di informatica Ingegneria meccanica
Laboratorio di informatica Ingegneria meccanica Lezione 7 19 novembre 2007 Concetto di modulo di un programma (1) Lo sviluppo di programmi complessi avviene tipicamente per composizione di moduli, ognuno
DettagliLibrerie Stringhe. Librerie e stringhe. Lezione 9. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. 2015/2016
e stringhe Lezione 9 Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2015/2016 Calendario delle lezioni Lezione 1 (7 e 9/10/2015) - Introduzione all ambiente Linux Lez. 2 (14 e 16/10/2015)
DettagliFunzioni di libreria. Richiedono tutte. #include <math.h> fabs(x) sqrt(x) pow(x,a) exp(x) log(x)
Funzioni di libreria Richiedono tutte #include x x a x fabs(x) sqrt(x) pow(x,a) x e ln(x) exp(x) log(x) log 10 ( x ) log10(x) sen(x) cos(x) tg(x) arcsen(x) arccos(x) arctg(x) senh(x) cosh(x) tgh(x)
DettagliProgrammazione ricorsiva: cenni
In quasi tutti i linguaggi di programmazione evoluti è ammessa la possibilità di definire funzioni/procedure ricorsive: durante l esecuzione di una funzione F è possibile iamare la funzione F stessa. Ciò
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
DettagliLEZIONE 1 LE BASI DEL LINGUAGGIO C
LEZIONE 1 LE BASI DEL LINGUAGGIO C Simone Marchesini Roberto Pagliarini Dipartimento di Informatica Università di Verona COS È? Il C è un linguaggio di programmazione che permette di salvare i valori in
DettagliCorso di Laboratorio di programmazione e calcolo
Corso di Laboratorio di programmazione e calcolo Docente: Stefano Finzi Vita Pagina del corso: http://www1.mat.uniroma1.it/mat_cms/pres_corso.php?corso_da_ presentare=1851&lingua=italiano oppure link da
DettagliIntroduzione alla programmazione in C(++)
Testi Testi Consigliati: Introduzione alla programmazione in C(++) A. Kelley & I. Pohl C didattica e programmazione A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. D. M. M. Ritchie
DettagliLe librerie standard. ! La libreria standard del C è in realtà un insieme di librerie
! La libreria standard del C è in realtà un insieme di librerie! Per usare una libreria, non occorre inse -rirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle! Ogni file sorgente
DettagliPrimi programmi in C
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Uso del compilatore gcc Struttura di un programma
DettagliSESTA ESPERIENZA DI LABORATORIO. Programmazione con le funzioni
CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2018-2019 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma SESTA ESPERIENZA DI LABORATORIO Programmazione con le funzioni
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. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliCorso sul linguaggio C
Corso sul linguaggio C Modulo 1 1.1 Istruzioni semplici 1 Prerequisiti Saper progettare algoritmi Saper descrivere algoritmi (NLS, ddf) Conoscere il concetto di espressione 2 1 Introduzione In questa lezione
DettagliFondamenti di Informatica
Storia del linguaggio C Fondamenti di Informatica 7. Linguaggio C - Introduzione Corso di Laurea in Ingegneria Informatica e dell Automazione A.A. 2012-2013 2 Semestre Prof. Giovanni Pascoschi Linguaggio
DettagliLIBRERIE STANDARD in C. LIBRERIE STANDARD in C
LIBRERIE STANDARD in C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria, non occorre inserirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle
DettagliIntroduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008
DettagliC: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
Dettagli#include <stdio.h> main() { - 1 -
Un primo esempio di programma Ogni programma C deve contenere una funzione speciale chiamata main che indica il punto in cui inizia l esecuzione del programma. La funzione main è unica all interno di ogni
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
Dettaglin n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita
Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita n! = 1 n( n 1)! se se n n = > 0 0 dove n è un numero intero non negativo Il calcolo del fattoriale
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
Dettagli#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliCorso 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
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
DettagliEsercitazione 5. Procedure e Funzioni Il comando condizionale: switch
Esercitazione 5 Procedure e Funzioni Il comando condizionale: switch Comando: switch-case switch (espressione) { /* espressione deve essere case costante1: istruzione1 di tipo int o char */ [break]; case
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using
DettagliLIBRERIE STANDARD in C Le librerie standard
LIBRERIE STANDARD in C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria, non occorre inserirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle
DettagliAllocazione dinamica della memoria
Allocazione dinamica della memoria Allocazione statica: limiti Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente la loro esistenza deve essere prevista e dichiarata a priori
DettagliLa Ricorsione. Carla Binucci e Walter Didimo
La Ricorsione Carla Binucci e Walter Didimo Definizione induttiva di funzioni Una funzione definita in modo induttivo è una funzione definita in termini di sé stessa ad esempio la funzione f(n) = n! (fattoriale
DettagliFunzioni e. Alessandra Giordani Mercoledì 16 maggio 2012
Funzioni e passaggio parametri Alessandra Giordani agiordani@disi.unitn.it Mercoledì 16 maggio 2012 http://disi.unitn.it/~agiordani/ Cosa vedremo oggi Le funzioni Il passaggio dei parametri Le dichiarazioni
DettagliFondamenti di Informatica
Programmazione modulare (top-down) Fondamenti di Informatica 15. Funzioni in C++ (parte 1) Problemi complessi Conviene suddividere il programma in sottoprogrammi piu semplici mediante la metodologia di
DettagliInformatica (A-K) 7. Linguaggio C - 1
Storia del linguaggio C Informatica (A-K) 7. Linguaggio C - 1 Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Linguaggio C 1972, nato come evoluzione
DettagliCorso di Fondamenti di Programmazione canale E-O. Un esempio. Funzioni ricorsive. La ricorsione
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Ricorsione DD Cap. 5, pp. 160-184 KP Cap. 5, pp. 199-208 Un esempio Problema: prendere in input un intero e calcolarne il fattoriale
DettagliProgrammazione a moduli in C
Funzioni Programmazione a moduli in C Politecnico di Milano Motivazioni Alcuni programmi possono essere molto, molto complessi E utile poter partizionare il lavoro di progettazione in sottolavori più semplici
DettagliMETODI in Java. Prof.Angela Bonifati. Metodi e Sottoprogrammi
Fondamenti di Informatica METODI in Java Prof.Angela Bonifati 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile definire nuovi tipi di dati, tramite i metodi è possibile
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
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
DettagliUn esempio per cominciare. Inizio e fine di un programma. La somma di 3 numeri PASCAL ANSI C. Regole sintattiche
Un esempio per cominciare La somma di 3 numeri Vs ANSI PROGRAM SOMMA; VAR A,B,,d:REAL; BEGIN (* Inizializzazione di A,B, *) READLN(); A:5.; B:7.; (* alcolo della somma tra A,B e *) d:a+b+; (* Stampa del
DettagliFUNZIONI E PROCEDURE IN C. Docente: Giorgio Giacinto AA 2009/2010. dall utente, sia predefiniti, il C consente di creare funzioni e procedure
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2
DettagliFunzioni in C. Emilio Di Giacomo
Funzioni in C Emilio Di Giacomo Modularizzazione di programmi Quando si devono scrivere programmi complessi può essere utile suddividere il programma in più moduli Modularizzare un programma semplifica
DettagliProgrammare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi
MASTER Information Technology Excellence Road (I.T.E.R.) Programmare in C Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di Dati Valori Un insieme
DettagliStringhe e allocazione dinamica della memoria
Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per
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):
DettagliQualsiasi programma in C++ segue lo schema: Variabili
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliRICORSIONE. Informatica B - A.A. 2013/2014
RICORSIONE Informatica B - A.A. 2013/2014 RICORSIONE Che cos è la ricorsione? Un sottoprogramma P richiama se stesso (ricorsione diretta) Un sottoprogramma P richiama un altro sottoprogramma Q che comporta
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
DettagliIntroduzione al C. Lez. 1 Elementi. Rossano Venturini
Introduzione al C Lez. 1 Elementi Rossano Venturini rossano@di.unipi.it Pagine del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start http://algoritmica.spox.spoj.pl/alglab2013 Lezioni
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 C-Introduzione.tex: Versione 1.0, aa 2005-2006 Linguaggi di programmazione (1) Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili, direttamente
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)
DettagliUnità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.
Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti
DettagliIl linguaggio C. Funzioni
1 Il linguaggio C Funzioni Funzioni C A cosa servono? a raccogliere il codice comune a più parti del programma per poterlo defininire e mettere a punto una volta per tutte Es: ho replicato 37 volte il
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
DettagliIntroduzione al C. Lez. 2 Funzioni e Puntatori
Introduzione al C Lez 2 Funzioni e Puntatori Esercizio 1: test primalità Scrivere un programma che prenda in input un intero n, e stampa SI se n è primo, NO altrimenti (NB: un intero n è primo se e solo
DettagliStruttura di un. Struttura dei programmi C
Parte 4 Struttura di un Programma Struttura dei programmi C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume in un file): 1. Una parte contenente direttive
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
DettagliINFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità
Dettagli