Corso introduttivo sui microcontrollori A. S Programmare i PIC in C Richiami fondamentali sulla programmazione in C: le funzioni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Corso introduttivo sui microcontrollori A. S Programmare i PIC in C Richiami fondamentali sulla programmazione in C: le funzioni"

Transcript

1 Corso introduttivo sui microcontrollori A. S Programmare i PIC in C Nicola Amoroso namoroso@mrscuole.net NA L14 1

2 Il C viene in genere indicato come un linguaggio di medio livello perché unisce elementi tipici dei linguaggi ad alto livello (Basic, Pascal, Fortran, etc ) con le funzionalità dell assembler. Essendo un linguaggio di medio livello, il C consente la gestione di bit, byte e indirizzi. Questa possibilità rende il C particolarmente adatto alla programmazione di sistemi in cui tali operazioni sono comuni (es. microcontrollori, microprocessori, etc ). Il C è anche molto semplice da usare infatti, possiede solo 32 parole chiave (27 standard iniziali + 5 aggiunte nello standard ANSI C); in questo senso il nostro compilatore CCS Pic-C compiler segue perfettamente questo standard [N.B.=> Il CCS pic-c compiler aggiunge delle built-in functions che agevolano la implementazione e realizzazione di progetti). A causa della sua similitudine con linguaggi strutturati (Pascal, Algol, ) di solito ci si riferisce al linguaggio C come ad un linguaggio strutturato, anche se non può essere considerato come linguaggio strutturato a blocchi; infatti il C non permette la dichiarazione di sottoprogrammi annidati. NA L14 2

3 La caratteristica che contraddistingue un linguaggio strutturato è la possibilità di definire in modo preciso, all interno di un programma, regole di visibilità dei dati e del codice necessarie all esecuzione di un compito specifico senza influenzare il resto del programma stesso. Il modo per definire queste regole è quello di utilizzare sottoprogrammi (soubroutines) autosufficienti [un sottoprogramma autosufficiente definisce dei dati di sua propietà (dati locali) che possono essere usati solo dal sottoprogramma stesso]. L uso di sottoprogrammi di questo tipo, consente di scrivere codice per il sottoprogramma stesso in modo che gli eventi che occorrono al loro interno non provocano alcun effetto collaterale su altre parti del programma. Sviluppando sottoprogrammi autosufficienti bisogna saper solo quello che i sottoprogrammi fanno e non come lo fanno. Il mattone fondamentale di questo tipo di programmazione strutturata è, per il C, la funzione. NA L14 3

4 In C, tutta l attività svolta da un programma viene eseguita per mezzo di funzioni. Tramite le funzioni è possibile scomporre un programma in blocchi più piccoli, ottenendo così un programma più modulare. Il C è un linguaggio di programmazione modulare! Una volta creata e provata una funzione, si può ricorrere ad essa anche in situazioni diverse rispetto a quella in cui era stata creata, con la certezza che eseguirà il compito previsto senza provocare effetti indesiderati sul resto del programma. Le funzioni create in specifici contesti possono essere raggruppate in opportune librerie e poi riutilizzate in contesti defferenti. NA L14 4

5 Tutti i compilatori C possiedono una libreria standard che fornisce le funzioni opportune per le operazioni di uso più comune (es. I/O). In alcuni casi la libreria è contenuta in un unico grosso file; altre volte, invece, è suddivisa in più files di piccole dimensioni in modo da risultare più efficiente e pratico all utilizzo. Quando nel codice sorgente viene chiamata una funzione che non fà parte del programma scritto, il compilatore prende nota del suo nome e in seguito, mediante il linker, và a cercare nella libreria inclusa, in testa al codice del programma, la funzione indicata e la aggiunge al codice stesso. Le funzioni sono per il C blocchi fondamentali in cui si svolge tutta l attività del programma. Un programma in C può essere formata da diversi blocchi (funzioni) e vi è sempre un blocco fondamentale [main] che governa la gestione di tutti gli altri blocchi. NA L14 5

6 Formato generale di una funzione: specificatore_di tipo nome_funzione(lista_argomenti) dichiarazione argomenti { corpo della funzione } specificatore_di tipo: dichiara il tipo di dato che la funzione restituisce attraverso una apposita istruzione (return) e che può essere un qualsiasi tipo di dato valido (bit1, int8, int16,...). Se non si specifica nessun tipo particolare, la funzione restituisce un intero se invece lo specificatore indicato è void (estensione ANSI C non necessariamente disponibile su tutti i compilatori) la funzione non restutuisce alcun valore. nome_funzione: il nome della funzione in oggetto, deve essere appropriato e attinente al compito che la funzione svolge NA L14 6

