Funzioni. (Dichiarazione, Prototipo, Chiamata) Concetto di funzione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Funzioni. (Dichiarazione, Prototipo, Chiamata) Concetto di funzione"

Transcript

1 Funzioni (Dichiarazione, Prototipo, Chiamata) Concetto di funzione L astrazione di funzione è presente in tutti i linguaggi di programmazione di alto livello. Una funzione è un componente software che cattura l'astrazione matematica di funzione: f : A B... Q S molti ingressi possibili (corrispondenti ai valori su cui operare) una sola uscita (corrispondente al risultato) Informatica - A.A. 2009/ Funzioni 2 1

2 Vantaggi delle funzioni Testo del programma suddiviso in unità significative Testo di ogni unità più breve minore probabilità di errori migliore verificabilità Riutilizzo di codice Migliore leggibilità Sviluppo top-down del software Informatica - A.A. 2009/ Funzioni 3 Utilizzo di funzioni: esempio Per evidenziare l'utilità delle funzioni, pensiamo di dover scrivere 2 programmi 1) un programma che legga in ingresso un numero intero non negativo e dica all'utente se il numero è primo (o altrimenti non stampi nulla) 2) un programma che legga in ingresso due numeri interi non negativi e, se e solo se sono entrambi primi, dica all'utente se si tratta di due numeri primi gemelli (ossia che differiscono esattamente di due unità l'uno dall'altro) Es.: 5 e 7 sono primi gemelli Informatica - A.A. 2009/ Funzioni 4 2

