Fondamenti di Informatica

Documenti analoghi
uguale livello gerarchico non vi sono funzioni più importanti di altre main main

6SC Informatica 9/12/2015

Fondamenti di Informatica T-1

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso

Procedura. Procedure e funzioni. Esempio di procedura in C. Procedure in C. Esempio con prototipo. Esecuzione del codice

Corso di Programmazione a oggetti

Corso sul linguaggio Java

Linguaggio C: introduzione

PROGRAMMAZIONE: Le strutture di controllo

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.

Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

L organizzazione dei programmi

1 PANORAMICA SUL LINGUAGGIO C

Laboratorio di programmazione

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Array. Anno Accademico 2010/2011 Francesco Tortorella

Lettura da tastiera e scrittura su monitor

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella

Programmazione Procedurale in Linguaggio C++

Fondamenti di Informatica T-1 Modulo 2

Liste a puntatori: un esercizio passo passo

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

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

Passare argomenti al programma

Strutture Dati. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Strutture Dati 1 / 16

Implementazione dell albero binario in linguaggio C++

dott. Sabrina Senatore

Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

Linguaggio C - sezione dichiarativa: costanti e variabili

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

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

Programmazione Procedurale in Linguaggio C++

Programmazione modulare

Strutturare il codice: sottoprogrammi

Tempo di vita e scope delle variabili

INTRODUZIONE. ALLA PROGRAMMAZIONEColonna 1. in linguaggio C

Università degli Studi di Cassino Corso di Fondamenti di Informatica Visibilità e tempo di vita delle variabili

Indirizzi e tipi puntatore a

Programmazione Procedurale in Linguaggio C++

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

COMANDI ITERATIVI. Ivan Lanese

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Fondamenti di Informatica 2008 corso prof. A. Picariello. Operazioni sui FILE in C++

Proprietà delle Classi e degli Oggetti in Java

Informatica e elementi di informatica medica. Laboratori del 26 e del 29 Marzo 2010

Elementi di Informatica A. A. 2016/2017

Proprietà delle Classi e degli Oggetti in Java

Fondamenti di Programmazione

Introduzione ai puntatori

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

Corso di Laurea Ingegneria Civile Elementi di Informatica. Esercizi. Carla Limongelli. Esercizi 1

Corso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica

Corso di Fondamenti di Informatica Classi di istruzioni 2

Lezione 6 Introduzione al C++ Mauro Piccolo

Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri

Introduzione Programmazione Java

Programmazione di base

Definizione di metodi in Java

Modularizzazione del software

Debug di un programma

Laboratorio di Matematica e Informatica 1

Scope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano

Fondamenti di Informatica

Primi passi col linguaggio C

Concetto di Funzione e Procedura METODI in Java

Ottenere una modifica del parametro attuale

OCA JAVA 8 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

#include <iostream> using namespace std; // int main ( ) { // --- Dichiarazione delle variabili int N ; float A, Pot;

Fondamenti di Informatica

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

Fondamenti di Informatica T-1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1

Fondamenti di Informatica T-1 Modulo 2

Introduzione alla programmazione in linguaggio C

Laboratorio di Informatica

Una procedura permette di#! dare un nome a una istruzione#! rendendola parametrica!! non denota un valore, quindi " non c#è tipo di ritorno!

Esercizi su. Istruzioni di scelta multipla. Overflow

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

Programmazione in Java (I modulo)

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde

1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio

WORD PROCESSING.

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi seconde

Algoritmo di ordinamento per scambio (a bolle o bubble sort)

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

Il compilatore Dev-C++

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Introduzione. Le funzioni in C. Funzioni. Cosa succede

Funzioni in C. Architetture multi-componente

Programmazione Procedurale in Linguaggio C++

Corso di Fondamenti di Informatica

Sotto programmi - Funzioni in C

Funzioni, Stack e Visibilità delle Variabili in C

Istruzioni semplici e strutturate

Transcript:

Fondamenti di Informatica Capitolo 3 Funzioni Federico Ceriani federico.ceriani@nulltech.it ITS Meccatronico di Legnago A.S. 2016-2017

Contenuti Concetto di funzione Sintassi Tipo di ritorno Argomenti Passaggio di variabili Passaggio per valore Passaggio per riferimento Variabili locali Esercizi

Concetto di funzione Quando si deve svolgere un operazione complessa, spesso ci sono dei sotto-problemi che si ripetono. Questi possono essere raggruppati in un blocco a sé stante che può essere richiamato quando necessario. Questa unità isolata di istruzioni viene chiamata funzione (o anche routine o procedura).

