Esempio nella figura a lato: una classe di 32 studenti ha sostenuto durante l’anno 5 compiti in classe. Supponiamo di voler scrivere un programma che stampi per ogni studente la somma e la media dei voti ottenuti
Allorché occorre ricavare dell’informazione da una matrice A occorre sempre ricordare cosa rappresenta una riga, cosa rappresenta un array e che cosa rappresenta un generico elemento a[i][j].
Come nella figura a lato, in genere il problema da risolvere cade in uno dei quattro schemi seguenti:
In alcuni casi i due algoritmi sono equivalenti.
Ritornando alla matrice contenente i voti riportati ai compiti dai singoli studenti, se si volesse calcolare la media dei voti su tutti i compiti svolti dagli studenti si potrebbe adoperare uno qualsiasi dei due.
Se invece, come nel nostro esempio, si vuole conoscere il voto medio riportato da ogni singolo studente è indispensabile adoperare il primo.
Una elaborazione colonna per riga ci fornirebbe il voto medio riportato dalla classe per ogni compito.
Esempio: riprendiamo l’esercizio del voti dei compiti di una classe di studenti
Esempio: riprendiamo l’esercizio del voti dei compiti di una classe di studenti
Ritornando al nostro esempio, trovare le insufficienze riportate dallo studente numero k comporta una elaborazione sulla riga k, mentre trovare lo studente col voto migliore nel compito r, comporta una elaborazione sulla colonna r.
Esempio: riprendiamo l’esercizio del voti dei compiti di una classe di studenti
Sono dati i numeri di pezzi prodotti ogni giorno (dal lunedì al venerdì) da una ditta in n settimane lavorative. Scrivere una funzione per ottenere:
a) La somma settimana per settimana della produzione visualizzata in forma di diagramma di asterischi (un asterisco corrisponde a 10 pezzi prodotti);
b) il numero medio di pezzi prodotti giornalmente;
c) l’elenco dei giorni suddivisi nelle varie settimane, in cui la produzione è stata inferiore alla media con il relativo valore.
Sia dato una matrice A di interi positivi di dimensione n _ n. Scrivere una funzione che restituisca true se e solo se nell’array A:
Scrivere un programma che, assegnata una matrice quadrata di ordine n di reali, risolva i seguenti problemi con una funzione o procedura:
Il programma deve essere strutturato con procedure e funzioni e con un menù che le richiami.
Scrivere un programma che, dopo aver letto tutti i dati del file studenti.txt (riportato nella pagina seguente) ed averli inseriti in una matrice, risolva i seguenti passi:
Supponiamo di avere sul un file di testo studenti.txt, i seguenti dati:
Rappresentiamo una palude con un array bidimensionale di 0 e 1, in cui 1 rappresenta un punto attraversabile della palude, mentre 0 rappresenta un punto inaccessibile.
Scriviamo una programma che, data la mappa di una palude, ne cerca un attraversamento e, se esiste, lo visualizza.
Consideriamo una matrice int palude[R][C] riempita di 0 o 1
Cerchiamo un cammino ‘da sinistra a destra’ cioè dalla colonna 0 alla colonna C-1
Assumiamo che siano possibili solo movimenti in avanti, cioè partendo dalla posizione ci si può spostare in
Memorizziamo il cammino costruito in un array int cammino[C] che contiene gli indici delle righe corrispondenti ad ogni pezzo del percorso.
Es, nel caso in figura il cammino sarà 1 2 3 3 3 2
1. Prime nozioni di Programmazione
2. C++ elementi di un programma
3. Le istruzioni di I/O standard
5. C++ funzioni matematiche ed espressioni booleane
6. Le strutture di controllo - parte seconda
8. Array di caratteri e tipi astratti
9. Astrazione procedurale: Procedure e Funzioni
10. Astrazione procedurale: Procedure e Funzioni -parte seconda
11. Astrazione procedurale: Procedure e Funzioni - parte terza
12. Librerie
13. Le strutture di controllo - parte terza
14. Algoritmi
16. I File di testo
17. La classe string