Introduzione alla Programmazione
in C++
parte seconda
Moreno Marzolla
moreno.marzolla@pd.infn.it
Moreno Marzolla Fondamenti di Informatica 2
Copyright © 2006 Moreno Marzolla
This work is licensed under the Creative Commons Attribution- Noncommercial-Share Alike 2.5 Italy License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc- sa/2.5/it/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
Moreno Marzolla Fondamenti di Informatica 3
Array Array
Un array rappresenta una collezione di elementi dello stesso tipo:
Nella dichiarazione sopra:
abbiamo dichiarato 10 variabili di tipo intero, i cui nomi sono A[0], A[1], ... A[9]
abbiamo dichiarato 5 variabili di tipo double, i cui nomi sono B[0], B[1], ... B[4];
int A[10];
float B[5];
Moreno Marzolla Fondamenti di Informatica 4
Esempio Esempio
Inizializziamo i valori di un array A di 10 interi, leggendoli da tastiera
#include <iostream>
using namespace std;
int main( void ) {
int A[10]; // dichiarazione array A
int i=0; // indice usato per scorrere l'array while ( i<10 ) {
cout << Digita il valore << i << endl;
cin >> A[i];
i = i+1;
}
return 0;
}
Moreno Marzolla Fondamenti di Informatica 5
Esempio Esempio
I valori memorizzati in un array possono anche essere specificati all'atto dell'inizializzazione:
Crea un array A di 5 elementi, e assegna ad A[0] il valore 13, ad A[1] il valore 12 e così via.
int A[5] = {13, 12, 9, -1, 8};
Moreno Marzolla Fondamenti di Informatica 6
Ciclo for
Ciclo for
test iniz
vera falsa
int i;
for ( i=0; i<5; i=i+1 ) { cout << i= << i << endl;
}
for ( iniz; test; incremento ) { // Corpo
}
In C++
Stampa gli interi tra 0 e 4 (estremi inclusi)
corpoincremento
Moreno Marzolla Fondamenti di Informatica 7
Esempio Esempio
Supponiamo di avere un array A[10] già
inizializzato (contiene già dei valori). Vogliamo calcolare la somma degli elementi di A che sono minori o uguali a 5
int A[10];
// A viene inizializzato in qualche modo...
int i = 0;
int somma = 0;
for ( i=0; i<10; i=i+1 ) { if ( A[i] <= 5 ) {
somma = somma + A[i];
} }
cout << La somma vale << somma << endl;
Moreno Marzolla Fondamenti di Informatica 8
Esempio Esempio
Leggiamo un array di 10 elementi da tastiera.
L'utente può inserire in qualunque momento -1 per terminare l'inserimento
int A[10];
int i = 0; int elem;
bool terminato = false;
for ( i=0; i<10 && !terminato; i=i+1 ) {
cout << Inserisci l'elemento << i << endl;
cin >> elem;
if ( elem == -1 ) { terminato = true;
} else { A[i] = elem;
} }
Moreno Marzolla Fondamenti di Informatica 9
Esercizi per giovedì prossimo / 1 Esercizi per giovedì prossimo / 1
Scrivere un programma che, richiesto all'utente un intero positivo N, stampa su video tutti i numeri pari compresi tra 1 e N (estremi inclusi), utilizzando un ciclo for
Come l'esercizio precedente, ma stampare tutti i numeri dispari
Scrivere un programma che, dati due array di float A e B di 10 elementi ciascuno (A[10], B[10]), calcola l'array C di double i cui elementi sono la somma degli elementi corrispondenti di A e B, usando un ciclo for
Ossia, C[i] = A[i] + B[i] per i=0..9
Moreno Marzolla Fondamenti di Informatica 10
Esercizi per giovedi' prossimo / 2 Esercizi per giovedi' prossimo / 2
Cosa stampa il seguente frammento di codice?
#include <iostream>
using namespace std;
int main( void ) {
int A[10] = {1,5,3,2,4,9,-1,4,2,9};
int s = 0;
int i;
for ( i=7; i>2; i=i-2 ) { s = s+A[i];
}
cout << s << endl;
return 0;
}