Sintassi Sintassi generica 1 <tipo di ritorno > <nome > ( argomenti formali ) { 2 <corpo della funzione > 3 } Un esempio 1 void foo () { 2 cout << " Hello World!" << endl ; 3 }

Tipi di ritorno? Come nelle funzioni matematiche, le funzioni in C++ possono dare un risultato. Il tipo di ritorno dunque è il tipo di dato del risultato della funzione.

void? Al contrario delle funzioni matematiche usuali, le funzioni in C++ possono non dare affatto un risultato. In questo caso si usa void come tipo di ritorno. Inoltre, le funzioni in C++ possono avere degli effetti collaterali. Funzioni che non danno risultato e non hanno argomenti vengono chiamati anche procedure.

Argomenti? Come nelle funzioni matematiche, le funzioni in C++ possono lavorare su dei valori di input. f (x) = x 2 1 float f( float x) { 2 return x* x; 3 } Dopo aver definito una funzione, la si può richiamare nel seguente modo: f (4) 1 f (4) ; Si possono avere più argomenti per una funzione: 1 int moltiplica ( int x, int y){ 2 return x* y; 3 }

Passaggio di variabili Passaggio per valore In C++ il passaggio di variabili avviene generalmente per valore: il valore del parametro attuale viene copiato nel parametro formale e reso disponibile al corpo della funzione. Esempio di passaggio per valore 1 int incrementa ( int n){ 2 return ++n; 3 } 4 5 int main () { 6 int x = 5; 7 cout << incrementa ( x) << endl ; 8 cout << x << endl ; 9 return 0; 10 } Questo esempio stampa prima 6, poi 5. La variabile x non viene modificata dalla funzione incrementa.

Passaggio di variabili Passaggio per riferimento A volte si può voler modificare le variabili passate alle funzioni. Questo si può fare utilizzando il passaggio per riferimento: Esempio di passaggio per riferimento 1 int incrementa ( int & n){ // notare la & 2 return ++n; 3 } 4 5 int main () { 6 int x = 5; 7 cout << raddoppia ( x) << endl ; 8 cout << x << endl ; 9 return 0; 10 } Questo esempio stampa due volte 6: la variabile x viene modificata dalla funzione incrementa.

Variabili locali Possiamo dichiarare variabili all interno di funzioni. Tuttavia, esse non saranno visibili al di fuori del blocco di codice in cui sono state create. Esempio di variabile locale 1 int dichiarax ( int n) { 2 int x = n; 3 } 4 5 int main (){ 6 dichiarax (5) ; 7 cout << x; // ERRORE! 8 return 0; 9 } In questo esempio, x è una variabile locale alla funzione dichiarax.

Esericzi abitanti.cpp Chiedere all utente di inserire: Numero abitanti di una città; Percentuale di crescita annua per due città diverse. Stampare poi tra quanti anni la città con la minor popolazione iniziale avrà sorpassato l altra.

Esericzi divisori.cpp Scrivere un programma che chiede all utente di inserire un numero e poi stampa sul terminale se si tratta di un numero primo e la lista dei suoi divisori.

Esericzi ordina3.cpp Scrivere un programma che chiede all utente di inserire 3 numeri e poi li ristampa in ordine crescente.

Esericzi bancomat.cpp Scrivere un programma che modelli l interazione con un bancomat: l utente deve poter effettuare versamenti, prelievi (attenzione: il conto non deve andare in rosso!) ed estratti conto. Inoltre, il conto deve maturare interessi (per semplicità, dovranno essere accreditati dopo ogni operazione). Il programma deve controllare che ogni input fornito dall utente sia lecito, in caso contrario deve stampare un messaggio di errore e richiedere l inserimento.

Esericzi distributore.cpp Scrivere un programma che modelli l interazione con un distributore automatico con a disposizione 4 prodotti di prezzo diverso. Il programma deve stampare la lista dei prodotti disponibili e il loro prezzo. L utente potrà scegliere di inserire monete da 10, 20, 50 cent o 1 o 2 euro, a volontà fino a che non inserirà 0. Successivamente dovrà scegliere un prodotto e il programma dovrà stampare un messaggio di avvenuta erogazione e il resto dovuto. Attenzione: il resto dovrà essere fornito in monete! Dunque a fronte di un resto ad esempio di 80 centesimi il programma dovrà stampare: 1 moneta da 50 centesimi, 1 moneta da 20 centesimi, 1 moneta da 10 centesimi.