Ir ao conteúdo
  • Cadastre-se

Erro com algorítimo visulog


Posts recomendados

Por favor alguém pode me ajuda a escrever esse Algoritmo a sua sintaxe no VISUALG EM PORTUGOL?"

 

Uma empresa especializada em cursos preparatórios para concursos abriu as suas inscrições para o ano letivo. O curso tem como novidade beneficiar pessoas carentes com renda familiar abaixo de 2 salários mínimos, com desconto especial em suas mensalidades.

Elabore um algoritmo para ler:

O valor da mensalidade do curso;
O turno do curso escolhido (M para manhã, T para tarde e N para noite);
Categoria do aluno (B para baixa renda e N para renda normal);
 

O algoritmo deve calcular e exibir:

Valor total do curso durante 1 ano (valor da mensalidade do curso vezes 12);
O valor da mensalidade do aluno. Essa mensalidade poderá sofrer alterações, dependendo do turno escolhido e da categoria do aluno, conforme descrito abaixo:
- Caso o turno escolhido for M (manhã), não haverá nenhum desconto;

- Caso o turno escolhido for T (tarde), será atribuído um desconto de 5%;

- Caso o turno escolhido for N (noite), será atribuído um desconto de 10%;

 

ATENÇÃO: Para alunos classificados na categoria de renda familiar baixa, será acrescido um desconto adicional de 10%.

Fico muito grato.

 

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

  • Moderador

Prezado,

 

Seja bem-vindo ao Fórum do Clube do Hardware; obrigado por sua participação! :)

 

Quanto à sua dúvida, para podermos lhe ajudar, nós precisamos de mais alguns detalhes, tais como:

 

  • parte do código que já foi feito;
  • caso não tenha um código feito, qual o algoritmo que você pretende usar para resolver o problema;
  • você tem experiência com esta linguagem de programação?

 

Por favor, não leve para o lado pessoal, mas o nosso objetivo principal aqui é ajudar você a resolver o problema, se simplesmente postássemos um código já pronto, você nunca aprenderia de fato... ;)

 

Atenciosamente,

Equipe Clube do Hardware

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

to tentando esse aqui mais ta dando erro e ainda falta os 10% da baixa renda !?

 

mensCurso:inteiro
turno:caractere
categoria:caractere
inicio
escreval("Informe a mensalidade do curso.: ")
leia(mensCurso)
escreval("Informe o turno.: ")
leia(turno)
escreval("Informe a categoria.:")
leia (categoria)
caso "M": escreval('Valor total da mensalidade = ',mensCurso)
caso "T": escreval('Valor total da mensalidade = ',mensCurso + (mensCurso * 0.05))
caso "N":escreval('Valor total da mensalidade = ',mensCurso + (mensCurso * 0.10))
fimalgoritmo

 

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

Amigo, este exercício é bem simples, mas não posso te dar respostas. O que posso fazer por ti é ajudar a usar a sintaxe e dizer qual utilizar, em certos momentos.

 

Este código possui só 1 erro e falta de uso de técnicas para instruir o usuário.

Começando com os mais simples:

 

escreval("Informe a mensalidade do curso.: ")
leia(mensCurso)
escreval("Informe o turno.: ")
leia(turno)
escreval("Informe a categoria.:")
leia (categoria)

Este código acima não possui problema algum, porém, você não utilizou de artifícios para instruir o usuário a escrever os valores corretos. Veja abaixo como seria mais eficiente:

 

escreva("Informe a mensalidade do curso: R$")
leia(mensCurso)
escreva("Informe o turno [M/T/N]: ")
leia(turno)
escreva("Informe a categoria [B/N]:")
leia (categoria)

Você viu que utilizei pequenos símbolos que vão dizer para o usuário o que deve digitar. Você deve fazer o mesmo sempre!


 Ps: Outras coisinhas que alterei foram os comandos de saída, retirando a letra "L" para o valor que o usuário digitar aparecer na mesma linha.

 

Vamos às partes um pouco mais complexas:

 

Primeiramente, notei que utilizaste de uma estrutura "Escolha-Caso" de sem usar a sintaxe "escolha". Não acredito que isso seja errado, até porque o Portugol é só uma pseudo-linguagem. O problema é que talvez esta seja uma técnica menos proficiente, te deixando "para trás" de outros programadores.
 

Para te ajudar a dar um "Up", segue como é uma estrutura "Escolha-Caso" bem organizada e proficiente:

 

Escolha <variável escolhida>
  caso <valor possível da variável>
  	<bloco de intruções>
  caso <valor possível da variável>
  	<bloco de intruções>
  outrocaso 
  	<bloco de intruções>
FimEscolha

Os blocos são as instruções a serem executadas, caso o possível valor da variável escolhida seja verdadeiro.


"Outrocaso" é uma palavra reservada à sintaxe, para definirmos um bloco de instruções a serem executados, caso nenhum dos valores definidos sejam verdadeiros. É uma estrutura bem próxima do "Senao".

 

