Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wagner sz

[Resolvido] Qual é meu erro no visualG?

Recommended Posts

Desenvolva um programa que leia o nome de uma pessoa, o dia e o mês de seu

nascimento e sem seguida apresente o nome da pessoa e o seu signo conforme a tabela

abaixo (Dica: use a fórmula MESDIA = MES * 100 + DIA para definir o signo a que a

pessoa pertence).

 

 

algoritmo "semnome"

funcao mesdia(m,d: inteiro): caractere
var
cal: inteiro
inicio
cal <-(m*100+d)
se((cal>=0121) e (cal <=0219)) entao
   retorne escreval("É do signo de Aquário ")
senao
    se((cal>=0220) e (cal <=0320)) entao
      retorne escreval("É do signo de Peixes ")
senao
   se((cal>=0320) e (cal <=0420)) entao
        retorne escreval("É do signo de Àries ")
  senao
    se((cal>=0421) e (cal <=0520)) entao
          retorne escreval("É do signo de Touro ")
    senao
        se((cal>=0521) e (cal <=0620)) entao
            retorne escreval("É do signo de Gêmeos ")
      senao
           se((cal>=0621) e (cal <=0721)) entao
              retorne escreval("É do signo de Câncer ")
        senao
            se((cal>=0722) e (cal <=0822)) entao
                retorne escreval("É do signo de Leão ")
            senao
                se((cal>=0823) e (cal <=0922)) entao
                    retorne escreval("É do signo de Virgem ")
                  senao
                      se((cal>=0923) e (cal <=1022)) entao
                          retorne escreval("É do signo de Libra ")
                        senao
                             se((cal>=1023) e (cal <=1121)) entao
                                   retorne escreval("É do signo de Escorpião")
                             senao
                                  se((cal>=1122) e (cal <=1221)) entao
                                       retorne escreval("É do signo de Sargitário ")
                                  senao
                                           retorne escreval("É do signo de Capricórnio ")
                                                               fimse
                                                          fimse
                                                      fimse
                                                fimse
                                           fimse
                                     fimse
                                fimse
                         fimse
                   fimse
            fimse
       fimse

fimfuncao

var
nome,n: caractere
mes,dia: inteiro
inicio
escreval("Digite o nome: ")
leia(nome)
escreval("Digite o mês de seu nascimento ")
leia(mes)
escreval("Digite o dia de seu nascimento ")
leia(dia)
n<-mesdia(mes,dia)
escreval(nome, n)

fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

sem você utilizar a tag

[./code] o código fica bem "porco" pq n fica identado nem nd..

o compilador deve ser bem ruim pq ele não aponta a linha onde o erro ocorre?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

sem você utilizar a tag

[./code] o código fica bem "porco" pq n fica identado nem nd..

o compilador deve ser bem ruim pq ele não aponta a linha onde o erro ocorre?

 

[]s

 

Ele diz que por exemplo "retorne escreval("É do signo de Gêmeos ")" tem que ser do tipo caracter, mas já é caracter, não?

Compartilhar este post


Link para o post
Compartilhar em outros sites

entaum uma coisa é você fazer assim:

se((cal>=0121) e (cal <=0219)) entao 
   retorne escreval("É do signo de Aquário ") 
senao 

 

outra totalmente diferente eh você fazer:

caracter msg;
se((cal>=0121) e (cal <=0219)) entao 
   msg <- ("É do signo de Aquário ") ;
senao 
.
.
retorne msg;

 

Entenda que eu não sei corretamente a sintaxe do visualg apenas sei o portugol puro feito no papel,

mais acho que deu pra você entender..

Compartilhar este post


Link para o post
Compartilhar em outros sites

entaum uma coisa é você fazer assim:

se((cal>=0121) e (cal <=0219)) entao 
   retorne escreval("É do signo de Aquário ") 
senao 

 

outra totalmente diferente eh você fazer:

caracter msg;
se((cal>=0121) e (cal <=0219)) entao 
   msg <- ("É do signo de Aquário ") ;
senao 
.
.
retorne msg;

 

Entenda que eu não sei corretamente a sintaxe do visualg apenas sei o portugol puro feito no papel,

mais acho que deu pra você entender..

 

Sakei cara, tenho que criar outra variável para a mensagem, já que dia e mes são inteiros nér. Valeu ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom na realidade eu qria te mostrar que você estava errando pq estava retornando um comando escreva..

você pode reduzir muitos suas linhas somente atribuindo a variavel 'msg' e no final da funcao retornar essa variavel uma vz soh ;D

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom na realidade eu qria te mostrar que você estava errando pq estava retornando um comando escreva..

você pode reduzir muitos suas linhas somente atribuindo a variavel 'msg' e no final da funcao retornar essa variavel uma vz soh ;D

 

