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)
Poligono privo di
segmenti paralleli all’asse delle x |
(b)Poligono
con segmento
parallelo all’asse delle x |
Fig. 1 |
Esercizio 2 (4 punti)
Con riferimento al linguaggio Pascal, si considerino
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.