Ir ao conteúdo

Posts recomendados

Postado

pessoal preciso de uma ajuda, sou novo em programação

falta uma condição de parada caso o usuario digite algum numero que nao seja 2 ou 1 e o programa se encerre ou peça ao usuario um novo numero

seria depois do "game over"

lembrando que é do jogo dois ou um

 

Algoritmo "doisouum"
Var
   c, e, w: inteiro
Inicio
             Escreval ("cris informe sua jogada")
             Leia(c)
             Se (c>2) entao
             Escreval ("Game Over")
             senao
             Fimse
             Escreval ("erick informe sua jogada")
             Leia(e)
             Se (e>2) entao
             Escreval ("Game Over")
             senao
             Fimse
             Escreval ("wagner informe sua jogada")
             Leia(w)
             Se (w>2) entao
             Escreval ("Game Over")
             senao
             Fimse
             se (c<>w) e (c<>e) entao
             escreval("c")
             senao
             se (e<>w)e(e<>c) entao
             escreval("e")
             senao
             se (w<>e)e(w<>a) entao
             escreval("w")
             senao
             escreval("x")
             fimse
             fimse
             fimse
fimalgoritmo

 

  • Curtir 1
  • Amei 1
Postado

@wagner.c    uma condição poderia ser assim :

algoritmo "doisouum"
var
  cr,er,wa : inteiro
inicio
  repita
    escreva("cris informe sua jogada ---: ")
    leia(cr)
  ate ( cr > 0 ) e ( cr < 3 )
  repita
    escreva("erick informe sua jogada --: ")
    leia(er)
  ate ( er > 0 ) e ( er < 3 )
  repita
    escreva("wagner informe sua jogada -: ")
    leia(wa)
  ate ( wa > 0 ) e ( wa < 3 )
  escreval
  se ( cr > 2 ) ou (er > 2) ou ( wa > 2 ) entao
    escreval ("Game Over")
  senao
    se ( cr <> wa ) e ( cr <> er ) entao
      escreval("----->> cr")
    senao
      se ( er <> wa ) e ( er <> cr ) entao
        escreval("----->> er")
      senao
        se ( wa <> er ) e ( wa <> cr) entao
          escreval
          escreval("----->> wa")
        senao
          escreval("=======>> x")
        fimse
      fimse
    fimse
  fimse
  escreval
  escreval
fimalgoritmo

 

  • Curtir 1
  • Membro VIP
Postado

@wagner.c, seja bem vindo ao Fórum do Clube do Hardware.

 

4 horas atrás, wagner.c disse:

falta uma condição de parada caso o usuario digite algum numero que nao seja 2 ou 1 e o programa se encerre ou peça ao usuario um novo numero

 

A definição do que precisa ser feito depende do que está no enunciado. No caso, é preciso verificar de fato se quer que encerre o programa OU quer que o usuário informe outro número (ou a depender uma misto de ambos)... são duas características distintas. :D

 

