Informatica (A-K) 12. Linguaggio C -3

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Informatica (A-K) 12. Linguaggio C -3"

Transcript

1 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<=n; i++) fattoriale*=i; printf( %d!= %d,n,fattoriale); E se esistesse una funzione fact per calcolare il fattoriale? int main() int n,fattoriale; printf( Inserire Numero: ); scanf( %d, &n); fattoriale = fact(n); printf( %d!= %d,n,fattoriale); Corso di Laurea in Ingegneria Civile & Ambientale A.A Semestre Prof. Giovanni Pascoschi 2 Introduzione alle funzioni in C Programmazione modulare (top-down) int main() int n,fattoriale; printf( Inserire Numero: ); scanf( %d, &n); fattoriale = fact(n); printf( %d!= %d,n,fattoriale); #include <iostream> using namespace std; int main()......; n fact fact(n) Problemi complessi Conviene suddividere il programma in sottoprogrammi piu semplici mediante la metodologia di sviluppo top-down ( divide et ìmpera ) Programmazione top-down Si parte nel definire le parti fondamentali del programma (top) per poi procedere al dettaglio di ogni singola parte (down) 3 4

2 Programmazione modulare (top-down) Programmazione modulare (vantaggi) Calcolo del delta Risoluzione equazione di 2 grado Risoluzione equazione di 1 grado Scrivi soluzioni Astrazione procedurale Decomposizione di un problema in sottoproblemi Favorisce la progettazione top-down Implementazione hiding Dettagli dell implementazione possono rimanere nascosti Non interessa come si risolve un problema Riutilizzo soluzioni già scritte per problemi ricorrenti Migliorare la leggibilità dei programmi Facilitare la manutenzione del software (manutenibilità) 5 6 Utilizzo di Funzioni Dichiarazione di una funzione Interfaccia, Signature (firma) o Prototipo della funzione Dichiarazione di una funzione tipo_ritornato nome_funzione(lista tipi parametri formali); Definizione di una funzione Chiamata (o esecuzione) di una funzione Esempi: double trova(double); int max(int, int); void ricerca(void); Deve precedere la prima invocazione della funzione 7 8

3 Struttura di un programma C (1. alternativa) Struttura di un programma C (2. alternativa) direttive del preprocessore funzione1( ) dichiarazione & definizione della funzione funzione n( ) int main ( ) dichiarazioni istruzioni direttive del preprocessore dichiarazioni dei prototipi int main ( ) dichiarazioni istruzioni funzione1 definizione della funzione funzione n 9 10 Definizione di una funzione Esempio di funzione Sintassi tipo_ritornato nome_funzione(lista parametri formali) dichiarazioni istruzioni all interno del corpo della funzione i parametri formali vengono trattati come semplici variabili int max(int a, int b) if( a > b ) else parametri formali 11 12

4 Esempio di chiamata di una funzione Chiamata di una funzione Sintassi: nome_funzione (lista parametri attuali); N.B.: E preferibile usare nomi diversi tra i parametri attuali e formali per evitare confusioni. Cosa accade quando avviene la chiamata della funzione (invocazione)? 1. si associa ad ogni parametro formale il corrispondente parametro attuale (passaggio di parametri) 2. si interrompe l esecuzione della funzione chiamante.. int num1, num2, val; printf ( Inserire i due numeri \n ); scanf( %d %d, &num1, &num2); val = max(num1, num2); printf( Il valore piu grande e %d, val);.. parametri attuali 3. si eseguono le istruzioni della funzione chiamata 4. al termine della funzione si riprende l esecuzione del chiamante immediatamente successivo alla chiamata Istruzione return Esempio 1 (senza prototipi) Sintassi return espressione; return; L istruzione return termina immediatamente l esecuzione della funzione e restituisce al chiamante il valore di espressione espressione puo essere una variabile o comunque una generica espressione (p.e. aritmetica calcolo di variabili o logica true/false) nel caso manchi espressione significa che non ritorna nulla alla funzione chiamante (funzione di tipo void) in questo caso si puo anche omettere l istruzione return la funzione si chiama anche procedura int max(int a, int b) if( a > b ) else int num1, num2, val; printf( Inserire i due numeri \n ); scanf( %d %d, &num1, &num2); val = max(num1, num2); printf( Il valore piu grande e %d,val); 15 16

