ESAME 15-07-99 (PASCAL)

Questionario cartaceo

Rispondere alle seguenti domande:
  1. Trasformare il seguente numero in base 7 nel corrispondente in base 9:
    123
  2. Che cosa stampa il seguente programma Pascal?
    program ESAME;
     var
      x, i, w: integer;
    
     procedure F (y: integer);
      var
       z: integer;
     begin
      z := y;
      x := z;
     end;
    
     function Duplica (var y: integer): integer;
     begin
      y := 2 * y;
      Duplica := y;
     end;
    
    begin
     w := 7;
     i := 1;
     repeat
      F(i);
      writeln('...', x, '...');
      i := Duplica(i);
     until i > 5;
    end.
  3. Descrivere brevemente in modo schematico la storia di un programma Pascal partendo da quando viene scritto sulla carta fino a quando il computer ritornerà i suoi risultati.
  4. Scrivere un programma Pascal per stampare la lunghezza media delle righe di un file di testo residente su disco di nome "TERESA"; si assuma che le righe siano lunghe al più 200.

Parte laboratorio

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

{gli elementi del tipo IMMAGINE rappresentano delle immagine a colori in modo digitale, }
{ogni elemento della matrice rappresenta un colore secondo un opportuno meccanismo di }
{codifica }

 const
  L = 7;
  H = 5;
  {larghezza e altezza delle immagini}  
  
 type
  IMMAGINE = array[1..H, 1..L] of integer;
  {sottoprogramma che controlla se un'immagine e' a righe orrizontali}
  {per esempio quella che segue lo e'}
  { 3 3 3 3 3 3 3}
  { 4 4 4 4 4 4 4}
  { 3 3 3 3 3 3 3}
  { 4 4 4 4 4 4 4}
  { 3 3 3 3 3 3 3}
  { mentre quest'altra non lo e' }
  { 3 3 0 3 3 3 3}
  { 4 4 4 4 4 4 4}
  { 0 3 3 0 3 3 3}
  { 4 4 4 4 4 4 4}
  { 3 3 3 0 3 3 3}
{sottoprogramma che controlla se un'immagine e' a bande orrizontali}
{per esempio quella che segue lo e'}
{         3 3 3 3 3 3 3}
{         3 3 3 3 3 3 3}
{         3 3 3 3 3 3 3}
{         4 4 4 4 4 4 4}
{         4 4 4 4 4 4 4}
{mentre quest'altra non lo e' }
{         3 3 3 3 3 3 3}
{         3 3 3 3 3 3 3}
{         3 3 3 3 3 3 3}
{         3 3 3 0 3 3 3}
{         4 4 4 4 4 4 4}
{sottoprogramma che controlla se un'immagine e' a quadretti}
{per esempio quella che segue lo e'}
{         3 0 3 0 3 0 3}
{         0 3 0 3 0 3 0}
{         3 0 3 0 3 0 3}
{         0 3 0 3 0 3 0}
{         3 0 3 0 3 0 3}
{mentre quest'altra non lo e' }
{         3 3 3 3 3 4 4}
{         3 3 3 3 3 4 4}
{         3 3 3 3 3 4 4}
{         4 4 4 4 4 4 4}
{         4 4 4 4 4 4 4}
..........
begin
{dare un main per permettere di testare le procedure definite sopra}
{dire poi esplicitamente su quali immagini devono essere chiamate}
..........
end.