Linguaggio C: le funzioni
|
|
|
- Fabia Adamo
- 9 anni fa
- Просмотров:
Транскрипт
1 Linguaggio C: le funzioni prof. Lorenzo Porcelli e mail: [email protected] sito:
2 Introduzione attraverso un esempio Problema: Conoscendo le misure di n rettangoli, determinare l area massima. OB: determinare l area più grande RIS: areamassima Dati: l1, l2 di ciascun rettangolo Limiti: l1 > 0, l2 > 0
3 Problema: soluzione Supponiamo che per finire si inserisca 0 come misura di un lato. Leggi l1;leggi l2 Mentre l1 > 0 e l2 > 0 se area(l1, l2) > areamassima areamassima = area(l1, l2) leggi l1; leggi l2 Scrivi areamassima
4 Problema: soluzione Supponiamo allora di avere a disposizione una funzione area per calcolare l area e una funzione leggo per leggere un numero >=0. area per operare necessita dei due lati leggo quando interviene legge un numero positivo
5 Problema: algoritmo l1 = leggo(); l2 = leggo() while l1 <> 0 e l2 <> 0 se area(l1, l2) > areamassima areamassima = area(l1, l2) l1 = leggo(); l2 = leggo() Scrivo areamassima Se si ha a disposizione leggo, scrivo, area la codifica in c è semplice
6 Problema: codifica int main() { float l1, l2, areamassima = 0; } while( (l1 = leggo()) && (l2 = leggo()) ) if( area(l1, l2) > areamassima ) areamassima = area(l1, l2); printf( Area massima = %f\n, areamassima); return 0;
7 Funzioni: nuovo esempio Sia sqrt la funzione che calcola la radice quadrata di un numero. Problema: calcolare la radice quadrata di n numeri. Ob: calcolare la radice quadrata Rs: radice Dt: numero, numero>=0
8 Problema: algoritmo Supponiamo di avere a disposizione una funzione leggo che restituisce un numero positivo. mentre( (x = leggo())!= 0 ) stampa sqrt(x)
9 Esempio: codifica int main() { double x; while( (x = leggo())!= 0.0) printf( la radice di %lf e %lf\n, sqrt(x) ); return 0; }
10 Funzione: dalla matematica E una relazione tra insiemi che soddisfa la seguente proprietà: ad ogni elemento del dominio corrisponde un unico elemento del codominio. Sia f: X ->Y Con y = f(x) intendiamo l elemento y di Y che corrisponde all elemento x di X
11 Come si crea una funzione Definire una funzione significa descrivere ciò che compie la funzione sui dati, sul dominio, per produrre il risultato. In C ha la seguente forma: tipo nome-della-funzione (lista-parametri) { dichiarazioni istruzioni }
12 Esempio definizione double area( double b, double h) { return b * h; } double leggo( void ) { double x; do { printf("inserire la misura del lato[0 per finire] "); scanf("%lf", &x); } while (x < 0); return x; }
13 Esempio definizione double sqrt ( double a ) { double y = 1, x = a; } while(y!= x) { x = y; y = 0.5 * (x + a/x); } return y;
14 Funzione E uno strumento attraverso il quale il problema viene scomposto in parti indipendenti. Ogni problema deve essere pensato e risolto con una sequenza di funzioni. Un programma in C è una collezione di funzioni che interagiscono tra loro.
15 Esempi dalla libreria matematica sqrt(x) radice quadrata di x exp(x) funzione esponenziale e log(x) logaritmo naturale di x (in base e) log10(x) logaritmo di x (in base 10) fabs(x) valore assoluto di x ceil(x) arrotonda x all intero più piccolo non minore di x floor(x) arrotonda x all intero più grande non maggiore di x pow(x, y) x elevato alla potenza y fmod(x, y) resto di x/y in virgola mobile sin(x) seno trigonometrico di x (x è espressa in radianti) cos(x) coseno trigonometrico di x (x è espressa in radianti) tan(x) tangente trigonometrica di x (x è espressa in radianti)
16 Esempio: utilizzo #include <math.h> int main() { printf( "sqrt(%.1f) = %.1f\n", 900.0, sqrt( ) ); printf( "exp(%.1f) = %f\n", 2.0, exp( 2.0 ) ); printf( "log(%f) = %.1f\n", , log( ) ); printf( "fabs(%.1f) = %.1f\n", 13.5, fabs( 13.5 ) ); printf( "ceil(%.1f) = %.1f\n", 9.2, ceil( 9.2 ) ); printf( "floor(%.1f) = %.1f\n", -9.8, floor( -9.8 ) ); printf( "pow(%.1f, %.1f) = %.1f\n", 2.0, 7.0, pow( 2.0, 7.0 ) ); printf( "fmod(%.3f/%.3f) = %.3f\n", , 2.333, printf( "sin(%.1f) = %.1f\n", 0.0, sin( 0.0 ) ); } return 0;
17 dichiarazione Avviene indicando il tipo del risultato, il nome della funzione e il tipo delle variabili che servono per poter operare. Esempio float arearettangolo( float, float); arearettangolo ha in ingresso due float e restituisce un float
18 In breve. l'intestazione della definizione di funzione è costituita da tutto ciò che precede la parentesi graffa aperta il corpo della definizione di funzione è formato da ciò che si trova racchiuso tra graffe. E un istruzione composta che può contenere dichiarazioni. l elenco dei parametri è tutto quello che si trova tra le due parentesi rotonde. E una lista in cui compare il tipo del parametro e il nome se non compare la dichiarazione del tipo la funzione è considerata di tipo int una funzione che non ha parametri contiene void come lista dei parametri una funzione che non restituisce alcun valore è di tipo void
19 Osservazioni Il problema è stato scomposto in parti per rendere la soluzione più chiara e maneggevole. Vantaggi: Le singole parti sono più facili da descrivere. Risulta possibile riutilizzare quanto prodotto. La messa a punto del programma è più semplice. Poiché ad ogni programma occorre apportare modifiche nel corso del tempo si individua facilmente dove intervenire nel sorgente.
20 massimo int maximum( int x, int y, int z ) { int max = x; if ( y > max ) max = y; if ( z > max ) max = z; } return max;
21 massimo #include <stdio.h> int maximum( int, int, int ); /* prototipo della funzione */ int main() { int number1, number2, number3; scanf( %d%d%d, &number1, &number2, &number3 ); printf( Maximum is: %d\n, maximum( number1, number2, number3 ) ); } return 0;
22 Massimo: cosa succede? int main() { int n1, n2, n3, n4, n5, n6, n7, n8, n9; scanf( %d%d%d, &n1, &n2, &n3 ); scanf( %d%d%d, &n4, &n5, &n6 ); scanf( %d%d%d, &n7, &n8, &n9 ); } printf( Maximum is: %d\n, maximum( maximum(n1, n2, n3), maximum(n4, n5, n6), maximum( n7, n8, n9 ) ) ); return 0;
Programmare 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
Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.
Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: [email protected] sito: users.iol.it/genna18 Risoluzione di un problema Dato
Informatica (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
Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN
Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...
Introduzione 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
#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
Qualsiasi programma in C++ segue lo schema:
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
Matematica con Python
Matematica con Python e-mail: [email protected] Versione provvisoria. Dicembre 2016. 1 Lezione n. 2 Euclide. Indice 1 Iterazioni 2 1.1 Il ciclo for e il comando range......................... 2
Funzioni. 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
3 Costrutti while, for e switch
Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione dei costrutti while, for e switch. I costrutti per costruire cicli in C sono il while, la variante
Campo di Esistenza. Il campo di esistenza di una funzione f è il dominio più grande su cui ha significato la legge f.
Campo di Esistenza Il campo di esistenza di una funzione f è il dominio più grande su cui ha significato la legge f. ESERCIZIO. Determinare il campo di esistenza della funzione f(x) = 9+2x. Soluzione:
Elementi di C++ di base
Elementi di C++ di base Corso di Programmazione 3 - Ingegneria dell Informazione e dell Organizzazione 10 ottobre, 2001 Gino Perna Esempi di semplici programmi in C++ Il programma più semplice consiste
INFORMATICA. Strutture iterative
INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale
Le funzioni, e le istruzioni di input/output
Linguaggio C Le funzioni, e le istruzioni di input/output 1 Funzioni! Sono sottoprogrammi per svolgere un particolare compito! Sequenze di istruzioni (raggruppate tramite le parentesi graffe) alle quali
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
Linguaggio C Informatica Grafica
Linguaggio C Informatica Grafica Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione [email protected] Linguaggio C Breve storia Struttura di un programma Variabili
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
Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi
Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio
Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli
Alcuni esercizi 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Stampa di voti Esempio 1 (switch) Realizzare un programma che legge da input un voto (carattere tra A ed E ) e ne
FUNZIONI. La libreria standard del C fornisce una ricca collezione di funzioni, come le funzioni:
FUNZIONI La libreria standard del C fornisce una ricca collezione di funzioni, come le funzioni: double sqrt(double) double pow (double, double) della libreria matematica, che abbiamo già usato anche senza
Linguaggio C: introduzione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi
Esercizi. La funzione swapint() primo tentativo
Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include
STRUCT - ESERCIZIO 1
STRUCT - ESERCIZIO 1 Si vuole realizzare un programma di utilità matematica per gestire i numeri complessi. In particolare: 3. Progettare una opportuna struttura per la loro rappresentazione (in coordinate
Esercitazione 3. Espressioni booleane I comandi if-else e while
Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if
Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
ESEMPIO: le variabili LETTURA/SCRITTURA DI VARIABILI. Specifica Leggere da tastiera un intero, un carattere, un float e un double. Stamparli a video.
ESEMPIO: le variabili LETTURA/SCRITTURA DI VARIABILI Specifica Leggere da tastiera un intero, un carattere, un float e un double. Stamparli a video. LETTURA/SCRITTURA DI VARIABILI Codice #include
Esercizi. Filtraggio
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia Filtraggio L utente inserisce un array di numeri reali non negativi (un numero negativo indica la fine della fase di inserimento)
Algoritmi e basi del C Struttura di un programma
Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio [email protected] Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21
#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
Preprocessore, 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
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
Esercizi C su array e matrici
Politecnico di Milano Esercizi C su array e matrici Massimo, media e varianza,, ordinamento, ricerca e merge, matrice simmetrica, puntatori Array Array o vettore Composto da una serie di celle int vett[4]
Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE
