Introduzione al Linguaggio C

Похожие документы
La codifica dei caratteri di un testo

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

Costanti e Variabili

Codifica dell Informazione

LINGUAGGI DI PROGRAMMAZIONE!

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

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni

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

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

Tabella dei codici ASCII standard

Elementi di informatica

Architettura di un elaboratore. Rappresentazione dell informazione digitale

Codifica binaria. Rappresentazioni medianti basi diverse

Codifica binaria dell informazione

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

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

Rappresentazione dell informazione

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

La codifica binaria. Informatica B. Daniele Loiacono

La rappresentazione delle informazioni in un computer. La numerazione binaria

Corso di Architettura degli Elaboratori

CODIFICA DELL INFORMAZIONE E CODICI BINARI

Codifica dei Numeri. Informatica ICA (LC) 12 Novembre 2015 Giacomo Boracchi

Linguaggio C - sezione dichiarativa: costanti e variabili

Codifica dell Informazione

Modulo: Elementi di Informatica

Capitolo 2 Codifica binaria dell informazione. 2.1 Rappresentazione. La rappresentazione dell informazione. Alfabeti e simboli

Informatica Applicata. introduzione

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

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

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

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

Struttura dei programmi C

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

Guida di riferimento dei codici a barre

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1

Codifica dell Informazione

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

Il linguaggio C. Notate che...

Rappresentazione dell Informazione. Sistemi di Elaborazione delle Informazioni Rappresentazione Informazione 1

La codifica. dell informazione. Tipi di informazione

I.4 Rappresentazione dell informazione

Linguaggi, Traduttori e le Basi della Programmazione

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

L'Informazione e la sua Codifica. Maurizio Palesi

Alfabeto ed elementi lessicali del linguaggio C

La Rappresentazione dell Informazione

Somma di numeri binari

Strutture dati e loro organizzazione. Gabriella Trucco

Rappresentazione di dati: numerazione binaria. Appunti per la cl. 3 Di A cura del prof. Ing. Mario Catalano

Caratteristiche di un linguaggio ad alto livello

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) per sostituire l assembler nella programmazione di sistemi operativi: UNIX Prima definizione precisa: Kernigham & Ritchie (1978) Prima definizione ufficiale: ANSI C (1983) Informatica 1 - Michele Colajanni, 2003 54 Linguaggi di alto livello (cont.) Informatica 1 - Michele Colajanni, 2003 55 2

Linguaggi di alto livello (cont.) Informatica 1 - Michele Colajanni, 2003 56 Caratteristiche del C Linguaggio sequenziale, imperativo, strutturato a blocchi Usabile anche come linguaggio di sistema adatto a software di base, sistemi operativi, compilatori, ecc. Portabile, efficiente, sintetico (ma a volte poco leggibile...) Basato su pochi concetti elementari: espressione dichiarazione / definizione istruzione / blocco funzione tuttavia, viene arricchito da un vasto insieme di librerie di funzioni (per operazioni matematiche, di input/output, su stringhe, ecc.) Informatica 1 - Michele Colajanni, 2003 57 3

Caratteristiche del C (cont.) SET DI CARATTERI Dipendente dalla implementazione (in genere ASCII più estensioni) IDENTIFICATORI <Identificatore> ::= <Lettera> { <Lettera> <Cifra> } Lettera include tutte le lettere, maiuscole e minuscole, e l underscore _ (utilizzabile all inizio solo per oggetti di sistema) Maiuscole e minuscole sono diverse (linguaggio C è case-sensitive) PAROLE RISERVATE Esempio: int, float, if, for, do,... { } delimitatore di blocco COMMENTI /* commento, anche su più righe */ (non possono essere innestati) Informatica 1 - Michele Colajanni, 2003 58 Costanti (numeriche) Una costante è un astrazione simbolica di un valore Base 2 byte 4 byte Numeri interi 12 70000 Ottale 014 0210560 Esadecimale 0xFF 0x11170 Numeri reali 24.0 2.4E1 240.0E-1 Informatica 1 - Michele Colajanni, 2003 59 4

