Solução em Pascal do Problema 8

program intercalaVetor;

const tamMax=100;
      numMaxIntercala=200;
type indices=1..tamMax;
     indInt=1..numMaxIntercala;
     sequencia=array[indices] of Integer;
     intercala=array[indInt] of Integer;
var m, n, i, j, k : Integer;
    a, b : sequencia;
    c : intercala;

begin
 readLn(m);
 for i:=1 to m do read(a[i]);
 readLn;
 readLn(n);
 for i:=1 to n do read(b[i]);
 readLn;
 i:=1;
 j:=1;
 k:=0;
 
 while (i<=m) and (j<=n) do
   if a[i]<b[j] then
   begin
     k:=k+1;
     c[k]:=a[i];
     i:=i+1
   end
   else 
     if a[i]>b[j] then 
     begin
       k:=k+1;
       c[k]:=b[j];
       j:=j+1
     end
     else
     begin
       k:=k+1;
       c[k]:=a[i];
       i:=i+1;
       j:=j+1
     end;

 while i<=m do 
  begin
   k:=k+1;
   c[k]:=a[i];
   i:=i+1
 end;

 while j<=n do
  begin
   k:=k+1;
   c[k]:=b[j];
   j:=j+1
 end;

 for i:=1 to k do
  write(c[i],' ');
  writeLn
end.


Lista de Problemas

História da Computação | Listas de Exercícios | Problemas Resolvidos | macmulti@ime.usp.br