InfoAjuda

Projeto 3 - Codigo (Algoritmo)

Projeto 3 - Codigo (Algoritmo)
« Online: Outubro 19, 2017, 11:18:25 pm »
Segue base para projeto 3
(lembrando que é apenas um projeto de exemplo)

ps: caso encontrem algum erro favor reportar!!!


Citar
algoritmo "Bolsa Estudos"

var
  mensalidade : real
  nivel_curso : caractere  //nivel do curso (I para educação Infantil, B para educação Básica ou M para ensino Médio)
  tipovinculo : caractere     //(F para funcionário ou D para dependente)
  total_curso  : real
  bonus : real         //50% para funcionário e 30% para dependente.

inicio

   escreval("valor da mensalidade ? ")
   leia(mensalidade)

   escreval("")
   escreval("nivel do curso?  ")
   escreval("I para educação Infantil, B para educação Básica, M para ensino Médio   ")
   escreval("")
   leia(nivel_curso)

   escreval("Qual o tipo de vinculo? ")
   escreval("F para funcionário, D para dependente ")
   escreval(" ")
   leia(tipovinculo)

         se (tipovinculo = "f") ou (tipovinculo="d") entao  // verifica se é funcionario ou dependente

             se (tipovinculo = "f")  entao  // se funcionario executa este bloco
                escreval( "Funcionario desconto de 50%: " )
                     se (nivel_curso = "i") ou (nivel_curso = "m") entao
                          bonus <- (mensalidade * 0.55)
                     senao
                         bonus <- (mensalidade * 0.50)
                     fimse

             senao                          // se dependente executa este bloco
                escreval( "Dependente desconto de 30%: "  )
                     se (nivel_curso = "i") ou (nivel_curso = "m") entao
                          bonus <- (mensalidade * 0.35)
                     senao
                         bonus <- (mensalidade * 0.30)
                     fimse
             fimse

             total_curso <- mensalidade  * 12
             escreval( "O valor total do curso é : " , total_curso)
             escreval( "O valor mensal da bonificação é : " , bonus)


         senao     // se nao é funcionario nem dependente alerta que nao tem vinculo e encerra o algoritmo
            escreval( "nao tem vinculo com a empresa: " )
         fimse
fimalgoritmo
« Última modificação: Novembro 15, 2017, 03:13:43 pm por DiegoB. »

Re:Projeto 3 - Codigo
« Resposta #1 Online: Outubro 20, 2017, 11:53:29 pm »
Eu fiz um pouco diferente. Agradeço caso avisem se encontrarem algum erro.

Citar
// Seção de Declarações
var
   mensalidade: real
   nivel_curso, tipo_aluno: literal
inicio
// Seção de Comandos
escreva ("Digite o valor da mensalidade: ")
leia (mensalidade)
escreva ("Digite o nível do curso: ")
leia (nivel_curso)
escreva ("Digite o tipo de aluno: ")
leia (tipo_aluno)
escreva ("O valor total do curso é de: ", mensalidade * 12)
se (tipo_aluno = "F") entao
   se (nivel_curso = "I") ou (nivel_curso = "M") entao
      escreva ("O valor da bonificação é de: ", mensalidade * 0.5)
   senao
      se (nivel_curso = "B") entao
         escreva ("O valor da bonificação é de: ", mensalidade * 0.55)
      fimse
   fimse
fimse
se (tipo_aluno = "D") entao
   se (nivel_curso = "I") ou (nivel_curso = "M") entao
      escreva ("O valor da bonificação é de: ", mensalidade * 0.3)
   senao
      se (nivel_curso = "B") entao
         escreva ("O valor da bonificação é de: ", mensalidade * 0.35)
      fimse
   fimse
fimse
fimalgoritmo

Re:Projeto 3 - Codigo
« Resposta #2 Online: Outubro 21, 2017, 04:34:00 pm »
eu fiz diferente, na parte de verificar se os dados estavam corretos:

