1 / 11

Informatica 6

Informatica 6. Tipi di dato. Tipi di dato. Nelle celle di memoria di un calcolatore ci sono solo “0” e “1”, fisicamente realizzati tramite due diversi livelli di tensione elettrica A seconda di come questi “0” e “1” vengono interpretati dal calcolatore, si hanno diversi tipi di informazione

suki
Download Presentation

Informatica 6

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Informatica 6 Tipi didato

  2. Tipi di dato • Nelle celle di memoria di un calcolatore ci sono solo “0” e “1”, fisicamente realizzati tramite due diversi livelli di tensione elettrica • A seconda di come questi “0” e “1” vengono interpretati dal calcolatore, si hanno diversi tipi di informazione • Un tipo di dato definisce i possibili valori che il dato può assumere, e le possibili operazioni che si eseguono su di esso

  3. Classificazione dei tipi (1) • Tipi semplici vs. tipi strutturati • i tipi semplici sono quelli più adatti a rappresentare informazioni semplici, tipicamente a carattere numerico (ad es.: una temperatura) • i tipi strutturati sono quelli usati per rappresentare unità di informazione più complesse, con diverse componenti (ad es.: una data)

  4. Classificazione dei tipi (2) • Tipi built-in vs. tipi user-defined • i tipi built-in (o predefiniti)sono quelli già presenti nel linguaggio di programmazione (ad es.: int) • i tipi user-defined (o definiti dall’utente) sono quelli definiti dal programmatore tramite appositi comandi, forniti dal linguaggio, di costruzione di nuovi tipi

  5. Tipi semplici e built-in • int è un tipo numerico semplice e built-in • char è un tipo non-numerico bensì alfabetico, ma sempre semplice e built-in (i suoi valori vanno sempre scritti tra apici: char c = ‘d’; a differenza delle stringhe che sono strutturate e vogliono le virgolette: string s = “ciao”;) • In memoria, una variabile int occupa 4 byte, mentre una variabile char solo 1 byte • Altri tipi numerici semplici e built-in sono (con le rispettive dimensioni di variabile): short int (2 byte), long int (4 byte), float (4 byte), double (8 byte) • Naturalmente, maggiore è la dimensione dedicata a una variabile di un tipo, più vasta è la gamma di valori che tale variabile può assumere: una variabile int può assumere valori tra -32768 e 32767, una variabile long int da -2147483648 a 2147483647

  6. Tipi user-defined (1) • Tramite la parola chiave typedef, in C++ è data al programmatore la possibilità di definire nuovi tipi, in diversi modi • Ridenominazione (typedef <tipo esistente> <nuovo tipo>) typedef int intero; /*si definisce un nuovo tipo chiamato “intero” che è esattamente come int*/ intero x = 5;

  7. Tipi user-defined (2) • Enumerazione (typedef {<lista valori>} <nuovo tipo>) typedef {blu, rosso, verde} colore; /*si definisce un nuovo tipo chiamato “colore” le cui variabili possono assumere uno dei valori elencati*/ colore c = blu; • Il calcolatore costruisce una corrispondenza implicita tra i valori elencati e gli interi: blu == 0, rosso == 1, verde == 2

  8. Tipi user-defined (3) • Tipi strutturati user-defined (typedef {<descrizione struttura>} <nuovo tipo>) typedef {int giorno; int mese; int anno;} data; /*si crea il tipo “data” le cui variabili contengono 3 “campi”, chiamati “giorno”, “mese”, “anno”, che sono tutti di tipo int*/

  9. Tipi user-defined (4) • I diversi campi di una struttura possono essere di tipi diversi, a loro volta strutturati • Per accedere a un campo di una variabile strutturata si usa la “dot notation” (notazione col punto) data oggi; oggi.giorno = 15; oggi.mese = 1; oggi.anno = 2010;

  10. Conversioni automatiche di tipo (1) • Attenzione: se si mischiano variabili di diverso tipo in una stessa istruzione, il calcolatore esegue delle conversioni automatiche di tipo • Ad es.: int totale; float x = 5.75; int y = 3; totale = x + y; /*quanto vale totale?*/ • totale vale 8, perché anche se esiste una regola che prevede che, sommando numeri di tipo diverso, tutti gli addendi vengano convertiti al tipo più generale (quindi: 3 -> 3.0 perché float è più generale di int), alla fine la variabile di destinazione è di tipo int, quindi la parte decimale viene troncata (non approssimata)

  11. Conversioni automatiche di tipo (2) • Esiste inoltre una convenzione che regola la conversione tra int e bool • bool -> int true viene interpretato come 1, false come 0 • int -> bool0 viene interpretato come false, tutti gli altri interi come true • E’ sconsigliato fare uso di queste conversioni nei programmi

More Related