INFORMATICA. Il linguaggio C

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "INFORMATICA. Il linguaggio C"

Transcript

1 INFORMATICA Il linguaggio C

2 Premessa Fu creato agli inizi degli anni 70 quale strumento per lo sviluppo del Sistema Operativo UNIX. Si è diffuso molto rapidamente e nel 1989 l American National Standards Institute (ANSI) completava la definizione del linguaggio producendo il documento noto come ANSI C, al quale fanno riferimento ormai tutti i compilatori per quel linguaggio. A differenza degli altri linguaggi ad alto livello consente un agevole accesso alla struttura hardware del sistema di elaborazione. Piero Demichelis 2

3 Il C è un linguaggio: Caratteristiche Generali - ad alto livello... ma anche poco astratto - strutturato... ma con eccezioni - fortemente tipizzato ogni oggetto ha un tipo - semplice (!?) poche keyword - case sensitive maiuscolo diverso da minuscolo negli identificatori! - portabile - standardizzato (ANSI) Piero Demichelis 3

4 Alfabeto Il vocabolario base del C è costituito dai seguenti simboli: tutte le lettere dell alfabeto inglese maiuscole e minuscole: A Z, a z le dieci cifre decimali 0 9 un insieme di caratteri speciali, tra cui: + * / = < > ( ) [ ] { }., ; :?! % # & ˆ Piero Demichelis 4

5 Identificatori Si riferiscono ad una delle entità del linguaggio: - costanti - variabili - funzioni - ecc. Iniziano con un carattere alfabetico oppure con _ (underscore) e possono contenere solamente caratteri alfabetici, cifre e _ Il C standard prevede che solo i primi 31 caratteri dell'identificatore sono significativi, anche se possono essere usati nomi più lunghi. Piero Demichelis 5

6 Commenti Sono testi liberi inseriti all interno del programma dal programmatore per descrivere cosa fa il programma. Non sono processati dal compilatore: servono al programmatore, non al sistema! Formato: - Racchiuso tra i simboli: /* */ - Non è possibile annidarli. Esempi: /* Questo è un commento corretto! */ /* Questo /* risulterà un */ errore */ Piero Demichelis 6

7 Istruzioni Le istruzioni devono essere scritte rispettando alcune regole sintattiche e di punteggiatura. L istruzione deve sempre essere conclusa con un ; (punto e virgola). Si può scrivere più di un istruzione per riga purché ognuna sia conclusa col ;. Un istruzione può occupare più di una riga. Piero Demichelis 7

8 Parole chiave Riservate! Nel C standard sono 32: auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while Piero Demichelis 8

9 Struttura generale: Struttura di un programma C Direttive e parte dichiarativa globale main () { Parte dichiarativa locale } Parte esecutiva Piero Demichelis 9

10 Struttura di un programma C Tutti gli oggetti, con le loro caratteristiche, che compongono il programma devono essere preventivamente dichiarati. main - è la parola chiave che indica il punto di ingresso del programma quando viene eseguito dal S.O.; - il suo contenuto è delimitato da parentesi graffe { } Piero Demichelis 10

11 Struttura di un programma C Parte dichiarativa locale: - elenco degli oggetti che compongono il main ognuno con le proprie caratteristiche. Parte esecutiva: - sequenza di istruzioni, ovvero ciò che descriviamo con il diagramma di flusso oppure con lo pseudocodice! Piero Demichelis 11

12 Struttura di un programma C Programma minimo: main() { } START STOP file prova.c Piero Demichelis 12

13 I dati

14 Definizione dei dati In C, tutti i dati devono essere dichiarati e definiti prima di essere usati! Definizione di un dato: 1. riserva spazio in memoria; 2. assegna un nome. 3. identifica gli operatori leciti su quel dato Richiede l indicazione di: - nome (identificatore); - tipo; - modalità di accesso (variabile/costante). Piero Demichelis 14

15 Tipi Il tipo definisce l'insieme dei valori che possono essere assunti, la rappresentazione interna e l'insieme degli operatori che possono agire su quel dato. Il linguaggio C richiede di definire il tipo dei dati e possiede regole rigide per la loro manipolazione (tipizzazione forte ). Permette inoltre al programmatore di definire nuovi tipi astratti. Contemporaneamente permette di vedere gli oggetti interni al calcolatore: i registri, la memoria, gli indirizzi (puntatori), ecc. Piero Demichelis 15

16 Tipi base (primitivi) Sono quelli forniti direttamente dal C. Sono identificati da parole chiave! - char caratteri ASCII; - int interi (complemento a 2); - float reali (floating point singola precisione); - double reali (floating point doppia precisione). La dimensione precisa di questi tipi dipende dall architettura (non definita dal linguaggio). - char = 8 bit sempre Attenzione: le parole chiave dei tipi base vanno scritte in minuscolo! Piero Demichelis 16

17 char Il tipo char (character) definisce un carattere (attenzione: un solo carattere!) espresso su 8 bit (1 byte) in codice ASCII. I valori sono interpretati come numeri interi con segno su 8 bit ( ). Un carattere deve essere indicato tra apici, così: a Piero Demichelis 17