5 Esempio 1 (con prototipi) Esempio 2 int max(int, int ); int num1, num2, val; printf( Inserire i due numeri \n ); scanf( %d %d, &num1, &num2); val = max(num1, num2); printf( Il valore piu grande e %d,val); int max(int a, int b) if( a > b ) else massimo tra 3 numeri interi int max3(int a, int b, int c) if( a >= b && a >=c ) else if( b >= c) else massimo = c; int max3(int a, int b, int c) if( a >= b && a >=c ) return a; else if( b >= c) return b; else return c; Esempio 2 Variabili locali usiamo la funzione max() dell esempio 1 int max3(int a, int b, int c) massimo = max(a, b); massimo = max(massimo, c); in forma compatta diventa int max3(int a, int b, int c) return max(max(a,b),c); int max3(int a, int b, int c) massimo = max(max(a,b),c); I parametri e le variabili dichiarate all interno della definizione di una funzione sono locali le variabili locali esistono solo all interno del corpo della funzione al termine dell esecuzione della funzione, le variabili locali cessano di esistere int max(int a, int b) if( a > b ) else 19 20

6 Variabili globali Regole di visibilità (Scope rules) variabili dichiarate al di fuori di una definizione di funzione ogni funzione puo leggere/modificare una variabile globale In ambienti diversi si puo definire lo stesso identificatore per denotare oggetti diversi. int i;. int main() int a, b, num1, num2; i = 3; a=funz(num1,num2); printf( %d,i); int funz(int x, int y) int prova;.. i++;. N.B.: anche il main è una funzione!!. int i;. int main() int a=5, b, c; b=8; i = 3; c=funz(a,7); printf( %d %d,i,b); /*stampa 8*/ int funz(int a, int b) int prova; prova = a * b; printf( %d,b); /* stampa 7 */ i++;. return prova; N.B.: E consigliabile usare nomi diversi tra parametri attuali e formali Passaggio di parametri in C Esempio 1 (con prototipi) Il passaggio dei parametri tra funzione chiamante e funzione chiamata in C avviene secondo due modalità: per valore o copia (by value) si passa il valore del parametro attuale per referenza (riferimento) (by reference) si passa un riferimento (indirizzo) al parametro attuale int max(int, int ); int num1, num2, val; printf( Inserire I due numeri \n ); scanf( %d %d, &num1, &num2); val = max(num1, num2); printf( Il valore piu grande è %d,val); int max(int a, int b) if( a > b ) else 23

7 Passaggio di parametri per valore Passaggio di parametri per valore la funzione chiamante passa alla funzione chiamata i valori dei parametri attuali i valori sono usati per inizializzare i parametri formali eventuali modifiche ai parametri formali a e b all interno della funzione non hanno effetto sui parametri attuali num1 e num2 la funzione chiamante passa alla funzione chiamata i valori dei parametri attuali al termine della funzione i parametri formali e tutte le variabili locali a e b cessano di esistere (vengono distrutte) l unico effetto per il chiamante è dovuto al valore restituito massimo Procedure Algoritmo di swap Una funzione che non restituisce alcun valore (tipo ritornato void) è detta procedura Scrivere una procedura che scambia il contenuto/valore di due variabili a e b Utilizzo visualizzare messaggi modificare variabili globali void swap (int, int); int a, b;... swap(a, b);... void swap(int x, int y) int temp; temp=x; x=y; y=temp; Vengono scambiati x e y? Vengono scambiati a e b? 27 28