Código: [Selecionar]
//verificando os dados de entrada e exibindo os dados processados
   escreval
   se (nivel_curso<>"i") e (nivel_curso<>"b") e (nivel_curso<>"m") entao //verificando se o nivel do curso está correto
      escreval ("O nivel do curso está incorreto")
      escreval ("Iniciar a aplicação novamente")
   senao
      se (tipo_aluno<>"f") e (tipo_aluno<>"d") entao  //verificando se o tipo do aluno está correto
         escreval ("O tipo do aluno está incorreto")
         escreval ("Iniciar a aplicação novamente")
      senao
         escreval ("O valor total do curso é: R$", valor_total) //exibindo o valor total do curso e o valor da bonificação
         escreval ("O valor da bonificação mensal é: R$", valor_bonus)
      fimse
   fimse
//fim da exibição dos dados

testei e funcionou de boa.

Re:Projeto 3 - Código Comentado
« Resposta #3 Online: Outubro 23, 2017, 10:46:12 pm »
Galera, estou postando o código comentado, para ajudar mais um pouco no entendimento, além do que já foi disponibilizado aqui, em vídeo e algoritmo por outros colegas.
Não se atenha ao tamanho, justamente porque ele está comentado.
Espero que ajude.

Código: [Selecionar]
algoritmo "Bonus"
// Seção de Declarações
var
//VARIÁVEIS NECESSÁRIAS PARA O PROBLEMA.
//DÁ PARA USAR 3, MAS FICA MAIS FÁCIL ENTENDER COM ESSAS AQUI:
mensalidade, bonus: real
nivel, tipo: caractere

inicio
// Seção de Comandos
escreval("................................................")
escreva ("VALOR DA MENSALIDADE: ")
leia(mensalidade)
//O VALOR DA MENSALIDADE DEVE SER POSITIVO, CASO CONTRÁRIO, NÃO TEMOS COMO CALCULAR OS DESCONTOS
//VAMOS VERIFICAR ISSO. SE FOR ZERO OU NEGATIVO, O SISTEMA SERÁ ENCERRADO.
se (mensalidade <= 0) entao
   escreval(" VOCÊ ESCREVEU UM VALOR MENOR OU IGUAL A ZERO!")
   escreval(" O PROGRAMA SERÁ ENCERRADO!")
   fimalgoritmo
fimse

//AGORA VAMOS LER OS DADOS
escreval("................................................")
escreval("EDUCAÇÃO I-NFANTIL")
escreval("EDUCAÇÃO B-ÁSICA")
escreval("ENSINO M-ÉDIO")
escreva ("QUAL O NÍVEL CURSADO ? (I, B, ou M): ")
leia(nivel)
escreval("................................................")

escreval("F-UNCIONÁRIO")
escreval("D-EPENDENTE")
escreva ("QUAL O TIPO DE ALUNO? F ou D: ")
leia(tipo)
escreval("................................................")

//---TRATAMENTO DE ERROS---
//VERIFICANDO SE ALGUMA LETRA DIGITADA É DIFERENTE DA SOLICITADA
//SE FOR DIFERENTE, ENCERRA O SISTEMA

//PRIMEIRO VERIFICA TIPO DE ALUNO, DEPOIS O NÍVEL DO CURSO. A ORDEM NÃO IMPORTA
//VEJA QUE AQUI, FOI USADO O OPERADOR LÓGIO "E" e NÃO O "OU".
//OBVIAMENTE, SÓ PODEREMOS DIGITAR DUAS LETRAS PARA O TIPO DE ALUNO (F 'e' D), E TRÊS PARA O NÍVEL DO CURSO (I, B 'e' M)
se (tipo <> "F") e (tipo <> "D") entao
   escreval("VOCÊ ESCOLHEU UMA RELAÇÃO INEXISTENTE.")
   escreval("REINICIE O SISTEMA")
   fimalgoritmo
fimse
se (nivel <> "I") e (nivel <> "B") e (nivel <> "M") entao
   escreval("VOCÊ ESCOLHEU UM NÍVEL INEXISTENTE.")
   escreval("REINICIE O SISTEMA")
   fimalgoritmo
fimse

//HORA DE CALCULAR A BONIFICAÇÃO
//VAMOS VERIFICAR PRIMEIRO SE A LETRA DIGITADA É DE FUNCIONÁRIO
se (tipo = "F") entao
   // SE FOR FUNCIONÁRIO, HÁ UM ADICIONAL DE 5% CASO SEJA INFANTIL OU MÉDIO
   se (nivel ="I") ou (nivel ="M") entao
      //AQUI, BONUS RECEBE A MENSALIDADE E MULTIPLICA POR 0.45, QUE É A MESMA COISA QUE DESCONTAR 55%
      // 50% POR SER FUNCIONÁRIO E 5% POR SER INFANTIL OU MÉDIO
      bonus := mensalidade * (0.45) // (1 - 55%)
   senao
      //SE NÃO É INFANTIL OU MÉDIO, É BÁSICO, ETERÁ DESCONTO DE APENAS 50%
      bonus := mensalidade * (0.50) // (1 - 50%)
   fimse

