Fondamenti di Informatica
Aeronautica, Civile, Meccanica, Elettrica, Materiali,
Edile, Nucleare, Chimica, Ambiente e Territorio
Appello del 16-4-1997
PRIMA PARTE (18 punti)
Una fabbrica metalmeccanica produce componenti meccaniche utilizzando un insieme di macchine. Ciascuna componente meccanica ha un codice numerico da 1 a 100 mentre ciascuna macchina per la produzione ha un codice alfabetico da A a Z. Per ogni componente meccanica x sono fornite le seguenti informazioni:
- numero di pezzi da produrre
- una lista delle macchine in grado di produrre x.
Le informazioni sono memorizzate secondo lo schema illustrato in figura. Si noti che se il numero di pezzi da produrre di un dato componente e' zero allora la lista delle macchine che lo possono produrre e' vuota.
1. Fornire le opportune dichiarazioni dati per rappresentare le informazioni relative ai pezzi da produrre e alle macchine per la produzione.
2. Scrivere una funzione Pascal che, ricevendo come parametro la struttura dati che rappresenta i pezzi da produrre, fornisca il valore vero se esistono macchine che non sono in grado di realizzare nessuno dei pezzi da produrre.
3. Una macchina ALFA si dice essenziale se e' l'unica in grado di realizzare una componente (cioe' ALFA puo' produrre una componente y e nessuna altra macchina puo' produrre y ). Scrivere una procedura che, ricevendo come parametro la struttura dati che rappresenta i pezzi da produrre, stampi i codici delle macchine essenziali.
· il pezzo di codice 1 deve essere prodotto in 27 unita' e puo' essere realizzato o dalla macchina A o dalla macchina C
· il pezzo di codice 2 non deve essere prodotto
· la macchina F e' essenziale; infatti e' la sola che puo' produrre il pezzo 3.

Fondamenti di Informatica
Aeronautica, Civile, Meccanica, Elettrica, Materiali,
Edile, Nucleare, Chimica, Ambiente e Territorio
Appello del 16-4-1997
SECONDA PARTE
1) (4 punti)
Descrivere.le caratteristiche dei principali dispositivi di memoria (centrale e di massa) e illustrare le modalità di gestione della memoria stessa.
2) (4 punti)
Scrivere una subroutine Fortran che, ricevendo in ingresso una matrice quadrata di interi di dimensione N, stampi un opportuno messaggio se la matrice é triangolare superiore. Fornire le dichiarazioni da inserire nel programma principale.
3) (4 punti)
Spiegare cosa si intende per programma corretto e illustrare i principali metodi di test dei programmi. Fornire un insieme di dati di test per provare un programma di ordinamento di un vettore di N componenti intere.
Download testo in formato Word