18 int Il tipo int (integer) definisce i numeri interi con segno. La rappresentazione interna e l'intervallo dei valori assunti dipende dal compilatore e dalla macchina usata. Generalmente si tratta del complemento a 2 e i valori assunti sono compresi nell intervallo su 16 bit oppure, per le macchine a 32 bit, nell intervallo Vanno indicati semplicemente così come siamo abituati a scriverli sulla carta, col loro valore (senza il punto decimale): Piero Demichelis 18

19 float e double Sia il tipo float che il tipo double sono rappresentazioni di numeri reali (frazionari). Sono rappresentati secondo la notazione floating-point, rispettivamente in singola (32 bit) e doppia (64 bit) precisione. I valori assunti (rappresentabili) sono: float 3.4E+38 (7 cifre decimali) double 1.7E+308 (16 cifre decimali) La rappresentazione è normalmente riferita allo standard IEEE P754. Piero Demichelis 19

20 float e double I valori di tipo float o double vanno indicati con il punto decimale, ad esempio: E ammessa anche una notazione simile alla notazione scientifica con il carattere E al posto di 10, così: E-02 In alternativa, si può ancora scrivere il numero senza punto decimale ma seguito dal suffisso F oppure f (ad esempio, 10F, 10f e 10.0 sono equivalenti). Il compilatore concepisce questi valori sempre come di tipo double. Piero Demichelis 20

21 Modificatori dei tipi base Sono previsti dei modificatori, identificati da parole chiave, da premettere ai tipi base: short long signed unsigned Piero Demichelis 21

22 short / long Il qualificatore short si applica al tipo int e impone che la rappresentazione degli interi sia su 16 bit (valori assunti: ); il qualificatore long si applica sia al tipo int che al tipo double; - long int impone la rappresentazione degli interi su 32 bit (valori assunti: ); - long double forza la rappresentazione dei reali su 80 bit ( 1.7E+308 aumentando la precisione a 19 cifre decimali). Piero Demichelis 22

23 signed / unsigned I qualificatori signed e unsigned si applicano ai tipi char e int. signed è ridondante e serve solo a ricordare che un valore è inteso con segno (ma per int e char è già così!); unsigned permette di estendere l'intervallo dei valori non-negativi. - Il tipo unsigned char può assumere valori nell'intervallo e il tipo unsigned int valori nell'intervallo I qualificatori possono apparire da soli: nel qual caso si assume che sia sottinteso il tipo int. E lecito, ad esempio, il tipo unsigned short che viene interpretato come unsigned short int, ecc. Piero Demichelis 23

24 Altri valori interi Per un dato intero, i valori di variabili e costanti possono anche essere espressi in esadecimale (specificati col prefisso 0x oppure 0X, ad esempio, 0xFF = ) oppure ottale (prefisso 0 (zero), ad esempio 0377 = ); per il formato long si usa il suffisso L oppure l (255L o 255l esprimono entrambi un long int con valore ); per l'unsigned si usa il suffisso U oppure u (255U e 255u esprimono un unsigned int = ). I suffissi u ed l possono apparire entrambi, con ovvio significato. Piero Demichelis 24

25 Valori speciali Il codice ASCII comprende alcuni caratteri non stampabili. Per rappresentarli viene utilizzata la sequenza di escape (backslash seguito da un altro carattere). Sequenza Carattere Sequenza Carattere \a allarme \ apostrofo \b backspace \ doppio apice \f pagina nuova \\ backslash \n new line \ddd ottale \r return \xddd esadecimale \t tabulatore orizz. \0 null \v tabulatore vert. Piero Demichelis 25

26 Tabella riassuntiva Tipo Intervallo dei valori char, signed char int, signed, signed int short, short int, signed short signed short, signed short int long, long int, signed long, signed long int unsigned, unsigned char, unsigned short unsigned int, unsigned short int unsigned long, unsigned long int float 3.4E 38 (7 cifre) double 1.7E 308 (16 cifre) long double 1.7E 308 (20 cifre) Piero Demichelis 26

27 Direttive Il C prevede che nel programma, oltre alle istruzioni, possano esserci anche delle direttive che devono essere interpretate ed eseguite dal compilatore stesso (inserzione di macro, compilazioni condizionate, inclusione di altri sorgenti, ecc.); il compilatore C esegue una preelaborazione del programma, detta Preprocessing, per riconoscere ed eventualmente eseguire le direttive; le direttive si distinguono dalle istruzioni perché sono inserite sempre in righe individuali e iniziano con il carattere # seguito da una parola chiave; ad esempio: #include #define Piero Demichelis 27

28 Definizione di variabili Sintassi: <tipo> <nome della variabile >; Più in generale (definizioni multiple): <tipo> <lista dei nomi delle variabili >; - <nome> : l identificatore che rappresenta il nome della variabile; - <lista dei nomi delle variabili> : lista di identificatori separati da, (virgola). Piero Demichelis 28

29 Esempi: int x; char ch; long int x1,x2, x3; double pi; short int stipendio; long y,z; Usiamo nomi significativi! Esempi: Definizione di variabili int RitenuteOperate, StipendioBase; float OreLavorate; Esempi errati: float Ore Lavorate; /* c è uno spazio */ int Stip?base; /* c è un carattere speciale */ Piero Demichelis 29

