Ir ao conteúdo
  • Cadastre-se

VisualG Algoritmo de personagens Biblicos.


Posts recomendados

Galera, estou iniciando minha rotina nessa área achei muito interessante, estou gostando muito de aprender, achei legal me desafiar um pouco, pois fiz recentemente um algoritmo de empréstimos para cliente que da 20% de juros e deu certo rs
agora eu queria criar um algoritmo que diz a historia dos personagens bíblicos,

 

A principio está assim

 

 Algoritmo "Personagens Biblicos"

Var

   Nome, Paulo:  caractere

Inicio

   Escreval (" Qual personagem bíblico gostaria de saber? ")
   Leia (Nome)
   Paulo <- " foi um apóstolo de Cristo, um dos maiores propagadores do cristianismo e autor de catorze epístolas do Novo Testamento. Antes de se converter ao Cristianismo era conhecido como Saulo e perseguia os discípulos de Jesus nos arredores de Jerusalém."
   Escreval ("  ", Nome, Paulo)

Fimalgoritmo

 

 

Sei que cada personagem vai ter sua historia dentro de cada variável que irei criar assim como ja criei a variável Paulo com a historia dele dentro, porém meu problema está na hora do algoritmo responder ao usuário a historia do personagem escolhido pelo mesmo.

 

Do modo que fiz esse algoritmo podemos perceber que não importa o nome que o usuário digitar apenas a historia   de Paulo fica se repetindo.

então como fazer o algoritmo falar a historia do personagem de acordo com o que o usuário quer?

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

11 horas atrás, Midori disse:

Para mostrar de acordo como o personagem, seu código deve ter uma estrutura condicional (ou de escolha) onde você vai colocar o critério com base na entrada. Procure sobre os comandos SE-ENTÃO e ESCOLHA-CASO para aplicar no seu código.

 

Muito obrigado por responder
demorei para vim pois fiquei tentando resolver agora a tarde ainda fiquei meio confuso, 

refiz um pouco o código porém ainda não conseguir fazer a historia aparecer
 

algoritmo "Interação com usuario"


var
Paulo: Logico
Nome: caractere

inicio
      Escreval ("|----------------------------------------------------|")
      Escreval ("|          Conhecendo personagens biblicos!          |")
      Escreval ("|----------------------------------------------------|")
      Escreval ("                                                      ")
      Escreva  ("        Para começar me diga seu nome por favor: ")
      Leia (Nome)
      Escreval ("                                                      ")
      Escreval (" Ola, ", nome, " Paz do senhor :) ")
      Escreval ("                                                      ")
      Escreva  ("  Qual personagem biblico você gostaria de conhecer?  ")
      Leia (Nome)
      Se (Paulo) então
         Escreva (" Historia de Paulo ")
      SeNao
         Escreva(" Então qual personagem?")
      FimSe

      
fimalgoritmo

Também tentei ( Se Nome >= Paulo então ) porém não adiantou também

Link para o comentário
Compartilhar em outros sites

12 horas atrás, Diego Blois Teixeira disse:

Se Nome >= Paulo então

Isso não faz sentido já que Nome é do tipo caractere (ou string) e Paulo é do tipo lógico. São dois tipos distintos e o operador maior ou igual é usado para testes numéricos.

 

Nesse código você só precisa uma variável do tipo caractere que recebe a entrada do usuário. Aí no teste condicional poderá verificar o nome, .p,ex

 

var
Nome: Caractere

...

Se Nome = "Paulo" então
    Escreva (" Historia de Paulo ")
SeNao
    Escreva(" Então qual personagem?")
FimSe

 

Assim o teste será feito com a variável Nome e a constante (ou literal) Paulo. Perceba a diferença entre constante e variável.

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

  • Membro VIP
Em 11/07/2023 às 19:57, Diego Blois Teixeira disse:
      Escreva  ("        Para começar me diga seu nome por favor: ")
      Leia (Nome)
      Escreval ("                                                      ")
      Escreval (" Ola, ", nome, " Paz do senhor :) ")
      Escreval ("                                                      ")
      Escreva  ("  Qual personagem biblico você gostaria de conhecer?  ")
      Leia (Nome)
      Se (Paulo) então

 

Você está utilizando a mesma variável para duas coisas distintas. Poderia utilizar nome1 e nome2, por exemplo.. No caso lá vai perder o nome do usuário. Outro ponto é buscar seguir boa semântica para as nomenclaturas de variáveis. Exemplo:

 

var
   nome, personagem: caractere

 

Ou melhor ainda:

 

var
   nomeUsuario, nomePersonagem: caractere

 

Segue um exemplo de base de código:

 

algoritmo "Interação com usuário"
var
   nomeUsuario, nomePersonagem: caractere

inicio
   escrevaL("|----------------------------------------------------|")
   escrevaL("|          Conhecendo personagens bíblicos!          |")
   escrevaL("|----------------------------------------------------|")
   escrevaL("                                                      ")
   escreva ("        Para começar me diga seu nome, por favor: ")
   leia(nomeUsuario)
   escrevaL("                                                      ")
   escrevaL(" Olá!, ", nomeUsuario, ". Paz do senhor :)")
   escrevaL("                                                      ")
   Escreva ("  Qual personagem bíblico você gostaria de conhecer?  ")
   leia(nomePersonagem)

   se (nomePersonagem = "Paulo") então
      escrevaL(" Historia de Paulo ")
   senao
      se ((nomePersonagem = "João") OU (nomePersonagem = "JOÃO")  OU (nomePersonagem = "Joao")) então
         escrevaL(" Historia de João ")
      senao
         escrevaL(" Outro personagem")
      fimSe
   fimSe
fimAlgoritmo

 

Adendo: o VisualG não é case-sensitive para as comparações. Funciona como se o computador sempre comparasse as cadeias de caracteres todos em maiúsculas. Daí tanto faz, por exemplo, Paulo, paULo, paulo etc quando for digitado pelo usuário ou como quiser colocar dentro do se  (pois "tudo seria transformado" em PAULO na hora de comparar). Já os acentos são diferenciados. Teria que fazer uma combinação, como no exemplo acima.

 

Adendo do adendo: se ligue que o que precisou ser diferenciado foi apenas o "ã" e o "Ã" (incluir sem acento pois pode ocorrer, aí vai de você querer aceitar ou não apenas a escrita com acentos), o restante da cadeia não importa se está maiúsculo ou não. (Tipo: vai comparar sempre JOAO e depois JOÃO.)

 

Adendo do adendo do adendo: esse "problema" com as letras com acentos ocorre porque o "algoritmo nativo de tornar maiúsculo" não sabe ou não quer cuidar de acentos...  Veja:

 

image.png

(Na imagem acima, foi utilizada a função Maiusc() para escrever a palavra "João" em maiúsculo na tela. O resultado foi "JOãO". (Em detrimento do que pareceria ser mais lógico: JOÃO.)

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!