Fondamenti di Informatica

Slides:



Advertisements
Presentazioni simili
Puntatori Linguaggio C.
Advertisements

INFORMATICA Altre Istruzioni di I/O
Uso avanzato di C.
Introduzione al linguaggio C
Caratteri e stringhe di caratteri
Funzioni definite dall’utente
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
memoria gestita staticamente:
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Algebra Lineare Esercizi assegnati.
Le funzioni.
1 ListaDiElem Cancella( ListaDiElem lista, TipoElemento elem ) { ListaDiElem puntTemp; if( ! ListaVuota(lista) ) if( lista–>info == elem ) { puntTemp =
void binario(int n); …………………
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Unità Didattica 3 Linguaggio C
2000 Prentice Hall, Inc. All rights reserved. Attivazione di funzioni La chiamata/attivazione di funzione viene indicata citando il nome della funzione.
Esercizi su alberi binari di ricerca
I metodi F. Bombi Campi e metodi Abbiamo visto che una classe può contenere – Campi – Metodi stato I campi sono utilizzati per memorizzare.
Complessità di un algoritmo
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
Fondamenti di Informatica
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Copyright © Istituto Italiano Edizioni Atlas
Puntatori in C Un puntatore è una variabile che contiene un indirizzo di memoria. Quando una variabile contiene l’indirizzo di un’altra variabile, si dice.
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
Linguaggio C: Funzioni e Puntatori Laboratorio di Programmazione Gruppo 1.
Le funzioni in C++. Introduzione  Spesso alcuni gruppi di operazioni vengono ripetute in diverse parti all’interno del medesimo programma  Si pensi.
Fondamenti di Informatica A - Massimo Bertozzi LE FUNZIONI.
Esercizio fatture.
Introduzione al linguaggio C
Il linguaggio C Puntatori Moreno Marzolla
Tutorato Elementi di Informatica 2013
Il linguaggio C Strutture Moreno Marzolla
10. Programmazione Ricorsiva Ing. Simona Colucci
Process synchronization
CICLO DO – WHILE LINGUAGGIO C.
Lezione 9 – A.A. 2016/2017 Prof. Giovanni Acampora
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
APPUNTI SUL LINGUAGGIO C
APPUNTI SUL LINGUAGGIO C
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Process synchronization
APPUNTI SUL LINGUAGGIO C
comprensione e modifica di codice
Fondamenti di Informatica
APPUNTI SUL LINGUAGGIO C Esercizi sugli array e strutture
La struttura dei primi programma in C
Le istruzioni di iterazione in C
comprensione e modifica di codice
APPUNTI SUL LINGUAGGIO C Allocazione dinamica della memoria
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Fondamenti di Informatica
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Passaggio di parametri per indirizzo
Programmazione e Laboratorio di Programmazione
Array e Stringhe Linguaggio C.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

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

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

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

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

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

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

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

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

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: 1 1 2 3 5 8 13 21 Come si realizza una funzione in grado di svolgere tale conteggio??? 14/01/2019

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

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

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

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

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