Costanti (caratteri) Esempio: 'A' 'c' '6' Anche: caratteri speciali: '\n', '\t', '\'', '\\', '\"' caratteri indicati tramite codice ASCII: \nnn, \0xhhh ( nnn = numero ottale, hhh = numero esadecimale) '\041' '\0' 240.0E-1 Stringa di caratteri carattere ciao Hello\n (stringa nulla) Informatica 1 - Michele Colajanni, 2003 60 Variabili Una variabile è un astrazione della cella di memoria Formalmente, una variabile è un simbolo associato a un indirizzo fisico (L-VALUE) simbolo indirizzo x 1328 che denota un valore (R-VALUE) perciò, l R-VALUE di x è attualmente 4: 1328... 4... Informatica 1 - Michele Colajanni, 2003 61 5

Costanti e Variabili COSTANTE Simbolo Valore VARIABILE Non modificabile a tempo di esecuzione Modificabile a tempo di esecuzione Simbolo Indirizzo (L-Value) Valore (R-Value) Informatica 1 - Michele Colajanni, 2003 62 Costanti e Variabili Una costante è un astrazione simbolica di un valore L associazione simbolo-valore non cambia mai durante l esecuzione Una variabile è un simbolo associato a un indirizzo fisico (L-VALUE) che contiene un valore (R-VALUE) L associazione simbolo-indirizzo non cambia mai durante l esecuzione, ma può cambiare l associazione indirizzo-valore Pertanto, nel caso di variabile, ad uno stesso simbolo possono corrispondere valori differenti in diversi momenti dell esecuzione del programma Attenzione R-VALUE può cambiare nel corso dell esecuzione L-VALUE è fissato (e non cambia durante l esecuzione) Informatica 1 - Michele Colajanni, 2003 63 6

Introduzione ai Tipi di dato Tipi di dato In C (come in tutti i linguaggi di programmazione) a ciascuna variabile e costante è associato anche il TIPO, ovvero la classe di valori che la costante o variabile può assumere nel corso dell esecuzione del programma (e quindi gli operatori applicabili al valore in essa contenuto). L associazione di un nome (di costante o di variabile) ad un tipo di dato non cambia mai durante l esecuzione del programma. Quali sono i tipi di dato ammissibili in C? Informatica 1 - Michele Colajanni, 2003 65 7

Tipi di Dato tipi di dato scalari strutturati puntatori predefiniti int char float double definiti dall'utente costruttori predefiniti enum array [] struct union definiti dall'utente Informatica 1 - Michele Colajanni, 2003 66 Tipi di Dato Primitivi ( base ) 4 tipi di dato primitivi char (caratteri) int (interi) float (reali) double (reali in doppia precisione) 4 qualificatori di tipo signed unsigned short long Signed e unsigned possono essere applicati solo ai tipi char e int Short può essere applicato solo a int Long può essere applicato a int e a double Informatica 1 - Michele Colajanni, 2003 67 8

In sintesi Questa classificazione dà origine a 12 tipi di dati semplici predefiniti: CHAR UNSIGNED CHAR SIGNED CHAR FLOAT DOUBLE LONG DOUBLE [SIGNED] SHORT [INT] [SIGNED] [INT] [SIGNED] LONG [INT] UNSIGNED SHORT [INT] UNSIGNED [INT] UNSIGNED LONG [INT] Informatica 1 - Michele Colajanni, 2003 68 Significato dei qualificatori SHORT e LONG condizionano lo spazio allocato dal compilatore per la memorizzazione delle variabili del tipo definito (Lo spazio effettivamente utilizzato dipende dalla macchina) SIGNED e UNSIGNED condizionano l uso che si può fare della memoria allocata In particolare, i qualificatori nelle loro combinazioni condizionano: L insieme dei valori assumibili da una variabile Il valore massimo e minimo Informatica 1 - Michele Colajanni, 2003 69 9

