Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) [Dúvida] Pascal - vetor


Glauco Machado

Pergunta

Preciso resolver o seguinte exercício:

Leia um vetor de 10 posições e verifique se existem valores iguais e os escreva.

Fiz este código:

Program Pzim;
 Var
     vet1, vet2 : array [1..10] of integer;
     i, c, x, y : integer;
 Begin
     y := 1;
     for i := 1 to 10 do
     begin
         read (vet1[i]);
     end;
     for i := 1 to 10 do
     begin
         x := vet1[i];
         for c := 1 to 10 do
         begin
            if (vet1[c]) = x then
            vet2[y] := x;
            y := y + 1;
        end;
    end;
    for i := 1 to 10 do
        write (vet2[i]);
    
  
 End.

Mas retornou o seguinte erro:

=> Erro de execução na linha 16... (if (vet1[c]) = x then)

=>O índice na posição 12 está fora dos limites do vetor!

Porque está excedendo o limite se estou contando até o tamanho do vetor [10]?

É o vetor vet2 que está estrapolando? Se for, como zerá-lo?

Obrigado.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Preciso resolver o seguinte exercício:

Leia um vetor de 10 posições e verifique se existem valores iguais e os escreva.

Mas retornou o seguinte erro:

=> Erro de execução na linha 16... (if (vet1[c]) = x then)

=>O índice na posição 12 está fora dos limites do vetor!

Porque está excedendo o limite se estou contando até o tamanho do vetor [10]?

É o vetor vet2 que está estrapolando? Se for, como zerá-lo?

Obrigado.

A lógica está errada ... o correto é verificar o:

vertor de indice 1 com o vetor de indice 2

vertor de indice 1 com o vetor de indice 3

vertor de indice 1 com o vetor de indice 4

assim ate o

vertor de indice 1 com o vetor de indice 10

depois na sequencia

vertor de indice 2 com o vetor de indice 3

vertor de indice 2 com o vetor de indice 4

vertor de indice 2 com o vetor de indice 5

assim ate o

vertor de indice 2 com o vetor de indice 10

depois na sequencia

vertor de indice 3 com o vetor de indice 4

vertor de indice 3 com o vetor de indice 5

vertor de indice 3 com o vetor de indice 6

assim ate o

vertor de indice 3 com o vetor de indice 10

ate que voce chega ao vetor

vertor de indice 9 com o vetor de indice 10

OBS: achando o numero repetido em um dos indices do vetor ( vet1) voce guarda o resultado no outro vetor ( vet2 )

Não estou te passando o código pronto para voce pode raciocinar sobre a lógica... se não conseguir depois eu posto o código

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Bom já te dei um tempo... agora voce confere o código de acordo com a lógica aprensentada

Var
    vet1, vet2 : array [1..10] of integer;
    i, c, x, y : integer;
Begin
    y := 1;
    x := 1;
    for i := 1 to 10 do
    begin
        read (vet1[i]);
    end;
    for i := 1 to 10 do
    begin
        x := x + 1;
        for c := x to 10 do
        begin
            if (vet1[i]) = vet1[c] then
            begin
               vet2[y] := vet1[c];
               y := y + 1;
            end;
        end;
    end;
    writeln('Valores repetidos :');
    for i := 1 to 10 do
       begin
          if vet2[i] <> 0 then
             writeln (vet2[i]);
       end;

End.

OBS: Nos proximos voce faz sozinho ... ok ?

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...