7 Formato generale di una funzione: specificatore_di tipo nome_funzione(lista_argomenti) dichiarazione argomenti { corpo della funzione } Lista_argomenti: è una lista di nomi di variabili separati da virgola che ricevono i nomi degli argomenti quando la funzione viene chiamata. E possibile che non esista una lista argomenti, cioè la lista è vuota. dichiarazione argomenti: specifica il tipo degli argomenti che compaiono nella lista. corpo della funzione: blocchi di codice compresi tra le due parentesi graffe Int16 quadrato_numero(x) //La funzione quadrato_numero ritorna un dato di tipo int16 Int8 x; //Il parametro (argomento) è di tipo int8 Int16 y; //Variabile locale, conterrà il valore riportato alla funzione chiamante { //Inizio Corpo della funzione y = (x*x); //Calcola il quadrato del numero return(y); //Ritorna il valore alla funzione chiamante } //Fine Corpo della funzione NA L14 7

8 Ritorno da una funzione Ci sono due modi per concludere l esecuzione di una funzione ed effettuare il ritorno al programma chiamante. Il primo modo è quello che si realizza quando nel codice si incontra la fine delle istruzioni della funzione, che corrisponde alla parentesi graffa conclusiva (la parentesi graffa non appare nel codice oggetto è presente solo nel codice sorgente). // --- Beep Buzzer void beep(void) //La funzione beep non ritorna nessun valore e non riceve nessun argomento { //Inizio corpo della funzione output_high(pin_d2); //Pin_D2 livello alto delay_ms(50); //Attendi 50 ms output_low(pin_d2); //PIN_D2 livello basso } //Fine corpo della funzione NA L14 8

9 Ritorno da una funzione Ci sono due modi per concludere l esecuzione di una funzione ed effettuare il ritorno al programma chiamante. Il secondo modo è attraverso la istruzione return; questa istruzione consente due possibilità: 1) la prima è quella di forzare la fine immediata della funzione nella riga di codice in cui l istruzione si trova, ritornando al programma chiamante nel momento in cui l istruzione si incontra; 2) la seconda è quella di restituire un valore al programma chiamante. Int16 quadrato_numero(x) //La funzione quadrato_numero ritorna un dato di tipo int16 Int8 x; //Il parametro (argomento) è di tipo int8 Int16 y; //Variabile locale, conterrà il valore riportato alla funzione chiamante { //Inizio Corpo della funzione y = (x*x); //Calcola il quadrato del numero if ( y > 100) { //Se il risultato supera 100 beep(); //Beep di avviso return (0) //Ritorna il valore 0 alla funzione chiamante Fine esecuzione } return(y); //Normalmente (risultato minore 100) ritorna il valore alla funzione chiamante } //Fine Corpo della funzione NA L14 9

10 Valori restituiti da una funzione Tutte le funzioni, eccetto quelle dichiarate di tipo void (estensione proposta dallo standard ANSI non necessariamente presente su tutti i compilatori), restituiscono un valore che può essere specificato esplicitamente nella istruzione return; se non si usa l istruzione return la funzione restituisce il valore 0. Un modo corretto per la chiamata di una funzione All interno della funzione main viene chiamata la funzione quad(t) e il valore restituito dalla funzione viene assegnato alla variabile y1 Nella fase di chiamata di una funzione la stessa deve apparire sul lato destro della assegnazione, mai sul lato sinistro Int16 quad(x) //La funzione quad è di tipo int16 (ritorna un valore a 16 bit) int8 x; //dichiarazione del parametro formale int16 y; //Variabile locale { //Inizio corpo della funzione y= x*x; //Calcolo quadrato Il valore di x viene modificato return(y); //Ritorna il valore calcolato } //Fine corpo della funzione /* La funzione main non ritorna nessun valore (tipo Void) e non presenta alcun argomento_funzione (void per argomenti_funzione) */ Void main(void) { //Dichiarazione funzione main int8 t=10; //Variabile locale 8 bit int16 y1; //Variabile locale 16 bit y1 = quad(t) //A y1 viene assegnato il valore che ritorna la funzione quad // quad(t) = y1; Modo scorretto per la chiamata di una funzione } /*Si noti che alla funzione quad viene passato il parametro attuale t=10 e una copia del valore passato viene assegnato al parametro formale x in quad */ NA L14 10

