2002/03 – Fase scolastica – 02

Considerate il seguente programma:

Program dueVett(input, output);
Type
   vett=Array[1..10] Of Integer;
Var
   x, y: vett;
   i, j: Integer;
   b   : Boolean;
Procedure readV(Var x: vett);
Var
   i: Integer;
Begin
   For i:=1 To 10 Do
      Read(x[i])
End;
Begin
   readV(x);
   readV(y);
   For i:=1 To 10 Do
      Begin
         j:=1;
         b:=false;
         While((Not b) And (j <= 10)) Do
            Begin
               If(x[i] = y[j]) Then
                  b:=true;
               j:=j+1
            End;
         If(b) Then
            Begin
               b:=false;
               For j:=1 to i-1 do
                  If(x[j] = x[i]) Then
                     b:=true;
               If(Not b) Then
                  Writeln(x[i])
            End
      End
End.

Il programma legge due sequenze di 10 interi e le mette in due vettori x e y.

Cosa stampa il programma?

  1. stampa gli interi contenuti in x ma non in y;
  2. stampa gli interi contenuti in entrambi i vettori; ogni numero viene stampato una sola volta;
  3. stampa gli interi contenuti in entrambi i vettori; ogni numero può essere stampato più volte;
  4. stampa gli interi contenuti una sola volta in entrambi i vettori;
  5. stampa gli interi contenuti una sola volta in x che compaiano almeno una volta in y.