30 Definizione di variabili E possibile inizializzare una variabile, ovvero attribuirgli un valore prima che venga utilizzata per la prima volta, in fase di dichiarazione della stessa. Esempio: int x = 24; char ch = m ; double pi = ; Piero Demichelis 30

31 Definizione di costanti Sintassi: const <tipo> <nome della costante> = <valore>; Esempi: const double pigreco = ; const char separatore = $ ; const float aliquota = 0.2; Convenzione: - Identificatori delle constanti tipicamente in MAIUSCOLO (ma è una convenzione!). const double PIGRECO = ; Piero Demichelis 31

32 La direttiva define E un'altra possibilità di definire valori costanti : si introduce un identificatore come sinonimo di una costante: #define identificatore testo Deve comparire sempre in testa al programma, prima di main(), e all'inizio della riga. E elaborata dal preprocessore del compilatore, che sostituirà in tutto il programma, ovunque appare l'identificatore, il testo di cui è sinonimo. Piero Demichelis 32

33 La direttiva define Non essendo un'istruzione non termina con il punto e virgola. Esempi: #define PIGRECO #define DOMENICA 7 #define VERO 1 #define Carattere p Piero Demichelis 33

34 Le istruzioni

35 Assegnazioni Sintassi: <variabile> = <espressione>; Non è un uguaglianza! - Significato: il risultato di <espressione> viene assegnato a <variabile>; - <variabile> e <espressione> devono essere compatibili (ovvero dello stesso tipo); - <variabile> deve essere stata precedentemente definita! Esempio: int x; float y; x = 3; y = ; Piero Demichelis 35

36 Assegnazioni In realtà l assegnazione (o assegnamento) non è un istruzione (come accade in tutti gli altri linguaggi); il simbolo = è un operatore che assegna alla variabile che si trova a sinistra il valore calcolato sull espressione di destra; nel caso più semplice l espressione di destra è un semplice valore. Sono pertanto lecite assegnazioni multiple : <var 1 > = <var 2 > = <espressione>; Piero Demichelis 36

37 Espressioni Sono combinazioni di variabili e operatori. Esistono varie categorie di operatori, applicabili a tipi di dati diversi: - operatori aritmetici; - operatori relazionali; - operatori logici; - operatori sui bit: - ecc. Piero Demichelis 37

38 Operatori aritmetici Quattro operatori comuni a tutti (numeri reali e interi): + - * / Per i numeri interi, esiste anche l operatore % che ritorna il resto della divisione intera. Stesse regole di precedenza dell aritmetica ordinaria: - ( *, / ) > ( +, - ) - le parentesi tonde alterano la gerarchia. Esempio: int x = 5, y = 2, q, r; q = x / y; /* (q = 2, variabili intere! troncamento) */ r = x % y; /* (r = 1), resto di 5 / 2 */ q = x + (y * (x r)); /* 5 + (2 * (5 1)) = 13 */ Piero Demichelis 38

39 Operatori aritmetici: esempi const double ENEPER = ; /* sezione variabili */ int dato, divintero; double risul, inizio; main() { dato = 12 * 3-4 * 5; /* equivale a (12*3)-(4*5) = 16 */ dato = dato + 1; /* aggiunge 1 a dato: dato = 17 */ divintero = dato % 10; /* resto di 17 / 10 (= 7) */ inizio = dato; /* conversione di tipo */ risul = inizio / ENEPER; /* divisione tra numeri reali */ } Piero Demichelis 39

40 Conversione forzata di tipo (casting) Si può forzare la conversione di tipo anteponendo al dato che si vuole convertire il tipo posto tra parentesi, secondo questo schema: Esempio: int dato_1, dato_2; float dato_real; (tipo) espressione dato_real = (float)dato_1 / (float)dato_2; L'effetto della conversione mediante l'operazione cast è limitato all'espressione in cui appare: il dato su cui opera resta immutato. Piero Demichelis 40

41 Operatori di assegnamento composti E possibile combinare l istruzione di assegnazione con gli operatori aritmetici. Sintassi: <variabile> <operatore>= <espressione>; Operatori: += -= *= /= %= - Significato: assegnazione + operazione. Esempi: x += 5; /* equivalente a x = x + 5 */ y -= x; /* equivalente a y = y x */ Piero Demichelis 41

42 Operatori di incremento e decremento Per le assegnazioni composte più comuni sono previsti degli operatori espliciti: Significato: ++ +=1 -- -=1 Esempi: x++; /* equivale a x = x + 1 */ valore--; /* equivale a valore = valore 1 */ Piero Demichelis 42

43 Operatori di incremento e decremento Possono essere utilizzati sia in notazione prefissa che in notazione postfissa Prefissa: la variabile viene modificata prima di essere utilizzata nell espressione Postfissa: la variabile viene modificata solo dopo averla utilizzata nell espressione Esempio: assumendo x = 4: - Se si esegue y = x++, si otterrà come risultato x = 5 e y = 4; - Se si esegue y = ++x, si otterrà come risultato x = 5 e y = 5; Piero Demichelis 43