8 Passaggio dei parametri per referenza in C Algoritmo di swap La funzione chiamante passa alla funzione chiamata dei riferimenti (indirizzi) ai parametri attuali sintassi Scrivere una procedura che scambia il contenuto/valore di due variabili a e b (versione corretta) parametro per referenza = tipo &nome_variabile Al momento della chiamata il nome del parametro formale per referenza diventa un sinonimo (alias) del parametro attuale facente riferimento alla stessa locazione non si crea una nuova variabile ma un riferimento ad una variabile esistente Una modifica al parametro formale all interno della funzione rappresenta, in realtà una modifica al parametro attuale void swap (int *x, int *y); int a, b;... swap(&a, &b);... void swap(int *x, int *y) int temp; temp=*x; *x=*y; *y=temp; Vengono scambiati x e y? Vengono scambiati a e b? Riepilogo della lezione Fine della lezione Funzioni in C Programmazione modulare (top/down) Utilizzo funzioni in C Passaggio parametri per valore Passaggio parametri per referenza Domande? 31 32

9 Esercizio 1 Dati i nomi di N città e i relativi valori di temperatura massima e minima giornaliera nel mese di marzo, implementare un programma con le seguenti funzioni: 1)Calcolo delle medie delle temperature minime e massime mensili di ciascuna città 2) Stampa a video del nome della città piu fredda (media delle temperature minime) 33

Fondamenti di Informatica II 3. Funzioni in C++ (parte 1)

Fondamenti 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;

Dettagli

Fondamenti di Informatica

Fondamenti 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

Dettagli

sqrt #include <iostream> #include <cmath> using namespace std; int main() { int x; cout << Inserire un numero \n ; cin >> x; int main()

sqrt #include <iostream> #include <cmath> using namespace std; int main() { int x; cout << Inserire un numero \n ; cin >> x; int main() Funzioni Fondamenti di Informatica C++: Funzioni Prof. Francesco Lo Presti #include int ; cout > ; double radice=sqrt(); cout

Dettagli

Informatica (A-K) 14. Linguaggio C -4

Informatica (A-K) 14. Linguaggio C -4 Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Informatica (A-K) 14. Linguaggio C -4 Strutture Dati tipiche

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Passaggio di parametri in C++ Il passaggio dei parametri tra funzione chiamante e funzione chiamata in C++ avviene secondo due modalità: Fondamenti di Informatica 16. Funzioni in C++ (parte 2) per valore

Dettagli

Linguaggio C: le funzioni. Introduzione e sintassi

Linguaggio 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

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Strutture di dati Fondamenti di Informatica 11. Linguaggio C - Strutture / Tabelle / Puntatori Strutture /Tabelle Corso di Laurea in Ingegneria Informatica e dell Automazione A.A. 2012-2013 2 Semestre

Dettagli

nome (lista_parametri) Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti

nome (lista_parametri) Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti Università di Roma Tor Vergata L9-1 Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti utilizzare il valore restituito quanti argomenti

Dettagli

Linguaggio C: le funzioni. Introduzione e sintassi

Linguaggio 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

Dettagli

Fondamenti di Informatica 12. Linguaggio C -4

Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati

Dettagli

Le funzioni: la dichiarazione

Le funzioni: la dichiarazione Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Le regole di visibilità (scope) Il passaggio degli argomenti per valore e riferimento La funzione main() Le funzioni: la dichiarazione

Dettagli

Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità

Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Le funzioni: la dichiarazione

Dettagli

C++ funzioni Alberto Ferrari. Alberto Ferrari Programmazione di applicazioni SW

C++ funzioni Alberto Ferrari. Alberto Ferrari Programmazione di applicazioni SW C++ funzioni Alberto Ferrari http://en.cppreference.com FUNZIONI le funzioni caratterizzate da nome, parametri (numero, ordine e tipo) e tipo di ritorno le funzioni hanno un prototipo il prototipo non

Dettagli