[]s

 

Mas então eu colocaria "É do signo..." fora da função? no algoritmo principal ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como disse só mude os comandos para compilar:

 

funcao mesdia(m,d: inteiro): caractere 
var 
cal: inteiro 
msg : caractere
inicio 
cal <-(m*100+d) 
se((cal>=0121) e (cal <=0219)) entao 
   msg <- ("É do signo de Aquário ") 
senao 
    se((cal>=0220) e (cal <=0320)) entao 
      msg <- ("É do signo de Peixes ") 
senao 
   se((cal>=0320) e (cal <=0420)) entao 
        msg <- ("É do signo de Àries ") 
  senao 
    se((cal>=0421) e (cal <=0520)) entao 
          msg <- ("É do signo de Touro ") 
    senao 
        se((cal>=0521) e (cal <=0620)) entao 
            msg <- ("É do signo de Gêmeos ") 
      senao 
           se((cal>=0621) e (cal <=0721)) entao 
              msg <- ("É do signo de Câncer ") 
        senao 
            se((cal>=0722) e (cal <=0822)) entao 
                msg <- ("É do signo de Leão ") 
            senao 
                se((cal>=0823) e (cal <=0922)) entao 
                    msg <- ("É do signo de Virgem ") 
                  senao 
                      se((cal>=0923) e (cal <=1022)) entao 
                          msg <- ("É do signo de Libra ") 
                        senao 
                             se((cal>=1023) e (cal <=1121)) entao 
                                   msg <- ("É do signo de Escorpião") 
                             senao 
                                  se((cal>=1122) e (cal <=1221)) entao 
                                       msg <- ("É do signo de Sargitário ") 
                                  senao 
                                           msg <- ("É do signo de Capricórnio ") 
                                                               fimse 
                                                          fimse 
                                                      fimse 
                                                fimse 
                                           fimse 
                                     fimse 
                                fimse 
                         fimse 
                   fimse 
            fimse 
       fimse 
    retorne msg
fimfuncao 

 

levando em conta que eu não estou fazendo testes nenhum e estou supondo que seu algoritmo já está ok qnd ao cálculo e comparações feitas...

tente adaptar parecido ao seu programa.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como disse só mude os comandos para compilar:

 

funcao mesdia(m,d: inteiro): caractere 
var 
cal: inteiro 
msg : caractere
inicio 
cal <-(m*100+d) 
se((cal>=0121) e (cal <=0219)) entao 
   msg <- ("É do signo de Aquário ") 
senao 
    se((cal>=0220) e (cal <=0320)) entao 
      msg <- ("É do signo de Peixes ") 
senao 
   se((cal>=0320) e (cal <=0420)) entao 
        msg <- ("É do signo de Àries ") 
  senao 
    se((cal>=0421) e (cal <=0520)) entao 
          msg <- ("É do signo de Touro ") 
    senao 
        se((cal>=0521) e (cal <=0620)) entao 
            msg <- ("É do signo de Gêmeos ") 
      senao 
           se((cal>=0621) e (cal <=0721)) entao 
              msg <- ("É do signo de Câncer ") 
        senao 
            se((cal>=0722) e (cal <=0822)) entao 
                msg <- ("É do signo de Leão ") 
            senao 
                se((cal>=0823) e (cal <=0922)) entao 
                    msg <- ("É do signo de Virgem ") 
                  senao 
                      se((cal>=0923) e (cal <=1022)) entao 
                          msg <- ("É do signo de Libra ") 
                        senao 
                             se((cal>=1023) e (cal <=1121)) entao 
                                   msg <- ("É do signo de Escorpião") 
                             senao 
                                  se((cal>=1122) e (cal <=1221)) entao 
                                       msg <- ("É do signo de Sargitário ") 
                                  senao 
                                           msg <- ("É do signo de Capricórnio ") 
                                                               fimse 
                                                          fimse 
                                                      fimse 
                                                fimse 
                                           fimse 
                                     fimse 
                                fimse 
                         fimse 
                   fimse 
            fimse 
       fimse 
    retorne msg
fimfuncao 

 

levando em conta que eu não estou fazendo testes nenhum e estou supondo que seu algoritmo já está ok qnd ao cálculo e comparações feitas...

tente adaptar parecido ao seu programa.

 

[]s

 

Deu certo agora, na verdade também preciso desenvolver no papel mesmo em pseudocódigo, mas para ter certeza que ta certo nér... faço pelo visualg também xD' vlw's de novo

E cara se entende de registros também?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa entendo sim..

estou um pouco enferrujado pois voltei (espero eu) a ativa no fórum denovo..

iniciei um novo tópico se for uma dúvida diferente a discutida nesse, e vamo embora..

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.