44 Operatori relazionali Operano su quantità numeriche o di tipo char e forniscono un risultato logico o booleano. < <= > >= ==!= Il risultato è sempre di tipo int: - risultato = 0 significa FALSO - risultato 0 significa VERO In C (C89) non esiste un tipo logico o booleano! Piero Demichelis 44

45 Esempio main() { float dato1, dato2; int inter1, inter2; short int switch1, flag; dato1 = 10.5; dato2 = 3.7; inter1 = 2; inter2 = 1; switch1 = dato1 < (dato2 * 0.5); /* switch1 = 10.5 < 1.85 = FALSO (= 0) */ flag = inter1!= inter2; /* flag = VERO ( 0) */ } Piero Demichelis 45

46 Operatori logici Operano su espressioni booleane e forniscono un risultato logico o booleano.! && NOT AND OR Equivalenti agli operatori Booleani di base. - Stesse regole di precedenza NOT > AND > OR Esempi: - (x > 0) && (x < 10) (x compreso tra 1 e 9) - (x1 > x2) (x1 == 3) Piero Demichelis 46

47 Esempio #define FALSO 0 #define VERO 1 main() { int dato1, dato2; short int test, flag, condiz; dato1 = 5; dato2 = 3; flag = VERO; test =!flag; /* test = NOT flag cioè FALSO (= 0) */ condiz = (dato1 >= dato2) && test; /*condiz = VERO AND FALSO cioè FALSO (= 0) */ } Piero Demichelis 47

48 Istruzioni di I/O Per ora consideriamo solo l I/O interattivo, quello cioè che si realizza con tastiera e monitor. Sono disponibili diverse forme in base al tipo di informazione letta o scritta: - I/O formattato - I/O di caratteri - I/O per righe Piero Demichelis 48

49 I/O formattato Standard output (scrittura su monitor) istruzione printf Standard input (lettura da tastiera) istruzione scanf L utilizzo di queste funzioni richiede l inserimento di una direttiva #include <stdio.h> all inizio del file sorgente il cui significato è: includi il file stdio.h Piero Demichelis 49

50 Visualizza sul monitor. L istruzione printf La printf opera utilizzando una stringa, detta <format>, nella quale si devono inserire i comandi che descrivono come devono apparire i dati sul monitor. Al <format> deve seguire la lista di variabili che si vuol visualizzare. Sintassi: printf (<format>,<arg1>,...,<argn>); Piero Demichelis 50

51 L istruzione printf <format>: stringa che determina il formato di visualizzazione per ognuno dei vari argomenti. <arg1>,...,<argn>: lista degli argomenti da visualizzare. Gli argomenti (opzionali) possono essere costanti, variabili o espressioni. Se non ci sono argomenti (come quando si vuole visualizzare solo un messaggio) la funzione trasferisce sul video il testo della stringa di <format> e il cursore si posiziona subito dopo l'ultimo carattere. Piero Demichelis 51

52 L istruzione printf Affinché il cursore vada a capo, occorre inserire nella stringa di format il carattere new-line (\n). Esempio: #include <stdio.h> main() { printf ("Stampa di una riga\n"); printf ("Seconda riga\n"); } Piero Demichelis 52

53 Specificatori di formato Generalmente nel format sono indicati gli specificatori di formato per le variabili della lista. I principali specificatori di formato sono: - %d o %i per il tipo int, stampa in notazione decimale; - %o per il tipo int, stampa in ottale senza segno; - %x per il tipo int, stampa in esadecimale senza segno; - %u per il tipo int, stampa in decimale senza segno; - %c per il tipo char, stampa un carattere; - %f per il tipo float, stampa nella notazione virgola mobile nel formato -d.dddddd (6 cifre dopo la virgola); - %e o %E per il tipo float, stampa nella notazione virgola mobile nel formato esponenziale -d.dddddde(e) dd; - %s per le sequenze di caratteri (stringhe). Piero Demichelis 53

54 Specificatori di formato Gli specificatori di formato sono costituiti dal carattere % seguito da un altro carattere che indica il formato da utilizzare per la stampa dell'argomento corrispondente (carattere, numero intero o reale, stringa, ecc.). Quando incontra il primo specificatore di formato il C preleva il primo argomento, effettua la conversione dal formato interno del dato ad una sequenza di caratteri ASCII seguendo le indicazioni del descrittore ed esegue infine l'ouput dei caratteri sul video. Prosegue poi con la stringa del format, ripetendo le azioni prima descritte per ogni specificatore incontrato e così fino ad esaurire l'intero format: il numero di specificatori di formato deve essere quindi pari al numero di argomenti. Piero Demichelis 54

55 Esempio L associazione tra variabili e specificatori di formato è di tipo ordinale: 1 specificatore 1ª variabile; 2 specificatore 2ª variabile, ecc. Esempi: int x = 2; float z = 0.5; Char c = a ; printf ( %d %f %c\n, x, z, c); a _ printf ( %f***%c***%d\n, z, c, x); ***a***2 _ Piero Demichelis 55