Segue algumas dicas gerais:

  1. Sempre mantenha seu código indentado. No VisualG ao pressionar Ctrl+G é já dá uma reorganizada; Ex.:
    Algoritmo "doisouum"
    Var
       c, e, w: inteiro
    Inicio
       Escreval ("cris informe sua jogada")
       Leia(c)
       Se (c>2) entao
          Escreval ("Game Over")
       senao
       Fimse
       Escreval ("erick informe sua jogada")
       Leia(e)
       Se (e>2) entao
          Escreval ("Game Over")
       senao
       Fimse
       Escreval ("wagner informe sua jogada")
       Leia(w)
       Se (w>2) entao
          Escreval ("Game Over")
       senao
       Fimse
       se (c<>w) e (c<>e) entao
          escreval("c")
       senao
          se (e<>w)e(e<>c) entao
             escreval("e")
          senao
             se (w<>e)e(w<>a) entao
                escreval("w")
             senao
                escreval("x")
             fimse
          fimse
       fimse
    fimalgoritmo

    Veja a diferença. Visualmente já fica mais fácil para entender as estruturas;

     

  2. Use nomenclaturas de variáveis mais sugestivas. Ex.:
    algoritmo "Dois ou Um"
    var
       jogadaCris, jogadaErick, jogadaWagner :inteiro
    Perceba como faz todo sentido biológico.

     
  3. Num mesmo sentido, vale também dar uns resultados mais específicos. Exemplo:
       se (jogadaCris <> jogadaWagner) e (jogadaCris <> jogadaErick ) entao
          escreval("----->> Cris venceu")
       senao
          se (jogadaErick <> jogadaWagner) e (jogadaErick <> jogadaCris) entao
             escreval("----->> Erik venceu")
          senao
             se (jogadaWagner <> jogadaErick) e (jogadaWagner <> jogadaCris) entao
                escreval("----->> Wagner venceu")
             senao
                escreval("=======>> Não acho que quem ganhar ou quem perder, nem quem ganhar nem perder, vai ganhar ou perder. Vai todo mundo perder")
             fimSe
          fimSe
       fimSe

     
  4. É preferível relacionar as condições com o contexto, exemplo:
    Em vez de:
       escreval("Cris, informe sua jogada")
       leia(jogadaCris)
       se (jogadaCris > 2) entao
          escreval ("Game Over")
       fimSe
    Poderia ser algo como:
       escreval("Cris, informe sua jogada")
       leia(jogadaCris)
       se (jogadaCris <> 2) e (jogadaCris <> 1) entao
          escreval ("Game Over")
       fimSe
    Perceba que a ideia é sempre ir se aproximando de uma representação do contexto real... se o jogo é "dois ou um", não pode ser "diferente de 2 e diferente de 1". ;)
     
  5. Tá, se objetivo seria finalizar, poderia utilizar o comando fimAlgoritmo. Funciona!!! mas eu acho muito estranho e não recomendo. Seria algo assim:
    Spoiler
    
       escreval("Cris, informe sua jogada")
       leia(jogadaCris)
       se (jogadaCris <> 2) e (jogadaCris <> 1) entao
          escreval ("Game Over")
          fimAlgoritmo
       fimSe
    
       escreval("Erick, informe sua jogada")
       leia(jogadaErick)
       se (jogadaErick <> 2) e (jogadaErick <> 1) entao
          escreval ("Game Over")
          fimAlgoritmo
       fimSe
    
       escreval("jogadaWagner, informe sua jogada")
       leia(jogadaWagner)
       se (jogadaWagner <> 2) e (jogadaWagner <> 1) entao
          escreval ("Game Over")
          fimAlgoritmo
       fimSe

    Vai funcionar, mas não recomendo. É tão estranho mesmo que até se pressionar Ctrl+G, o código não fica indentado corretamente.


     

  6. Se for colocar para fica repetindo:
       repita
          escreva("Cris, informe sua jogada ---: ")
          leia(jogadaCris)
       ate (jogadaCris = 2) ou (jogadaCris = 1)
    
       repita
          escreva("Erick, informe sua jogada --: ")
          leia(jogadaErick)
       ate (jogadaErick = 2) ou (jogadaErick = 1)
    
       repita
          escreva("Wagner, informe sua jogada -: ")
          leia(jogadaWagner)
       ate (jogadaWagner = 2) ou (jogadaWagner = 1)
    Perceba que as sentenças ficam "negadas", ou seja: passou a ser igual e ficou OU, em vez de E.

 

 

Adendo:

@devair1010, como já colocou a verificação dos valores antes, essa seleção sempre vai ter resultado falso (será uma Contradição).

 

3 horas atrás, devair1010 disse:

  se ( cr > 2 ) ou (er > 2) ou ( wa > 2 ) entao
    escreval ("Game Over")
  senao

 

 

  • Curtir 1

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!