Fondamenti di Informatica
Aeronautica, Meccanica, Elettrica, Materiali,
Nucleare, Chimica, Ambiente e Territorio
Appello del 15-7-1997
PRIMA PARTE
Esercizio 1 (18 punti)
Una matrice T(n x m) rappresenta la pianta dei posti di un teatro.
Gli elementi della matrice possono assumere i valori: 0 (posto libero),
1 (posto occupato), 2 (posto non disponibile perche' riservato
al personale). Inoltre, un vettore C, ad n componenti, specifica,
per ogni componente i, il costo del biglietto corrispondente ad un qualunque
posto in i-esima riga.
1. Scrivere le dichiarazioni di tipo necessarie per i sottoprogrammi
2 e 3 seguenti.
2. Scrivere una procedura o funzione Pascal che, ricevendo in ingresso
la matrice T, il vettore C, un intero k, che rappresenta
il numero dei biglietti richiesti dal cliente, ed un intero q, che
rappresenta il prezzo massimo che il cliente e' disposto a pagare per ogni
biglietto, restituisca in uscita il valore vero se e' possibile soddisfare
la richiesta del cliente (cioe' se in T esistono k posti
liberi, adiacenti sulla stessa riga, con costo unitario ² q),
falso altrimenti.
3. Scrivere una procedura o funzione Pascal che, ricevendo in ingresso
il vettore C, una coppia di interi i e j, che rappresentano
le coordinate di riga e colonna del primo biglietto venduto, ed un intero
k, che rappresenta il numero di biglietti adiacenti venduti, restituisca
in uscita la lista dei biglietti venduti, cioe' una lista con tanti elementi
quanti sono i biglietti venduti nella fila i, ed in cui ogni elemento
contiene le coordinate di riga e colonna del posto ed il prezzo di un biglietto.
Esempio
Fondamenti di Informatica
Aeronautica, Meccanica, Elettrica, Materiali,
Nucleare, Chimica, Ambiente e Territorio
Appello del 15-7-1997
SECONDA PARTE
Esercizio 2 (4 punti)
Descrivere la struttura della CPU ed illustrarne le principali funzionalita'.
Esercizio 3 (4 punti)
Scrivere un sottoprogramma Fortran che, ricevendo in ingresso un vettore
di interi di ordine N, con N pari, restituisca in uscita il valore vero
se il vettore e' simmetrico, cioe' ogni elemento e' uguale al corrispondente
elemento speculare rispetto alla meta' del vettore, falso altrimenti.
Esempio
Esercizio 4 (4 punti)
Data la seguente procedura Pascal (che fa parte di un programma completo,
contenente le ovvie dichiarazioni di tipo, ecc.):
- Procedure CheFa (p:punt; n:integer);
- begin
- .....if
p<>nil then begin
- .........CheFa(p^.next,
n+1);
- .........p^.info:=p^.info+n;
- .........writeln(p^.info,
n)
- .....end
- end;
cosa stampa, ricevendo in input la lista p:
e l'intero n=2? Motivare la risposta.
Download testo in formato Word.