Ir ao conteúdo
  • Cadastre-se

VisualG Entender a lógica desse vetor.


Ir à solução Resolvido por JorgeGus,

Posts recomendados

Algoritmo "exemplo"

Var

 vet :vetor [0..9] de caractere
 vetImpar :vetor [0..9] de caractere
 impar :vetor [0..9] de caractere
 iImpar :inteiro
 i :inteiro

Inicio



iImpar <- 0

para i de 0 ate 9 faca
   escreva("Insira 10 nomes: ")
   leia(vet[i])

fimpara

para i de 0 ate 9 passo - 2 faca

 impar[iImpar] <- vet[i]
 iImpar <- iImpar + 1

fimpara

  para i de 0 ate iImpar - 1 faca
  escreva(impar[i])
  fimpara

Fimalgoritmo

Gostaria de entender como é o processo para resolver esse problema, eu tinha feito um igual com números inteiros, mas não estou conseguindo realizar com caracteres. Se alguém souber eu agradeço.

 

"Escrever um programa que recebe 15 nomes num vetor e exiba os nomes armazenados nos elementos com índice ímpar".

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

3 minutos atrás, Iago1234 disse:

E se eu quisesse mostrar em qual posição estaria o elemento ímpar?

Algoritmo "exemplo"
Var
   nomes :vetor [1..15] de caractere
   i :inteiro

Inicio
   para i de 1 ate 15 faca
      escreva("Nome ", i, ":")
      leia(nomes[i])
   fimpara

   para i de 1 ate 15 passo 2 faca
      escreval("Posicao", i, ": ", nomes[i])
   fimpara
Fimalgoritmo

 

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

7 minutos atrás, Iago1234 disse:

Jorge, eu estava iniciando as posições(elementos do vetor) em 0, e as posições dos nomes ímpares estavam aparecendo nas posições pares, então quando eu me deparar com uma situação dessas, eu não devo iniciar os elementos em 0?

Nessse caso o contador precisa iniciar em 1 porque o normalmente o primeiro nome de uma lista recebe o número 1, e era necessário separar o nomes nos índices ímpares, mas em situações que não envoltvam par ou impar isso tanto faz.

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

  • Membro VIP
Em 16/11/2021 às 16:51, Iago1234 disse:

Gostaria de entender como é o processo para resolver esse problema, eu tinha feito um igual com números inteiros, mas não estou conseguindo realizar com caracteres. Se alguém souber eu agradeço.

 

"Escrever um programa que recebe 15 nomes num vetor e exiba os nomes armazenados nos elementos com índice ímpar".

 

@Iago1234, esse exercício não tem qualquer relação com o tipo de dados que está sendo armazeno no vetor, mas sim apenas em relação às coordenadas deste (do vetor).

 

 

 

Em 16/11/2021 às 22:13, Iago1234 disse:

Jorge, eu estava iniciando as posições(elementos do vetor) em 0, e as posições dos nomes ímpares estavam aparecendo nas posições pares, então quando eu me deparar com uma situação dessas, eu não devo iniciar os elementos em 0?

 

Não importa se começa com 0 ou com 1, ou qualquer outro valor válido... Iniciar com um ou outro estaria relacionado a outros critérios e padrões do contexto... por exemplo: para mim, no VisualG, os vetores normalmente deveriam começar com 1, pois era meio que comum começar os vetores com 1 no Pascal ("pai do VisualG"). Ao mesmo tempo, na grande e absoluta maioria das linguagens de programação do mercado, nem existe a opção de definir com qual valor começar.. simplesmente começam do 0 e pronto... daí alguns acham que deveriam começar com 0.. para ir se acostumando... mas... tanto faz!

 

Beleza... mas como fica em relação ao enunciado. Veja:

 

Em 16/11/2021 às 16:51, Iago1234 disse:

[...] exiba os nomes armazenados nos elementos com índice ímpar".

 

É só ir lá e fazer isso. Exemplo:

 

algoritmo "Exibir os nomes das posições pares do vetor"
var
   nomes :vetor [1..15] de caractere
   i :inteiro

inicio
   ALEATORIO ON //comando para gerar valores aleatórios
   LISTA "Nomes" //gerar valores aleatórios a partir de uma lista
   para i de 1 ate 15 faca
      escreva ("Nome ", i:2, ": ")
      leia(nomes[i])
   fimpara
   ALEATORIO OFF //desativa o recurso

   escreval("")
   para i de 1 ate 15 faca
      se (i mod 2 = 0) entao //se a posição for par
         escreval("Posicao ", i:2, ": ", nomes[i])
      fimSe
   fimPara
fimAlgoritmo

 

Desse modo, o próprio algoritmo já identifica a paridade do índice. Mas veja.. a lógica do algoritmo depende muito do contexto, como por exemplo o que está estuando no momento.

 

Não é só o resultado final que importa, mas sim a forma que usou para chegar ao resultado.

 

Caso ache que é válido "já saber que o índice começa com ímpar e que a paridade varia de 2 em 2", poderia fazer como sugerido anteriormente. Exemplo:

 

Se o vetor começa com um índice 1, que é ímpar:

   escreval("")
   para i de 2 ate 15 passo 2 faca
      escreval("Posicao ", i:2, ": ", nomes[i])
   fimPara

 

 

Se o vetor começa com um índice 0, que é par:

   escreval("")
   para i de 0 ate 14 passo 2 faca
      escreval("Posicao ", i:2, ": ", nomes[i])
   fimPara

 

Adendo: veja que o vetor poderia começar com outros valores... não apenas 0 e 1...

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!