Programmazione C Massimo Callisto De Donato
|
|
- Sabrina Giuliano
- 5 anni fa
- Visualizzazioni
Transcript
1 Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it LEZIONE 3 TIPI DI DATO A.A. 2011/12
2 Tipi di dati
3 Tipi di dato In C esistono due categorie di tipi: primitivi e derivati. I tipi primitivi (o fondamentali): void enum char int float double I tipi derivati (o composti): array strutture unioni I secondi sono costruiti a partire dai primi e vengono usati per raggruppare variabili logicamente correlate. Il tipo void è un tipo di dato utilizzato rappresenta il valore vuoto. E.s.: si usa in funzioni che non restituiscono valori, nelle malloc.
4 Sintassi delle dichiarazioni Qualunque identificatore (variabile, funzione, ) deve essere dichiarato prima dell utilizzo. Dichiarare una variabile significa specificare a quale tipo appartiene al fine di dire al compilatore: Quanta memoria deve essere riservata Quali sono le operazioni ammesse su di essa. Sintassi di una dichiarazione: tipo variabile; //oppure elenco variabili separate da virgole; Esempi: char letter; int number, sum; float f, media; Non ci sono valori di default. Dobbiamo fare inizializzazioni esplicite: char letter = 'A'; int number = 0, sum = 2; float f = 2.178;
5 Tipi primitivi: i tipi int, float e double Il tipo int rappresenta interi tipicamente a 32 bit (4 byte). Il valore massimo è quindi 2^ Il tipo float rappresenta numeri reali in virgola mobile con precisione singola a 4 byte. Il tipo double rappresenta numeri reali in virgola mobile con precisione doppia a 8 byte. Le dimensioni effettive dipendono dall architettura della macchina che stiamo usando. Anche se possono cambiare assumiamo che: char <= int float <= double
6 Tipi primitivi: i tipi int, float e double short e long (quantificatori di dimensione) Modificano la memoria di default associata ad un tipo di variabile: short int è un int con dimensione minore o uguale a quella di int long int è un int maggiore o al più uguale a quella di int Dipende sempre dall architettura del sistema ma assumiamo che: short int <= int <= long int double <= long double
7 Tipi primitivi: i tipi int, float e double signed (int o char) e unsigned (int o char) Si applicano ai tipi char e int e fanno esplicitamente riferimento all aritmetica senza segno: I valori numerici possono essere solo positivi il range di int è +/ , il range di unsigned int è signed definisce che una variabile ha il segno anche se è ridondante. Spesso si usano delle abbreviazioni: short short int unsigned unsigned int Unsigned short unsigned short int unsigned long unsigned long int
8 Tipi primitivi: dimensioni Tipo Range Dimensione in memoria char 127 a +127oppure 0 a signed char 127 a unsigned char 0 a signed short int a unsigned short int 0 a signed int a o 4 unsigned int 0 a o 4 signed long int a o 8 unsigned long int 0 a o 8 signed long long int a unsigned long long int 0 a float a double a long double a , 12, o 16
9 Tipi di dato: char I char identificano caratteri alfanumerici, simboli di punteggiatura, spazi, etc. Li indichiamo tra apici (e.s. 'A', '0', '# ). Vedremo che 'A' (char) è diverso da "A" (vettore formato da 'A' e ' \0 ) I caratteri sono codificati (memorizzati) secondo lo standard ASCII: 8 bits (1 byte) per codificare un carattere 127 combinazioni. 255 Nella versione ASCII estesa. Ad ogni carattere associamo un codice univoco: Il carattere 'A' viene codificato mediante la sequenza binaria Corrisponde all intero positivo 65 I char possono essere manipolati come int dato che contengono interi. Supportano le tipiche operazioni su interi: addizione, sottrazione, uguaglianze,
10 Tipi di dato: char
11 Tipi di dato: char #include <stdio.h> #include <stdlib.h> int main() { char c; printf("inserisci un carattere: "); c = getchar(); printf("hai inserito una '%c' che ha valore %d\n", c, c); } return 0;
12 Tipi di dato: char /* Differenza di input */ #include <stdio.h> #include <stdlib.h> int main() { char c1; int c2; printf("inserisci un carattere: "); c1 = getchar(); printf("stesso catrattere da scanf: "); scanf("%d", &c2); printf("primo input '%d'\nsecondo input '%d'\n", c1, c2); } return 0;
13 Costanti Le costanti si riferiscono a valori fissi e noti a priori Quattro categorie: costanti carattere: 'A', '0', '#' le costanti intere: base decimali: 0, 89 base ottale (in base 8) precedute da 0: 012, (base 8) = (1 * 8^1) + (2 * 8^0) = = 10 77(base 8) = (7 * 8^1) + (7 * 8^0) = = 63 base esadecimale (in base 16) precedute da 0x oppure 0X: 0xAA, 0X77 costanti floating point: 23.56, costanti stringa: "stringa", "pippo"
14 Costanti Il compilatore sceglie automaticamente il tipo in base al valore Possiamo alterare il comportamento con i suffissi: Es.: Se int di default è int oppure long con L Sempre int ma unsigned se U Se è un float allora è un double. Possiamo usar F per un float oppure L per un long double // int 35000L -34L 10000U 19U // long int // unsigned int // double F // float L // long double
15 Costanti Esempi: #define BASE 10 #define BASE_8 012 #define BASE_16 0xA #define BASE_L 10L #define AREA #define STR pippo // intero // base ottale // base esadecimale // intero long // double // vettore di caratteri
16 Enum Si usano quando si vuole specificare un insieme preciso di valori che una variabile può assumere. Es: enum color {red, blue, green, yellow}; enum intensity {bright, medium, dark}; Sintassi generica: enum nome_tipo {lista_costanti}; Ai nomi delle costanti viene associato un valore intero di default basato sulla posizione nella lista: la prima costante assume valore 0 alla seconda uno, etc Il valore può essere modificato esplicitamente (es.: enum succ {success = 1, failure = 0})
17 Enum #include <stdio.h> int main() { enum days {Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}; enum days TheDay; int j = 0; printf("please enter the day of the week (0 to 6)\n"); scanf("%d",&j); TheDay = j; if(theday == Sunday TheDay == Saturday){ printf("weekend\n"); }else{ printf("work\n"); } } system("pause"); return 0;
18 Modificatori di accesso E possibile istruire il compilatore su come utilizzare una variabile. Sono i modificatori di accesso, ovvero parole chiavi da inserire prima del nome al momento della dichiarazione. const: il contenuto della variabile, assegnato in fase dichiarazione/inizializzazione, non può essere mai modificato static: una variabile viene dichiarata ed inizializzata una sola volta. A chiamate successive ci ricordiamo dell ultimo valore assunto. Variabili static globali diventano private a quel file. volatile: indica al compilatore che la variabile potrebbe essere modificata in modo inatteso dall esterno. Evita le ottimizzazioni del compilatore. register: richiede che la variabile sia mantenuta sempre in registro della CPU, o nella cache per richiamarla più velocemente. extern: quando uniamo più file oggetto, le variabili extern fanno riferimento a variabili globali dichiarate in un altro file oggetto. I collegamenti sono risolti dal linker
19 Modificatori di accesso // main.c #include <stdio.h> #include "bridge.h" // bridge.h int num(); #define PIPPO 120U /* extern */ int ggl; int main() { printf("%d, %d\n", PIPPO, ggl); num(); printf("%d, %d\n", PIPPO, ggl); return 0; } // file.c #include <stdio.h> /* static */ int ggl = 0; int num(){ printf("ciao mondo"); ggl++; return 0; }
20 Operatori
21 Operatori Tre tipi di operatori: assegnamento, aritmetici, relazionali. Operatore di assegnamento: variabile = espressione La valutazione (parte destra) viene assegnato alla variabile (parte sinistra): variabile espressione L assegnamento può comparire all interno di altre espressioni: y = 2 + (x = 7 * 3); Assegnamenti multipli tra tipi di variabili dello stesso tipo: int x = y = 5 Non vale: int z, f= 10.5, k = c ;
22 Operatori aritmeici Se / viene applicato ad interi, il resto viene troncato: 5 / 2 = 2 mentre 5.0/2 = 2.5 a % b restituisce il resto della divisione tra a e b e vale solo su operandi interi. Es: 6.98 % 3 // errore di compilazione! Possiamo scrivere: int a, b; a = b = 3; printf( %d, ++a%b); // stampa?
23 Operatori aritmetici L ordine di valutazione stabilisce quali operatori devono essere valutati per primi. Esempi: * 13 ~ 15 + (4 * 13) 16 / ~ (16 / 4) + 3 a * --b ~ (a++) - (5 * (--b)) [Se a = 5 e b = 6, il risultato è?] A parità di precedenza, l'associazione è tipicamente a sinistra (si scorre da sinistra a destra) ~ (15-4) - 13 = (4-13) = 15 - (-9) = = 24 // errore! Le priorità e l'associatività possono essere modificati con l uso di parentesi ()
24 Operatori aritmetici unari L incremento /decremento ++/-- aggiunge/sottrae una unità all operando ++x; ~ x = x + 1; --x; ~ x = x - 1; Possono precedere oppure seguire la variabile (con effetti diversi!): ++x (notazione prefissa) x++ (notazione postfissa); La differenza è nel valore restituito: notazione prefissa: prima si effettua l incremento/decremento, poi si valutata l espressione notazione postfissa: prima si valutata l espressione, poi si effettua l incremento/decremento Ad esempio, per n= 5 x = ++n; // x == 6 x = n++; // x == 5 a * --b ~ (a++) - (5 * (--b)) [Se a = 5 e b = 6, il risultato è?]
25 Operatori aritmetici abbreviazioni Esistono le forse compatte += e -= x += 9; ~ x = x + 9; Sintassi generica: operatore= dove operatore appartiene a {+, -, *, /, %} Esempi: a += 5 a = a + 5 a -= b a = a b a *= b + 4 a = a * (b + 4) Hanno la stessa priorità dell assegnamento semplice: a = 4; a -= 3 * ~ 4 - ((3 * 2) + 11) = 4-17 = -13
26 Operatori relazionali e logici Gli operatori relazionali stabiliscono relazioni di grandezza. Gli operatori logici stabiliscono relazioni di uguaglianza.
27 Operatori relazionali e logici In C non esiste un tipo booleano (true o false). Gli operatori relazionali (logici) restituiscono valori numerici: 0 per falso 1 per la verità Il risultato di un espressione può essere assegnato a variabili intere. x = 5 > 7; x = (9 <= 10) && 1 Possiamo usare (e come) enum?
28 Priorità degli operatori logici e relazionali: Gli operatori relazionali e && e!! hanno una precedenza inferiore rispetto a quelli aritmetici. && e hanno una precedenza inferiore rispetto a quelli relazionali. 10 > > (1 + 12) ritorna? (10 > 1) + 12 ~ vero + 12 = = > 1 == 12 ~ (10 > 1) == 12 restituisce 0 (falso) 1 0 && 0 ~ 1 (0 && 0) 1 (vero) L associazione è a sinistra: 13 > 7 >= 6 ~ (13 > 7) >= 6 1 >= 6 0 (falso) 13 > (7 >= 6) 13 > 1 1 (vero)
29 Operatore ternario L operatore ternario? rappresenta una valutazione/assegnazione La sintassi: expr1? expr2 : expr3 Restituisce expr2 se expr1 è vera; Restituisce expr3 altrimenti (expr1 è falsa).? ha una priorità maggiore dell operatore di assegnamento. v = (x == y)? 39 : 7 y = x < 5? 1 : 2; y = x? x : 0; y = ++x? x : x--; y = (x + 1)? x : 0; Y = (1 && 0)? (0 1) :!1;
30 Gerarchia finale
31 Operatori bitwise Operatore bi-a-bit Significato & AND &= AND con assegnamento OR = OR con assegnamento ^ XOR ^= XOR con assegnamento ~ Complemento a uno << Shift a sinistra >> Shift a destra <<= Shift a Sinistra con assegnamento >>= Shift a Destra con assegnamento
32 Operatori bitwise unsigned int a = 60; /* 60 = */ unsigned int b = 13; /* 13 = */ unsigned int c = 0; c = a & b; /* 12 = */ c = a b; /* 61 = */ c = a ^ b; /* 49 = */ c = c ~ c; /* 206 = */ unsigned int Value=4; /* 4 = */ unsigned int Shift=2; Value = Value << Shift; /* 16 = */ Value <<= Shift; /* 64 = */ Value = Value >> Shift * 2; /* 4 = */ // uno shift >> significa dividere per 2 // uno shift << significa moltiplicare per 2
33 Altri operatori Operatore & * sizeof Significato Restituisce l indirizzo dell operando. Accede tramite puntatore al contenuto della variabile puntata. Restituisce la lunghezza in byte dell operando. Esiste l analoga funzione sizeof(). Accede ai membri delle strutture. -> Accesso tramite puntatore ad un membro di una struttura. [] Operatore per accedere agli elementi di un array. {} Delimitatore di istruzioni.
34 Cast
35 Conversione di tipo (casting) Nelle operazioni tra tipi diversi, il C esegue una conversione automatica (implicita) Regola 1: gli operandi di tipo inferiore sono convertiti nell operando di tipo superiore. Il risultato è sempre di tipo superiore Regola 2: negli assegnamenti, il valore a destra viene convertito nel tipo a sinistra. int y = ; // warning del compilatore int x = 280; char ch; float f = 4.976; ch = x; x = f; f = x; // int convertito in char i 24 bitsuperiori di x vengono ignorati // float viene convertito in int, x ricevela parte intera di f //stesso valore ma in virgola mobile x = x + f; // quante conversioni vengono effettuate?
36 Conversione di tipo (casting): esplicito La conversione esplicita dei tipi avviene per mezzo di casting esplicito: (tipo) espressione Esempio: La funzione sqrt (calcola la radice quadrata del suo argomento) opera su double. #include <math.h> double sqrt(double x); Per n intero, possiamo scrivere sqrt((double) n) ma è ridondante perché? Nell'esempio di prima x = x + f si poteva scrivere x = x + ((int) f) char c = A ; printf( %d, (int) c)
Informatica 2 modulo C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Informatica 2 modulo C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliElementi 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
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione : Elementi lessicali del C Vittorio Scarano Corso di Laurea in Informatica Elementi lessicali e token Costanti Identificatori Operatori operatori di incremento/decremento
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 5 31/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
DettagliLinguaggio 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
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università
Dettagli1
Manuali di C Linguaggio C B. W. Kernigan, D. M. Ritchie Jackson La guida completa al C H. Schildt McGraw-Hill Fondamenti di Informatica 1 Linguaggio C Creato nei primi anni 70 per sviluppare il S.O. Unix
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 / 34 Ringraziamenti prof. Mirko Viroli, Università
Dettagli#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()
Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine
DettagliCostanti 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
DettagliIl corpo di tutte le funzioni deve essere contenuto tra parentesi graffe
Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine
DettagliProgrammare 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
DettagliIntroduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008
DettagliI/O da tastiera + Alessandra Giordani Lunedì 2 maggio
I/O da tastiera + costrutti while e if Alessandra Giordani agiordani@disi.unitn.it Lunedì 2 maggio 2011 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una
DettagliTipi 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
DettagliCorso 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
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 2: Elementi lessicali, casting e while Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Soluzione agli esercizi
DettagliLinguaggi di programmazione
Linguaggi di programmazione C LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell
DettagliCorso Programmazione
Corso Programmazione 2009-2010 (docente) E-mail: aiolli@math.unipd.it Web: www.math.unipd.it/~aiolli Dipartimento di Matematica Pura ed Applicata Torre Archimede, Via Trieste 63 PARTE 3 2 Variabili Le
DettagliTipi 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
DettagliStruttura di un programma C++
Struttura di un programma C++ // Programma semplice in C++ #include using namespace std; int main() { cout
DettagliSi possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi).
Operatori di incremento e decremento: ++ e -- ++ e -- sono operatori unari con la stessa priorità del meno unario e associatività da destra a sinistra. Si possono applicare solo a variabili (di tipi interi,
DettagliDichiarazioni e tipi predefiniti nel linguaggio C
Politecnico di Milano Dichiarazioni e tipi predefiniti nel linguaggio C Variabili, costanti, tipi semplici, conversioni di tipo. Premessa Programmi provati sul compilatore Borland C++ 1.0 Altri compilatori:
DettagliParte seconda: espressioni, operandi e operatori.
Parte seconda: espressioni, operandi e operatori. 1. Le espressioni Le espressioni sono combinazioni di operatori e operandi. Gli operandi sono a loro volta combinazioni di costanti, variabili semplici
DettagliLinguaggio 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
DettagliIL LINGUAGGIO C TIPI DI DATO
IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace di trattare vari domini di dati, detti tipi primitivi dominio dei
DettagliTipi 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
DettagliTipi 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
DettagliIntroduzione alla programmazione. Alice Pavarani
Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello
DettagliUn 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
DettagliAssegnamento. Ricordiamo che l esecuzione di x = exp corrisponde a: Esempio: somma = 5; a = 2; somma = somma + a; somma 5 = 7 a 2 2
Assegnamento Assegnamento Ricordiamo che l esecuzione di x = exp corrisponde a: 1. valutare il valore dell espressione exp a destra di = (usando i valori correnti delle variabili); 2. assegnare poi tale
DettagliEspressioni in Linguaggio C
Concetti chiave Espressioni in Linguaggio C Espressioni Conversioni Implicite Operatori aritmetici Operatore di assegnamento Operatori relazionali Operatori logici Gerarchia e associatività degli operatori
DettagliIL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace
IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace di trattare vari domini di dati, detti tipi primitivi dominio dei
DettagliTipi di dato semplici
Tipi di dato semplici Informatica B Tipi di dati q In C esistono diversi tipi di dato built-in, tra cui int: numeri interi float: numeri con virgola (singola precisione) double : numeri con virgola (doppia
DettagliChar. Parte 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
DettagliStruttura dei programmi e Variabili
Linguaggio C Struttura dei programmi e Variabili 1 La struttura generale dei programmi! Struttura del programma: Direttive Funzioni Dichiarazioni Istruzioni Di assegnamento direttive Di ingresso e uscita
DettagliEspressioni 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
DettagliLaboratorio 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
DettagliTipi 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
DettagliIl 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
DettagliTipi di dato semplici
Tipi di dato semplici Abbiamo visto nei primi esempi che il C tratta vari tipi di dato = le dichiarazioni associano variabili e costanti al corrispondente tipo Per tipo di dato si intende un insieme di
DettagliProgrammazione 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
DettagliCast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double
Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di
DettagliPuntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a
Puntatori in C Puntatori Variabili tradizionali indirizzo int a = 5; A00E... Proprietà della variabile a: nome: a A010 A012 5 tipo: int A014 valore: 5 indirizzo: A010 Finora abbiamo usato solo le prime
DettagliEspressioni 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
DettagliEspressione 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 è
DettagliLinguaggio C Cenni storici
Linguaggio C Cenni storici Il linguaggio C venne sviluppato nel 1973 da Dennis M. Ritchie, degli AT&T Bell Labs, come linguaggio di programmazione di sistema. Prese spunto da linguaggi precedenti come
DettagliInformatica. Stefano Lodi. 16 novembre in linguaggio C
Informatica in linguaggio C Stefano Lodi 16 novembre 2005 0-0 Algoritmi, linguaggi, programmi, processi trasformazione di un insieme di dati iniziali in un insieme di risultati finali mediante istruzioni
DettagliSintassi: 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
DettagliPrimi esempi di programmi. Il tipo int Le variabili Altri tipi interi Operatori di assegnazione
Primi esempi di programmi Il tipo int Le variabili Altri tipi interi Operatori di assegnazione Il tipo int Un int permette di trattare numeri interi 4 byte (32 bit) con la tecnica del complemento a 2 (ma
Dettagli2001 Pier Luca Montessoro, Davide Pierattoni (si veda la nota di copyright alla slide n. 2)
- Linguaggio C - Espressioni e operatori FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing.DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Espressioni e operatori
DettagliTipi 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
DettagliChar. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi
Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto
DettagliIntroduzione al linguaggio C Primi programmi
Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliIl 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
DettagliLINGUAGGI DI PROGRAMMAZIONE!
LINGUAGGI DI PROGRAMMAZIONE! Il potere espressivo di un linguaggio è! caratterizzato da:! quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente)! quali istruzioni
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA.2.2 Operare con i dati Prerequisiti Concetti matematici di: Espressione Operatore 2 Introduzione Le variabili utilizzate da un programma vengono usate con operatori
DettagliLINGUAGGI DI PROGRAMMAZIONE
LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di
DettagliL assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Abbiamo visto È conveniente definire una macchina astratta C Lo stato della macchina ci
DettagliEsercizi Programmazione I
Esercizi Programmazione I 0 Ottobre 016 Esercizio 1 Funzione valore assoluto Il file.c di questo esercizio deve contenere nell ordine, il prototipo (dichiarazione) di una una funzione abs, che prende in
DettagliIntroduzione alle operazioni di I/O con formato e tipi primitivi
Introduzione alle operazioni di I/O con formato e tipi primitivi Un programma C legge normalmente i dati su cui operare dallo standard input (stdin) e comunica con l esterno scrivendo dati sullo standard
DettagliUtilizza 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
DettagliLinguaggio C: Variabili e assegnamento e semplici comandi di I/O
Linguaggio C: Variabili e assegnamento e semplici comandi di I/O Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Un programma
DettagliLezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit
Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione
DettagliPrimi programmi in C
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Uso del compilatore gcc Struttura di un programma
DettagliSettimana n.4 Obiettivi Contenuti
Settimana n.4 Obiettivi Input-output di base Utilizzo del pre-processore Costrutti condizionali semplici Condizioni complesse Costrutti condizionali annidati Contenuti scanf e printf a livello elementare
DettagliInformatica AA 2005/06. Programmazione M.A. Alberti. Operatori in Java 1. Operatori in Java. Espressioni aritmetiche. Espressioni booleane
Operatori in Java Operatori in Java Corso di laurea in Informatica Operatori aritmetici Operatori di uguaglianza e relazionali Operatori logici in espressioni booleane La precedenza degli operatori L associatività
DettagliI puntatori. DD Cap.7 pp KP Cap.6 pp
I puntatori DD Cap.7 pp.245-280 KP Cap.6 pp.219-235 Cos è un puntatore Un puntatore è una variabile che assume come valore un indirizzo di memoria. Il nome di una variabile fa quindi riferimento ad un
DettagliQuando è necessario elaborare una certa quantità di dati omogenei si possono usare variabili indicizzate: int a0, a1, a2;
Array Quando è necessario elaborare una certa quantità di dati omogenei si possono usare variabili indicizzate: int a0, a1, a2; Il C supporta questo uso attraverso il tipo di dati array (o vettore): int
DettagliIl primo programma C. Un programma utile. Compilazione & linking con il compilatore GNU. Introduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma C /* Hello world: il mio primo programma C */ Commento su più righe; il compilatore ignorerà tutto quanto compreso fra /* e */. Il primo
DettagliLezione 5: Introduzione alla programmazione in C
Lezione 5: Introduzione alla programmazione in C Laboratorio di Elementi di Architettura e Sistemi Operativi 4 Aprile 2012 Introduzione al C C vs. Java Java: linguaggio ad oggetti C: linguaggio procedurale
DettagliVariabili e Funzioni. Informatica 1 / 19
Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:
DettagliIl linguaggio C Variabili e tipi di dato primitivi
Il linguaggio C Variabili e tipi di dato primitivi main() { /*definizioni variabili: */ char y= a ; /*codice(a)=97*/ int x,x,y; unsigned int Z; float SUM; double r; /* parte istruzioni: */ X=27; Y=4; Z
DettagliManualistica 1 Variabili e costanti
Programmazione e Laboratorio di Programmazione Manualistica 1 Variabili e costanti Programmazione e Laboratorio di Programmazione: Variabili e costanti 1 Definizione di una variabile Sintassi: tipo_variabile
DettagliLezione 2. Laboratorio di Informatica II - a.a
Lezione 2 1 I tipi di dati scalari 2 Le tipologie di numeri interi Al tipo int possono essere assegnate dimensioni diverse su architetture distinte (tipicamente 4 o 8 byte) Il tipo int rappresenta il formato
DettagliTipi 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
DettagliInformatica 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)
DettagliIndice. Ordine di valutazione. Espressioni in C++ Le espressioni in C++ (CAP 4) Alberto Garfagnini e Marco Mazzocco A.A. 2014/ * 20 / 2
Le espressioni in C++ (CAP 4) Indice Le espressioni in C++ : precedenze e associatività degli operatori Alberto Garfagnini e Marco Mazzocco Università degli studi di Padova A.A. 2014/2015 gli operatori
DettagliCorso sul linguaggio C
Corso sul linguaggio C Modulo 1 1.1 Istruzioni semplici 1 Prerequisiti Saper progettare algoritmi Saper descrivere algoritmi (NLS, ddf) Conoscere il concetto di espressione 2 1 Introduzione In questa lezione
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliC: 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
DettagliLab 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
DettagliTipi 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
DettagliIntroduzione al linguaggio C Funzioni
Introduzione al linguaggio C Funzioni Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati
DettagliLe parole chiave char, int, float, double, ed enum descrivono i. che modificano i tipi base
Il linguaggio C I tipi di dati scalari Il casting Le dichiarazioni di tipo I puntatori I tipi di dati scalari 1 2 I tipi di dati scalari 1 Una delle caratteristiche più importanti dei linguaggi di alto
DettagliLinguaggi di Programmazione I Lezione 9
Linguaggi di Programmazione I Lezione 9 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 6 maggio 28 Variabili 3 Ambiti................................................................
DettagliIntroduzione al C. Lez. 1 Elementi. Rossano Venturini
Introduzione al C Lez. 1 Elementi Rossano Venturini rossano@di.unipi.it Pagine del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start http://algoritmica.spox.spoj.pl/alglab2013 Lezioni
DettagliIl 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
DettagliLa 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
DettagliLinguaggio 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
DettagliTipi 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/ Tipi e Valori 2 / 26 Ringraziamenti prof. Mirko Viroli, Università
DettagliUnità 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