11 Regole di visibilità delle funzioni Le regole di visibilità di un linguaggio sono le regole che decidono se una parte di codice ha accesso a un altra parte di codice o a dei dati. In C, il codice di ogni funzione è una entità privata, cui non è possibile accedere da altre parti di codice (ad es. Con una istruzione goto tipico del basic,...) se non attraverso una chiamata al nome della funzione. Due funzioni non possono interagire direttamente perchè hanno visibilità di ambienti diversi. Le variabili definite all interno di una funzione vengono dette variabili locali. Una variabile locale comincia ad esistere quando inizia l esecuzione della funzione che la definisce e viene distrutta al termine della funzione stessa. Le variabili locali non mantengono il loro valore tra una chiamata di funzione e la successiva, vengono sempre riinizializzate (ricreate) ad ogni inizio della funzione. Questa regola viene infranta se si utilizza lo specificatore static nella dichiarazione della variabile (es. static int8 k); in tal caso il compilatore tratta la variabile come se fosse globale cioè la variabile non viene distrutta quando termina la funzione ma mantiene il suo valore e alla successiva chiamata della funzione la variabile non viene riinizializzata. In termini di visibilità questa variabile è comunque visibile solo all interno della funzione di utilizzo. In C tutte le funzioni hanno lo stesso livello di visibilità cioè non è possibile definire una funzione all interno di un altra funzione. NA L14 11

12 Parametri delle funzioni Le funzioni che accettano argomenti devono predisporre un insieme di variabili che ricevono i valori passati; tali variabili sono dette parametri formali della funzione e si comportano come qualsiasi altra variabile locale. Nel seguente esempio la funzione sum calcola e stampa su display la somma di due numeri, questa funzione non restituisce alcun valore. //Calcola e mostra la somma di 2 numeri Void sum(a,b) //La funzione non restituisce alcun valore Int8 a, int8 b; //La funzione riceve due parametri formali(a e b) di tipo int8 { lcd_gotoxy(1,1); printf(lcd_putc, %d, a+b); //Mostra la somma dei valori passati } //Esempio di come la funzione viene chiamata Void main(void) { sum(5,33); //Mostra la somma di 5 e 33 (5 e 33 Parametri attuali) sum(10,56); //Mostra la somma di 10 e 56 (10 e 56 Parametri attuali). } NA L14 12

13 Parametri delle funzioni Le funzioni che accettano argomenti devono predisporre un insieme di variabili che ricevono i valori passati; tali variabili sono dette parametri formali della funzione e si comportano come qualsiasi altra variabile locale. Un modo più sintetico ma altrettanto semplice, comprensibile e valido per la dichiarazione degli argomenti di una funzione: i parametri e il tipo vengono dichiarati entro le parentesi tonde della funzione. E importante che il tipo di parametri formali coincida con quello dei parametri attuali al momento della chiamata. //Calcola e mostra la somma di 2 numeri Void sum(int8 a, int8 b) { } //La funzione non restituisce alcun valore e //riceve due parametri formali(a e b) di tipo int8 lcd_gotoxy(1,1); printf(lcd_putc, %d, a+b); //Mostra la somma dei valori passati //Esempio di come la funzione viene chiamata Void main(void) { sum(5,33); //Mostra la somma di 5 e 33 (5 e 33 Parametri attuali) sum(10,56); //Mostra la somma di 10 e 56 (10 e 56 Parametri attuali). } NA L14 13

14 Passaggio dei parametri per valore Durante la chiamata di una funzione nel passaggio dei parametri per valore, il valore del parametro attuale viene ricopiato nella variabile che costituisce il parametro formale, modifiche eseguite sul parametro formale non ha effetto sul parametro attuale (il parametro formale è una variabile locale). //Calcola e mostra il quadrato di un numero int16 sum(int8 t) { //La funzione restituisce un valore int16 t = t+2; return(t*t); //ritorna il quadrato del valore t+2 } //Esempio di come la funzione viene chiamata Void main(void) { unsigned int16 y1, y2; int8 t=8; y1=quad(t); y2=quad(t+2); lcd_gotoxy(1,13); printf(lcd_putc %lu %lu, y1, y2); //Mostra i valori: } NA L14 14

15 Dichiarazione delle funzioni prima del loro utilizzo Tutte le funzioni devono essere dichiarate prima del loro utilizzo! Negli esempi precedenti tutte le funzioni con i rispettivi corpi sono state implementate prima del loro utilizzo da parte della funzione chiamante. //La funzione sum viene implementata prima del suo utilizzo da parte della //funzione principale main //Calcola e mostra il quadrato di un numero int16 sum(int8 t) { //La funzione restituisce un valore int16 t = t+2; return(t*t); //ritorna il quadrato del valore t+2 } //Esempio di come la funzione viene chiamata Void main(void) { unsigned int16 y1, y2; int8 t=8; y1=quad(t); y2=quad(t+2); lcd_gotoxy(1,13); printf(lcd_putc %lu %lu, y1, y2); //Mostra i valori: } NA L14 15