56 Specificatori di formato Tra il carattere % e quello di specificazione può esserci uno o più elementi aggiuntivi: - un intero, che fissa la larghezza minima (numero di caratteri) del campo su cui il dato è stampato; - un punto seguito da un intero, che stabilisce la precisione con cui visualizzare il dato (numero di cifre frazionarie); - uno di questi modificatori: h (per indicare che si tratta di un tipo short), l (per indicare che si tratta di un tipo long), L (per indicare che si tratta di un tipo long double). Piero Demichelis 56

57 Esempio (printf) #include <stdio.h> int a=-57, b=2, c=450, d=33; float e=1.22e7, f= , g= , h=1.0; main() { printf ("a=%4d b=%3d c=%8d d=%1d\n", a, b, c, d); printf ( e=%9.3f f=%9.3f g=%9.3f h=%9.3f", e, f, g, h); } Sul video apparirà: a= -57 b= 2 c= 450 d=33 e= f= g= h= 1.00 Piero Demichelis 57

58 L istruzione scanf Permette la lettura di dati da tastiera. La scanf, come la printf, opera utilizzando un format, cioè un descrittore del formato che devono avere i dati in ingresso e accetta vari tipi di argomenti: interi, reali, caratteri, stringhe, ecc. Sintassi: scanf (<format>,<arg1>,...,<argn>); Piero Demichelis 58

59 L istruzione scanf <format> : è una stringa di caratteri dove compaiono solo specificatori di formato (è bene evitare di inserire degli spazi tra gli specificatori), gli stessi utilizzati per la printf; <arg1>,...,<argn> : possono essere solo variabili il cui nome deve essere preceduto dal carattere &. ATTENZIONE!!!MPORTANTE i nomi delle variabili vanno sempre precedute dall operatore & che indica l indirizzo della variabile Esempio: int x; float z; scanf( %d%f, &x, &z); Piero Demichelis 59

60 L istruzione scanf Per comprendere il funzionamento della scanf si immagini che, man mano che vengono introdotti i caratteri dalla tastiera, il codice di ognuno venga accodato in un contenitore (un flusso). Si possono pensare così a delle sequenze di caratteri sulle quali il programma in esecuzione dispone di un cursore. Le modalità con cui opera la scanf sono alquanto complesse e dipendono dagli specificatori che compaiono nel <format>. Piero Demichelis 60

61 L istruzione scanf Quando deve leggere un numero intero o reale, il cursore avanza fino al primo carattere diverso da spazio. Vengono poi letti tutti i caratteri successivi (cifre) fino a raggiungere un carattere di spazio oppure un delimitatore di riga (comunque un carattere non numerico), sul quale il cursore si ferma. Se la sequenza di caratteri così isolata è corretta, viene convertita nella rappresentazione interna e il valore è attribuito alla variabile, altrimenti le operazioni della scanf si bloccano. Piero Demichelis 61

62 L istruzione scanf Nel caso che la stringa contenga più di un descrittore, per ognuno viene attivato l'opportuno meccanismo di lettura e conversione: affinché la scanf si comporti correttamente ci devono essere tanti descrittori quanti argomenti. Tra un numero e il successivo possono essere inseriti quanti caratteri di spazio si desidera: vengono automaticamente ignorati (come ce ne fosse uno solo!). Se invece si leggono dati di tipo char viene letto un solo carattere, quello su cui è posizionato il cursore, il quale avanza di una sola posizione! Piero Demichelis 62

63 L istruzione scanf Per i dati più comuni (numeri e stringhe di caratteri) i valori devono essere introdotti separandoli tra loro da almeno un separatore (spazio, invio, ecc.). Lo specificatore %*x provoca il salto della prossima conversione: viene effettuata la lettura ma il valore non viene assegnato all'argomento. Lo specificatore %* può risultare utile in pratica solo nel caso di lettura di dati da file (come si vedrà più avanti). Piero Demichelis 63

64 Esempio #include <stdio.h> int dato1, dato2, dato3; main() { printf( \nintroduci tre numeri interi: "); scanf("%d%d%d", &dato1, &dato2, &dato3); } Piero Demichelis 64

65 L istruzione scanf I tre dati interi (da tastiera) possono essere introdotti indifferentemente separandoli tra loro con un semplice spazio oppure con il tasto di invio oppure ancora con il carattere tab, ecc. Ad esempio sono lecite ed equivalenti: (su una sola riga) (su una sola riga) (su tre righe distinte) Piero Demichelis 65

66 I/O scanf e printf non sono le uniche possibilità che abbiamo per introdurre o visualizzare dati. Esistono numerose altre istruzioni di input sia per la lettura da tastiera, sia per leggere dati da altri periferici (come, ad es., il disco). Sono naturalmente diponibili le rispettive istruzioni di output. Il loro uso è però più complesso e verrà proposto più avanti. Piero Demichelis 66

67 Istruzione composta Una sequenza di istruzioni può essere racchiusa tra le parentesi graffe per costituire quella che è nota come istruzione composta Il C considera il blocco di istruzioni che costituiscono l'istruzione composta come se si trattasse di una sola istruzione.... printf ( \nintroduci due dati interi da elaborare:"); scanf ( "%d%d", &dato1, &dato2); { coeff = 10.5; scala = 3; } Lo stesso corpo di un programma può essere considerato come un'unica istruzione composta. Piero Demichelis 67

