Università di Roma La Sapienza

Corso di Fondamenti di Informatica

Facoltà di Ingegneria

Corso di Laurea: Ambiente e Territorio

Appello del 4-6-1998

 

 

Esercizio 1 (18 punti)

Un grafico può essere rappresentato mediante una sequenza di coppie di valori (ascissa, ordinata). La sequenza è ordinata per valori crescenti di ascissa. Si assuma che i valori di ascissa siano tutti distinti.

Si considerino due file ‘C:\GRAF1.DAT’ e ‘C:\GRAF2.DAT’, in cui sono memorizzati due grafici nel modo suddetto. In particolare, i valori di ascissa sono interi mentre i valori di ordinata sono reali.

  1. Definire i tipi di dato C adeguati a risolvere i problemi di cui ai successivi punti 2) e 3).
  2. Scrivere una funzione C (o più) che, dati come parametri i due file, costruisca e fornisca in uscita il file che rappresenta il grafico ottenuto sommando i due grafici di ingresso. Tale grafico è costituito da coppie di valori (x, y) calcolate nel seguente modo: se x è un valore di ascissa presente in tutti e due i grafici dati, allora y è la somma dei due corrispondenti valori di ordinata; se x è un valore di ascissa presente in uno solo dei grafici dati, allora y è il corrispondente valore di ordinata.
  3. Scrivere una funzione C (o più) che, dato come parametro il file costruito al punto precedente, fornisca la lista collegata costituita dalle sole coppie (ascissa, ordinata) il cui valore di ascissa è una potenza di due.

Esempio

Siano dati i seguenti due grafici, rappresentati mediante sequenze, ordinate, di coppie di valori:

(2, 3.5) (4, 7.2) (9, 1.6) (16, 5.0) (27, 9.2)

(3, 4.6) (9, 27.0) (16, 8.3) (22, 12.2) (25, 9.2)

La procedura di cui al punto 2) costruirà il grafico somma e produrrà un file in cui è memorizzata la seguente sequenza di coppie:

(2, 3.5) (3, 4.6) (4, 7.2) (9, 28.6) (16, 13.3) (22, 12.2) (25, 9.2) (27, 9.2)

La procedura di cui al punto 3) fornirà la lista collegata costituita dalle seguenti coppie:

(2, 3.5) (4, 7.2) (16, 13.3)

 

Università di Roma La Sapienza

Corso di Fondamenti di Informatica

Facoltà di Ingegneria

Corso di Laurea: Ambiente e Territorio

Appello del 4-6-1998

 

Esercizio 2 (4 punti)

Si illustrino le tecniche e i concetti che il candidato ritiene significativi al fine di costruire programmi corretti.

 

Esercizio 3 (4 punti)

Il candidato consideri il seguente programma C ed indichi cosa viene stampato, e perché, quando fornisce in lettura le ultime due cifre (una alla volta) del suo numero di matricola.

#include <stdio.h>

typedef int vett[10];

vett v;

int i, n;

void modifica(vett v, int *n)

{

int com;

com = v[*n];

scanf("%d",n);

v[*n] = com;

return;

}

 

main()

{

for(i = 0; i <= 9; i = i+1)

v[i] = i;

n = 1;

do {

modifica(v,&(v[n]));

n = n+1;

} while (n != 3);

for(i = 0; i <= 9; i = i+1)

printf("%d\n",v[i]);

return 0;

}

Esercizio 4 (4 punti)

Si illustrino le caratteristiche dei GIS, con particolare attenzione alle caratteristiche dei dati e alle operazioni di interesse sugli stessi.