16 Dichiarazione delle funzioni prima del loro utilizzo Tutte le funzioni devono essere dichiarate prima del loro utilizzo! Vi è un altra possibilita per dichiarare una funzione prima del suo utilizzo anche se la funzione viene implementata dopo la funzione chiamante, la dichiarazione del prototipo di funzione prima della funzione chiamante //Dichiarazione del prototipo della funzione Int16 sum(int8 ); //Dichiarazione del prototipo della funzione prima del suo utilizzo //Esempio di come la funzione viene chiamata Void main(void) { unsigned int16 y1, y2; int8 t=8; y1=quad(t); y2=quad(t+2); lcd_gotoxy(1,13); printf(lcd_putc %lu %lu, y1, y2); //Mostra i valori: } //La funzione sum viene implementata dopo il suo utilizzo da parte della funzione principale main //Calcola e mostra il quadrato di un numero int16 sum(int8 t) { //La funzione restituisce un valore int16 t = t+2; return(t*t); //ritorna il quadrato del valore t+2 } NA L14 16

17 un semplice esempio Dopo questi semplici richiami introduttivi sulle funzioni applichiamo quanto introdotto riesaminando degli esempi svolti e risolvendoli con l ausilio delle funzioni. Un semplice esempio già visto alla lezione 13 a cui rimandiamo per tutte le considerazioni Si vogliono visualizzare su display dei semplici elementari messaggi di benvenuto attivando contemporaneamente il led e il Buzzer (Autooscillante) presenti sulla Demo-Board; ricordiamoci che il display è attivato in modalità sola scrittura quindi, i PIN RD3 e RD2 vengono utilizzati per pilotare il Led e il Buzzer on board (ricordarsi di configurare opportunamente i relativi jumpers). Sviluppare l esercizio seguendo le semplici fasi già viste nella lezione 13; non ci soffermeremo nella analisi e progettazione bensì vedremo una soluzione leggermente diversa con l ausilio dei semplici richiami introduttivi sulle funzioni appena viste. NA L14 17

18 un semplice esempio Lo schema elettrico NA L14 18

19 un semplice esempio Il codice sorgente Main function Dall analisi del codice si evince che il programma è molto più fruibile e può essere compreso agevolmente Nella sezione iniziale del programma vengono inclusi i file di intestazione (.h) per le definizioni hardware del nostro controllore (CCS Pic-Wizard Tools) e i files di libreria per i driver del display LCD e della demo-board anxapic4. Ricordiamo che i files di libreria non sono altro che una raccolta di funzioni indispensabili per il funzionamento del programma che possono essere inclusi e richiamati all occorrenza al momento del loro utilizzo. I files di libreria vengono inclusi nella parte iniziale del programma in quanto in C le funzioni devono essere implementate (o dichiarate mediante opportuni prototipi di funzione ) prima del loro utilizzo. In na_iodevice.c sono raccolte le funzioni personalizzate per pilotare opportunamente i device hardware della nostra demo-board (Buzzer, Led, presentazioni su display, I2C, 1-Wire, etc ). In lcd_4x20.c sono raccolte le funzioni fondamentali per pilotare il text-display LCD 4x20 con controller Hitachi HD44780 compatibile; le funzioni presenti sono una rielaborazione del file originale proposto dalla CCS Inc. opportunamente riadattato alle nostre esigenze hardware. NA L14 19

20 un semplice esempio Il codice sorgente Main function Pic Wizard Tool Messaggio di avviso su display Messaggio presentazione su display Alla funzione che scrive il messaggio di avviso su display viene passato come parametro attuale il valore della variabile i NA L14 20

21 un semplice esempio Il codice sorgente na_iodevice library-function - 1 Si notino i due define relativi al Led e al Buzzer di sistema NA L14 21

22 un semplice esempio Il codice sorgente na_iodevice library-function - 2 NA L14 22

23 un semplice esempio Il codice sorgente na_iodevice library-function - 3 NA L14 23

24 un semplice esempio Il codice sorgente na_iodevice library-function - 4 Messaggio di avviso con visualizzazione del numero di volte che il messaggio è stato visualizzato. Il parametro formale k contiene questo numero passato dalla funzione chiamante. NA L14 24

25 un semplice esempio: Read 2 Channel ADC Un semplice esempio già visto alla lezione 13 a cui rimandiamo per tutte le considerazioni Due trimmer, sono collegati tra 5 V e GND sui pin estremi mentre il terzo pin (centrale) è collegato con RA0 per uno e RA1 per l altro; le tensioni in ingresso dei Pin RA0 e RA1 possono variare tra 0 e 5 V quando il perno centrale del trimmer viene ruotato tra 0 e 270. Leggere, convertire e visualizzare su display LCD il valore delle tensioni ai capi dei trimmer [Input pin RA0 e RA1]; se il valore letto in ingresso a RA0 oppure su RA1 supera i 4 volt visualizzare un opportuno messaggio di avviso. Questo esempio è stato gia sviluppato nella lezione 13 e lì rimandiamo per tutte le considerazioni del caso; vogliamo invece qui presentare il codice sorgente con le novità introdotte in questa lezione, si noti come il programma è molto più leggibile e comprensibile rispetto al caso precedente. Non vengono riportati né le analisi progettuali e neanche i relativi flow-chart, riportiamo solo il flow-chart del main program per evidenziare la differenza con quanto visto nella lezione 13. I commenti sul codice sono ridotti al minimo, pensiamo che a questo punto si sia acquisita la autonomia necessaria per comprendere quanto proposto. NA L14 25