68 Operatore sizeof Quando si realizzano programmi per i quali deve essere garantita la trasportabilità, può sorgere la necessità di conoscere quanti byte occupa un certo tipo di dato su una particolare macchina: ad esempio, il tipo int può impegnare 2, 4 o 8 byte. L'operatore sizeof può agire o su un tipo, ad esempio, sizeof (double) o su una variabile, un vettore, un espressione, una struct, ad esempio, sizeof (dato_real) in ogni caso restituisce un intero corrispondente al numero di byte occupato dall argomento. In seguito vedremo numerose e importanti applicazioni di questo operatore. Piero Demichelis 68

69 Operatore sizeof Esempio: programma che visualizza il numero di bit sui quali è rappresentato un carattere, un numero intero, un numero reale, un numero double. #include <stdio.h> int num_bit main() { num_bit = sizeof ( char ) * 8; printf ( \nsu questa macchina un char e' su %d bit", num_bit); printf ( \n un intero su %d bit", (sizeof (int) * 8)); printf ( \n un float su %d bit", (sizeof (float) * 8)); printf ( \n un double su %d bit", (sizeof (double) * 8)); } Piero Demichelis 69

La sintassi del C APPENDICE H

La sintassi del C APPENDICE H APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i

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

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

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

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

Alfabeto ed elementi lessicali del linguaggio C

Alfabeto ed elementi lessicali del linguaggio C Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Alfabeto ed elementi lessicali del linguaggio C Pietro Di Lena - pietro.dilena@unibo.it s t a t i c s h o r t l e g s ; i n

Dettagli

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

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

Struttura dei programmi C

Struttura dei programmi C Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147-00161 Roma Università degli Studi La Sapienza Fondamenti di

Dettagli

Input/Output di numeri

Input/Output di numeri Input/Output di numeri I/O di numeri Per utilizzare le funzioni di I/O occorre include il file di intestazione (o file header) stdio.h utilizzando all inizio del sorgente la direttiva #include

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

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

Caratteristiche di un linguaggio ad alto livello

Caratteristiche di un linguaggio ad alto livello Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010 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

I/O INTERATTIVO. scanf: quello che è indispensabile sapere printf: quello che è utile sapere

I/O INTERATTIVO. scanf: quello che è indispensabile sapere printf: quello che è utile sapere I/O INTERATTIVO scanf: quello che è indispensabile sapere printf: quello che è utile sapere Input da tastiera Funzioni disponibili (tra le altre): scanf getchar Schema di funzionamento Tastiera Sistema

Dettagli

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: Tipi di dato Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: esprimere in modo sintetico la loro rappresentazione in memoria, e un insieme di operazioni ammissibili permettere

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

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI SULL USO DEI CARATTERI Ricordiamo che: int x; si legge con ( %d,&x) e si stampa con ( %d,x) float x; si legge con ( %f,&x) e si stampa con ( %f,x) double x;si legge con ( %lf,&x) e si stampa con ( %f,x)

Dettagli

Informatica (A-K) 7. Linguaggio C - 1

Informatica (A-K) 7. Linguaggio C - 1 Storia del linguaggio C Informatica (A-K) 7. Linguaggio C - 1 Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Linguaggio C 1972, nato come evoluzione

Dettagli

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

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO 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

Dettagli

Linguaggio C Variabili e tipi di dato

Linguaggio C Variabili e tipi di dato FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Variabili e tipi di dato 2001 Pier Luca Montessoro - Davide

Dettagli

LINGUAGGI DI PROGRAMMAZIONE!

LINGUAGGI 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

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

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali

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

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

Funzioni di I/O per numeri. Input e output di valori numerici. Input formattato scanf. Stream preesistenti

Funzioni di I/O per numeri. Input e output di valori numerici. Input formattato scanf. Stream preesistenti Funzioni di I/O per numeri 2 Input e output di valori numerici Ver. 2.4.2 2012 - Claudio Fornaro - Corso di programmazione in C Per utilizzare le funzioni di Input/Output bisogna includere il file di intestazione

Dettagli

Laboratorio di informatica Ingegneria meccanica

Laboratorio di informatica Ingegneria meccanica Interi in complemento a 2 () Laboratorio di informatica Ingegneria meccanica Lezione 5 29 ottobre 2007 Con N bit sono rappresentabili tutti gli interi nell'intervallo [-2^(N-), 2^(N-)-] Esempio: 6 bit,

Dettagli

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C Tipi predefiniti e operatori Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 RICHIAMI char 8 bit Valori interi

Dettagli

Variabili e Istruzioni

Variabili e Istruzioni Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome

Dettagli

Sintassi: Per la dichiarazione di variabili dei tipi fondamentali:

Sintassi: Per la dichiarazione di variabili dei tipi fondamentali: Sintassi: Per la dichiarazione di variabili dei tipi fondamentali: declaration ::= type declarator list ; declarator list ::= declarator {, declarator} opt declarator ::= identif ier identif ier = initializer

Dettagli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)

Dettagli

Il linguaggio C. Caratteristiche generali

Il linguaggio C. Caratteristiche generali Il linguaggio C Caratteristiche generali Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

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

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

Linguaggio C Struttura dei programmi

