ESAME 10-01-00 (PASCAL)

Questionario cartaceo

Rispondere alle seguenti domande:
  1. Quanti numeri naturali compresi tra 0 e 1000 possono essere scritti su un dischetto la cui capienza è 512 K ?
    È possibile lasciare indicati i calcoli da eseguire.

  2. Dire se e come potreste effettuare la prova di laboratorio nel caso in cui sia stato rubato il disco rigido del computer che dovrete usare.

  3. Che cosa stampa il seguente programma Pascal?
    program Esercizio;
     var
      i, j, k: integer;
      x: char;
     procedure aaa (var x: integer;
           y: integer);
      var
       a: integer;
     begin
      a := x;
      x := y;
      y := a;
     end;
    
    begin
     i := 3;
     j := 4;
     aaa(i, j);
     readln(x);
     if x = 's' then
      aaa(k, j);
     writeln('i =', i, '; j =', j, '; k = ', k);
    end.
  4. Scrivere un programma Pascal che esegue il merge di due file di tipo testo linea per linea, cio è ritorna un file le cui linee sono quelle del primo file alternate con quelle del secondo file.
    Si assuma che i due files abbiano lo stesso numero di line, e non si facciano altre assunzioni.

Parte laboratorio

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

{gli elementi del tipo COLONNA rappresentano un possibile risultato }
{delle 13 partite considerate dal tototcalcio}
{e consistono di 13 elementi ordinati dell'insieme {1,2,X}}
{(1 : vince prima squadra 2 : vince seconda squadra X : pareggio)}
..............

{gli elementi del tipo SCHEDINA rappresentano le schedine del gioco del totocalcio}
{su ogni schedina vengono indicati i possibili risultati delle 13 partite}
{e' possibile indicare uno oppure due oppure tre risultati}
{in gergo mettere una doppia, mettere una tripla)}
{pertanto una schedina puo' determinare una o piu' colonne }
.......
 var
  OGGI: COLONNA;
  GIOCATA: SCHEDINA;
.......

{sottoprogramma che ritorna cosa ha vinto una data schedina rispetto ad}
{una data colonna}
{i possibili risultati sono }
{13: una colonna della schedina coincide con quella data}
{12: una colonna della schedina coincide con quella data in 12 punti}
{11: una colonna della schedina coincide con quella data in 11 punti}
{niente in tutti gli altri casi}
................

{sottoprogramma che stampa una colonna}
.......

{sottoprogramma che stampa tutte le colonne determinate da una data schedina}
.......

begin
{assegnare una qualunque colonna alla variabile OGGI}
..............

{assegnare una qualunque schedina alla variabile GIOCATA}
 ...........

{stampare i risultati fatti da GIOCATA rispetto ad OGGI}
........

{stampare tutte le colonne determinate da GIOCATA}
.............
end.