PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata: 90 minuti) Cognome e Nome : Matricola : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) : Quesito n.1 Progettare un algoritmo per partizionare un array. Riportare una istanza di I/O del problema. Descrivere l algoritmo in un linguaggio differente dai grafi di flusso. Quesito n.2 Rappresentare tramite grafi di flusso il seguente codice Pascal: BEGIN IF i>j THEN flag := false ELSE BEGIN REPEAT k := (i + j) DIV 2; IF x < a(k) THEN j := k 1 ELSE I := k + 1 UNTIL (i>j ) OR (a(k) = x); flag := x = a(k) END END Quesito n.3 Definire la sezione interface di una Unit che contenga le seguenti procedure e funzioni di servizio per la elaborazione di array e di file: a. Procedura per fondere due file ordinati; b. Funzione per ricercare x in un vettore v di interi; c. Procedura per produrre la matrice identità di ordine n; E richiesta, inoltre, per ciascun parametro la motivazione della modalità di legame.
PROGRAMMAZIONE (Corsi B e C) Pre-appello di Febbraio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Febbraio (A.A. 2002/2003) 12 Febbraio 2004 ore 11 Aula II di Facoltà (Durata: 90 minuti) Cognome e Nome : Matricola : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) : Quesito n.1 Trasformare la seguente istruzione: WHILE C > 100 DO C := C - 1; nel corrispondente ciclo di tipo REPEAT UNTIL. Quesito n.2 Progettare un algoritmo per la sostituzione, in un file di interi, di ciascun valore pari con l intero uguale alla sua metà. Quesito n.3 Rappresentare lo stato del seguente array di interi: 31 26 1 12 10 8 29 35 attraverso le varie fasi dell esecuzione dell algoritmo di partizionamento rispetto al valore 27.
PROGRAMMAZIONE (Corsi B e C) Giugno 2004 (A.A. 2003/2004) 1 Si consideri il seguente schema di programma: program m(input,output); var i, j: integer; procedure p(x:integer; var y:integer); var k,i :integer; function f (k : integer) : integer; var s,t : integer; begin..end (*fine function f*); begin.end (*fine procedure p *); begin end. (*fine programma m *) a. Indicare il campo di visibilità di ciascuna variabile dichiarata. b. Indicare il campo di visibilità della procedura p e della funzione f. 2 a. Scrivere l intestazione di una procedura che legga un vettore A di n numeri interi; b. Scrivere l intestazione di una funzione che calcoli la somma degli n elementi interi di un vettore A ; c. Scrivere nella interface di una unit le dichiarazioni di tipi, costanti e procedure relative ai punti precedenti. 3 a. Descrivere, mediante pseudocodifica, un algoritmo di ordinamento a bolle; b. Si consideri il seguente vettore costituito da 8 elementi interi: 3 1 7 8 4 5 2 6 rappresentare come viene modificato il vettore durante l applicazione dell algoritmo descritto. 4 Scrivere in Pascal una procedura che, dato in input un file f di elementi interi ordinati in modo crescente, ed un numero num, inserisca il valore num nel file in modo che il file f risultante sia ancora ordinato in modo crescente.
PROGRAMMAZIONE (Corsi B e C) Giugno 2004 (A.A. 2003/2004) 1) Specificare le regole di visibilità degli identificatori del Pascal. 2) Scrivere una procedura parametrica Pascal in grado di modificare un textfile f, in modo tale che se l ultimo elemento di una linea è una virgola, la linea successiva viene eliminata. 3) c. Descrivere, mediante pseudocodifica, un algoritmo di ricerca binaria; d. Si consideri il seguente vettore costituito da 15 caratteri: A B C D F H I L M N P S T U V Specificare la lunghezza di ricerca (numero di accessi all array) per il carattere che corrisponde all iniziale del proprio cognome ed indicare, per ciascun accesso, la posizione.
PROGRAMMAZIONE (Corsi B e C) Settembre 2004 (A.A. 2003/2004) Scrivere su tutti i fogli da consegnare il proprio Cognome, nome e corso. Riportare sul foglio solo il numero del quesito a cui si sta rispondendo. 1. a) Descrivere il tipo di dato Integer del linguaggio Pascal, in termini di dominio, insieme degli operatori e insieme delle costanti. b) Rappresentare mediante diagrammi sintattici le costanti intere 2. a) Descrivere l algoritmo di fusione di 2 array ordinati a e b in un array c ordinato nel medesimo modo. b) Scrivere solo l intestazione di una procedura parametrica che implementi tale algoritmo. 3. Scegliere uno dei seguenti esercizi: a) Scrivere una procedura parametrica che crei un file di testo f (diverso dallo standard output) costituito da un numero n di linee, con n>0. b) Scrivere una funzione che calcoli in modo ricorsivo la somma dei numeri interi da 0 a n.
DIPARTIMENTO di INFORMATICA Corso di Laurea in Informatica A.A. 2003/2004 Prova scritta di Programmazione (corsi B,C) - 14 Dicembre 04 Cognome-Nome:.... Corso.. Matricola... Scrivere su tutti i fogli da consegnare il proprio Cognome, nome e corso. Riportare sul foglio solo il numero del quesito a cui si sta rispondendo. 1. c) Descrivere il tipo di dato enumerato del linguaggio Pascal, in termini di dominio, insieme degli operatori e insieme delle costanti. d) Fornire il motivo della non applicabilità dell I/O standard. Descrivere come si può realizzare l input e l output. 2. c) Descrivere l algoritmo di fusione di 2 file di interi. d) Scrivere solo l intestazione di una procedura parametrica che implementi tale algoritmo. 3. Scegliere uno dei seguenti esercizi: c) Scrivere una procedura parametrica che inverta un array di n caratteri. d) Scrivere una funzione che calcoli in modo ricorsivo la somma degli elementi di un array di n interi.