Linguaggio C Struttura dei programmi FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Struttura dei programmi 2001 Pier Luca Montessoro - Davide

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Tipi e Valori. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Tipi e Valori. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna Tipi e Valori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C - Tipi e Valori 2 Ringraziamenti prof. Mirko Viroli,

Dettagli

Un elaboratore è un manipolatore di simboli (segni) intrinsecamente capace di trattare vari. caratteri char caratteri ASCII unsigned char

Un elaboratore è un manipolatore di simboli (segni) intrinsecamente capace di trattare vari. caratteri char caratteri ASCII unsigned char IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura tt fisica i di ogni elaboratore è intrinsecamente capace di trattare vari domini i di dati, detti tipi i primitivi iti

Dettagli

Rappresentazione binaria delle variabili (int e char)

Rappresentazione binaria delle variabili (int e char) Rappresentazione binaria delle variabili (int e char) int e char son i due tipi utilizzati dal linguaggio C per la rappresentazione di valori interi; ai valori delle variabili del primo tipo sono assegnati

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

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Dettagli

Variabili. Tipi di dati di base. Variabili. Variabili

Variabili. Tipi di dati di base. Variabili. Variabili Variabili 2 Tipi di dati di base Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Porzioni di memoria RAM usate per mantenere dati variabili nel tempo La definizione di una variabile riserva

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti 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)

Dettagli

Approfondimento : printf

Approfondimento : printf Approfondimento : printf La funzione printf : stampa su standard input (video) dati complessi ha un formato articolato, molto potente ma spesso poco chiaro ha un numero di opzioni utili e poco conosciute

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti 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)

Dettagli

direttive del preprocessore simboli speciali parole chiave identificatori costanti

direttive del preprocessore simboli speciali parole chiave identificatori costanti 5) Elementi di C #include #define TF2TC main() { double tc, tf, offset, conv; offset = 32.; direttive del preprocessore simboli speciali parole chiave identificatori costanti #ifdef TF2TC conv

Dettagli

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII. Tipi di dati fondamentali Tipi di dati fondamentali Linguaggi di Programmazione I Ferdinando Cicalese caratteri: char signed char unsigned char interi short int long interi unsigned short unsigned unsigned

Dettagli

Alfabeto ed elementi lessicali del linguaggio C

Alfabeto ed elementi lessicali del linguaggio C Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2015-2016 Alfabeto ed elementi lessicali del linguaggio C Pietro Di Lena - pietro.dilena@unibo.it s t a t i c s h o r t l e g s ; i n

Dettagli

Espressioni ed operatori in C

Espressioni ed operatori in C Espressioni ed operatori in C Espressioni Il C è un linguaggio basato su espressioni Una espressione è una notazione che denota un valore mediante un processo di valutazione Una espressione può essere

Dettagli

Il linguaggio C - Introduzione

