Ir ao conteúdo
  • Cadastre-se

VisualG Preencher o vetor com o fatorial, com o restante preenche-los com zero


Posts recomendados

FUAQ lê valores para um vetor A[10]. A seguir, inserir num vetor B[10], de forma compactada, os fatoriais dos elementos com valores ímpares contidos no vetor A. Preencher os elementos restantes de B com o valor zero.

Algoritmo "FUAQ03"
Var
   vet_A:vetor[0..9]de inteiro
   vet_B:vetor[0..9]de inteiro
   l :inteiro


funcao fat(x:inteiro) : inteiro
var
   fatorial,c: inteiro
inicio
   fatorial <- 1
   para c de x ate 2 passo -1 faca
      fatorial<- fatorial *c
   fimpara
   retorne fatorial
fimfuncao

Inicio
   Escreval("Informe os valores para o vetor!")
   para l de 0 ate 9 faca
      leia(vet_A[l])
   fimpara
   Escreval("Fatoriais no vetor B")
   para l de 0 ate 9 faca
      se (vet_A[l] mod 2 = 1) entao
         vet_B[l] <- fat(vet_A[l])
      fimse
      Escreval(vet_B[l])
   fimpara
Fimalgoritmo

Ele me retorna os fatoriais certinhos, mas com zeros no lugar dos pares, não estou conseguindo preenche-los por último, podem me ajudar?

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@GwPz, sobre:

 

4 horas atrás, GwPz disse:

Ele me retorna os fatoriais certinhos, mas com zeros no lugar dos pares, não estou conseguindo preenche-los por último, podem me ajudar?

 

Onde está sendo impresso os valores?

 

image.png

 

Temos 2 pontos aí:

  1. as variáveis globais do VisualG são zeradas automaticamente ao iniciar o programa, ou seja: todas as posições de B[] começam com 0;
  2. você está imprimindo todas as posições, logo, ele vai imprimir o que foi alterado, e o que continuou com 0, ou seja: está simplesmente imprimindo todo o B[].

 

Uma forma de resolver, baseado na forma que você fez, seria:

   para l de 0 ate 9 faca
      se (vet_A[l] mod 2 = 1) entao
         vet_B[l] <- fat(vet_A[l])
         escreval(vet_B[l])
      fimse
   fimpara

 

Mas acho que existem outros pontos a serem abordados... vejamos o enunciado:

 

4 horas atrás, GwPz disse:

A seguir, inserir num vetor B[10], de forma compactada, os fatoriais dos elementos com valores ímpares contidos no vetor A.

 

O que raios quer dizer compacta? Então, eu suponho que esteja se referindo à inserir os valores no vetor B[] em sequência de ocorrências, ou seja: a inserção dos novos valores vão da esquerda para direita..., mas, no teu caso, está inserindo "em posições correspondentes". O primeiro fatorial entra na posição 0, o segundo fatorial entra na posição 1... assim por diante.

 

Perceba que já imprimir o resultado junto a atualização de B[] já fica suspeito... Exemplo:

   escreval("Fatoriais no vetor B")
   para l de 0 ate 9 faca
      se (vet_A[l] mod 2 = 1) entao
         escreval(fat(vet_A[l]))
      fimSe
   fimPara

Claro que foi uma forçação de barra, mas perceba que o B[] ficou inútil?

 

Daí, eu sugiro que: primeiro preencha o B[], mas abaixo imprima todo os valore dele.

 

Sobre:

4 horas atrás, GwPz disse:

Preencher os elementos restantes de B com o valor zero.

Como disse, no VisualG já é inicializado com zero... mas, como está sendo solicitado, após terminar de verificar cada número de A[], insira 0 nas posições de B[] que sobraram... para ajudar nos testes, em vez de 0, coloque outro valor.. como "-1". Daí vai ter uma referência melhor que está atualizando corretamente.

 

Link para o comentário
Compartilhar em outros sites

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!