26 un semplice esempio: Read 2 Channel ADC Lo schema elettrico NA L14 26

27 un semplice esempio: Read 2 Channel ADC Il codice sorgente Main function NA L14 27

28 un semplice esempio: Read 2 Channel ADC Il codice sorgente na_iodevice library-function - 1 File di libreria na_iodevice.c: la funzione beep NA L14 28

29 un semplice esempio: Read 2 Channel ADC Il codice sorgente na_iodevice library-function - 2 File di libreria na_iodevice.c: la funzione led Buzzer NA L14 29

30 un semplice esempio: Read 2 Channel ADC Il codice sorgente na_iodevice library-function - 3 File di libreria na_iodevice.c: la funzione presentation NA L14 30

31 un semplice esempio: Read 2 Channel ADC Il codice sorgente na_iodevice library-function - 4 File di libreria na_iodevice.c: la funzione testata NA L14 31

32 un semplice esempio: Read 2 Channel ADC Il codice sorgente na_iodevice library-function - 5 File di libreria na_iodevice.c: la funzione avviso se valore supera i 4 volt NA L14 32

33 un semplice esempio: Read 2 Channel ADC Il codice sorgente na_iodevice library-function - 6 File di libreria na_iodevice.c: la funzione leggi valore su canale 1 ADC, calcola e verifica ampiezza NA L14 33

34 un semplice esempio: Read 2 Channel ADC Il codice sorgente na_iodevice library-function - 7 File di libreria na_iodevice.c: la funzione leggi valore su canale 2 ADC, calcola e verifica ampiezza NA L14 34

35 In questa lezione abbiamo richiamato, in modo elementare e solo parzialmente, uno dei blocchi fondamentali per la costruzione modulare di un programma in C: la funzione; abbiamo visto che è fondamentale (indispensabile!) per la costruzione di un programma strutturato che può essere tendenzialmente privo di errori e facilmente correggibile. Il C permette di scrivere funzioni che possono essere richiamati in modo semplice ogni qual volta se ne presenti la necessità, in questo modo l uso delle funzioni semplifica i programmi. Le funzioni personali o quelle scritte da altri, possono essere riunite in una biblioteca (librerie) accessibile a più persone, che pertanto possono usarle senza doversi preoccupare di conoscere i dettagli implementativi. Consiglio a questo punto di rivedere quanto esposto sinora sul linguaggio C, in particolare ritornare sulla lezione 10 e riprendere tutta la presentazione introduttiva sul linguaggio C; cosiglio anche di riprendere tutti gli esempi sin qui svolti o proposti e riformularli in modo strutturato con l ausilio delle funzioni. NA L14 35

36 Un esercizio propsto Un pulsante, normalmente aperto, viene collegato ai capi del PIN RB1 del nostro micro (ricordarsi la condizione di collegamento pul-up attivo), visualizzare su display la scritta Pulsante close quando viene premuto il tasto e visualizzare anche il numero di volte in cui è stato premuto sino all istante attuale. Sviluppare l esercizio seguendo le semplici fasi di sviluppo: 1. Analisi del problema, schematizzazione a blocchi (se necessario), con schema elettrico finale operativo 2. Impostazione del Software e relativo Flow Chart 3. Codice sorgente in linguaggio C [CCS Pic PCWH Compilator] 4. Simulazione in ambiente Proteus VSM interfaccia ISIS 5. Presentazione del lavoro finale su demo-board opportuna (Gp_Mbus. AnxaPic4) 6. Opportuna documentazione conclusiva NA L14 36

Corso introduttivo sui microcontrollori. Un sistema tastierino a matrice 4x4 da collegare alla nostra demoboard AnxaPic.

Corso introduttivo sui microcontrollori. Un sistema tastierino a matrice 4x4 da collegare alla nostra demoboard AnxaPic. Corso introduttivo sui microcontrollori Un sistema tastierino a matrice 4x4 da collegare alla nostra demoboard AnxaPic Nicola Amoroso namoroso@mrscuole.net na_16f88_key4x4 1 Colleghiamo un tastierino a

Dettagli

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura: Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata

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

Corso introduttivo sui microcontrollori. Nicola Amoroso

Corso introduttivo sui microcontrollori. Nicola Amoroso Corso introduttivo sui microcontrollori Aggiungiamo un tastierino 4x4 a matrice alla nostra demoboard AnxaPic Nicola Amoroso namoroso@mrscuole.net na_anxapic_key4x4 1 Il sistema tastierino Per l'immissione

