ESAME 27-09-99 (PASCAL)

Questionario cartaceo

Rispondere alle seguenti domande:
  1. Esprimere usando la base 7 il risultato della somma dei seguenti due numeri,
    che sono a loro volta espressi in base 5:

    22, 11

  2. Che cosa stampa il seguente programma Pascal?
    program XXX;
    
     var
      i, j, k: integer;
    
     procedure aaa (var x, y: integer; a: integer);
     begin
      a := x;
      y := a;
      x := y;
     end;
    
    begin
     i := 3;
     j := 4;
     k := 5;
     aaa(i, j, k);
     writeln('i = ', i, '; j = ', j, '; k = ', k);
    end.
  3. Presentare precisamente la sintassi dei numeri civici italiani utilizzando o una grammatica BNF oppure dei diagrammi sintattici.
    Si ricorda che un numero civico è composto da un numero naturale positivo,
    eventualmente dall'indicazione rosso o nero,
    eventualmente dall'indicazione della scala (il carattere '\' seguito da una lettera),
    e poi dal numero dell'interno (un naturale positivo).

    Esempi di numeri civici sono
    33r 11, 12\B 4, 13 13 .

  4. Scrivere un programma PASCAL per controllare se due file di tipo text hanno un elemento comune;
    si assuma che i due file siano residenti su disco ed abbiano nome PRIMO e SECONDO rispettivamente.

Parte laboratorio

Completare il seguente frammento di programma Pascal come indicato dai commenti:
program ESAME;


TYPE INSIEME = .....
{ gli elementi del tipo INSIEME rappresentano gli insiemi di numeri reali 
la cui cardinalita' e' al piu' 50 }

VAR
   I1, I2, I3: INSIEME;
   
   VUOTO = ....
{ la variabile VUOTO  rappresenta l'insieme vuoto }


{ il sottoprogramma CARDINALITA ritorna la cardinalita' di un insieme }
............


{ il sottoprogramma UNIONE realizza l'unione di due insiemi
   chiarire come trattare l'errore }
............

{ il sottoprogramma APPARTIENE controlla se un elemento appartiene ad un insieme }
............

begin   
   {  assegnare ad I1 l'insieme vuoto 
   {  assegnare ad I2 l'insieme { 3.5, 7.0, 4.0 } }
   {  assegnare ad I3 l'insieme { 3.1, 7.0, 4.4, 8.8 } }
   {  controllare se 3.0 appartiene ad  I2 U I3 }
   {  stampare la cardinalita' di  I3 U I2 U I1  }
end.