Tipi di dato. Funzioni. Il sistema dei tipi C. Tipi di dato. Quanti bit? I tipi interi in C

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

Codifica dei Tipi di Dati in Linguaggio C

Laboratorio di informatica Ingegneria meccanica

Tipi di dato in C. Ogni variabile in C ha associato un tipo, questo permette di:

Il linguaggio C. Caratteristiche generali

Laboratorio di Informatica

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011

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

Variabili, tipi, espressioni in C. Emilio Di Giacomo

Funzioni. Tipi di dato Funzioni in C Modifica dei parametri Parametri by reference La funzione main() Esercizi proposti Sommario

Il linguaggio C. Notate che...

Variabili. Tipi di dati di base. Variabili. Variabili

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

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

Sintassi: Per la dichiarazione di variabili dei tipi fondamentali:

Lab 02 Tipi semplici in C

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

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

Tipi interi lo standard (1)

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

LINGUAGGI DI PROGRAMMAZIONE!

Fondamenti di Linguaggio C

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

Qualche nota storica

Università degli Studi di Milano

Le parole chiave char, int, float, double, ed enum descrivono i. che modificano i tipi base

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

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Introduzione al C. Unità 2 - Variabili. D. Bloisi, S. Peluso, A. Pennisi, S. Salza

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

Fondamenti di Informatica T-1 Modulo 2

IL LINGUAGGIO C TIPI DI DATO

Introduzione al Linguaggio C

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

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

Classificazione Tipi semplici predefiniti Definizione di nuovi tipi Tipi strutturati

Linguaggio C - sezione dichiarativa: costanti e variabili

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

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

Cap. 7: Tipi di base. Tipi di base

Concetti di Base sul Linguaggio C. Prof.Ing.S.Cavalieri

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

direttive del preprocessore simboli speciali parole chiave identificatori costanti

Dichiarazione di variabili e tipi di dati

Somma di numeri binari

Tipi di dato primitivi

IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace

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

Conversioni fra Tipi di Dati. Luca Abeni

Appunti sul linguaggio C

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

Tipi di Dati Avanzati

Tipi di dato semplici

Primi programmi in C

Struttura dei programmi C

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

Aritmetica dei Calcolatori 3

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C

Sistemi di Numerazione Binaria

Espressioni ed operatori in C

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

Codifica. Rappresentazione di numeri in memoria

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

Tipo di dato. Ci siamo già imbattuti in questo concetto. Definizione generale di tipo di dato

Strutture Dati Dinamiche

Introduzione al linguaggio C

Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit

LIBRERIE STANDARD in C. LIBRERIE STANDARD in C

Output formattato Le quattro operazioni Tipi, costanti, variabili Over & Under Libreria Prog. Programmazione 1. Lezione 2

Riprendiamo l esercizio calcolatrice

Appunti, esempi ed esercizi sui linguaggi C/C++

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

Esercizi Programmazione I

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

Unità aritmetica e logica

LABORATORIO di INFORMATICA

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

Associazione Variabile-Indirizzo

IL PROBLEMA DEL PROGETTO

Fondamenti di Programmazione. Sistemi di rappresentazione

Lezione 6 Introduzione al C++ Mauro Piccolo

I tipi di dato del Fortran

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

Corso sul linguaggio C Modulo Tipi di dato

Rappresentazione numeri reali

1.4 Il problema delle approssimazioni

RAPPRESENTAZIONE DELL INFORMAZIONE

Esercitazione Informatica I (Parte 1) AA Nicola Paoletti

Indice. Ordine di valutazione. Espressioni in C++ Le espressioni in C++ (CAP 4) Alberto Garfagnini e Marco Mazzocco A.A. 2014/ * 20 / 2

Fondamenti di Programmazione. Sistemi di rappresentazione

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

Rappresentazione dei numeri reali

Numeri reali. Notazione scientifica (decimale) Floating Point. Normalizzazione. Esempi. Aritmetica del calcolatore (virgola mobile)

1 PANORAMICA SUL LINGUAGGIO C

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

Programmazione Procedurale in Linguaggio C++

Calcolatori Elettronici Parte II: Sistemi di Numerazione Binaria. Prof. Riccardo Torlone Università di Roma Tre

Rappresentazione di numeri reali. Rappresentazione in virgola mobile. Perché la rappresentazione in virgola mobile. Rappresentazione in virgola mobile

Caratteristiche di un linguaggio ad alto livello

Transcript:

I tipi scalari in C Input/output dei tipi scalari Conversioni di tipo Funzioni 5 Il sistema dei tipi C di dato Tipi Scalari Tipi Strutturati void Tipi eri Tipi reali Enumerazioni Vettori Strutture Union short / long signed/ long Puntatori Funzioni 7 I tipi eri in C Quanti bit? short long short long Descrizione Caratteri ASCII Interi con meno bit con più bit Interi senza segno con meno bit con più bit Esempi 'a' '7' '!' +2-18 +24221 1 423 234 Lo standard C non specifica l ampiezza, in bit, dei tipi di dato fondamentali L operatore sizeof può essere usato per ricavare una costante pari al numero di byte occupato da ciascun tipo sizeof( ) sizeof( ) 8 9