Il linguaggio C - Introduzione Il linguaggio C - Introduzione Il C è un linguaggio imperativo legato a Unix, adatto all implementazione di compilatori e sistemi operativi. È stato progettato da D. Ritchie per il PDP-11 (all inizio degli

Dettagli

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che

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

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Ingegneria Meccanica Lezione 3, 8 ottobre 2007 versione 9 ottobre 2007 Renato Menicocci Interi in complemento a 2 (I) Con N bit

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

LIBRERIE STANDARD in C. LIBRERIE STANDARD in C

LIBRERIE STANDARD in C. LIBRERIE STANDARD in C LIBRERIE STANDARD in C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria, non occorre inserirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle

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à Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

Fondamenti di Informatica T. Linguaggio C: i puntatori

Fondamenti di Informatica T. Linguaggio C: i puntatori Linguaggio C: i puntatori Il puntatore E` un tipo di dato, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un insieme

Dettagli

IL PRIMO PROGRAMMA IN C

IL PRIMO PROGRAMMA IN C IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE

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

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

Lezione 10. L arte della programmazione

Lezione 10. L arte della programmazione Lezione 10 Linguaggi di programmazione: il C Le variabili e le costanti L assegnazione Gli operatori La documentazione L input/output L arte della programmazione La soluzione di un problema tramite un

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

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

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

Dettagli

Introduzione al linguaggio C

Introduzione al linguaggio C INFORMATICA B Ingegneria Elettrica Introduzione al linguaggio C Introduzione Linguaggio di programmazione ad alto livello Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro

Dettagli

Sviluppare un programma in FORTRAN

Sviluppare un programma in FORTRAN Sviluppare un programma in FORTRAN Scrivere il file sorgente Editor di testo (emacs, vi, notepad, etc) Compilare Compilatore (ifort, gfortran, etc) Eseguire il programma Riga di comando, doppio click,

Dettagli

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: 1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente

Dettagli

Il linguaggio C. I tipi di dati scalari. Il casting Le dichiarazioni di tipo I puntatori

Il linguaggio C. I tipi di dati scalari. Il casting Le dichiarazioni di tipo I puntatori Il linguaggio C I tipi di dati scalari Il casting Le dichiarazioni di tipo I puntatori 1 I tipi di dati scalari 2 I tipi di dati scalari 1 Una delle caratteristiche più importanti dei linguaggi di alto

Dettagli

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C... Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...

Dettagli

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione Introduzione a Funzioni di Ingresso e Uscita Compilazione 2 Come si termina...... un programma in esecuzione (processo)? Ctrl + C In UNIX ci si basa sul concetto di terminale Anche da GUI, quello che si

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

Scrittura formattata - printf

Scrittura formattata - printf Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del

Dettagli

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere Tipi elementari, costanti 1 Tipi di dati VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori Tipi Semplici intero reale carattere Strutturati 2 1 Tipo intero Gli interi servono

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati Caratteristiche Il Linguaggio C Linguaggio sequenziale (lineare), imperativo, strutturato a blocchi usabile anche come linguaggio di sistema software di base sistemi operativi compilatori... FI - Algoritmi

Dettagli

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento Linguaggio C Gli Operatori Gli Operatori Gli operatori sono simboli (sia singoli caratteri che loro combinazioni) specificano come devono essere manipolati gli operandi dell espressione Operatori aritmetici

Dettagli

Argomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili

Argomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili Linguaggio C Argomenti Avanzati! I puntatori! Stack! Visibilità delle Variabili 2 ! Il C consente di associare ai tipi di dati nomi definiti dal programmatore, mediante la parola chiave typedef! Dal punto

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

Il Modello di von Neumann (2) Prevede 3 entità logiche:

Il Modello di von Neumann (2) Prevede 3 entità logiche: Introduzione all Architettura degli Elaboratori Sommario Macchina di von Neumann Esecuzione dei programmi Rappresentazione dei dati Dati numerici Dati alfabetici 1 2 Il Modello di von Neumann (1) L architettura

Dettagli

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 LA CODIFICA DELL INFORMAZIONE Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 Codifica dati e istruzioni Per scrivere un programma è necessario rappresentare istruzioni

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma Istituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS Dall'Algoritmo al Programma Pr.: 002 Ver.:1.0 Autore: prof. Michele Salvemini

Dettagli

La codifica binaria. Informatica B. Daniele Loiacono

La codifica binaria. Informatica B. Daniele Loiacono La codifica binaria Informatica B Introduzione Il calcolatore usa internamente una codifica binaria ( e ) per rappresentare: i dati da elaborare le istruzioni dei programmi eseguibili Fondamenti di codifica

Dettagli

Tipi di Dati Avanzati

Tipi di Dati Avanzati Linguaggio C Tipi di Dati Avanzati! I tipi di dati scalari! Il casting! Le dichiarazioni di tipo! I puntatori 2 I tipi di dati scalari 3 ! Una delle caratteristiche più importanti dei linguaggi di alto

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Lab 02 Tipi semplici in C

Lab 02 Tipi semplici in C Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2009/2010 Lab 02 Tipi semplici in C Lab02 1 Obiettivo dell esercitazione Acquistare

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

Conversioni fra Tipi di Dati. Luca Abeni

Conversioni fra Tipi di Dati. Luca Abeni Conversioni fra Tipi di Dati Luca Abeni Tipi di Dato e Conversioni In C, ogni variabile è caratterizzata da un tipo I valori che la variabile può assumere dipendono dal tipo È possibile mescolare variabili

Dettagli

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base Cambiamenti di base Tecniche Informatiche di Base TIB 1 Il sistema posizionale decimale L idea del sistema posizionale: ogni cifra ha un peso Esempio: 132 = 100 + 30 + 2 = 1 10 2 + 3 10 1 + 2 10 0 Un numero

Dettagli

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli Codice La relazione che associa ad ogni successione ben formata di simboli di un alfabeto il dato corrispondente è detta codice. Un codice mette quindi in relazione le successioni di simboli con il significato

Dettagli

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano. Murano Aniello LASD 05/06 Seconda Lezione.

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano. Murano Aniello LASD 05/06 Seconda Lezione. Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano 1 Il linguaggio C 2 1 Cenni storici Indice (Prima parte) Caratteristiche generali Identificatori

Dettagli

Formattazione avanzata. I/O Avanzato e File. Formattazione dell output. Formattazione avanzata. Forma completa degli specificatori

Formattazione avanzata. I/O Avanzato e File. Formattazione dell output. Formattazione avanzata. Forma completa degli specificatori Formattazione avanzata Modificatori di o in output Modificatori di o in input Stream predefiniti I/O Avanzato e File 2 Formattazione dell output Formattazione avanzata L output (su schermo o su file) viene

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

La programmazione nel linguaggio C

La programmazione nel linguaggio C 3 La programmazione nel linguaggio C 3.0 La programmazione nel linguaggio C c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 3.0 0 Introduzione ai programmi

Dettagli

# $ %$&'" '! () *$+,!-

# $ %$&' '! () *$+,!- !" # $ $&'" '! () *$+,!- ',.''/ '/0 1' *'/*'* * 2*! 3( * +- 1 '.'"'!0*'.''! 0* 2.''!0 445 5 5 464 + 1 7+!"" 788 9 3 7 : 7, ;, # < = (,? >,? @,, $3 $, 3 $ >$ (A 3- > $, A9 B $$ ; (; -*'" *73*

Dettagli

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Descrizione delle operazioni di calcolo. Espressioni costanti semplici Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette

Dettagli