Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoSaverio Massari Modificato 10 anni fa
1
Array Un array è una collezione in sequenza di variabili del medesimo tipo Riferimento con un nome comune Nome_studente1 Nome_studente2. Nome_studenteN Studenti Nome_studente1 Nome_studente2 … … … Nome_studenteN Approccio 1: N variabili Approccio 2: 1 variabile
2
Array ad una dimensione Un array monodimensionale viene dichiarato come: data_type nome[dimensione]; Es: Un array di 5 numeri interi viene dichiarato: int prova[5]; num1num2num3num4num5 prova :
3
Accesso agli elementi E possibile accedere ad un singolo elemento di un array tramite un indice, che descrive la posizione dellelemento nellarray Gli indici in C++ partono da 0 num4 prova : prova[0] num3num5num2num1 prova[1]prova[2]prova[3]prova[4]
4
Inizializzazione (1) Per inizializzare una array devo fornire una lista di valori: int prova[5]={1, 87, 14, 27, 22 }; 27 prova : prova[0] 1422871 prova[1]prova[2]prova[3]prova[4]
5
Inizializzazione (1) Posso lasciare al compilatore il compito di determinare la dimensione di un array int prova[]={1, 87, 14, 27, 22 }; 27 prova : prova[0] 1422871 prova[1]prova[2]prova[3]prova[4]
7
Array a due e più dimensioni Posso definire array a più dimensioni allo stesso modo di quelli a 1. La posizione di un elemento è identificato da un indice per ogni dimensione Int array2D[3][4]
8
Array a due e più dimensioni int array2D[3][4]={ {1,1,1,1}, {2,2,2,2}, {3,3,3,3}, }; 1111 2222 3333 Indice 0 1 2 0 1 2 3
9
Ordinamento: bubble-sort Lidea è di far galleggiare il minimo dellarray nelle prima posizione Riduco la parte di array da considerare, escludendo le prime posizioni già ordinate
10
Ordinamento: bubble-sort 27 prova[0] 1422871 prova[1]prova[2]prova[3]prova[4] Passo 1: parto dalla fine dellarray e scambio il valore di due elementi se quello con lindice più alto è minore dellaltro. 22 prova[0] 1427871 prova[1]prova[2]prova[3]prova[4] 22 prova[0] 8727141 prova[1] prova[2] prova[3] prova[4]
11
Ordinamento: bubble-sort 22 prova[0] 8727141 prova[1]prova[2]prova[3]prova[4] Passo 2: riduco larray da considerare per lordinamento e ripeto il passo 1 22 prova[0] 8727141 prova[1]prova[2]prova[3]prova[4] 87 prova[0] 2227141 prova[1] prova[2] prova[3] prova[4]
12
// Bubble sort #include using namespace std; int main() { int nums[10]; int a,b,t,size; size=10; // Inizializza larray for(t=0; t<size; t++) nums[t] = rand(); // Ordinamento for(a=1; a<size; a++) for(b=size-1; b>=a; b--) { if (nums[b-1] > nums[b]) { t = nums[b-1]; nums[b-1] = nums[b]; nums[b] = t; } return 0; }
13
Limiti ed overflow Attenzione: in C++ non cè alcun controllo sulla dimensione dellarray! int prova[10]; int elemento; elemento=prova[21]; prova[100]=5; Posso scrivere senza generare errori cose come:
14
Stringhe Le stringhe sono array di caratteri, con un terminatore NULL (\0) alla fine. La dimensione di un array stringa deve essere di un elemento più lungo rispetto al numero di caratteri della stringa, per contenere il terminatore char str[11]; // è una stringa di 10 caratteri char str1=Questa è una stringa;
15
Lettura di una stringa da tastiera
17
Manipolazione di stringhe strcpy(orig,dest); copia la stringa orig nella stringa dest strcat(s1,s2); aggiunge la stringa s2 alla fine di s1 strcmp(s1,s2); confronta due stringhe e restituisce 0 se sono uguali strlen(s); restituisce la lunghezza della stringa s
18
Manipolazione di stringhe NOTA BENE: Quando si utilizzano le funzioni: strcpy, strcat, strcmp, strlen bisogna fare attenzione alle dimensioni!
19
Esercizio 1 Costruire una funzione che restituisca la lunghezza di una stringa senza utilizzare strlen()
20
Esercizio 2 Creare due funzioni che calcolino: perimetro di un triangolo dati i lati area di un triangolo dati base e altezza Utilizzarle allinterno di un programma main()
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.