• Non ci sono risultati.

Tipi strutturati

N/A
N/A
Protected

Academic year: 2021

Condividi "Tipi strutturati"

Copied!
8
0
0

Testo completo

(1)

G. Mecca – Università della Basilicata – mecca@unibas.it

Linguaggio C++

Tipi Strutturati Ricapitolazione

versione 2.1

Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

2

Ricapitolazione

m

Tipi strutturati

ðuna funzionalità dei linguaggi di programmazione per semplificare la rappresentazione dei dati

m

In sintesi

ðrappresentano un modo per dichiarare molte variabili in una volta sola

ðutilizzo semplificato (es: le variabili possono essere passate ai sottoprog. “in blocchi”)

Tipi Strutturati: Dettagli e Approfondimenti >> Ricapitolazione

(2)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 3

m Classificazione dei tipi strutturati

ðarray

ðrecord (o “strutture”)

m Array

ðcollezione di variabili tutte dello stesso tipo ðidentificate da uno o più indici

m Record

ðcollezione di variabili anche di tipi diversi ðidentificate da un nome

Ricapitolazione

m

Array

ðmonodimensionali: un unico indice ðbidimensionali: due indici

ðmultimensionali: molti indici

m

Esempi

float temp[365]; cout << temp[0];

int matrice[10][20]; cout << matrice[1][1];

char cubo[3][3][3]; cout << cubo[2][2][2];

Tipi Strutturati: Dettagli e Approfondimenti >> Ricapitolazione

(3)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 5

m

Dichiarazione di array

ðsi specifica il tipo, il nome e la dimensione ðes: float temp[365]; int matrice[10][20];

ðha l’effetto di dichiarare un num. di variabili del tipo pari alla dimensione (es: 365, 10*20)

m

Nota

ðla dimensione deve essere costante ðogni array ha un numero fissato di

componenti

6

Ricapitolazione

m

Dichiarazione di array

ðoltre alle componenti, viene dichiarata una variabile speciale

ðla “variabile array”

m

Variabile array

ðsi chiama come l’array

ðil suo valore è l’indirizzo della prima componente dell’array

Tipi Strutturati: Dettagli e Approfondimenti >> Ricapitolazione

(4)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 7

m La variabile array

ðviene utilizzata nel passaggio dei parametri

m Nel sottoprogramma

ðparametro standard di tipo array

ðes: void leggiTemp(float temp[365]);

m Nella chiamata

ðsi usa come argomento la variabile array ðes: float temperature[365];

ð leggiTemp(temperature);

Ricapitolazione

m

Utilizzo di un array monodimensionale

ðle componenti sono variabili ordinarie ðc’è un meccanismo speciale per i nomi ðè possibile utilizzare un’espressione; l’espr.

viene calcolata ogni volta per avere l’indice

m

Esempio

for (int i = 0; i < 365; i++) { cout << temperature[i];

}

Tipi Strutturati: Dettagli e Approfondimenti >> Ricapitolazione

(5)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 9

m

Utilizzo di un array bidimensionale

ðstavolta servono due espressioni ðuna per ciascun indice

ðtipicamente due cicli nidificati

m

Esempio

for (int i = 0; i < 10; i++) { for (int j = 0; j < 20; j++) {

cout << matrice[i][j];

} }

10

Ricapitolazione

m Caratteristica degli array

ðle parentesi quadre

m Attenzione agli utilizzi

ðnella dichiarazione: per indicare le dimensioni dell’intero array)

ðes: float temp[365]; int matrice[10][20];

ðnell’utilizzo: per indicare la componente (una delle variabili dell’array)

ðes: cout << temp[3]; cout << matrice[0][0];

Tipi Strutturati: Dettagli e Approfondimenti >> Ricapitolazione

(6)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 11

m

Record

ðconsente di dichiarare più variabili di tipi diversi

ða differenza degli array NON sono una funzionalità essenziale dei linguaggi di prog.

ðes: in FORTRAN 77 non esistono

m

Principale obiettivo

ðrendere più leggibile e compatto il codice ðriducendo le dichiarazioni di var e parametri

Ricapitolazione

m

Dichiarazione di un record

ðI passo: descrizione del modello del record – il modello diventa un nuovo tipo di dato

ðII passo: utilizzo del modello per dichiarare variabili e parametri

m

Variabile record

ðfatto di varie variabili detti attributi

ðstruct equazione {float a, b, c;};

ðequazione eq1, eq2;

Tipi Strutturati: Dettagli e Approfondimenti >> Ricapitolazione

(7)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 13

m

Parametro record

ðfatto di vari parametri, uno per ciascun attr.

ðpuò essere standard o per riferimento

ðil passaggio dei parametri avviene in modo ordinario

ðstruct equazione {float a, b, c;};

ðvoid leggiEquazione(equazione &eq);

ðvoid stampaEquazione(equazione eq);

14

Ricapitolazione

m

Nidificazione

ðarray e record possono essere combinati arbitrariamente

ðper costruire strutture di variabili e di parametri complesse

m

Attenzione

ðal meccanismo dei nomi ([] per gli array, . per i record

ðal passaggio per valore di strutture profonde

Tipi Strutturati: Dettagli e Approfondimenti >> Ricapitolazione

(8)

G. Mecca - Programmazione Procedurale in Linguaggio C++ 15

Domande ed Esercizi di Riepilogo

Termini della Licenza

m This work is licensed under the Creative Commons Attribution- ShareAlike License. To view a copy of this license, visit

http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Termini della Licenza

m Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare

http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Riferimenti

Documenti correlati

I dati strutturati (o strutture di dati) sono ottenuti mediante composizione di altri dati (di tipo semplice, oppure

Sottoprogrammi: Metodologia di Sviluppo &gt;&gt; Tecniche di Test e

ðDefinizione di Funzioni ðDefinizione di Procedure ðChiamata di Funzioni ðChiamata di Procedure ðPassaggio dei Parametri ðProgrammazione Modulare. Termini

ði riferimenti sono “tipati”: ogni riferimento può essere intermediario per dati di un solo tipo ðes: riferimento a intero, riferimento a

Strutture di Dati: Lista &gt;&gt; Rappresentazione con Record e Array. ATTENZIONE ai

Strutture di Dati: Lista &gt;&gt; Inserimenti e Cancellazioni. Mecca - Programmazione Procedurale in Linguaggio

Strutture di Dati: Lista &gt;&gt; Gestione dei File. i conta il numero di valori prelevati dal

... apparentemente sembra che io abbia dato una valida risposta. peccato che queste 5 variabili, seppur dello stesso tipo, siano INDIPENDENTI TRA LORO e NON FACCIANO PARTE DI UNA