Ir ao conteúdo
  • Cadastre-se

Portugol Exercício Portugol - Comandos SE SENAO, ETC


Posts recomendados

Bom dia!

 

Primeiramente gostaria de me apresentar.

Meu nome é Everton e recentemente iniciei um curso técnico de análise e desenvolvimento de sistemas...

Estamos no segundo mês de curso. Estou gostando bastante. Apesar de parecer muito simples. Estou tendo dificuldades nos comandos SE, SENAO e SENAO SE.

Não consegui resolver um exercício que me foi passado... e sinceramente fico bastante frustrado... kkkk.

Se alguém conseguir me dar uma dica, ficaria agradecido. 

A questão é o seguinte. Só pode ser feita com comandos de controle.

 

Questão: Preciso criar um algoritmo que tenha 3 senhas no sistema (Constantes) e um email também.

O usuário precisa primeiro inserir o E-mail. Se o e-mail estiver no sistema... ele irá pedir a senha do usuário em seguida se não... O programa finaliza nessa parte, nem chega a pedir os outros dados. (Meu problema é nessa parte).

Se a senha do usuário não for nenhuma das 3 do sistema ele informará, que senha é inválida e o programa finaliza. Caso for aparecerá mensagem, "Sistema Ativado".

 

Abaixo o código que fiz... Se alguém conseguir me dar uma luz, ficaria agradecido. Estamos usando o Portugol Studio.

Estou tendo problema na parte que pede o E-mail e o usuário insere o mesmo incorreto. Era pro problema finalizar e mesmo assim pede a senha...

Programa:

{
    funcao inicio()
    {

    const cadeia SENHA1 = "300390"
    const cadeia SENHA2 = "300490"
    const cadeia SENHA3 = "300590"
    const cadeia EMAIL = "[email protected]"
    cadeia password
    cadeia email_usuario

     escreva ("Informe o seu email: ","\n")
     leia (email_usuario)

     se (email_usuario != EMAIL)
     {
         escreva ("E-mail inválido!")
     }

     se (email_usuario == EMAIL)
     {
     escreva ("Informe a sua senha: ")
     }
     leia (password)
     
      se ((password == SENHA1) ou (password == SENHA2) ou (password == SENHA3))
          {
              escreva ("Sistema ativado!","\n")
          }
senao
{
    escreva ("Senha incorreta!")
}
    }
}

 

Muito obrigado galera!

 

:) 

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

2 horas atrás, Everton Looz disse:

se (email_usuario != EMAIL)
     {
         escreva ("E-mail inválido!")
     }

Se esse primeiro SE der falso ....

2 horas atrás, Everton Looz disse:

se (email_usuario == EMAIL)
     {
     escreva ("Informe a sua senha: ")
     }

esse se vai dar sempre verdadeiro, concorda ? 
o que você tem que fazer é quebrar mais

se (email usuario != EMAIL ) { 

     escreva ("E-mail envalido") 

 } senao { /*  não precisa testar se é igual, só pode ser igual, concorda ?  ... */  

    escreva ("Informe a sua senha: ")
    leia (password)

    se ((password == SENHA1) ou (password == SENHA2) ou (password == SENHA3))
          {
              escreva ("Sistema ativado!","\n")
          }
    senao  { 
        escreva ("Senha incorreta!")

    }

}

 

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

@Everton Looz     o programa está finalizando por que você precisa colocar um laço de repetição para que se a senha ou  ou o email estiver errado ele repita o código novamente e peça para digitar o email e a senha de novo,  então você pode colocar o comando enquanto assim :

inteiro flag=1
enquanto(flag==1)
{
    flag = 0
    escreva ("Informe o seu email: ","\n")
    leia (email_usuario)

    se (email_usuario != EMAIL)
    {
        escreva ("E-mail inválido!\n")
        flag=1
    }
    senao
        {
            escreva ("Informe a sua senha: ")
            leia (password)
            se ((password == SENHA1) ou (password == SENHA2) ou (password == SENHA3))
            {
                escreva ("Sistema ativado!","\n")
            }
            senao
                {
                    escreva ("Senha incorreta!\n")
                    flag=1
            }
    }
}

 

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

33 minutos atrás, Boko Moko disse:

Se esse primeiro SE der falso ....

esse se vai dar sempre verdadeiro, concorda ? 
o que você tem que fazer é quebrar mais


se (email usuario != EMAIL ) { 

     escreva ("E-mail envalido") 

 } senao { /*  não precisa testar se é igual, só pode ser igual, concorda ?  ... */  

    escreva ("Informe a sua senha: ")
    leia (password)

    se ((password == SENHA1) ou (password == SENHA2) ou (password == SENHA3))
          {
              escreva ("Sistema ativado!","\n")
          }
    senao  { 
        escreva ("Senha incorreta!")

    }

}

 

Entendi!

 

O meu leia (password) estava dando um problema devido a chave colocada erroneamente também... kkk. Dizia que o programa não conseguia compilar o password na parte da função do

" se ((password == SENHA1) ou (password == SENHA2) ou (password == SENHA3))
          {
              escreva ("Sistema ativado!","\n")"" Não funcionava.

 

Agora consegui! Muito obrigado, pela ajuda. Meu código ficou assim... Está funcionando !

 

 

programa
{
    funcao inicio()
    {

    const cadeia SENHA1 = "300390"
    const cadeia SENHA2 = "300490"
    const cadeia SENHA3 = "300590"
    const cadeia EMAIL = "[email protected]"
    cadeia password
    cadeia email_usuario

     escreva ("Informe o seu email: ","\n")
     leia (email_usuario)

     se (email_usuario != EMAIL)
     {
         escreva ("E-mail inválido!")
     }

     senao { 
     escreva ("Informe a sua senha: ")
     leia (password)
     
      se ((password == SENHA1) ou (password == SENHA2) ou (password == SENHA3))
          {
              escreva ("Sistema ativado!","\n")
          }
senao
{
    escreva ("Senha incorreta!")
}
    }
    }
}

adicionado 1 minuto depois
13 minutos atrás, devair1010 disse:

@Everton Looz     o programa está finalizando por que você precisa colocar um laço de repetição para que se a senha ou  ou o email estiver errado ele repita o código novamente e peça para digitar o email e a senha de novo,  então você pode colocar o comando enquanto assim :


inteiro flag=1
enquanto(flag==1)
{
    flag = 0
    escreva ("Informe o seu email: ","\n")
    leia (email_usuario)

    se (email_usuario != EMAIL)
    {
        escreva ("E-mail inválido!\n")
        flag=1
    }
    senao
        {
            escreva ("Informe a sua senha: ")
            leia (password)
            se ((password == SENHA1) ou (password == SENHA2) ou (password == SENHA3))
            {
                escreva ("Sistema ativado!","\n")
            }
            senao
                {
                    escreva ("Senha incorreta!\n")
                    flag=1
            }
    }
}

 

Interessante!

Não entramos ainda nesse assunto de laço. Desculpe a ignorância. É que começamos recém a fazer isso.

No entanto, achei extremamente interessante esse comando!

Vou testar aqui!

Muito obrigado pela dica! :) 

  • Amei 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!