La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Fondamenti di Informatica

Presentazioni simili


Presentazione sul tema: "Fondamenti di Informatica"— Transcript della presentazione:

1 Fondamenti di Informatica
Riassunto Utilizzo di PUNTATORI Utilizzo di MALLOC Array multidimensionali 14/01/2019

2 Esercitazione 4 Cosa vedremo oggi? Funzioni Passaggio di parametri
Funzioni ricorsive Puntatori come valore di ritorno da funzione 14/01/2019

3 Funzioni Cos’è una funzione?
Le funzioni permettono di scomporre problemi complessi in moduli più semplici, sfruttabili anche singolarmente per la risoluzione di problemi diversi 14/01/2019

4 Funzioni Come si definisce una funzione?
tipo_ritornato nome_funzione(tipo_param nome_param, tipo_param1 nome_param1) 14/01/2019

5 Funzioni Come si usa una funzione?
Esempio: costruiamo un programma C che gestisca le 4 operazioni aritmetiche utilizzando le funzioni 14/01/2019

6 Funzioni Vediamo il codice all’interno dell’ambiente Dev C
In particolare notiamo Come viene scritta la funzione float somma(int a_somma, int b_somma){ float c_somma; c_somma=a_somma+b_somma; return c_somma; } Parametri della funzione Valore di ritorno 14/01/2019

7 Funzioni Come viene chiamata la funzione
Attenzione alla funzione “errore_divisione” risultato=somma(primo_operando,secondo_operando); int errore_divisione(void){ printf("Non si puo' dividere per 0!!!\n"); return 1; } 14/01/2019

8 Funzioni Ricorsive: Fibonacci
E se una funzioen richiama se stessa? Attuo un processo di ricorsione Vediamo un esempio matematico… La successione di Fibonacci 14/01/2019

9 Funzioni Ricorsive: Fibonacci
Definizione: F(m) = 0 con m<=0 F(1) = 1 F(2) = 1 F(n) = F(n-1) + F(n-2) con n>0 Per chiarezza i primi 8 numeri della serie di Fibonacci sono: Come si realizza una funzione in grado di svolgere tale conteggio??? 14/01/2019

10 Funzioni Ricorsive: Fibonacci
#include <stdio.h> void main(void) { int risultato; int numero; printf("Inserisci un numero intero\n"); scanf("%d",&numero); risultato=fibonacci(numero); /*chiamo la funzione passando un valore e prendo il valore restituito*/ printf("nella posizione %d della sequenza di fibonacci c'e' %d\n",numero,risultato); system("pause"); } int fibonacci(int n) int ris; /*dichiaro un intero che rappresenta il risultato*/ if (n<=0){ return 0; if ((n==1)||(n==2)){ return 1; ris=fibonacci(n-1) + fibonacci(n-2); /*metto in ris la somma dei valori ritornati dalla funzione stessa per n-1 e n-2*/ return ris; /*ritorno ris alla funzione chiamante*/ 14/01/2019

11 Funzioni Adesso sappiamo definire una funzione con dei parametri in ingresso ed un valore in uscita, inoltre sappiamo invocarla anche in modo ricorsivo… …e se la mia funzione utilizzasse dei puntatori??? 14/01/2019

12 Funzioni ricerca in un vettore
Prendiamo l’esempio già visto della ricerca di un elemento in un vettore Scriviamo una funzione che prende in ingresso un puntatore a char e un intero e restituisce il puntatore alla posizione dell’array desiderata 14/01/2019

13 Funzioni ricerca in un vettore
char* cerca_in_vettore(char *puntatore, int ingresso){ puntatore=puntatore+ingresso; /*sposto il puntatore */ return puntatore; /*ritorno il puntatore*/ } Il tipo di ritorno è un puntatore a char Il primo parametro della funzione è un puntatore a char 14/01/2019

14 Funzioni ricerca in un vettore
#include<stdio.h> void main(void){ char vettore[]=" abcdefghilmnopqrstuvz"; /*dichiaro e inizializzo un vettore !!!ATTENZIONE ALLO SPAZIO INIZIALE!!!*/ char *ptr; /*dichiaro un puntatore a intero*/ int input; /*dichiaro la mia variabile di input*/ int risposta; /*dichiaro una variabile condizione di uscita dal do while*/ *ptr=vettore[0]; /*faccio puntare ptr all'indirizzo di inizio del vettore*/ /*oppure*/ /* ptr=&vettore[0]; */ do{ printf("Inserisci un valore compreso tra 1 e 21\n"); scanf("%d",&input); /*catturo da tastiera la posizione da cercare*/ ptr=cerca_in_vettore(&vettore[0],input); /*passo alla funzione l'indirizzo di inizio vettore e l'inetro catturato e ritono il valore del puntatore*/ printf("%c", *ptr); /*visualizzo il risultato*/ printf("\nVuoi cercare un'altra lettera? 0=SI - 1=NO\n"); scanf("%d",&risposta);/*risposta per iterazione*/ }while(risposta==0); system("pause"); } 14/01/2019


Scaricare ppt "Fondamenti di Informatica"

Presentazioni simili


Annunci Google