senao
//SE JÁ VERIFICOU QUE  NÃO É "F", ENTÃO "D" É A ÚNICA OPÇÃO, DISPENSANDO USAR UM "se (tipo="D")"
   //AGORA VERIFICA SE É INFANTIL OU MÉDIO NOVAMENTE, POIS OS DOIS CASOS DÃO UM DESCONTO A MAIS DE 5%
   se (nivel ="I") ou (nivel ="M") entao
      bonus := mensalidade * (0.65) //( 1 - 35%)
   senao
      //SE NÃO FOR OS CASOS ACIMA, OBRIGATORIAMENTE É BÁSICO, SENDO APLICADO UM DESCONTO DE APENAS 30%
      //POR QUE OBRIGATORIAMENTE BÁSICO??? PORQUE É A ÚNICA OPÇÃO QUE RESTOU VERIFICAR.
      bonus := mensalidade * (0.70) // (1 - 30%)
   fimse
fimse

//HORA DE EXIBIR OS DADOS SOLICITADOS
limpatela //LIMPA OS DADOS QUE JÁ ESTÃO ESCRITOS NA TELA
escreval("................................................")
escreval("VALOR TOTAL DO CURSO:......R$ ", (mensalidade*12):8:2)
//ESSES PARÂMETROS 8 E 2 DEFINEM A QUANTIDADE DE DÍGITOS DO NÚMERO E QUANTAS CASAS DECIMAIS ELE DEVE TER
escreval("VALOR DO DESCONTO MENSAL:..R$ ", (mensalidade - bonus):8:2)
escreval("................................................")
fimalgoritmo


Projeto 3 - Codigo - Uso do Caso
« Resposta #4 Online: Outubro 25, 2017, 11:39:02 am »
Como tinha falado antes existem diversas maneiras de se fazer esse projeto, Abaixo deixo mais um exemplo do código do projeto 3, dessa vez com o uso do caso.

Citar
algoritmo "Diegobarbosa"

var
  mensalidade : real
  nivel_curso : caractere  //nivel do curso (I para educação Infantil, B para educação Básica ou M para ensino Médio)
  tipovinculo : caractere     //(F para funcionário ou D para dependente)
  bonus : real         //50% para funcionário e 30% para dependente.

inicio

   escreval("Qual o valor da mensalidade em R$ ? ")
   leia(mensalidade)
   escreval("")
   escreval("Qual o nivel do curso?  ")
   escreval("I para educação Infantil  ")
   escreval("B para educação Básica  ")
   escreval("M para ensino Médio  ")
   escreval("")
   leia(nivel_curso)

   escreval(" ")
   escreval("Qual o tipo de vinculo? ")
   escreval("F para funcionário ")
   escreval("D para dependente ")
   escreval(" ")
   leia(tipovinculo)

         escolha tipovinculo
           caso "F"
               escreval("Vinculo Funcionario 50% Desconto")
                    se (nivel_curso = "i") ou (nivel_curso = "m") entao
                          bonus <- (mensalidade * 0.55)
                          escreval("Bonus de  5% Desconto")
                     senao
                         bonus <- (mensalidade * 0.50)
                     fimse
               
           caso "D"
               escreval("Vinculo Dependente 30% Desconto")
                    se (nivel_curso = "i") ou (nivel_curso = "m") entao
                          bonus <- (mensalidade * 0.35)
                          escreval("Bonus de  5% Desconto")
                     senao
                         bonus <- (mensalidade * 0.30)
                     fimse

          outrocaso
               limpatela()
                  escreval("Vinculo Nao Encontrado, Finalizando o programa.")



         fimescolha

          escreval( "O valor mensal do curso é : " , mensalidade)
          escreval( "O valor total do curso é : " , mensalidade * 12)
          escreval( "O valor mensal da bonificação é : " , bonus)
          escreval( "O valor total da bonificação é : " , bonus * 12)
         


fimalgoritmo