1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Dúvida [Pascal]

Discussão em 'Programação' iniciada por Triran, 22 de Setembro de 2008. (Respostas: 1; Visualizações: 533)

  1. 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)
     
  2. 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: 22 de Setembro de 2008

Partilhar esta Página