Una parentesi sulle classi di informazioni da codificare all interno del calcolatore (che in seguito sarà ripresa con più dettagli) Informazione alfanumerica Codice ASCII Numeri Rappresentazione decimale codificata Rappresentazione posizionale - interi positivi e negativi - frazionari Informatica 1 - Michele Colajanni, 2003 70 Codifica ASCII Il codice ASCII è non ridondante, perché i simboli codificati sono in numero pari alle configurazioni ottenibili con 7 cifre binarie. Ampiamente utilizzato in computer, stampanti, trasmissione dati, 000 001 010 011 100 101 110 111 0000 NUL DLE 0 @ P p 0001 SOH DC1! 1 A Q a q 0010 STX DC2 2 B R b r 0011 ETX DC3 # 3 C S c s 0100 EOT DC4 $ 4 D T d t 0101 ENQ NAK % 5 E U e u 0110 ACK SYN & 6 F V f v 0111 BEL ETB 7 G W g w 1000 BS CAN ( 8 H X h x 1001 HT EM ) 9 I Y i y 1010 LF SUB * : J Z j z 1011 VT ESC + ; K [ k { 1100 FF FS, < L \ l 1101 CR GS - = M ] m } 1110 SO RS. > N ^ n ~ 1111 SI US /? O _ o DEL Sono numeri interi positivi (necessario un byte) Informatica 1 - Michele Colajanni, 2003 71 10

Rappresentazione binaria La rappresentazione dei numeri usata nei calcolatori è quella binaria. Le cifre binarie prendono il nome di bit (Binary digit). Un numero binario intero è costituito da un vettore di bit. Il valore di B è dato da: B = b n-1 b 1 b 0 b i = {0, 1} V(B) = b n-1 2 n-1 + + b 1 2 1 + b 0 2 0 Un vettore di n bit consente di rappresentare 2 n numeri naturali nell intervallo da 0 a 2 n -1. Per rappresentare i numeri positivi e negativi si usano diversi sistemi Informatica 1 - Michele Colajanni, 2003 72 Da numero binario a numero decimale Valore decimale corrispondente al numero binario 1101 2? cifra 2 1 1 0 1 peso 2 3 2 2 2 1 2 0 valore 1 8 1 4 0 2 1 1 1101 2 = 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 = 13 10 Informatica 1 - Michele Colajanni, 2003 73 11

Da numero decimale a numero binario Per ottenere il valore binario di un numero intero codificato nel sistema decimale si procede utilizzando un metodo iterativo di successive divisioni per 2. Il resto delle divisioni fornisce le cifre del numerale binario (a partire dalla cifra meno significativa) 26 10 26 2 Cifra a destra (meno significativa) 0 13 26) 10 = 11010) 2 1 2 6 0 2 1 3 2 1 Cifra a sinistra (più significativa) Informatica 1 - Michele Colajanni, 2003 74 Unità di misura standard Byte (insieme di 8 bit) e suoi multipli Multipli 1 KiloByte = 1.024 byte x1024 = 1 MegaByte = 1.048.576 byte x1024 = 1 GigaByte = 1.073.741.824 byte x1024 = 1 TeraByte = 1.099.511.627.776 byte x1024 = 1 PetaByte =.. byte Abbreviazioni Kb = Kilobit Mb = Megabit Gb = Gigabit (per trasmissione dati) Unità di misura KB = KiloByte MB = MegaByte GB = GigaByte (per memorizzazione dati) Informatica 1 - Michele Colajanni, 2003 75 12

Parole chiave della lezione Linguaggio C Linguaggio imperativo Componenti: caratteri, identificatori, parole riservate, commenti Costanti e Variabili Tipi di dato scalari, strutturati, puntatori qualificatori Codifiche all interno del calcolatore numeri: codifica binaria caratteri: codifica ASCII + codifica binaria Informatica 1 - Michele Colajanni, 2003 76 13