Ir ao conteúdo

Posts recomendados

Postado

Pessoal, estou começando a estudar pascal e simplesmente travei nessa questão. Alguém consegue me ajudar? Já coloquei no google mas não encontro a resposta. O PDF que eu to usando não me ensinou a solucionar isso. Se alguém tiver dicas de onde eu encontro conteúdo sobre Pascal vai ajudar muito também. 

 

Questão 1. O programa em Pascal abaixo deve ler um vetor de 15 posições de números inteiros e, em seguida, deve armazenar os 10 menores valores do vetor em um segundo vetor e imprimi-los. Complete as linhas em branco para que o programa execute a tarefa descrita. 

program exercicio1;
            var i,j,aux: integer;
                  v: array[1..15] of integer;
                  ____________________
    begin
          for i:= 1 to 15 do
                      readln(v[i]);
              _________________
                   _________________
                     _________________
                       begin
                          aux := v[i];
                           v[i] := v[j];
                           v[j] := aux;
                      end;
             _________________
             begin
               _________________
               write(a[i],' ');
             end;
end.


 

  • Membro VIP
Postado

@heinzi19, não imagino que seja algo trivial, pois, OU você já saberia fazer e acharia fácil, que não é o caso... OU não sabe fazer e vai ter uma dificuldade imensa para conseguir, ou seja, depois que entende fica fácil, mas entender por conta própria não me parece razoável, rs.


Desta forma, segue uma explicação do que poderia ser:

 

19 horas atrás, heinzi19 disse:

Questão 1. O programa em Pascal abaixo deve ler um vetor de 15 posições de números inteiros e, em seguida, deve armazenar os 10 menores valores do vetor em um segundo vetor e imprimi-los. Complete as linhas em branco para que o programa execute a tarefa descrita. 

 

Tente entender o algoritmo independentemente do código já fornecido no enunciado. Veja:
- ler os 15 valores jogando no vetor v; (Bem simples.)

 

- ordenar o vetor v em ordem crescente, assim os 10 primeiros elementos serão os 10 primeiros menores; (Envolve a lógica de "perceber", ou seja, alguém te contar, que se deixar os elementos num vetor e ordená-lo depois, você vai ter os dados em ordem... Outro ponto são os diversos métodos de ordenação, que eventualmente precisa estudar em separado... o mais famoso é o Bubble Sort.)

 

- inserir no a os 10 primeiros menores, ou seja, as 10 primeiras posições de v;

 

- exibir o vetor a;

 

 


Esses tipos de estruturas são padrões.. se repetem o teeeempo todo, mas dificilmente alguém o redescobre sozinho, ou seja, praticamente todo mundo um dia copiou de alguém e, no processo, entendeu/aprendeu os conceitos (isso é o esperado pelos professores)... Então, poderia ficar algo assim: 
 

program exercicio1;
{$CODEPAGE UTF8} //para permitir acentos nas string em alguns compiladores [Não necessário no PascalZim, mas pode deixar]
var
  i, j, aux: integer;
  v: array[1..15] of integer;
  a: array[1..10] of integer; //a porque lá no final ele utiliza essa nomenclatura

begin
for i:= 1 to 15 do
  readln(v[i]);

//aqui estaria usando uma estrutura de ordenação bem famosa, que não sei o
//nome, mas é bem parecido com o Bubble Sort (Obs.: essa abaixo NÃO é o Bubble Sort)
for i:= 1 to 14 do 
  for j:= i+1 to 15 do
    if v[i] > v[j] then
      begin //essa estrutura abaixo é típica para permuta de elementos num vetor...
      aux := v[i]; //copia o valor da posição "A" (para não perder o que tá lá. Vai ser substituído em seguida)
      v[i] := v[j]; //joga o valor da posição "B" em "A"
      v[j] := aux; //joga o valor de "A" em "B" (que está no "auxiliar", já que "A" já não tem o valor original)
      end;

for i:= 1 to 10 do
  begin  
  a[i] := v[i]; //aqui vai jogando o valor que está no vetor v, no vetor a
  write(a[i],' ');
  end;
end.

 


PONTOS IMPORTANTES:
- Não sei se é a resposta correta;

- Não copie o código com Ctrl+C/Ctrl+V... se for o caso, redigite tudo;

- Para treinar um pouco, separe a "cópia das das posições de v em a" da exibição dos valores, ou seja, primeiro faça a cópia de v para a e separadamente exiba o vetor a.


Qual dúvida ou comentário é só postar.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...