3 Gli elementi fondamentali per comprendere le funzioni Dichiarazione della funzione Uso della funzione (chiamata) Informatica - A.A. 2009/ Funzioni 5 Dichiarazione di funzione Una dichiarazione di funzione è costituita da una intestazione e da un blocco o corpo <dich-funzione> ::= <intestazione-funzione> <blocco> <intestazione-funzione> ::= <nometipo> <nomefunzione> ( <lista-parametri> ) <lista-parametri> ::= void <dich-parametro> {, <dich-parametro> <dich-parametro> ::= <nometipo> <identificatore> Informatica - A.A. 2009/ Funzioni 6 3

4 Dichiarazione di funzione (cont.) L intestazione specifica nell ordine: Tipo del risultato (void se non c è risultato =procedura) Nome della funzione Lista dei parametri formali (in ingresso) void se la lista è vuota (non ci sono parametri) una sequenza di dichiarazioni di parametri, se la lista non è vuota Informatica - A.A. 2009/ Funzioni 7 Intestazione di funzione: esempi int fattoriale (int n) Tipo della funzione Nome della funzione Lista dei parametri formali float somma3 (float x, float y, float z) Tipo della funzione Nome della funzione Lista dei parametri formali void stampa_n_volte (int n) Tipo della funzione Nome della funzione void stampa_2_volte () Tipo della funzione Nome della funzione Lista dei parametri formali Lista dei parametri formali vuota. LE PARENTESI SERVONO SEMPRE Informatica - A.A. 2009/ Funzioni 8 4

5 Dichiarazione di funzione (cont.) Il corpo della funzione è costituito da un blocco: Delimitato da parentesi graffe { Dichiarazione di variabili locali al blocco di funzione Lista di istruzioni Parola chiave return(<espressione>) se la funzione ritorna un risultato (<espressione> deve essere del tipo specificato nell intestazione della funzione) Informatica - A.A. 2009/ Funzioni 9 Istruzione return Viene usata per restituire il controllo all ambiente chiamante e nel contempo restituirgli il valore calcolato dalla funzione (risultato) Eventuali istruzioni della funzione successive all esecuzione del return non saranno eseguite! L <espressione> che segue return deve denotare un valore dello stesso tipo del risultato dichiarato per la funzione float max (float a, float b) { if (a>b) return (a); else return (b); Informatica - A.A. 2009/ Funzioni 10 5

6 Dichiarazione di funzione: esempio int fattoriale (int n) Tipo della Nome della Lista dei parametri funzione funzione formali { int i, fatt; Dichiarazioni locali alla funzione if (n==0) return (1); else fatt=1; INTESTAZIONE CORPO for (i=1; i<=n; i++) fatt = fatt*i; return(fatt); Restituzione del valore Potrei inizializzare i=2? Informatica - A.A. 2009/ Funzioni 11 Progetto di una funzione 1. Scegliere un nome significativo per la funzione 2. La funzione deve ricevere qualche dato dalla funzione chiamante? Se sì, elencare ed identificare tutti i tipi di dato da passare alla funzione (questa è la lista dei parametri -o lista degli argomenti) Se no, la lista dei parametri è void 3. La funzione deve restituire un dato dalla funzione chiamante? Se sì, identificare il tipo di dato corrisponderà al tipo della funzione Se no, il tipo della funzione è void Informatica - A.A. 2009/ Funzioni 12 6

7 Prototipo della funzione Nel linguaggio C si possono utilizzare solo le funzioni che sono state precedentemente dichiarate void fun1() { cout<< fun1 <<endl ; fun2(); void fun2() { cout<< fun2 <<endl ; fun1(); Ancora non è stata dichiarata! Invertire l'ordine di definizione delle funzioni non risolverebbe il problema... Informatica - A.A. 2009/ Funzioni 13 Prototipo della funzione Per ovviare al rischio di invocare funzioni che non sono ancora note, si utilizza il concetto di PROTOTIPO di una funzione, che costituisce la specifica dell'interfaccia fra ambiente chiamante e ambiente chiamato Come tali, i prototipi vengono tipicamente inseriti all inizio del programma, ciascuno dei quali specifica: Il tipo della funzione il nome della funzione il numero ed il tipo dei parametri formali mentre è possibile, ma non necessario, il nome dei parametri Informatica - A.A. 2009/ Funzioni 14 7

8 Esempi di prototipo int fattoriale (int) /* della funzione precedente */ Int main() int fattoriale (int n) { int i, fatt=1; for (i=1; i<=n; i++) fatt = fatt*i; return(fatt); float max (float, float, float) /* calcola il max di 3 float */ Informatica - A.A. 2009/ Funzioni 15 Prototipi e dichiarazioni Il prototipo: è un puro avviso ai naviganti non produce alcun byte di codice quindi, se lo si ripete non succede niente di male (basta che non ci siano due dichiarazioni in contraddizione) La dichiarazione, invece: contiene il vero codice della funzione Comporta allocazione di memoria per variabili ed istruzioni non può essere duplicata!! (altrimenti ci sarebbero due codici per la stessa funzione) Il nome dei parametri formali, non necessario in un prototipo, ti è indispensabile in una dichiarazione. QUINDI: il prototipo di una funzione può comparire più volte, ma la funzione deve essere dichiarata una sola volta. Informatica - A.A. 2009/ Funzioni 16 8

9 Gli elementi fondamentali per comprendere le funzioni Dichiarazione della funzione Uso della funzione (chiamata) Informatica - A.A. 2009/ Funzioni 17 Chiamata di funzione Una chiamata di funzione è costituita dal nome della funzione e dalla lista dei parametri attuali tra parentesi tonde: <chiam-funzione> ::= <nomefunzione> ( <lista-parametri-attuali> ) Due casi: Funzioni void: la chiamata di funzione va considerata come un insieme di istruzioni Funzioni che ritornano un valore: la chiamata di funzione va considerata come un espressione del tipo specificato dalla funzione Informatica - A.A. 2009/ Funzioni 18 9

10 Lista dei parametri formali e attuali Parametri formali: argomenti dichiarati nella definizione di funzione Parametri attuali: argomenti inseriti al momento della chiamata di funzione Possono essere espressioni: costanti variabili espressioni aritmetiche Informatica - A.A. 2009/ Funzioni 19 Sintesi Il prototipo di funzione può comparire una o più volte, ma sempre prima dell eventuale chiamata di funzione La dichiarazione (o definizione) di funzione può comparire una sola volta La chiamata di funzione può comparire una o più volte, ma sempre dopo il prototipo o la dichiarazione Informatica - A.A. 2009/ Funzioni 20 10

11 Esempio Prototipo di funzione float Media (int, int, int, int); Tipo dei parametri Definizione ione o dichiarazione ione di funzione float Media (int gd1, int gd2, int gd3, int gd4) { float Average; Parametri formali Average = (gd1 + gd2 + gd3 + gd4) / 4; return(average); Chiamate di funzione (dopo prototipo o dichiarazione) int a= 9, b= 5; float k, y; k = Media (12, 31-b+3, a, 5); y = Media (3, b, a-4, 8); Parametri attuali (espressioni) Informatica - A.A. 2009/ Funzioni 21 Dinamica parametri formali e attuali La corrispondenza tra parametri formali e attuali è sia posizionale sia di tipo. Ovvero si presume che la lista dei parametri formali e la lista dei parametri attuali abbia lo stesso numero e tipo tpodee di elementi et(usae (usare il casting se necessario) I nomi dei parametri attuali e formali non hanno importanza. Possono essere gli stessi o diversi. L importante è la posizione ed il valore che assume un parametro attuale al momento della chiamata Non appena l ambiente della funzione chiamata viene attivato, i parametri formali vengono dichiarati (come variabili locali all ambiente della funzione) ed inizializzati al valore del corrispondente parametro attuale. Informatica - A.A. 2009/ Funzioni 22 11

12 Casting Metodo per la conversione esplicita di espressioni da un tipo ad un altro Casting nel C (<tipo>) espressione d=(int)a; Molto utile quando si utilizzano operatori o funzioni (di libreria) in cui i parametri passati o ritornati devono essere di tipi specificati Esempi int a, b=2; float x=5.8, y=3.2; a = (int)x % (int) y; 2 a = (int) sqrt(534) 23 Perdo la parte decimale a = b + x; è equivalente a: a = (int)(float(b)+x); 7 y = b + x; è equivalente a: y = float(b)+x; 7.8 Informatica - A.A. 2009/ Funzioni 23 Dinamica parametri formali e attuali (cont.) I parametri formali: sono creati al momento della chiamata della funzione sono inizializzati con i valori dei corrispondenti parametri attuali trasmessi dal chiamante vivono per tutto il tempo in cui la funzione è in esecuzione e sono distrutti quando la funzione termina QUINDI La funzione riceve copia dei valori passati dal chiamante Tali copie sono sue copie private che servono solo per inizializzare i parametri formali Ogni modifica ad esse è strettamente locale alla funzione Le variabili del chiamante non saranno mai modificate! Informatica - A.A. 2009/ Funzioni 24 12

13 Esempio Prototipo di funzione float Media (float, float, float, float); Tipo dei parametri Definizione ione o dichiarazione ione di funzione float Media (float gd1, float gd2, float gd3, float gd4) { gd3 = (gd1 + gd2 + gd3 + gd4) / 4.0; Parametri formali return(gd3); (variabili) Chiamate di funzione (sempre dopo prototipo p o definizione) float a= 9.0, b=5.0; float k, y; k = Media (12, 31-b+3, a, 5); Parametri attuali y = Media (3, b, a-4, 8); (espressioni) Informatica - A.A. 2009/ Funzioni 25 Esercizio 1 (Specifica) Scrivere una funzione che verifichi se un numero naturale fornito in input è primo Informatica - A.A. 2009/ Funzioni 26 13

14 Esercizio 1 (Idea) Occorre provare a dividere N per tutti i numeri K sqrt(n): se nessuno risulta essere un divisore di N, allora N è primo Note: Per compilare includendo la libreria math.h usare: gcc lm nomefile.c Il prototipo della funzione sqrt() è: double sqrt(double); quindi la funzione prende in ingresso un double e ritorna un double (meglio usare casting) Informatica - A.A. 2009/ Funzioni 27 Esercizio 1 (Algoritmo) Se N è 1, 2 o 3, allora senz altro N è un numero primo. Altrimenti, ti se è un numero pari, certamente t N non è primo. Se così non è (quindi se N è dispari e >3), occorre tentare tutti i possibili divisori da 3 in avanti, fino a sqrt(n). Stampare il valore finale del contatore Informatica - A.A. 2009/ Funzioni 28 14

15 Esercizio 1 (Rappresentazione informazioni) Nome della funzione: (ad esempio) isprime Elenco dei parametri formali (nome e tipo): int n Tipo (di ritorno) della funzione: int (valore logico: 0, 1) All interno della funzione: Serve una variabile int max che contenga la parte intera della radice quadrata del numero Serve, poi una variabile ausiliaria (int i) come indice per andare da 3 a max Informatica - A.A. 2009/ Funzioni 29 #include <stdio.h> #include <math.h> int isprime(int n) Esercizio 1 (Programma) Casting { int max, i; if (n>=1 && n<=3) return (1); /* 1,2,3 sì */ if (n%2==0) return (0); /* no perché numeri pari */ max = (int) sqrt(n); for(i=3; i<=max; i=i+2) /*numeri dispari da 3 a max*/ if ((n%i)==0) return(0); /* no perché è stato trovato return(1); un divisore*/ int main() { int x, primo; scanf( %d, &x); primo = isprime(x); /*chiamata */ if (primo) printf( Numero primo\n ); Informatica - A.A. 2009/ Funzioni 30 15

16 Esercizio 2 (Specifica) Data una temperatura in ingresso, espressa in gradi Celsius oppure Fahrenheit, scrivere un programma che contenga due funzioni di conversione (Fahrenheit Celsius, Celsius Fahrenheit), e fornisca in uscita il corrispondente valore espresso sia in Fahrenheit sia in Celsius. Tralasciamo idea e algoritmo perché il problema è già stato trattato in precedenza nell ambito del corso Informatica - A.A. 2009/ Funzioni 31 Esercizio 2 (Idea) Ricordare le seguenti relazioni tra grandezze: celsius * 9/5 = fahrenheit 32 celsius = (fahrenheit - 32) * 5/9 fahrenheit = 32 + celsius * 9/5 Informatica - A.A. 2009/ Funzioni 32 16

17 Esercizio 2 (Rappresentazione informazioni) Nome della prima funzione: Fahr2Cels Elenco dei parametri formali (nome e tipo): float fahr Tipo (di ritorno) della funzione: float Nome della seconda funzione: Cels2Fahr Elenco dei parametri formali (nome e tipo): float cels Tipo (di ritorno) della funzione: float All interno delle funzioni non c è necessità di variabili Informatica - A.A. 2009/ Funzioni 33 Esercizio 2 (Schema) float Fahr2Cels(float fahr); <restituisce il valore di fahr convertito in gradi Celsius> float Cels2Fahr(float cels); <restituisce il valore di cels convertito in gradi Fahrenheit> main() { char scala; float temp, c, f; scanf ( %c %c, &scala); scanf ( %f %f, &temp); if (scala == 'F') { f = temp; c = Fahr2Cels(f); else { c = temp; f = Cels2Fahr(c); printf ( Celsius = %f - Fahrenheit = %f\n, c, f); Informatica - A.A. 2009/ Funzioni 34 17

18 #include <stdio.h> #define F1 9.0 #define F2 5.0 #define SH 32.0 Esercizio 2 (Programma) float Fahr2Cels(float); float Cels2Fahr(float); main() { char scala; float temp, c, f; scanf ( %c, &scala); scanf ( %f, &temp); if (scala == 'F') { f = temp; c = Fahr2Cels(f); else { c = temp; f = Cels2Fahr(c); printf ( Celsius = %f - Fahrenheit = %f, c, f); float Fahr2Cels(float fahr) { return (F2 / F1 * (fahr - SH)); float Cels2Fahr(float cels) { return (SH + cels * F1 / F2); Notare la tipica struttura dei programmi C: 1. direttive pre-processore 2. prototipi di funzioni 3. main() 4. dichiarazioni di funzioni Informatica - A.A. 2009/ Funzioni 35 Esercizio 3 (Specifica) Scrivere una funzione che, dato un carattere minuscolo, restituisca il corrispondente carattere maiuscolo Proporre, poi, un idonea funzione chiamante Informatica - A.A. 2009/ Funzioni 36 18

19 Esercizio 3 (Idea) char maiuscolo(char c); /* restituisce il maiuscolo di c utilizzando la tabella ASCII Assunzione: se c non è minuscolo, ritorna il carattere inalterato*/ int main() { char minus, maius; scanf ( %c, &minus); maius = maiuscolo (minus); if (minus==maius) printf ( Il carattere %c non è minuscolo, minus); else printf ( Minuscolo = %c e Maiuscolo = %c, minus, maius); Informatica - A.A. 2009/ Funzioni 37 Esercizio 3 (Algoritmo) Idee per strutturare la funzione maiuscolo Se c non è una lettera minuscola, restituisci il carattere senza alcuna modifica. Altrimenti, calcola il corrispondente carattere maiuscolo, sfruttando le proprietà di ordinamento della codifica dei caratteri ASCII: ogni carattere è associato ad un (codice) intero il codice intero associato ad un carattere (es. a) si indica con il carattere racchiuso tra apici (es. a ) le lettere da A a Z hanno codici in sequenza le lettere da a a z hanno codici in sequenza Informatica - A.A. 2009/ Funzioni 38 19

20 Tabella dei codici ASCII NUL DLE P p 0001 SOH DC1! 1 A Q a q 0010 STX DC2 2 B R b r 0011 ETX DC3 # 3 C S c s 0100 EOT DC4 $ 4 D T d t 0101 ENQ NAK % 5 E U e u 0110 ACK SYN & 6 F V f v 0111 BEL ETB 7 G W g w 1000 BS CAN ( 8 H X h x 1001 HT EM ) 9 I Y i y 1010 LF SUB * : J Z j z 1011 VT ESC + ; K [ k { 1100 FF FS, < L \ l 1101 CR GS - = M ] m 1110 SO RS. > N ^ n ~ 1111 SI US /? O _ o DEL Informatica - A.A. 2009/ Funzioni 39 Esercizio 3 (Programma) #include <stdio.h> char maiuscolo (char); /* Prototipo di funzione */ int main() { char minus, maius; scanf ( %c, &minus); maius = maiuscolo (minus); /* Chiamata */ if (minus==maius) printf ( Il carattere %c non è minuscolo, minus); else printf ( Minuscolo = %c - Maiuscolo = %c, minus, maius); /* Funzione che dato un carattere minuscolo lo trasforma in maiuscolo */ char maiuscolo(char c) /* Definizione di funzione*/ { if (c< a c> z ) return (c); else return (c a + A ); Informatica - A.A. 2009/ Funzioni 40 20

21 Esercizio 4 (Specifica) Scrivere una funzione radice che calcoli la radice quadrata (intera!) di un valore naturale N (senza usare la funzione sqrt!) Informatica - A.A. 2009/ Funzioni 41 Esercizio 4 (Idea e Algoritmo) int radice(int n); /* restituisce il massimo intero X tale che X*X N */ Considera un naturale dopo l altro a partire da 1 e calcolane il quadrato Fermati appena tale quadrato supera N Il risultato corrisponde al valore del penultimo naturale considerato Informatica - A.A. 2009/ Funzioni 42 21

22 Esercizio 4 (Programma) int radice(int n) { Implementazione con ciclo for int i; for (i=1; i*i <= n; i++) ; /* istruzione vuota! */ return (i-1); Informatica - A.A. 2009/ Funzioni 43 Esercizio 4 (Programma) int radice(int n) { Implementazione con ciclo while int i; i=1; while (i*i <= n) i++; return (i-1); Informatica - A.A. 2009/ Funzioni 44 22

Introduzione al Linguaggio C

Introduzione al Linguaggio C INFORMATICA 1 Lezione 3 (Introduzione al Linguaggio C, Introduzione ai Tipi di dato, Cenni alla codifica binaria) Introduzione al Linguaggio C 1 Passi fondamentali del C Definito nel 1972 (AT&T Bell Labs)

Dettagli

Tipi di dato primitivi

Tipi di dato primitivi Tipi di dato primitivi (oltre int) Tipi di dato primitivi int (già trattati) Valori logici (ricordati) Valori reali Valori carattere Informatica - A.A. 2009/2010 - Tipi di dato 2 1 Valori logici (il caso

Dettagli

Tempo di vita e scope delle variabili

Tempo di vita e scope delle variabili Tempo di vita e scope delle variabili Richiami sulla struttura di un programma C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume tutto in un unico file):

Dettagli

Rappresentazione dei numeri naturali. La codifica associa alle informazioni dell alfabeto sorgente uno o più simboli dell alfabeto codice:

Rappresentazione dei numeri naturali. La codifica associa alle informazioni dell alfabeto sorgente uno o più simboli dell alfabeto codice: Rappresentazione dei numeri naturali La codifica associa alle informazioni dell alfabeto sorgente uno o più simboli dell alfabeto codice: 1 I 0001 / 2 II 0010 // 3 III 0011 /// 4 IV 0100 //// 5 V 0101

Dettagli

Funzioni. (Passaggio dei parametri per riferimento) Passaggio dei parametri

Funzioni. (Passaggio dei parametri per riferimento) Passaggio dei parametri Funzioni (Passaggio dei parametri per riferimento) Passaggio dei parametri Per passaggio dei parametri si intende l associazione fra parametri attuali e parametri formali che avviene al momento della chiamata

Dettagli

La codifica dei caratteri di un testo

La codifica dei caratteri di un testo La codifica dei caratteri di un testo L obiettivo è quello di comunicare con il calcolatore usando il nostro linguaggio. Dobbiamo rappresentare le lettere dell alfabeto L insieme di simboli comunemente

Dettagli

Lezione 5. Funzioni: Definizione, Prototipo, Chiamata

Lezione 5. Funzioni: Definizione, Prototipo, Chiamata Lezione 5 Funzioni: Definizione, Prototipo, Chiamata Programmazione I Paolo Valente - 2009/2010 2 Istruzione composta 1/2 Come abbiamo visto, una istruzione composta è una sequenza di istruzioni racchiuse

Dettagli

Il linguaggio C. Notate che...

Il linguaggio C. Notate che... Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione

Dettagli

Per approfondire: La rappresentazione delle informazioni all interno dei computer

Per approfondire: La rappresentazione delle informazioni all interno dei computer Per approfondire: La rappresentazione delle informazioni all interno dei computer Scelta della rappresentazione dati Di solito è una scelta convenzionale A volte vi sono vincoli da rispettare Nel caso

Dettagli

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

Funzioni. Unità 1. 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

La rappresentazione delle Informazioni

La rappresentazione delle Informazioni La rappresentazione delle Informazioni Nella vita di tutti i giorni siamo abituati ad avere a che fare con vari tipi di informazioni, di natura e forma diversa, così come siamo abituati a diverse rappresentazioni

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

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

Tipi di dato semplici

Tipi di dato semplici Tipi di dato semplici Perché dichiarare una variabile? 2 Una variabile rappresenta uno spazio di memoria centrale Prima dell esecuzione del programma deve essere chiaro quanto spazio serve al programma

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

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

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

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

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

Visibilità e tempo di vita delle variabili. (più sintesi di alcuni concetti della prima parte del corso)

Visibilità e tempo di vita delle variabili. (più sintesi di alcuni concetti della prima parte del corso) Visibilità e tempo di vita delle variabili (più sintesi di alcuni concetti della prima parte del corso) Struttura dei programmi C/C++ Un programma C/C++ deve essere contenuto in uno o più file (per ora

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

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

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola. Tipi di dato Le variabili in C KP Cap.3 pp.95-129 Cap.5 pp.190-193 DD Cap. 9 pp.352-355 Abbiamo già parlato delle variabili, ed abbiamo fin ora usato il tipo int, ma abbiamo molte altre possibiltà I tipi

Dettagli

La rappresentazione delle informazioni

La rappresentazione delle informazioni Parte 8 La rappresentazione delle informazioni Scelta della rappresentazione Di solito è una scelta convenzionale Spesso ci sono vincoli da rispettare Nel caso dei computer il vincolo è la rappresentazione

Dettagli

INFORMAZIONI NUMERICHE RAPPRESENTAZIONE DELL INFORMAZIONE

INFORMAZIONI NUMERICHE RAPPRESENTAZIONE DELL INFORMAZIONE RAPPRESENTAZIONE DELL INFORMAZIONE INFORMAZIONI NUMERICHE Internamente a un elaboratore, ogni informazione è rappresentata tramite sequenze di bit (cifre binarie) Una sequenza di bit non dice cosa essa

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione II Tatiana Zolo zolo@cs.unipr.it 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento

Dettagli

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi MASTER Information Technology Excellence Road (I.T.E.R.) Programmare in C Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di Dati Valori Un insieme

Dettagli

Linguaggio C: le funzioni

Linguaggio C: le funzioni Linguaggio C: le funzioni prof. Lorenzo Porcelli e mail: genna18@iol.it sito: http://users.iol.it/genna18 Introduzione attraverso un esempio Problema: Conoscendo le misure di n rettangoli, determinare

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

nome (lista_parametri) Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti

nome (lista_parametri) Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti Università di Roma Tor Vergata L9-1 Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti utilizzare il valore restituito quanti argomenti

Dettagli

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE

Dettagli

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Compendio sottoinsieme del C++ a comune col C (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Librerie 1/2 Il solo insieme di istruzioni di un linguaggio di programmazione

Dettagli

Linguaggio C Informatica Grafica

Linguaggio C Informatica Grafica Linguaggio C Informatica Grafica Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione roveri@elet.polimi.it Linguaggio C Breve storia Struttura di un programma Variabili

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

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

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Dettagli

5 Stringhe. Esiste una libreria di C che gestisce le stringhe string.h essa ci permette di:

5 Stringhe. Esiste una libreria di C che gestisce le stringhe string.h essa ci permette di: Le stringhe di caratteri sono gestite in C come dei vettori di char con alla fine un tappo dato dal carattere \0. E possibile acquisire un intera stringa di caratteri in una sola istruzione grazie all

Dettagli

Lezione 5. Funzioni: Definizione, Prototipo, Chiamata

Lezione 5. Funzioni: Definizione, Prototipo, Chiamata Lezione 5 Funzioni: Definizione, Prototipo, Chiamata Programmazione I Paolo Valente - 2012/2013 2 Istruzione composta 1/2 Come abbiamo visto, una istruzione composta è una sequenza di istruzioni racchiuse

Dettagli

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità

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

Tabella dei codici ASCII standard

Tabella dei codici ASCII standard Tabella dei codici standard 0 00000000 0 nul 43 00101011 2B + 86 01010110 56 V 1 00000001 1 soh 44 00101100 2C, 87 01010111 57 W 2 00000010 2 stx 45 00101101 2D - 88 01011000 58 X 3 00000011 3 etx 46 00101110

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

Linguaggio C: le funzioni. Introduzione e sintassi

Linguaggio C: le funzioni. Introduzione e sintassi Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Introduzione e sintassi La presente dispensa

Dettagli

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} } ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Corso sul linguaggio C Modulo Tipi di dato

Corso sul linguaggio C Modulo Tipi di dato Corso sul linguaggio C Modulo 1 1.3 - Tipi di dato 1 Prerequisiti Concetto di espressione Cenni sulla struttura del calcolatore 2 1 Introduzione In questa lezione si esaminano i tipi di dato. I tipi di

Dettagli

Funzioni in C. Architetture multi-componente

Funzioni in C. Architetture multi-componente Funzioni in C Architetture multi-componente In generale, una applicazione informatica complessa è organizzata come insieme di componenti software che cooperano per raggiungere un fine comune. Ogni componente

Dettagli

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...

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

Lezione 8 Struct e qsort

Lezione 8 Struct e qsort Lezione 8 Struct e qsort Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort

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

Esercizi. La funzione swapint() primo tentativo

Esercizi. La funzione swapint() primo tentativo Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include

Dettagli

Espressione di chiamata di funzione

Espressione di chiamata di funzione 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

Esercizi di programmazione in C

Esercizi 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

Dettagli

Funzioni e. Alessandra Giordani Mercoledì 16 maggio 2012

Funzioni e. Alessandra Giordani Mercoledì 16 maggio 2012 Funzioni e passaggio parametri Alessandra Giordani agiordani@disi.unitn.it Mercoledì 16 maggio 2012 http://disi.unitn.it/~agiordani/ Cosa vedremo oggi Le funzioni Il passaggio dei parametri Le dichiarazioni

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/05/08 Nota Questi lucidi sono tratti

Dettagli

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;

Dettagli

Corso di Fondamenti di Programmazione canale E-O. Tipi di dato. Un esempio

Corso di Fondamenti di Programmazione canale E-O. Tipi di dato. Un esempio Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Le variabili in C KP Cap. 3, pp. 95-129 Cap. 5, pp. 190-193 DD Cap. 9, pp.352-355 Tipi di dato Abbiamo già parlato delle variabili, ed

Dettagli

Esercitazione 4. Comandi iterativi for, while, do-while

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

Dettagli

L ELABORATORE ELETTRONICO!

L ELABORATORE ELETTRONICO! L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

L'Allocazione Dinamica della Memoria nel linguaggio C

L'Allocazione Dinamica della Memoria nel linguaggio C L'Allocazione Dinamica della Memoria nel linguaggio C Prof. Rio Chierego riochierego@libero.it http://www.riochierego.it/informatica.htm Sommario Questo documento tratta l'allocazione dinamica della memoria

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Introduzione Istruzioni

Dettagli

Programmazione di base

Programmazione di base Fondamenti di Informatica Primo Appello 01-17 8 febbraio 017 Rispondi alle domande negli appositi spazi. I punti assegnati per ogni domanda sono indicati nel riquadro a lato. L'esame contiene 10 domande,

Dettagli

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 JavaScript Core Language Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 Condizioni L utilizzo di operatori relazionali e logici consente di formulare delle condizioni

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Esercitazione 11. Liste semplici

Esercitazione 11. Liste semplici Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene

Dettagli

Floating-point: mantissa La mantissa e codicata in modulo e segno su 24 bit, la mantissa e sempre normalizzata nella forma 1:XXXXX si rappresenta solo

Floating-point: mantissa La mantissa e codicata in modulo e segno su 24 bit, la mantissa e sempre normalizzata nella forma 1:XXXXX si rappresenta solo Rappresentazione in oating-point Utilizzata per rappresentare numeri frazionari nella notazione esponenziale: numero =(mantissa) 2 esponente Il formato piu utilizzato e quello IEEE P754, rappresentato

Dettagli

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010 Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array 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 Laurea

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case

Dettagli

Istruzioni del Linguaggio C

Istruzioni del Linguaggio C Istruzioni del Linguaggio C Programmazione strutturata Si parla di programmazione strutturata se si utilizzano solo le seguenti strutture per alterare il flusso di controllo [Dijkstra, 1969]: concatenazione

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

Scope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano

Scope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano Scope delle variabili e passaggio parametri Danilo Ardagna Politecnico di Milano 1-4-2014 Introduzione! Con le funzioni è stato introdotto un meccanismo per definire dei piccoli programmi all interno di

Dettagli

Preprocessore, linker e libreria standard

Preprocessore, linker e libreria standard Preprocessore, linker e libreria standard Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 IL PREPROCESSORE Programma sorgente

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio C - sezione dichiarativa: costanti e variabili Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente

Dettagli

<programma> ::= {<unità-di-traduzione>} <main> {<unità-di-traduzione>}

<programma> ::= {<unità-di-traduzione>} <main> {<unità-di-traduzione>} STRUTTURA DI UN PROGRAMMA C In prima battuta, la struttura di un programma C è definita nel modo seguente: ::= {} {} Intuitivamente un programma

Dettagli

LABORATORIO di INFORMATICA

LABORATORIO di INFORMATICA Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto FUNZIONI E PROCEDURE http://www.diee.unica.it/giacinto/lab

Dettagli

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++ Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Dettagli

La gestione dei caratteri in C

La gestione dei caratteri in C in C In C i caratteri sono gestiti mediante variabili di tipo char (interi a 8 bit) Ad ogni carattere corrisponde un codice numerico ASCII (American Standard Code for Information Interchange) Un esempio

Dettagli

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Funzioni. Unità 1. 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

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016

Dettagli

INTRODUZIONE. ALLA PROGRAMMAZIONEColonna 1. in linguaggio C

INTRODUZIONE. ALLA PROGRAMMAZIONEColonna 1. in linguaggio C 12 10 8 INTRODUZIONE 6 4 ALLA PROGRAMMAZIONEColonna 1 Colonna 2 Colonna 3 in linguaggio C 2 0 Riga 1 Riga 2 Riga 3 Riga 4 di Mauro Casula { Scopi del seminario Essere chiaro ed esauriente; Spiegare nei

Dettagli

Operazioni su file di caratteri

Operazioni su file di caratteri Operazioni su file di caratteri Apertura fopen Chiusura fclose Scrittura fprintf Lettura fscanf Controllo fine file feof Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Apertura di un file: Si

Dettagli

Le Funzioni e la Ricorsione

Le Funzioni e la Ricorsione Aula V Dip. di Matematica G. Castelnuovo Univ. di Roma La Sapienza Le Funzioni e la Ricorsione Igor Melatti Slides disponibili (assieme ad altro materiale) in: http://www.dsi.uniroma1.it/ melatti/programmazione1.2007.2008.html

Dettagli

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf Riassunto Esercitazione 3 Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf Sono state introdotte anche le seguenti relazioni: uguaglianza:

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

Introduzione al linguaggio C

Introduzione al linguaggio C Introduzione al linguaggio C Abbiamo già visto come un programma non sia altro che un algoritmo codificato in un linguaggio di programmazione. Problema: quale linguaggio scegliere per la codifica di un

Dettagli

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin Linguaggio C Tipi predefiniti Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Il concetto di tipo (reprise) Nome che indica

Dettagli

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch Esercitazione 5 Procedure e Funzioni Il comando condizionale: switch Comando: switch-case switch (espressione) { /* espressione deve essere case costante1: istruzione1 di tipo int o char */ [break]; case

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

Array k-dimensionali

Array k-dimensionali Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Array k-dimensionali In C è possibile definire array con più dimensioni (ANSI C massimo k=12), per

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

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina Il compilatore C Astrazione Linguaggio macchina implica la conoscenza dei metodi usati per la rappresentazione dell informazioni nella CPU Linguaggio Assembly è il linguaggio delle istruzioni che possono

Dettagli

$QDOLVLGHOSURJUDPPDTXDGUDWR

$QDOLVLGHOSURJUDPPDTXDGUDWR $QDOLVLGHOSURJUDPPDTXDGUDWR /* */ calcolare l area del quadrato #include main(){ int lato, area; printf("lato "); scanf("%d", &lato); if(lato < 0) printf("errore nei dati \n"); else { area =

Dettagli

Le funzioni. Fondamenti di programmazione

Le funzioni. Fondamenti di programmazione Le funzioni Fondamenti di programmazione Moduli I programmi sono spesso abbastanza complessi da dover essere scomposti in pezzi più maneggevoli Un modulo consiste di istruzioni per svolgere un certo compito

Dettagli

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011 Tipi di dato, memoria e conversioni Alessandra Giordani agiordani@disi.unitn.it Lunedì 7 maggio 2011 http://disi.unitn.it/~agiordani/ Il linguaggio C è esplicitamente tipato: occorre esplicitamente associare

Dettagli

Applicando lo stesso meccanismo al tipo puntatore, possiamo dichiarare un array di puntatori:

Applicando lo stesso meccanismo al tipo puntatore, possiamo dichiarare un array di puntatori: Le tabelle In C, dato un tipo di variabile, è possibile costruire un array di variabili di tale tipo usando la dichiarazione (facendo l esempio per il tipo float): float vettore[100]; Applicando lo stesso

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