Dettagli

Corso introduttivo sui microcontrollori A. S Programmare i PIC in linguaggio C. Il CCS PCWH Pic-C Compiler

Corso introduttivo sui microcontrollori A. S Programmare i PIC in linguaggio C. Il CCS PCWH Pic-C Compiler Corso introduttivo sui microcontrollori A. S. 2007 2008 Il CCS PCWH Pic-C Compiler Il nostro primo esercizio: Blinking Led Nicola Amoroso namoroso@mrscuole.net NA L11 1 30 17 16 1 36 23 24 25 26 27 20

Dettagli

Corso introduttivo sui microcontrollori A. S

Corso introduttivo sui microcontrollori A. S Corso introduttivo sui microcontrollori A. S. 2007 2008 Programmare i PIC in C Demo-Board AnxaPic: il display LCD 4x20 PIC16F877: uso dell ADC integrato Nicola Amoroso namoroso@mrscuole.net NA L13 1 Demo-Board

Dettagli

C: primi elementi. Lezione 4

C: primi elementi. Lezione 4 C: primi elementi Lezione 4 Evoluzione del BCPL (1967) e B (1970), entrambi typeless Sviluppato da Dennis Ritchie nel 1972 ed implementato per il PDP-11 Usato per lo sviluppo del sistema operativo UNIX

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

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

1 PANORAMICA SUL LINGUAGGIO C

1 PANORAMICA SUL LINGUAGGIO C 1 PANORAMICA SUL LINGUAGGIO C 1.1 Le origini del linguaggio C Il C fu inventato e implementato da Dennis Ritchie negli anni 70 su una macchina che impiegava il sistema operativo Unix. Il C è il risultato

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

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

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

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

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

Dettagli

Introduzione alla programmazione A. Ferrari

Introduzione alla programmazione A. Ferrari Introduzione alla programmazione A. Ferrari Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi ad

Dettagli

Introduzione al linguaggio C

Introduzione al linguaggio C Linguaggio C Introduzione al linguaggio C Sistemi di sviluppo integrati Noti anche come IDE: Integrated Development Environment Un pacchetto software che permette di scrivere, preprocessare, compilare,

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

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

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

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

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione 1 C-Introduzione.tex: Versione 1.0, aa 2005-2006 Linguaggi di programmazione (1) Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili, direttamente

Dettagli

Modularizzazione del software

Modularizzazione del software Modularizzazione del software Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica

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

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

Il linguaggio C funzioni e puntatori

Il linguaggio C funzioni e puntatori Salvatore Cuomo Il linguaggio C funzioni e puntatori Lezione n. 8 Parole chiave: Linguaggio C, procedure, funzioni. Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio Email

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

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

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

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

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

Variabili e Funzioni. Informatica 1 / 19

Variabili e Funzioni. Informatica 1 / 19 Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:

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

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

La Programmazione. Cos è la programmazione? Concetti preliminari

La Programmazione. Cos è la programmazione? Concetti preliminari La Programmazione Cos è la programmazione? Concetti preliminari 1 Sommario La programmazione, questa sconosciuta Programmiamo Macchine Astratte Linguaggi di basso e alto livello e loro implementazione

Dettagli

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

A.A. 2018/2019. Fondamenti di Programmazione in MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

A.A. 2018/2019. Fondamenti di Programmazione in MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante A.A. 2018/2019 Fondamenti di Programmazione in MATLAB Strutturazione del Codice Sorgente Docente Prof. Raffaele Pizzolante FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE Fondamenti di Programmazione in MATLAB:

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

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

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

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli

STRUTTURA DI UN PROGRAMMA!

STRUTTURA DI UN PROGRAMMA! STRUTTURA DI UN PROGRAMMA! File prova1.c Area globale #include ... int m; int f(int); int g(int x){.../*ambiente locale a g*/} int main(){...} int f(int x){.../*ambiente locale a f*/} Direttive

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

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Corso sul linguaggio C

Corso sul linguaggio C Corso sul linguaggio C Modulo 1 1.1 Istruzioni semplici 1 Prerequisiti Saper progettare algoritmi Saper descrivere algoritmi (NLS, ddf) Conoscere il concetto di espressione 2 1 Introduzione In questa lezione

Dettagli

Introduzione alle Procedure

Introduzione alle Procedure Introduzione alle Procedure Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Organizzazione del programma Schema di un unità di programma Fortran 90 PROGRAM, FUNCTION, SUBROUTINE, MODULE nome

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

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

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

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

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa

Dettagli

Variabili. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Variabili. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi Corso di Laboratorio di Informatica Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale

Dettagli

Lo scopo. Il primo esperimento. Soluzione informale. Le variabili

Lo scopo. Il primo esperimento. Soluzione informale. Le variabili Lo scopo 2 Il primo esperimento Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video Ver. 2.4

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

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Dettagli

