Il 0% ha trovato utile questo documento (0 voti)
38 visualizzazioni5 pagine

Lab 4 - Matrici e File (33717057)

Laboratorio 4 Benso

Caricato da

Sora
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
38 visualizzazioni5 pagine

Lab 4 - Matrici e File (33717057)

Laboratorio 4 Benso

Caricato da

Sora
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 5

Laboratorio 4

Matrici e File

INFORMATICA CORSO 5 1
Esercizio 1 (matrice di interi)

Si scriva un programma C che:


1. legga da tastiera (per righe o per colonne, a scelta) una matrice
quadrata di dimensione uguale a 5 righe e 5 colonne
2. rintracci se tale matrice contiene delle sequenze di elementi adiacenti
uguali a zero di lunghezza uguale o maggiore di 3 (in orizzontale o
verticale)
3. visualizzi l'indice di riga (o colonna) in cui tali sequenze si presentano.

Esempio.
Sia la matrice la seguente:

00045
12045
10040
12345
10000

La sequenza di valori "0 0 0" compare nella prima e nell'ultima riga e nella terza
colonna e quindi occorre riportare una indicazione del tipo:

La sequenza compare nella riga 1


La sequenza compare nella riga 5
La sequenza compare nella colonna 3

Si osservi che la riga 3 non contiene la sequenza indicata in quanto i tre zeri non si
trovano in posizioni contigue.

INFORMATICA CORSO 5 2
Esercizio 1.5
Si estenda l’esercizio 1 per leggere la matrice da un file.

Esercizio 2 (matrice di caratteri)


Una matrice di caratteri rappresenta in forma schematizzata una palude. La
palude è costituita da zone di fango, rappresentate dal carattere ‘.’, e da zone
pietrose, indicate dal carattere ‘*’. Le dimensioni della matrice possono essere
fissate a piacere, mediante dei #define, comunque non superiori a 25 righe e 80
colonne.
Esempio di palude:
**.*.*....*
..*.*...**.
*...*.*....
.*.*.*.*.*.
..*.*...*.*
Realizzare un programma che cerchi nella palude un percorso da sinistra a
destra, senza salti, costituito tutto da zone pietrose adiacenti. Si ipotizzi che,
adiacente a destra di un punto pietroso, ci possa essere al più un altro punto
pietroso (non ci sono diramazioni), sulla stessa riga, sulla riga in alto o sulla riga in
basso. Il programma deve visualizzare la sequenza righe in cui ci sono le pietre
del percorso trovato (le colonne sono implicite, ci deve essere una pietra per ogni
colonna), oppure avvertire che non esiste un percorso. Per la prima versione del
programma si utilizzi una matrice di stringhe predefinita. Come
approfondimento, la palude viene introdotta da tastiera.

Esercizio 3 (matrice di interi)


Si realizzi un programma in grado di simulare il movimento di un topolino.
Si dispone di una matrice Q, di dimensione NxN, che descrive le caratteristiche
di una certa area acquisita da file: in ciascuna locazione Q(x,y) della matrice vi e'
la quota del quadratino di superficie posto alle coordinate x,y. A partire da una
posizione iniziale del topolino, x0,y0, si stampino le coordinate di tutti i
quadratini toccati dal topolino se esso segue le seguenti regole di movimento:

INFORMATICA CORSO 5 3
• Il topolino si sposta ad ogni passo di un solo quadratino, nelle 8
direzioni possibili
• Il topolino sceglie il quadratino su cui muoversi determinando il
quadratino di quota massima tra gli 8 adiacenti
• Se tutti i quadratini adiacenti sono ad una quota inferiore o uguale
rispetto al quadratino attuale, il topolino si ferma.

Esempio:
Supponendo di avere la seguente matrice Q di dimensione 10x10, e di aver scelto
come punto iniziale il punto (3,7), allora il topolino effettuerà i seguenti
spostamenti: (3,7) (4,8) (5,8) (6,8) (7,9). Il punto un cui il topolino si ferma è
quindi il punto (7,9).

1 2 3 4 5 6 7 8 9 10
1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
2 0.1 0.2 0.2 0.2 0.2 0.3 0.3 0.3 0.3 0.1
3 0.1 0.2 0.3 0.3 0.4 0.5 0.5 0.5 0.5 0.1
4 0.1 0.2 0.3 0.3 0.5 0.5 0.5 0.7 0.7 0.1
5 0.1 0.2 0.4 0.4 0.5 0.7 0.7 0.8 0.7 0.1
6 0.1 0.2 0.4 0.4 0.5 0.7 0.8 0.9 0.8 0.1
7 0.1 0.2 0.4 0.4 0.5 0.7 0.8 0.9 1.4 0.1
8 0.1 0.2 0.4 0.4 0.5 0.7 0.8 0.9 1.2 0.1
9 0.1 0.2 0.4 0.4 0.5 0.7 0.8 0.9 1.1 0.1
10 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1

Si inizializzi la matrice nella sua definizione. Nota: la prima riga e la prima


colonna non fanno parte della matrice, sono riportati per comodità come
numerazione delle colonne e delle righe.

Esercizio 5 (matrice di interi)


Si scriva un programma in grado di riempire una matrice quadrata di dimensioni
NxN di interi (con N pari e maggiore o uguale a 4 definito come costante tramite
la direttiva define) secondo lo schema delle cornici concentriche; per ogni

INFORMATICA CORSO 5 4
N=6

cornice si parta dalla cella in alto a sinistra e 0 1. la cornice


si riempia 2 3 4 5
progressivamente con numeri crescenti a 0 -> N-1
1 -> N-1-1
i -> N-1-i 2 -> N-1-2

N-1 -> 0

partire da 1. 0 -> N-1

Si proceda infine con la stampa della matrice sia a video che su file
assicurandosi che colonne e righe siano correttamente allineate.

INFORMATICA CORSO 5 5

Potrebbero piacerti anche