Dúvida [Pascal]

Triran

Membro
Código:
program problema2;
uses crt;
var

M, N : array [1..10] of integer;
matrizFinal, matrizConc : array [1..20] of integer;
i, j , cont, teste : integer;

begin

  clrscr;

 {Preenchimento das Matrizes}

  for i:= 1 to 10 do
    begin
       writeln('Preencha o ',i,'º termo da 1a matriz:');
       readln(M[i]);
    end;

  for i:= 1 to 10 do
    begin
       writeln('Preencha o ',i,'º termo da 2a matriz:');
       readln(N[i]);
    end;

  for i:= 1 to 10 do
    matrizConc[i]:=M[i];

  for i:= 11 to 20 do
    matrizConc[i]:=N[i-10];

  {Imprimindo a matriz concatenada}

  writeln;
  writeln('A matriz concatenada ficou assim:');
  writeln;
  for i:= 1 to 20 do
    write('[ ',matrizConc[i],' ]');



  matrizFinal[1]:=matrizConc[1];
  cont:=2;
  for i:= 2 to 20 do
    begin
      teste:=0;
      for j:= (i-1) to 1 do
        if (matrizConc[i] = matrizConc[j]) then
          teste:=teste+1;
      if (teste = 0) then
        begin
          matrizFinal[cont]:=matrizConc[i];
          cont:=cont+1;
        end;
    end;

   writeln;
   writeln('A matriz sem repetiçoes ficou assim:');
   writeln;
   for i:= 1 to 20 do
    write('[ ',matrizFinal[i],' ]');

   readkey;

end.
O programa era para ter esse efeito:

"Dada duas matrizes com 10 números inteiros, concatenar as duas em uma matriz com 20 numeros inteiros, sem eliminar repetições. Depois, imprimir uma segunda matriz eliminando as repetições. Esta segunda matriz pode ter, obviamente, no máximo 20 elementos."

Porém, com o que eu fiz, eu não to conseguindo fazer a segunda parte. Alguém pode me apontar meus erros nesta parte. Eu até sei que a primeira parte tá EXTREMAMENTE específica, mas como foi o pedido, eu não me importei em fazer algo mais genérico.

Aguardo uma luz.

(sou brasileiro, desculpem me caso eu tenha escrito alguma palavra que lhes fujam a compreensão)
 
Já achei meu erro.


Código:
for j:= (i-1) to 1 do
        if (matrizConc[i] = matrizConc[j]) then
          teste:=teste+1;

Código:
for j:= (i-1) downto 1 do
        if (matrizConc[i] = matrizConc[j]) then
          teste:=teste+1;

Era só mudar o "to" para "downto" e o programa compilava da maneira que eu queria.
 
Última edição:
Back
Topo