Problemi complessi devono essere decomposti via via in problemi sempre più semplici per poter essere risolti

Problemi complessi devono essere decomposti via via in problemi sempre più semplici per poter essere risolti Funzioni nella programmazione Una funzione è una sequenza di istruzioni cui viene dato un nome Questo permette di riutilizzare tale sequenza di istruzioni in più parti del proprio programma (o in altri

Dettagli

F. Tortorella Corso di Elementi di Informatica Università degli Studi di Cassino

F. Tortorella Corso di Elementi di Informatica Università degli Studi di Cassino Sottoprogrammi Un sottoprogramma è una particolare unità di codice che non può essere eseguita autonomamente, ma soltanto su richiesta del programma principale o di un altro sottoprogramma. Un sottoprogramma

Dettagli

Matlab: Script e Funzioni

Matlab: Script e Funzioni Matlab: Script e Funzioni Informatica B Script Cos è uno script (m-file) q Uno script è un file di testo contenente una sequenza di comandi MATLAB non deve contenere caratteri di formattazione (solo testo

Dettagli

Corso di Architettura (Prof. Scarano) 10/05/2002

Corso di Architettura (Prof. Scarano) 10/05/2002 Lezione 0 Il Set di Istruzioni (6) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Le procedure Prima della chiamata di una procedura In ogni linguaggio di

Dettagli

Il linguaggio di programmazione Python

Il linguaggio di programmazione Python Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Elementi di Informatica

Elementi di Informatica Corso di Laurea triennale in Ingegneria Chimica in condivisione con Corso di Laurea triennale in Ingegneria Navale e Scienze dei Materiali Elementi di Informatica A.A. 2016/17 prof. Mario Barbareschi Sottoprogrammi

Dettagli

Laboratorio di linguaggi

Laboratorio di linguaggi lezioni: lunedi 9-11, aula A al corso Laboratorio di linguaggi laboratorio in tre turni: martedi 11-13 () giovedi 9-11 () venerdi 11-13 (Andrea Grosso) laboratorio: iscriversi all esame Corso A LABORATORIO

Dettagli

Informazioni Utili. Strumenti Utilizzati. Creazione e gestione di un progetto. Fondamenti di Informatica L-B (L-Z) Esercitazioni

Informazioni Utili. Strumenti Utilizzati. Creazione e gestione di un progetto. Fondamenti di Informatica L-B (L-Z) Esercitazioni Informazioni Utili Fondamenti di Informatica L-B (L-Z) Esercitazioni A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Orario delle Esercitazioni Lunedì 14-16 Gruppo L Q Martedì 16-18

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

Informazioni Utili. Fondamenti di Informatica L-B (L-Z) Esercitazioni. A.A. 2005/06 Tutor: Loris Cancellieri

Informazioni Utili. Fondamenti di Informatica L-B (L-Z) Esercitazioni. A.A. 2005/06 Tutor: Loris Cancellieri Fondamenti di Informatica L-B (L-Z) Esercitazioni A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Informazioni Utili Orario delle Esercitazioni Lunedì 14-16 Gruppo L Q Martedì 16-18

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

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

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

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI

Dettagli

Funzioni e moduli. Andrea Passerini Informatica. funzioni e moduli

Funzioni e moduli. Andrea Passerini Informatica. funzioni e moduli Funzioni e moduli Andrea Passerini passerini@disi.unitn.it Informatica Funzioni nella programmazione Descrizione Una funzione è una sequenza di istruzioni cui viene dato un nome Questo permette di riutilizzare

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

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

Fondamenti di Informatica. Ingegneria elettronica

Fondamenti di Informatica. Ingegneria elettronica Fondamenti di Informatica Ingegneria elettronica Prima esercitazione Cecilia Catalano Sistema Operativo Il S.O. è costituito da un insieme di programmi che permettono di utilizzare e gestire tutte le risorse

Dettagli

Primo programma in C

Primo programma in C Primo programma in C Struttura minima di un file C Applicazioni C in modo console Struttura del programma Commenti Direttive #include Definizione di variabili Corpo del main 2 Struttura minima di un file

Dettagli

Consideriamo ora il seguente programma organizzato su 3 file:

Consideriamo ora il seguente programma organizzato su 3 file: Consideriamo ora il seguente programma organizzato su 3 file: /* prog3.h */ #include #define LIRE_PER_EURO (1936.27) int geteuro(void); void putlire(int, double); /* prog3.c */ #include "prog3.h"

Dettagli

PIEDINO NOME DESCRIZIONE

PIEDINO NOME DESCRIZIONE LCD ALFANUMERICO Il display LCD afanumerico è un dispositivo che consente di visualizzare su una matrice di righe e colonne uno o più caratteri contenenti lettere, numeri simboli. Ogni carattere è composto

Dettagli

Corso di PHP. Prerequisiti. 5 Funzioni

Corso di PHP. Prerequisiti. 5 Funzioni Corso di PHP 5 Funzioni 1 Prerequisiti Programmazione elementare in Php Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni Uso di parametri 2 1 Introduzione

Dettagli

Calcolatori Elettronici Lezione A4 Programmazione a Moduli

Calcolatori Elettronici Lezione A4 Programmazione a Moduli Calcolatori Elettronici Lezione A4 Programmazione a Moduli Ing. Gestionale e delle Telecomunicazioni A.A. 2007/08 Gabriele Cecchetti Sommario Programmazione a moduli Programmi con linguaggi misti Tempo

Dettagli

Corso introduttivo sui microcontrollori A. S. 2007 2008. Programmare i PIC in C. Timers Interrupts Prerequisiti: Lezione7 Lezione8.

Corso introduttivo sui microcontrollori A. S. 2007 2008. Programmare i PIC in C. Timers Interrupts Prerequisiti: Lezione7 Lezione8. Corso introduttivo sui microcontrollori A. S. 2007 2008 Programmare i PIC in C Prerequisiti: Lezione7 Lezione8 Nicola Amoroso namoroso@mrscuole.net NA L15 1 Timers - Interrupts I timers e gli Interrupts

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

FUNZIONI. Ivan Lanese

FUNZIONI. Ivan Lanese FUNZIONI Ivan Lanese Argomenti Tecniche di debugging Funzioni Di solito i programmi non funzionano int main() { int n, prod = 1; do { cout > n; prod = prod

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

Variabili. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Variabili. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto

Dettagli

Introduzione alla programmazione. Alice Pavarani

Introduzione alla programmazione. Alice Pavarani Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello

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

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

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

uguale livello gerarchico non vi sono funzioni più importanti di altre main main FUNZIONI in C/C++ Un programma C++ è un insieme di funzioni indipendenti e di uguale livello gerarchico (nel senso che non vi sono funzioni più importanti di altre o dotate, in qualche modo, di diritti

Dettagli

Linguaggio C: introduzione

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

Dettagli

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

La formalizzazione dell informazione: Dati e Diagrammi di Flusso La formalizzazione dell informazione: Dati e Diagrammi di Flusso Codifica degli algoritmi Algoritmo formulato per essere comunicato tra esseri umani chiaro, sintetico e intuitivo codificato in linguaggi

Dettagli

Introduzione al C. Informatica Generale - Introduzione al C Versione 1.0, aa p.1/17

Introduzione al C. Informatica Generale - Introduzione al C Versione 1.0, aa p.1/17 Introduzione al C Informatica Generale - Introduzione al C Versione 1.0, aa 2005-2006 p.1/17 Linguaggi di programmazione Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili,

Dettagli

Definizione di classi. Walter Didimo

Definizione di classi. Walter Didimo Definizione di classi Walter Didimo Definizione di classi Fino ad ora abbiamo imparato a: creare oggetti da classi già pronte usare gli oggetti creati, invocando metodi la creazione e l uso di oggetti

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

Programmazione M.A. Alberti. Comunicazione digitale AA 2009/ Classi in Java 1. Le classi in Java. Oggetti. Classi. Classi. Visibilità dei dati

Programmazione M.A. Alberti. Comunicazione digitale AA 2009/ Classi in Java 1. Le classi in Java. Oggetti. Classi. Classi. Visibilità dei dati Oggetti Le classi in Java Corso di laurea in Un oggetto è definito dal suo stato - descrive le sue caratteristiche comportamento - quello che può fare Ad esempio: il modello di una moneta Una moneta può

Dettagli

Lezione 8. Sottoprogrammi

Lezione 8. Sottoprogrammi Lezione 8 Il linguaggio C: Sottoprogrammi e Funzioni I puntatori Input/Output su file Sottoprogrammi Per risolvere un problema si può scomporlo in problemi più semplici e comporre le loro soluzioni in

Dettagli

Gestione della configurazione Input/Output PLC Cosa c'è di nuovo?

Gestione della configurazione Input/Output PLC Cosa c'è di nuovo? Gestione della configurazione Input/Output PLC Cosa c'è di nuovo? Indice I. Avviare il Configuration Manager... 3 II. Nuova interfaccia dell'utente... 3 III. Importazione di nuovi formati di configurazione...

Dettagli

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

Informatica (A-K) 12. Linguaggio C -3 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

Dettagli

Il linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese

Il linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese 03-10-2003 Il linguaggio C Linguaggio general-purpose Il linguaggio C Creato nel 1972 nei Bell Labs da Dennis Ritchie su PDP11 Usato per il Sistema Operativo Unix da Ken Thompson Negli anni 80 nasce ANSI

Dettagli