Olhando esta estrutura que escrevi, tente reproduzir o seu código de tal forma.

Uma coisa que você não nos deixou claro: qual a sua real dúvida. Até onde você permitiu (com seu post) foi te ajudar com sintaxe e outros errinhos, mas nada relacionado à lógica. Responda dizendo se realmente precisa de ajuda, senão dê como resolvido.

Até mais!

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

Boa noite @Joao_Lucaas

Também tive que resolver esta questão e no caso fui ensinada a usar o SE/FIMSE que funcionou como deveria e vou manter ele e enviar pro ambiente assim, mas eu não consegui fazer funcionar com o Escolha-Caso você teria algum exemplo? Ou algum outro lugar que eu possa ler/ver algum video a respeito? Gostaria de aprender mais coisas já que estou começando agora.

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

Bem, a estrutura Escolha-Caso funcionaria assim, com uma variável "Soma":

Soma <- 2+2

Escolha	Soma

	Caso 1,2,3
		EscrevaL ("A soma é : ",Soma,".")
	Caso 4
		EscrevaL ("A soma é 2².")
	outrocaso
		EscrevaL ("A soma é maior que quatro.")
        
FimEscolha

     1. Variável soma recebe valor 4 (2+2);

     2. A estrutura "Escolha" escolhe a variável "Soma";

     3. Possuímos cinco casos de valores para a variável soma;

         3.1. As primeiras possibilidades são 1, 2 e 3;

         3.2. Segunda possibilidade é o valor 4;

         3.3. A última possibilidade pode ser qualquer valor, que não os anteriores.

      4. Dependendo do valor da variável escolhida, o "caso" adequado executará uma instrução;

      5. O caso de valor 4 vai executar uma instrução, porque "Soma" é igual a 4.


Se quiseres ajuda no seu exercício idêntico, vale criar um tópico novo, falar em qual parte do seu código não consegues evoluir e esperar ajuda.

 

Um exemplo prático é esse, mas ainda podes estudar mais sobre esta estrutura através de cursos, no Youtube.

Um curso que eu recomendo é o "Curso em Vídeo", lecionado pelo Gustavo Guanabara. Este é gratuito, interativo e com certificado.

Para acessar a aula do Guanabara de "Escolha-Caso", clique aqui!

 

Para acessar todos os cursos de programação dele, clique aqui!

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

@Joao_Lucaas muito obrigada mesmo pelos links. Vou assistir o curso inteiro.

Assisti a aula de Escolha-Caso e fiquei pensando que talvez não seja possível responder esta questão pois temos duas váriaveis para trabalhar (Turno e Categoria) e seria por isso que não está funcionando. Ou eu realmente não sei montar isso. Vou tentar de novo.

Mais uma vez, muito obrigado João!

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


MEU ALGORÍTIMO: 

var
Valor,você:real
Turno,categoria:Caractere

inicio
// Seção de Comandos 
EscrevaL ("------------------")
EscrevaL ("------CURSOS------")
EscrevaL ("------------------")
Escreva  ("Valor do Curso: R$")
Leia (valor)
Escreva  ("Escolha Turno M/T/N:")
Leia (turno)
Escreval ("Categoria do aluno, (B) Para Baixa Renda e (N) Para Renda Normal:")
Leia (categoria)
você:= (valor*12)
Escreval ("valor total do curso sem descontos no periodo de um ano:",você)

se (turno=m) então
    escreval (valor)
Fimse
se(turno=t) então
   escreval (valor*0.05-valor)
fimse
se(turno=n) então
   escreval (valor*0.010-valor)
 fimse

fimalgoritmo

assa.png

Semnome.alg

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

Hygor Mathias

   O erro está no tipo de variável que é caractere então para dar certo a variável tem que

ficar entre aspas assim:

    se ( turno = " m " ) então

   se ( turno = " t " ) então

   se ( turno = " n " ) então

e a variável você não pode ter acento tem que ser assim : voce

e para escrever  o valor  escreval (valor*0.05-valor)  tem que ser assim :

        escreval (valor-valor*0.05)

e escreval (valor*0.010-valor) tem ficar assim :

        escreval (valor-valor*0.10)  como é 10 porcento é multiplicar por 0,10

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

24 minutos atrás, devair1010 disse:

Hygor Mathias

   O erro está no tipo de variável que é caractere então para dar certo a variável tem que

ficar entre aspas assim:

    se ( turno = " m " ) então

   se ( turno = " t " ) então

   se ( turno = " n " ) então

e a variável você não pode ter acento tem que ser assim : voce

e para escrever  o valor  escreval (valor*0.05-valor)  tem que ser assim :

        escreval (valor-valor*0.05)

e escreval (valor*0.010-valor) tem ficar assim :

        escreval (valor-valor*0.10)  como é 10 porcento é multiplicar por 0,10

OI, Muito obrigado :D , ja corrigi o que estava errado,  só pra saber tem como me ajudar a fazer aquele final dos 10% caso seja renda familiar baixa ? mais muito muito obrigado amigo :P 

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

