Fondamenti di Informatica
Aeronautica, Meccanica, Elettrica, Materiali, Nucleare, Chimica,
Ambiente e Territorio (vecchio programma)
Appello del 1-7-1998

 

 

Esercizio 1 (18 punti)

 

In un sistema per la progettazione assistita da elaboratore (CAD) un disegno (tecnico) è composto da un insieme (massimo 10) di poligoni. Ciascuno di questi viene rappresentato tramite una sequenza di elementi di tipo Vertice, assumendo che ciascun vertice sia un punto del piano cartesiano a coordinate intere e che il vertice finale di ogni poligono coincida con quello iniziale.

 

Si consideri un file DISEGNO.TXT in cui è memorizzato un disegno: il file (di tipo testo) contiene le rappresentazioni dei poligoni che compongono il disegno, una per riga.

A titolo di esempio, si consideri la Fig. 1: in (a) è illustrato un poligono qualsiasi, in (b) un poligono con un segmento parallelo all’asse delle x..

 

(a) Poligono privo di 
segmenti paralleli 
all’asse delle x
(b)Poligono con segmento 
parallelo all’asse delle x
Fig. 1  
 
 
Fondamenti di Informatica
Aeronautica, Meccanica, Elettrica, Materiali, Nucleare, Chimica,
Ambiente e Territorio (vecchio programma)
Appello del 1-7-1998

Esercizio 2 (4 punti)

Con riferimento al linguaggio Pascal, si considerino

  1. un tipo (record) ElementoLista, con campi
    1. info, di tipo integer,
    2. prox, di tipo punt a ElementoLista;
 

procedure insertfine ( p: punt; nuovo: integer);
begin
if p <> nil then
begin
while p^.prox <> nil do
p := p^.prox;
new(p^.prox);
p^.prox^.info := nuovo;
p^.prox^.prox := nil;
end
else
begin
new(p);
p^.info := nuovo;
p^.prox := nil
end;
end;
 

La procedura proposta contiene degli errori. Indicarli, spiegarne l’effetto e correggerli.
 

Esercizio 3 (4 punti)

Il candidato descriva almeno due algoritmi di ordinamento su vettori e discuta la loro efficienza.

Gli algoritmi descritti possono essere utilizzati anche per l’ordinamento su file? Giustificare la risposta.

 
Esercizio 4 (4 punti)

Scrivete un programma in Fortran che, ricevendo in input 50 coppie di NomeStudente(15 caratteri) e VotoStudente(intero), li memorizzi, trovi il voto più alto, lo stampi e stampi anche i nomi di tutti gli studenti che hanno preso il voto più alto.