Fondamenti di Informatica
Ingegneria Aeronautica, Meccanica, Elettrica,
Materiali,
Nucleare, Chimica, Ambiente e Territorio
Appello del 19-2-1997
PRIMA PARTE
Esercizio 1 (18 punti)
Una associazione naturalistica sta studiando la fauna selvatica di un
bosco che si estende su una supeficie di 20km x 30km. In particolare vuole
registrare il numero di tane di volpi e di scoiattoli. Per fare ciò
ha suddiviso il bosco in ‘regioni’ di 1 km2 e le ha identificate con due
coordinate con valori che variano da 0 a 19 e da 0 a 29. La regione di
coordinate 0,0 include il punto fissato come origine, mentre la regione
5,6 é situata 5km a sud e 6km ad est dal punto fissato come origine.
Per ogni regione vengono memorizzate le seguenti informazioni:
· le coordinate stabilite con le regole descritte
· il numero di tane di volpe (0 se assenti)
· il numero di tane di scoiattolo (0 se assenti)
Non tutte le regioni sono state censite e i dati sono stati memorizzati
in un ordine casuale in una lista (rappresentata con record e puntatori).
1. Scrivere le dichiarazioni di tipo delle strutture dati necessarie
per risolvere i problemi seguenti.
2. Scrivere un sottoprogramma che ricevendo in ingresso la lista e due
coppie di coordinate, calcoli e restituisca in uscita il numero totale
di tane di ognuno dei due animali presenti nell’area geografica definita
dalle due coppie di coordinate. Ad esempio se le due coppie di coordinate
sono 3,4 e 6,5 il sottoprogramma dovrà calcolare il numero totale
di tane di ciascun animale che sono contenute nelle regioni (3,4), (3,5),
(4,4), (4,5), (5,4), (5,5), (6,4), (6,5).
3. Scrivere un sottoprogramma che ricevendo in ingresso la lista e la
parola ‘volpe’ o la parola ‘scoiattolo’, crei e restituisca in uscita una
nuova lista contenente i dati relativi alle regioni che contengono un numero
maggiore di zero di tane dell’animale prescelto.
Fondamenti di Informatica
Ingegneria Aeronautica, Meccanica, Elettrica,
Materiali,
Nucleare, Chimica, Ambiente e Territorio
Appello del 19-2-1997
SECONDA PARTE
Esercizio 2 (punti 4)
Descrivere le funzioni del gestore dei processi e in particolare
il modo in cui gestisce le interruzioni interne ed esterne.
Esercizio 3 (4 punti)
Che cosa stampa il programma seguente se vengono lette le coppie di
dati (2.0, 3), (2.0, 10), (2.0, -3)?
Motivare adeguatamente la risposta.
- program CheFa;
- var x: real; n: integer;
- function P (x: real; n: integer): real;
- begin
- ..if (n = 0) then
- ......P := 1
- ..else if (n > 0) then
- ...............if odd(n) then
- ...........................P := x * P(x,
n div 2) * P(x, n div 2)
- ...............else
- ...........................P := P(x, n
div 2) * P(x, n div 2)
- ..........else
- ................P := 1 / P(x, -n);
- end;
- begin
- ..readln(x);
- ..readln(n);
- ..writeln(P(x, n) : 10 : 4);
- end.
Esercizio 4 (4 punti)
Dato il seguente programma FORTRAN
.............PROGRAM Matrici
.............REAL A(-5:4, 6), SomPos
* legge una matrice reale
.............READ(*,*) A
* richiama la function SomPos che calcola la somma degli elementi di
valore positivo di A
.............WRITE(*,*) SomPos(A)
.............STOP
.............END
scrivere la function SomPos.
Download testo in formato Word.