Linguaggio C - Funzioni
|
|
- Donata Roberti
- 8 anni fa
- Visualizzazioni
Transcript
1 Linguaggio C - Funzioni Funzioni: Il linguaggio C è di tipo procedurale; ogni programma viene suddiviso in sottoprogrammi, ognuno dei quali svolge un determinato compito. I sottoprogrammi si usano anche per evitare di replicare porzioni di codice sorgente. Questo favorisce anche la riusabilità di codice esistente, agevolando il compito del programmatore. In C i sottoprogrammi si chiamano funzioni. Ogni funzione prende in ingresso un insieme di parametri e restituisce un valore; possiamo vederla come una scatola nera (black-box) a determinati valori in input fa corrispondere un valore di output. Basti pensare alle funzioni di libreria; es. abs, strlen, ecc. double cubo(double valore); // Dichiarazione prototipo della funzione int main () { double a, b; printf("inserisci un numero: "); scanf("%lf", &a); b = cubo(a); printf("il cubo di a = %f è: %f\n", a, b); double cubo(double valore) { // Definizione della funzione double temp = valore * valore * valore; return temp;
2 Si noti che come per le variabili, anche le funzioni devono essere dichiarate prima dell uso. Dichiarazione delle funzioni: Con la dichiarazione definiamo il prototipo della funzione: il nome con cui verrà chiamata, i parametri d ingresso e il valore di ritorno. Sintassi: equiv.: tipo_ritorno nome_funzione (tipopar_1 nome_1,, tipopar_n nome_n); tipo_ritorno nome_funzione (tipopar_1,, tipopar_n); Le due notazione sono equivalenti, visto che a questo livello stabiliamo soltanto l interfaccia verso l esterno; quello che conta è conoscere il numero e il tipo dei parametri. Si noti che la definizione della funzione è inserita dopo il main, ma potrebbe stare anche in altri file sorgenti. Nel caso specifico, se la funzione viene definita prima del main, la dichiarazione non è necessaria. Definizione delle funzioni (implementazione): In questa fase si specifica che cosa fa la funzione e in che modo. Sintassi generica: tipo_ritorno nome_funzione(tipopar_1 par_1, tipopar_n par_n) { dichiarazione di variabili locali sequenza istruzioni return valore; A questo livello, dobbiamo obbligatoriamente specificare il tipo e il nome di ogni parametro d ingresso; questi sono detti : parametri formali.
3 Nota: In C non esiste il polimorfismo; ovvero non è possibile definire due funzioni con lo stesso nome anche se dovessero avere parametri diversi. Es.: double cubo(float) double cubo (int) // errore! Non è possibile definire una funzione all interno di un altra funzione. return: Ad ogni funzione è associato un tipo (fondamentale o derivato) che caratterizza il valore di ritorno; restituito al programma chiamante attraverso l istruzione return. Sintassi: return espressione; o return (espressione); In una funzione possiamo avere più return; termina quando se ne esegue uno: Esistono funzione che non necessitano di valore di ritorno: in tal caso utilizzare void come tipo_ritorno. int pari (int a) { if (a%2 == 0) return 1; else Ad esempio si usa per funzioni che stampano a video messaggi di errore. Es.: void print_error(int n); // se n=0 print warning. ; n=1 print errore ; ecc Esercizi: - Funzione che restituisca il massimo tra due numeri che gli vengono passati. - Funzione che stampi a video la codifica binaria di un numero n (parametro input). - Funzione chiamata da un altra funzione (passaggio dei parametri): es. conversione in binario dei numeri da 0 a n.
4 Chiamata di una funzione: La chiamata di una funzione si ottiene semplicemente invocando il nome della funzione seguito dalla lista di parametri da passare, rispettando il numero, il tipo e l ordine. float calc_area(float, float, char); int main () { float a, b, h; char t; do { printf("\n"); printf("tipo di poligono: T-triangolo R-rettangolo: "); scanf(" %c", &t); while ((t!= 't') && (t!= 'T') && (t!= 'r') && (t!= 'R')); printf("inserire base e altezza: "); scanf("%f %f", &b, &h); a = calc_area(b,h,t); // chiamata della funzione. printf( L area del poligono è : %f", a); // system("pause"); float calc_area(float base, float altezza, char tipo) { switch (tipo) { case 't': case 'T': return (base*altezza/2); case 'r': case 'R': return (base*altezza); default: printf( errore!!! "); return -1;
5 I parametri che vengono forniti al momento della chiamata sono detti : parametri attuali; poiché contengono i valori d ingresso in quella specifica chiamata di funzione. In questa fase ogni parametro attuale viene assegnato al corrispondente parametro formale. I parametri attuali possono essere variabili, costanti o espressioni purchè rispettino il tipo. Nell esempio precedente: a= calc_area(23.2*2, 45./4, T ); errore: a= calc_area (b, t, h); a=calc_area(b, 12, h, t); Esercizi: - Funzione che trovi i numeri primi tra 1 e n. - Funzione che converta la temperatura da gradi centigradi a Fahrenheit. - Implementare un programma in C, dove il sorgente è presente su più file.c ( es. 1. main, 2. funzione )
6 Passaggio di parametri: Si ricordi che al momento della chiamata di una funzione, i parametri attuali vengono assegnati ai parametri formali. Che cosa accade ai valori dei parametri attuali? Dipende dal tipo di passaggio. In generale i parametri possono essere passati in due modi: Per valore Per riferimento Nel primo caso, i valori dei parametri attuali vengono semplicemente copiati nei parametri formali; tutte le eventuali modifiche apportate dalla funzione non si ripercuotono nei parametri attuali. Nel secondo caso invece, si instaura un collegamento tra i parametri attuali e quelli formali; cosicchè tutte le eventuali modifiche apportate dalla funzione si riflettono nei parametri attuali. Chiamante Chiamante int a Funzione par1 int a Funzione par1 Chiamata di funzione Chiamata di funzione Valore di ritorno Valore di ritorno
7 Nel linguaggio C i parametri vengono passati per valore (o copia). Vedremo più avanti che con l utilizzo dei puntatori si simulerà il passaggio per riferimento. /* Esempio: parametri attuali restano invariati */ void calcola(int); int main() { int a = 5; printf("valore iniziale di a: %d\n", a); calcola(a); printf("nuovo valore a: %d\n", a); void calcola(int a) { a*=5 ; printf("valore di a nella funzione : %d\n",a ); // return; Nota: eseguendo il programma si noterà che il valore della variabile a definita nel main non viene modificato dalla funzione calcola.
8 Per esercizio tenteremo di scrivere una funzione che scambi il contenuto di due variabili: void scambio(int, int); // dichiarazione prototipo della funzione int main () { int a, b; printf("inserisci due numeri interi: "); scanf("%d %d", &a,&b); scambio(a,b); printf("nel main a= %d b= %d", a, b); // risultano non scambiati // system("pause"); void scambio(int a, int b) { // definizione della funzione int appoggio; appoggio=a; a=b; b=appoggio; printf("nella funzione scambio: a= %d b= %d", a, b); // sono scambiati return; Dagli esempi precedenti si nota che ogni identificatore (variabili, funzioni, ecc) ha una determinata visibilità all interno del programma.
9 Visibilità degli identificatori La visibilità (campo di azione) di un identificatore indica quella parte di programma in cui tale identificatore può essere menzionato. In relazione alle variabili abbiamo 3 livelli di visibilità: Ambiente globale Ambiente locale a una funzione Ambiente di blocco Variabili globali: sono visibili nell intero programma. Esempio di visibilità locale, sono le variabili definite all interno di una funzione; in questa categoria rientrano anche i parametri formali. Mentre una variabile definita in un blocco { è menzionabile a partire dalla dichiarazione fino alla fine del blocco, compresi eventuali blocchi interni. Organizzazione tipica di un programma in C: Direttive al preprocessore Dichiarazione di funzioni utente Dichiarazioni variabili globali main() { // istruzioni Definizione di funzioni utente
10 Esempio: variabile definita fuori da tutte le funzioni, main compreso: void stampa_msg(void); int a = 3; // variabile globale int main(){ a+=5; printf("valore iniziale di a: %d\n", a); stampa_msg(); printf("valore finale di a: %d\n", a); // system("pause"); void stampa_msg(void) { a=100; int b=0; // variabile locale printf("funzione di stampa: \n"); return; Domanda: cosa accadrebbe se la dichiarazione di a fosse nel main? Errore in compilazione. Nota : Le variabili globali, costituiscono un modo per passare dei parametri alle funzioni (Fare attenzione!).
11 Mascheramento: Un variabile ridefinita in un blocco interno, nasconde il significato di quella precedente (esterna). E possibile definire variabili con lo stesso nome, ma devono avere un diverso scope void stampa_msg(void); int a = 3; // variabile globale int main() { a+=5; printf("valore iniziale di a: %d\n", a); stampa_msg(); printf("valore finale di a: %d\n", a); // system("pause"); void stampa_msg(void) { int a=100; // ridefinizione di a; // maschera la variabile a definita globalmente printf("valore di a nella funzione: %d\n", a); return;
12 Funzioni: Passaggio di array come parametro: dich.: valore_ritorno nome_funzione( tipo array[] ); L identificatore di un array non è altro che un puntatore che punta a un area di memoria; esso non rappresenta l intero array, ma costituisce un link al suo indirizzo iniziale. Nota: se v è un vettore di n elementi, v coincide con &v[0]. Pertanto, se la dimensione non è nota a livello globale, dobbiamo passare anche la dimensione dell array, altrimenti la funzione non sarebbe in grado di risalire al numero degli elementi che costituiscono l array. Es.: valore_ritorno nome_funzione(tipo array[], int dim_max); Nota: nel caso di array come parametro, il passaggio è per riferimento ( Fare attenzione! ). Passaggio di array multidimensionali: valore_ritorno nome_funzione(tipo array[][dim2_max] [DIMn_MAX]); Nota: dobbiamo specificare le dimensioni successive alla prima! Comunque, il passaggio di array multidimensionali, non è molto agevole, vedremo che è molto più semplice lavorare con i puntatori.
13 /* Funzione: trova max in un array è lo moltiplica per 2 */ void stampa_vettore(int v[], int len); int trova_max(int v[], int len); int main() { int imax=0, x[] = {1,2,3,6,4; stampa_vettore(x, 5); imax = trova_max(x, 5); stampa_vettore(x, 5); int trova_max(int v[], int len) { int i, max=v[0], imax=0; for(i = 0; i < len; i++) if (v[i] > max) {max = v[i]; imax = i; v[imax]*=2; return imax; void stampa_vettore(int v[], int len) { int i; for(i = 0; i < len ; i++) printf("%d ", v[i]); printf("\n"); Esercizio: funzione che riceve un valore ed un vettore; ritorna il numero di occorrenze del valore nel vettore.
14 Classi di memoria La classe di memoria di un identificatore determina la sua permanenze in memoria, il suo campo di azione e il suo collegamento. Il linguaggio C fornisce gli specificatori della classe di memoria. Alcuni esempi: auto, extern e static ; (già accennati in una precedente lezione.) In relazione alla permanenza, possiamo avere una permanenza in memoria automatica oppure una permanenza in memoria statica. Esempio del primo tipo sono le variabili definite in un blocco, esistono finchè il blocco è attivo e vengono distrutte appena si è fuori dal blocco. Anche auto viene impiegato a tale scopo; di default le variabili sono automatiche quindi questo specificatore si usa raramente. Gli identificatori con permanenza in memoria statica, sono quelli che vengono definiti una sola volta (in genere all inizio) ed esistono per tutta la durata del programma. Esempi di questo tipo sono, le variabili globali, i nomi delle funzioni, e le variabili locali dichiarate con lo specificatore static. es.: static int n; All interno di una funzione, una variabile static, mantiene il valore anche dopo l uscita; ovvero alle chiamate successive ricorda il valore assunto alla precedente chiamata.
15 Esempio: void func(); int main() { int i; for (i=0; i<10; ++i) func(); void func() { int local_var=0; // variabile locale static int static_var=0; printf("local_var=%d, static_var=%d \n", local_var, static_var); ++local_var; ++static_var; Output: local_var=0, static_var=0 local_var=0, static_var=1 local_var=0, static_var=2..
16 Nota: una variabile globale, se definita static, la rendiamo privata al programma corrente; ovvero non è visibile da altri file sorgente anche se dovessero usare lo specificatore extern. Il collegamento di un identificatore determina, in un progetto che si compone di diversi file sorgente, la sua visibilità; ovvero se è noto al solo file corrente oppure a tutti gli altri sorgenti. A tale scopo si usa extern. myprog.c void funzione(void); int n; int main() { printf("inserire valore di n: "); scanf ("%d", &n); funzione(); printf("valore finale di n= %d", n); modulo.c extern int n; void funzione(void) { int i = 10; n+=i; // altre istruzioni. Esercizi: - Funzione di conversione caratteri di stringhe: maiuscole in minuscole e viceversa. - Programma calcolatrice: menu di scelta operazione ( +,-,*,/); ogni operazione una funzione.
Funzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliLe funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.
Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni
DettagliGli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori
Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine
DettagliConcetto 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
DettagliIntroduzione 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 P. Tosoratti Introduzione all informatica Materiale
Dettaglivoid funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }
FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo
DettagliLINGUAGGI DI PROGRAMMAZIONE
LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di
DettagliProgrammazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliCorso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
Dettaglipuntatori Lab. Calc. AA 2007/08 1
puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene
DettagliInizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
DettagliGESTIONE INFORMATICA DEI DATI AZIENDALI
GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming
DettagliAllocazione dinamica della memoria - riepilogo
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della
DettagliVariabili e tipi di dato
Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per
DettagliAppunti del corso di Informatica 1. 6 Introduzione al linguaggio C
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)
Dettaglihttp://esamix.labx Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( )
Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di meorie
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C
Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)
DettagliStruttura di un programma Java
Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che
DettagliDall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere
DettagliFondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main
Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli
DettagliStrutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione VI Tatiana Zolo tatiana.zolo@libero.it 1 LE STRUCT Tipo definito dall utente i cui elementi possono essere eterogenei (di tipo diverso). Introduce un nuovo tipo di
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
DettagliCodifica: dal diagramma a blocchi al linguaggio C++
Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU
Dettagli3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
DettagliI puntatori e l allocazione dinamica di memoria
I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in
DettagliLa struttura dati ad albero binario
La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,
DettagliSottoprogrammi: astrazione procedurale
Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j
DettagliGestione dei File in C
Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte
DettagliJava:Struttura di Programma. Fabio Scanu a.s. 2014/2015
Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle
DettagliEsercizi di programmazione in C
Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal
DettagliINFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
DettagliLa selezione binaria
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per
DettagliFondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit5.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio di
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliMATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c
Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni
DettagliI file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
DettagliOggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
DettagliArduino: Programmazione
Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite
DettagliAppunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio
Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio 1-La memoria dinamica La scrittura di un programma (indipendentemente dal linguaggio adottato) deve sempre tener conto
DettagliFONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
DettagliBreve riepilogo della puntata precedente:
Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta
Dettaglihttp://www.programmiamo.altervista.org/c/oop/o...
PROGRAMMIAMO Programma per la gestione di un conto corrente C++ - Costruttore e distruttore C++ Home Contatti Supponiamo ora di voler scrivere un programma a menu per la gestione di un conto corrente bancario.
Dettagli13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti
13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliLaboratorio di Algoritmi e Strutture Dati. Aniello Murano. www.dia.unisa.it/dottorandi/murano. Il linguaggio C II
Laboratorio di Algoritmi e Strutture Dati Aniello Murano www.dia.unisa.it/dottorandi/murano 1 Il linguaggio C II 2 1 Indice (seconda parte) Funzioni Array Puntatori Preprocessore Storage Class Ricorsione
DettagliFUNZIONI. 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
Dettagli4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
DettagliLezione 10: Librerie e compilazione separata
Lezione 10: Librerie e compilazione separata Laboratorio di Elementi di Architettura e Sistemi Operativi 16 Maggio 2012 Calendario della parte finale del corso Mer 23 Maggio ultima lezione sul C Gio 24
DettagliHeader. Unità 9. 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
DettagliAlcune regole di base per scrivere un programma in linguaggio C
Alcune regole di base per scrivere un programma in linguaggio C Un programma il linguaggio C (listato) viene scritto in formato testo ed archiviato in un file: *.c Per scrivere un listato C si utilizza
DettagliFondamenti di Informatica 2
Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice
DettagliFondamenti di Informatica T. Linguaggio C: i puntatori
Linguaggio C: i puntatori Il puntatore E` un tipo di dato scalare, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliMANUALE MOODLE STUDENTI. Accesso al Materiale Didattico
MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...
DettagliAlgebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
DettagliConnessione ad internet
Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità
DettagliIntroduzione al linguaggio C Gli array
Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome
DettagliGian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
DettagliAppello di Informatica B
Politecnico di Milano Facoltà di Ingegneria Industriale 19 febbraio 2004 Appello di Informatica B Prof. Angelo Morzenti - Prof. Vincenzo Martena Cognome e nome: Matricola: Tipo di prova: recupero I prova
DettagliVisibilità dei Membri di una Classe
Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce
DettagliSoluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
Dettagli----------------------------------------------------------------
---------------------------------------------------------------- utilizzo frequente di chiamate a.. A differenza del Pascal, il C permette di operare con assegnamenti e confronti su dati di tipo diverso,
DettagliPer scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
DettagliAA 2006-07 LA RICORSIONE
PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella
DettagliISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++
ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è
DettagliManuale Utente MyFastPage
Manuale MyFastPage Utente Elenco dei contenuti 1. Cosa è MyVoice Home?... 4 1.1. Introduzione... 5 2. Utilizzo del servizio... 6 2.1. Accesso... 6 2.2. Disconnessione... 7 2.3. Configurazione base Profilo
DettagliInformatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
Dettaglicostruttori e distruttori
costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,
DettagliCapitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.
Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2
Dettagli3. La sintassi di Java
pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer
DettagliRealizzazione di Politiche di Gestione delle Risorse: i Semafori Privati
Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliLABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015. Indice
LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015 VINCENZO MARRA Indice Parte 1. Input/Output standard dalla console 2 Esercizio 1 2 Eco
DettagliLa gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.
DettagliMatematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE
Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica I tipi strutturati: gli array e le strutture Claudio De Stefano - Corso di Fondamenti di Informatica 1 arrays un array (o vettore) è una sequenza di oggetti dello stesso
DettagliRegistratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
DettagliINTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI
INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.
DettagliLe variabili. Olga Scotti
Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.
DettagliManuale Utente Albo Pretorio GA
Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate
DettagliOrganizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
DettagliTricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002
Tricks & Tips [Access] - Michele de Nittis - Tutorial - ActiveX - Controllo Tree View Versione: 1 Data Versione: venerdì 30 agosto 2002 1 SOMMARIO PREMESSA...3 INSERIMENTO DEL CONTROLLO...3 AGGIUNTA DELLE
DettagliVARIABILI LOCALI E GLOBALI (ESTERNE)
VARIABILI LOCALI E GLOBALI (ESTERNE) Le variabili locali sono definite (ed il loro uso dichiarato) nella funzione (o nel blocco) che le usa; nascono quando la funzione entra in esecuzione e muoiono al
DettagliEsercitazione 3. Corso di Fondamenti di Informatica
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 3 Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti
DettagliLinguaggio C - Stringhe
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - Stringhe La presente dispensa e da utilizzarsi ai
DettagliFunzioni e procedure
Funzioni e procedure DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII.UNISI.IT HTTP://WWW.DII.UNISI.IT/~RIGUTINI/
DettagliESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)
ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) Scrivere una funzione per definire se un numero è primo e un programma principale minimale che ne testa la funzionalità. #include
DettagliJava: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
DettagliExcel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it
Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo
DettagliProva Scritta del 19/07/10
Avvertenze Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da un solo lato. In testa a ciascun foglio scrivere: cognome, nome, numero progressivo
DettagliCorso di Informatica
Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio
Dettagli10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.
ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31
DettagliLinguaggio C. Fondamenti. Struttura di un programma.
Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C La nascita del linguaggio C fu dovuta all esigenza di disporre di un Linguaggio ad alto livello adatto alla realizzazione
DettagliCaratteri e stringhe Esercizi risolti
Esercizi risolti 1 Esercizio: Conta vocali e consonanti Scrivere un programma in linguaggio C che legga una frase introdotta da tastiera. La frase è terminata dall introduzione del carattere di invio.
DettagliEredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi
Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Introduzione Il meccanismo dell eredità consente di sfruttare delle relazioni tipo/sottotipo, ereditando attributi
Dettagli2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.
1 Esercizio 1 1. Immaginate di avere una calcolatore che invece che poter rappresentare i classici due valori per ogni bit (0/1) possa rappresentare 7 valori per ogni bit. (a) Quanti bit gli occorreranno
DettagliFunzioni. Il modello console. Interfaccia in modalità console
Funzioni Interfaccia con il sistema operativo Argomenti sulla linea di comando Parametri argc e argv Valore di ritorno del programma La funzione exit Esercizio Calcolatrice 2, presente in tutti i programmi
Dettagli