Hygor Mathias
   Coloque mais uma variável  do tipo real para a porcentagem por exemplo p, e aí quando

verificar se é turno da manhã, verifique também a categoria, se for baixa renda some 10 á

variável p ficando ela com o valor 10 que é o desconto de baixa renda, e quando for verificar
se é turno da tarde, coloque o valor de p igual ao desconto da tarde que é de 5 e ve-
rifique a categoria se é baixa renda, se for some mais 10, passando assim para 15, e no
turno da noite a mesma coisa;   E não precisa colocar esse escrevaL dentro de cada se,
coloque apenas no final depois do terceiro fimse   coloque assim :
valor := valor - valor * ( p / 100 )
escreval("O Valor Da Mensalidade É = R$",valor) 
escreval("
valor total do curso com descontos no período de um ano é R$",valor * 12)

Link para o comentário
Compartilhar em outros sites


 

MEU ALGORÍTIMO: 

algoritmo "Sistema de matricula"
// Função :
// Autor : Hygor Mathias
// Data : 13/05/2016
// Seção de Declarações 
var
Valor,você:real
Turno,categoria:Caractere
inicio
// Seção de Comandos 
EscrevaL ("------------------")
EscrevaL ("------CURSOS------")
EscrevaL ("------------------")
Escreva  ("Valor do Curso: R$")
Leia (valor)
Escreva  ("Escolha Turno M/T/N:")
Leia (turno)
Escreval ("Categoria do aluno, (B) Para Baixa Renda e (N) Para Renda Normal:")
Leia (categoria)
você:= (valor*12)
Escreval ("valor total do curso sem descontos no periodo de um ano:",você)
se (turno="m") e (Categoria="b") então
   escreval ("valor da mensalidade do aluno:",valor-valor*0.10)
       fimse
se (turno="m") e (categoria="n") então
    escreval ("valor da mensalidade do aluno:",valor)
Fimse
se(turno="t") e (categoria="n") então
   escreval ("valor da mensalidade do aluno:",valor-valor*0.05)
fimse
se(turno="t")e (categoria="b") então
   escreval ("valor da mensalidade do aluno:",(valor-valor*0.05)-valor*0.10)
       fimse
se(turno="n")e (categoria="b") então
   escreval ("valor da mensalidade do aluno:",(valor-valor*0.10)-valor*0.10)
       fimse
se (turno="n")e (categoria="n") então
    escreval ("valor da mensalidade do aluno:",valor-valor*0.10)
       fimse
 
fimalgoritmo




POR FAVOR, se possível postem Não só o algorítimo para me ajudar a terminar mais também uma explicação kkk porque gostaria de entender.

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

Hygor
  para fazer essa restrição você pode colocar um repita, que vai ficar repetindo até
que seja digitado m ou t ou n, então depois do leia(valor) coloque assim :

repita
  limpatela     
  escreva("escolha o turno m = manha  t = tarde   n = noite")
  leia(turno)  
  se (turno <>"m") e (turno <>"t") e (turno <>"n") então
    escreva("turno não existente.      tecle enter")
    leia(a)
  fimse
ate (turno = "m") ou (turno = "t") ou (turno = "n")

E em seguida faça esse mesmo repita para verificar a categoria se é b ou n.
   E para saber quantos alunos são baixa renda ou renda normal você vai precisar de
mais duas variáveis, br para baixa renda e RN para renda normal, aí quando verificar
a categoria, se for b soma um à variável br e se for n some um à variável RN, então
o se ficaria assim :

se turno = "m" então
  p := 0  // porcentagem de desconto
  se categoria = "b" então
     p := 10  // porcentagem de desconto
    br := br+1  // baixa renda
  fimse
  se categoria = "n" então
    rn := rn+1  // renda normal
  fimse
fimse

colocando o se dessa forma acredito que fica mais fácil de entender;
Aí use esse se, dessa forma para verificar se o turno é tarde ou noite, sendo que a
variável p vai conter a porcentagem de desconto referente ao turno e mais 10 se for

baixa renda.
  E aí no final é só mostrar o resultado assim :

limpatela
valor := valor-valor * (p/100)
escreval("valor total do curso sem descontos no periodo de um ano:",voce)
escreval("valor total do curso com descontos no periodo de um ano:",valor * 12)
escreval("A quantidade de alunos de baixa renda é ",br," alunos")
escreval("A quantidade de alunos de renda normal é ",rn," alunos")
 

     E coloque tudo isso dentro de um repita, para fazer mais de um cadastro.

Link para o comentário
Compartilhar em outros sites

Hygor
   Coloque mais uma variável, por exemplo x do tipo caractere .
   E o repita seria colocado no começo do algoritmo, logo depois da palavra inicio,
com isso todo o código seria repetido, fazendo mais um cadastro, e no final do
algoritmo, uma linha antes do fimalgoritmo coloque assim :

escreva("Tecle  < S >  Para Sair e  <  Enter  > Para Outro Cadastro")
leia(x)
ate x = "s"
fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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