Specifiche del C Intervallo di rappresentazione sizeof( ) = 1 < sizeof(short short ) sizeof( ) sizeof(long ) = = = sizeof( short ) sizeof( ) sizeof( long ) short long short long Min CHAR_MIN INT_MIN SHRT_MIN LONG_MIN Max CHAR_MAX INT_MAX SHRT_MAX LONG_MAX UINT_MAX USHRT_MAX ULONG_MAX 1 #include <limits.h> 11 Compilatori a bit I tipi reali in C short long N. Bit 8 16 Min -128-2147483648 -768-2147483648 Max 127 2147483647 767 2147483647 long Descrizione Numeri reali in singola precisione Numeri reali in doppia precisione Numeri reali in massima precisione short long 16 4294967295 65536 4294967295 12 segno } 6 esponente 4748 ± eeeeee A = ± 1. 14243 mmmmm 2 mantissa 13 Numero di bit Intervallo di rappresentazione long Dimensione Mantissa bit 23 bit 64 bit 53 bit Esponente 8 bit 1 bit ±1.17549435E-38 ±3.4282347E+38 segno } 6 esponente 4748 ± eeeeee A = ± 1. 14243 mmmmm 2 mantissa ±2.2257385857214E-38 ±1.7976931348623157E+38 14 15

Input/output I diversi tipi scalari visti sono utilizzabili con le normali funzioni scanf/prf, adottando degli specifici indicatori di formato Utilizzando la funzione gets per l input, si possono usare le funzioni di conversione ato... 17 Specificatori di formato Funzioni di conversione short long short long scanf %c %[...] %d %hd %ld %u %o %x %hu %lu %f %lf prf %c %d %d %hd %d %ld %u %o %x %hu %lu %f %g %f %g line[8] ; x ; x = atoi(line) ; line[8] ; long x ; x = atol(line) ; line[8] ; x ; x = atof(line) ; line[8] ; x ; x = atof(line) ; 18 19 Conversioni di tipo (1/2) Nel linguaggio C è possibile combinare, nella stessa espressione, variabili di tipo diverso I due operandi di un operatore aritmetico possono avere tipi diversi a ; long b, c ; c = b + a ; prod ; v[n] ; prod = prod * v[i] ; 21

Conversioni di tipo (2/2) La variabile di destinazione di un assegnazione può avere tipo diverso dal tipo dell espressione a ; long b ; b = a ; prod ; v[n] ; prod = v[] ; logie di conversioni Per calcolare tali tipi di espressioni, il linguaggio C applica tre tipi di conversioni: Conversioni automatiche verso il tipo più capiente, basate sul principio di promozione del tipo Arrotondamenti e troncamenti, in caso di assegnazioni forzate a tipi meno capienti Conversioni esplicite, basate sull operatore di typecasting 22 23 Promozione del tipo Se i due operandi di un operatore aritmetico hanno tipo diverso, l operando del tipo più limitato viene convertito al tipo dell operando più esteso Promozione del tipo Se i due operandi di un operatore aritmetico hanno Non tipo si diverso, perde mai l operando precisione. del tipo più Il C converte automaticamente limitato viene convertito al tipo dell operando più verso i tipi più capienti esteso short long short long 24 25 Troncamento del risultato Conversioni esplicite Nell operatore di assegnazione var = expr ; ci possono essere 3 casi: La variabile destinazione ha lo stesso tipo dell espressione calcolata La variabile destinazione ha un tipo più ampio del tipo dell espressione calcolata Si promuove il tipo dell espressione al tipo della variabile destinazione La variabile destinazione ha un tipo più ristretto del tipo dell espressione calcolata Si approssima il tipo dell espressione al tipo della variabile destinazione, perdendo precisione 26 Qualora si vogliano modificare le regole predefinite di promozione e troncamendo dei tipi, il C mette a disposizione un operatore di conversione esplicita di tipo Typecasting (nuovotipo)expr Converte l espressione expr dal suo tipo nativo, al tipo desiderato nuovotipo Più capiente Meno capiente: troncamento o approssimazione 27

Esempio 1 Esempio 2 media ; somma, N ; media = somma / N ; /* no */ media = ( )somma / N ; voto ; parte1, parte2, parte3 ; voto = ( ) ((parte1 + parte2 + parte3)/3) ; 28 29 voto ; parte1, parte2, parte3 ; media ; /* arrotondamento all ero più vicino */ media = (parte1 + parte2 + parte3)/3 ; voto = ( ) (media +.5) ; Esempio 3 3