La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

I tipi Strutturati.

Presentazioni simili


Presentazione sul tema: "I tipi Strutturati."— Transcript della presentazione:

1 I tipi Strutturati

2 Dimensioni variabili strutturate
La funzione sizeof consente di determinare lo spazio necessario alla memorizzazione di una variabile (o di un tipo); sizeof variabile sizeof(nome_di_tipo)

3 Esempi di utilizzo di sizeof
sizeof(int); sizeof(float); sizeof(Punto); sizeof pt; sizeof t;

4 Un po’ di pratica !!!

5 I tipi strutturati Tipi Componenti Assemblaggio Funzione di accesso
Semplici Strutturati Assemblaggio Prodotto Cartesiano Sequenza Funzione di accesso per posizione per nome

6 I tipi strutturati Costruttore del tipo Costruttore dei valori
struttura sintattica, che identifica le modalità di costruzione e i tipi componenti, cui sono associate le funzioni di accesso Costruttore dei valori formalismo adoperato per indicare un valore strutturato attraverso di suoi componenti. es. (x,y)

7 Gli array Gli array si definiscono come cartesiano di n tipi uguali:
tipo array = cartesiano (T 1 , T 2 , ..., T n ) con T 1 = T 2 = ... = T n Sono caratterizzati da: struttura ad accesso casuale accesso con un indice calcolato

8 Array Nella dichiarazione del tipo Array occorre specificare:
tipo degli elementi componenti int, float, etc … numero di indici (dimensionalità o rango dell’array) Array monodimensionale (vettore) Array bidimensionale (matrice) valore minimo e massimo di ciascun indice

9 Array La “Funzione di accesso” è del tipo:
M[i] (dimensionalità pari a uno) M[i,j] M[i][j] (dimensionalità pari a due) Sugli array è possibile effettuare operazioni: sui singoli elementi sulla struttura in quanto tale Un esempio di costruttore è: int b[2][3]= {{1,2,3}{4,5,6}}; tipo Valori max indice nome dimensionalità

10 Allocazione Array Allocazione Ordinamento elementi Statica Dinamica
Monodimensionali: i < j è a(i) precede a(j) Bidimensionali i1 < i2 è A(i1, .) precede A(i2, .) j1 < j2 è A(i, j1) precede A(i, j2)

11 Array in C++ Dichiarazione Tipo nome_array[dimensione];
Esempio: float x[25]; typedef Tc Vettore[dimensione]; Esempio: typedef float Vettore[25]; Vettore x;

12 Esempi Array in C++ float x[25]; //definizione x[0]; // primo elemento
x[j]; // j-mo elemento x[25]; // errore! Esempio array bidimensionale float b[20][25]; typedef Matrice [20][25]; Matrice b;

13 Esempi (continua) int a[10], b[10]; //definizione a[4]= b[9]; //ok!
a = b; // illegale: occorre copiare tutti gli elementi a[4]= b[9]; //ok! Controllo sui limiti a [3] = b[11]; //errore non segnalato !

14 Un po’ di pratica !!!

15 Tipo Record (o Struttura)
Il Tipo recor è definito come il cartesiano di n tipi distinti: record=cartesiano(T 1 , T 2 , ..., T n ), con T1 , T2 , ..., Tn qualsiasi E’ una struttura dati ad accesso casuale costituita da un numero fisso di componenti, detti anche campi del record, che possono essere di tipo semplice o a loro volta strutturato.

16 Il record Svolge una generica funzione di raggruppamento di più attributi relativi alla medesima entità. Ogni campo ha un proprio nome ed è accessibile singolarmente mediante composizione del suo nome con quello del record.

17 Il record: dichiarazione e definizione
struct nome { D1; D2; ... DN; }; esempio: struct point { int x; int y; struct point pt; definizione dichiarazione

18 Il record: dichiarazione e definizione
typedef struct { D1; D2; ... DN; } nometipodichiarato; Esempio: int x; int y; } Point; Point pt; definizione dichiarazione

19 Record: accesso Funzioni di accesso pt.x pt.y pt.x = 3; pt.y = 12;

20 Record: assegnazione Assegnazione Point pt1, pt2; pt1 = {2,1};

21 Un po’ di pratica !!!

22 Il Tipo Stringa In generale una stringa di caratteri è una sequenza di caratteri atta a rappresentare una frase, un testo, etc... Concetti fondamentali lunghezza di una stringa concatenamento di due stringhe ordinamento (derivante da quello lessicografico)

23 Stringhe in C++ Una stringa in C++ è un array di caratteri che, nella rappresentazione interna, è terminato dal carattere nullo (‘\0’) Quindi internamente una stringa occupa un carattere in più del numero di caratteri che la compongono! Le funzioni che operano sulle stringhe si aspettano il terminatore ‘\0’ Nelle stringhe composte “a mano” occorre inserire ad hoc il carattere di terminazione!

24 Dichiarazione di una stringa
char stringa[10]; è cura del programmatore aggiungere il ‘\0’ per identificare la fine della stringa char stringa2[] = “ ”; nel caso di assegnazioni di costanti stringa non è necessario aggiungere il terminatore ‘\0’;

25 Funzioni su stringhe Le stringhe sono in genere utilizzate in operazioni di Input – Output Input (cin) #include <iostream.h> char str[81]; cin >> str L’input viene terminato al primo carattere di spaziatura (‘\n’, ‘\t’, ‘<spazio>‘) Input (gets) #include <stdio.h> gets(str); cout << str

26 Esempi di funzioni sulle stringhe
strcpy(str1, str2); Copia la stringa str2 nella stringa str1 strcat(s1, s2); Concatena le due stringhe strcmp(s1,s2); Confronto tra le due stringhe strlen(s); Restituisce la lunghezza della stringa

27 Pratica !!!


Scaricare ppt "I tipi Strutturati."

Presentazioni simili


Annunci Google