int main(){ int numero; /* numero di cui voglio calcolare il fattoriale */ int fatt; /* memorizzo il fattoriale di numero */ int somma=0;

int 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

Dettagli

Capitolo 5 - Funzioni

Capitolo 5 - Funzioni Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente

Dettagli

Cominciamo con un esempio... Utilizzando un sottoprogramma 16/12/2017

Cominciamo con un esempio... Utilizzando un sottoprogramma 16/12/2017 Cominciamo con un esempio... Franco FRATTOLILLO Dipartimento di Ingegneria Università degli Studi del Sannio Corso di "Programmazione I" Corso di Laurea in Ingegneria Informatica / ExAT 1 Franco FRATTOLILLO

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 4 Operatori e introduzione a funzioni Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Soluzioni ad alcuni esercizi Alcuni commenti sugli

Dettagli

Le 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. 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

Dettagli

Ambienti di Programmazione per il Software di Base

Ambienti di Programmazione per il Software di Base Ambienti di Programmazione per il Software di Base Le Funzioni in C Esercizi sulle Funzioni svolti Esercizi sulle Funzioni da svolgere A.A. 2011/2012 Ambienti di Programmazione per il Software di Base

Dettagli

FUNZIONI. Esempi (pseudo-c): dare un nome a una espressione rendere tale espressione parametrica. float f(){ * sin(0.75); } float f1(int x) {

FUNZIONI. 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

Dettagli

FUNZIONI. Esempi (pseudo-c): dare un nome a una espressione rendere tale espressione parametrica. float f(){ * sin(0.75); } float f1(int x) {

FUNZIONI. 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

Dettagli

Funzioni 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 p.1/25 Funzioni in C Informatica Generale - Funzioni in C Versione 1.0, aa 2005-2006 p.1/25 Definizione di funzione () è

Dettagli

Una funzione riceve dati di ingresso in corrispondenza ai parametri

Una funzione riceve dati di ingresso in corrispondenza ai parametri 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

Dettagli

Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità

Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Le funzioni Tutti i linguaggi

Dettagli

FUNZIONI COME COMPONENTI SW FUNZIONI COME COMPONENTI SW FUNZIONI MODELLO CLIENTE/SERVITORE

FUNZIONI 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

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

FUNZIONI FUNZIONI COME COMPONENTI SW

FUNZIONI 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 rendendola parametrica

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Programmazione strutturata Fondamenti di Informatica 8. Linguaggio C - Strutture di Controllo Programmazione strutturata (cosa significa?) Per programmazione strutturata si intende un tipo di programmazione

Dettagli

FUNZIONI COME COMPONENTI SW FUNZIONI COME COMPONENTI SW FUNZIONI MODELLO CLIENTE/SERVITORE

FUNZIONI 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

Dettagli

FUNZIONI FUNZIONI COME COMPONENTI SW

FUNZIONI 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

Dettagli

Laboratorio di informatica Ingegneria meccanica

Laboratorio 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

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Corso di Laurea in Informatica e Tecnologie per la Produzione del Software (Track B) - A.A. 2018/2019 Laboratorio di Informatica Programmazione Modulare (Parte 1) docente: Cataldo Musto cataldo.musto@uniba.it

Dettagli

METODI in Java. Prof.Angela Bonifati. Metodi e Sottoprogrammi

METODI 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

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

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

Dettagli

FUNZIONI. attribuire un nome ad un insieme di istruzioni parametrizzare l esecuzione del codice

FUNZIONI. 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

Dettagli

Do...While() Break Continue Concetto di Funzione e Procedura METODI in Java

Do...While() Break Continue Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Do...While() Break Continue Concetto di Funzione e Procedura METODI in Java Prof.Angela Bonifati 1 Istruzione while int vet1[] = new int[20]; int vet2[] = new int[20]; for(int

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, 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

Dettagli

Funzioni in C. Architetture multi-componente

Funzioni in C. Architetture multi-componente Funzioni in C Architetture multi-componente In generale, una applicazione informatica complessa è organizzata come insieme di componenti software che cooperano per raggiungere un fine comune. Ogni componente

Dettagli

Corso di Informatica A.A

Corso di Informatica A.A Corso di Informatica A.A. 2009-2010 Lezione 11 Corso di Informatica 2009-2010 Lezione 11 1 Utilizzo dei puntatori Funzioni Perche i Puntatori? I puntatori hanno tre importanti applicazioni: 1. Passaggio

Dettagli

Esempi (pseudo-c):! float f(){ * sin(0.75); } float f1(int x) { 2 + x * sin(0.75); } Esempio

Esempi (pseudo-c):! float f(){ * sin(0.75); } float f1(int x) { 2 + x * sin(0.75); } Esempio 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

Dettagli

Tempo di vita e scope delle variabili

Tempo 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):

Dettagli

Progetto d esame. Elementi di Informatica. Esercitazione 1. Esercizio 1. #include <stdio.h> #include <cstdlib> #include <math.

Progetto d esame. Elementi di Informatica. Esercitazione 1. Esercizio 1. #include <stdio.h> #include <cstdlib> #include <math. Progetto d esame Elementi di Informatica Esercizio 1 Esercitazione 1 #include #include float a,b,c; printf("inserire il primo valore: \n"); scanf("%f",&a); printf("inserire il secondo

Dettagli

Elementi DI INFORMATICA. Linguaggio C

Elementi DI INFORMATICA. Linguaggio C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Elementi DI INFORMATICA http://agile.diee.unica.it A.A. 2015/2016 Ing. Marco Ortu Diee, secondo piano Tel. 070-6755774 mail:

Dettagli

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Funzioni e Procedure. Marco D. Santambrogio Ver. aggiornata al 11 Marzo 2014

DIPARTIMENTO 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

Dettagli

Informatica (A-K) 19. Linguaggio C -6

Informatica (A-K) 19. Linguaggio C -6 Informatica (A-K) 19. Linguaggio C -6 Una struttura è un insieme finito di variabili (dette campi) non necessariamente dello stesso tipo, ognuna identificata con un nome l insieme dei campi è denominato

Dettagli

Procedure. Una procedura permette di dare un nome a una istruzione rendendola parametrica non denota un valore, quindi non c è tipo di ritorno void

Procedure. Una procedura permette di dare un nome a una istruzione rendendola parametrica non denota un valore, quindi non c è tipo di ritorno void Procedure Una procedura permette di dare un nome a una istruzione rendendola parametrica non denota un valore, quindi non c è tipo di ritorno void void p(int x) { float y = x * sin(0.75); In C, una procedura

Dettagli

Informatica (A-K) 10. Linguaggio C - 2

Informatica (A-K) 10. Linguaggio C - 2 Programmazione strutturata Informatica (A-K) 10. Linguaggio C - 2 Programmazione strutturata (cosa significa?) Per programmazione strutturata si intende un tipo di programmazione che fa uso di particolari

Dettagli

Esercizi. FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo. Funzioni

Esercizi. FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo. Funzioni Politecnico di Milano Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo Definizione: Funzioni tipo_ritornato nome (lista di parametri) istruzioni; Segnatura

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Corso di Laurea in Informatica e Tecnologie per la Produzione del Sofware (Track B) - A.A. 2016/2017 Laboratorio di Informatica Programmazione Modulare (Parte 1) docente: Cataldo Musto cataldo.musto@uniba.it

Dettagli

Università degli Studi di Ferrara

Università degli Studi di Ferrara Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018-2019 Programmazione Lezione 11 Funzioni Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni precedenti Operatore

Dettagli

Progettazione Top Down e funzioni in C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Progettazione Top Down e funzioni in C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Progettazione Top Down e funzioni in C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Progettazione top-down Quando si ricerca la soluzione di un problema complesso può essere complicato

Dettagli

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Introduzione ai sottoprogrammi Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Introduzione al corso, Paolo Bison, FI08, 2008-12-09 p.1 Struttura programma

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 2 (a) Sintassi e Semantica versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)

Dettagli

Procedure e funzioni A. Ferrari

Procedure 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:

Dettagli

Definizione di funzione. <tipo> <nome_funzione> (<lista_parametri>) { <definizioni di variabili> <istruzioni> }

Definizione di funzione. <tipo> <nome_funzione> (<lista_parametri>) { <definizioni di variabili> <istruzioni> } Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è

Dettagli

Astrazione Funzionale

Astrazione Funzionale FIL: Astrazione Funzionale Michele Nappi, Ph.D Dipartimento di Matematica e Informatica Università degli Studi di Salerno mnappi@unisa.it biplab.unisa.it it 089-963334 Divide et impera Costruire un programma

Dettagli

PROGETTAZIONE TOP-DOWN E BOTTOM-UP

PROGETTAZIONE TOP-DOWN E BOTTOM-UP PROGETTAZIONE TOP-DOWN E BOTTOM-UP Top-down e bottom-up sono strategie di elaborazione dell'informazione e di gestione delle conoscenze, riguardanti principalmente il software e, per estensione, altre

Dettagli

Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice { }, cioè più istruzioni

Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice { }, cioè più istruzioni INTRODUZIONE A C++ Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice, cioè più istruzioni Istruzione - Esempi Significato int a; float f; double d; char c; int x=0; variabile =

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un valore come risultato, come avviene anche per una funzione matematica

Dettagli

Introduzione alla programmazione in C

Introduzione 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

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, 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,

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 8 Dettagli e Approfondimenti versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Strutturare il codice: sottoprogrammi

Strutturare 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

Dettagli

PROGRAMMAZIONE: I sottoprogrammi

PROGRAMMAZIONE: 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

Dettagli

A. Ferrari Informatica

A. Ferrari Informatica Informatica procedure e funzioni procedure o dichiarazione e definizione o definizione del comportamento della funzione o utilizzo di parametri formali o prototipo (solo dichiarazione) o esecuzione o esecuzione

Dettagli

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi

Pag. 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

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 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

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Strutture di dati Laboratorio di Informatica 5. Strutture / Array di oggetti / Pila&Coda in C++ Una struttura è un insieme finito di variabili (dette campi) non necessariamente dello stesso tipo, ognuna

Dettagli

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. 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

Dettagli

Programmazione C. Funzioni e Procedure Call by value

Programmazione C. Funzioni e Procedure Call by value Programmazione C Funzioni e Procedure Call by value !"#$%#&'(%')*+,*&--&.%+$"'!+)/ 0+1$!!"#$%&'()*"+,("-*".//$%01.0%",.00%"*0"2(0($.'("30." +%)#'(--*1.4 1.'("#($"+3*"+,*"'*"5(6("$*-%'6($("0%0"$*(-+(".5".//$%01.$'*"0(''."'%$%"2'%&.'*1.47"80")(1%5%"

Dettagli

Funzioni in C. Fondamenti di Informatica. Daniele Loiacono

Funzioni in C. Fondamenti di Informatica. Daniele Loiacono Funzioni in C Fondamenti di Informatica Organizzare il codice q Consideriamo un frammento programma che calcola il massimo di una sequenza di interi letti da tastiera: int i,x,max; for(i=1;i

Dettagli

Corso sul linguaggio Java

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

Dettagli

Prof. G. Ascia. Le funzioni. Fondamenti di Informatica

Prof. G. Ascia. Le funzioni. Fondamenti di Informatica Le funzioni 1 La Forma Generale di Funzione La forma generale di funzione è la seguente: SpecificatoreTipo NomeFunzione(ElencoParametri) { CorpoDellaFunzione; Lo SpecificareTipo specifica il tipo dei dati

Dettagli

Funzioni. (Dichiarazione, Prototipo, Chiamata) Concetto di funzione

Funzioni. (Dichiarazione, Prototipo, Chiamata) Concetto di funzione Funzioni (Dichiarazione, Prototipo, Chiamata) Concetto di funzione L astrazione di funzione è presente in tutti i linguaggi di programmazione di alto livello. Una funzione è un componente software che

Dettagli

Indirizzi e tipi puntatore a

Indirizzi e tipi puntatore a Linguaggio C Indirizzi e tipi puntatore a Università degli Studi di Brescia Prof. Massimiliano Giacomin Indirizzo e tipo puntatore a TIPO Indirizzo NOME Valore Indirizzo 0101011110011001 1101011110011111

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Una funzione per i numeri di Fibonacci

Dettagli

Le funzioni. La Forma Generale di Funzione

Le funzioni. La Forma Generale di Funzione Le funzioni 1 La Forma Generale di Funzione La forma generale di funzione è la seguente: SpecificatoreTipo NomeFunzione(ElencoParametri) { CorpoDellaFunzione; Lo SpecificareTipo specifica il tipo dei dati

Dettagli

Le funzioni. La Forma Generale di Funzione

Le funzioni. La Forma Generale di Funzione Le funzioni 1 La Forma Generale di Funzione La forma generale di funzione è la seguente: SpecificatoreTipo NomeFunzione(ElencoParametri) { CorpoDellaFunzione; Lo SpecificareTipo specifica il tipo dei dati

Dettagli

Introduzione al linguaggio C Funzioni

Introduzione 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

Dettagli

Ottenere una modifica del parametro attuale

Ottenere 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)

Dettagli

Lezione 6: Array e puntatori

Lezione 6: Array e puntatori Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Una funzione per i numeri di Fibonacci

Dettagli

Struttura di un. Struttura dei programmi C

Struttura 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

Dettagli

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova Introduzione ai sottoprogrammi Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Introduzione al corso, Paolo Bison, FI06, 2007-02-06 p.1 Struttura programma formato da vari elementi

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile

Dettagli

Programmazione C: Esercizi su vettori e funzioni. Titolo presentazione. sottotitolo. Milano, XX mese 20XX

Programmazione C: Esercizi su vettori e funzioni. Titolo presentazione. sottotitolo. Milano, XX mese 20XX Titolo presentazione Programmazione C: sottotitolo Esercizi su vettori e funzioni Milano, XX mese 20XX Informatica ed Elementi di Informatica Medica Agenda Richiami su vettori e funzioni Esercizi su vettori

Dettagli

Informatica A (per gestionali) A.A. 2004/2005. Esercizi di programmazione C Funzioni: passaggio di parametri per indirizzo, passaggio di array.

Informatica A (per gestionali) A.A. 2004/2005. Esercizi di programmazione C Funzioni: passaggio di parametri per indirizzo, passaggio di array. Informatica A (per gestionali) A.A. 2004/2005 Esercizi di programmazione C Funzioni: passaggio di parametri per indirizzo, passaggio di array. Indice 1 Funzioni: passaggio di parametri per indirizzo; puntatori...3

Dettagli

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)

Funzioni 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

Dettagli

Un programma deve essere scritto come collezione di tante piccole funzioni perché:

Un programma deve essere scritto come collezione di tante piccole funzioni perché: Un programma deve essere scritto come collezione di tante piccole funzioni perché: ƒè più facile scrivere correttamente una funzione breve che abbia un unico compito: in questo modo sia la scrittura che

Dettagli

Programmazione a moduli in C

Programmazione 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

Dettagli

C funzioni à scope di variabili

C funzioni à scope di variabili C funzioni à scope di variabili Per questo motivo il parametro di una function può avere lo stesso nome del parametro effettivo del processo chiamante. Possiamo definire anche delle variabili globali e

Dettagli

a.a Codice corso: 21012

a.a Codice corso: 21012 ESERCIZIO 1 Scrivere un programma in linguaggio C che lette dallo standard input due sequenze vettoriali ordinate di interi V1[n], V2[m] ne crei una terza V3[n+m] anch essa ordinata, che contenga tutti

Dettagli

Strategie di programmazione

Strategie 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

Dettagli

Manualistica 3 Le strutture di controllo

Manualistica 3 Le strutture di controllo Programmazione e Laboratorio di Programmazione Manualistica 3 Le strutture di controllo Programmazione e Laboratorio di Programmazione: Le strutture di controllo 1 Le strutture di controllo Strutture di

Dettagli

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

void p(int x) { float y = x * sin(0.75); printf( %f, y); }

void p(int x) { float y = x * sin(0.75); printf( %f, y); } FUNZIONI... Una funzione permette di dare un nome a una espressione rendendola parametrica float f(){ return 2 + 3 * sin(0.75); } float f1(int x) { return 2 + x * sin(0.75); } E PROCEDURE Una procedura

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione : Elementi lessicali del C Vittorio Scarano Corso di Laurea in Informatica Elementi lessicali e token Costanti Identificatori Operatori operatori di incremento/decremento

Dettagli