Site icon Embarcados – Sua fonte de informações sobre Sistemas Embarcados

Algoritmos: Resolução dos Exercícios Parte 2

PSEUDOCODIGO bubble sort switch case

Oi pessoal. Hoje sigo com a resolução dos exercícios da série de Introdução a Algoritmos

Artigo Comando de Controle While

Exercícios IF

Algoritmo "exercicio_1"
// Uma empresa decidiu dar uma gratificação de Natal a seus funcionários, baseada no número de horas extras e no número de horas que 
// o funcionário faltou ao trabalho. O valor do prêmio é obtido pela consulta à tabela que se segue

Var
   nome : caractere
   salarioMinimo, salarioFinal, horasExtras, horasFaltas, premio, horas : real

Inicio
   escreval("Digite o valor do salário mínimo: ")
   leia(salarioMinimo)
   
   escreval("Digite o nome do funcionário: ")
   leia(nome)

   escreval("Digite o total de horas extras: ")
   leia(horasExtras)
   
   escreval("Digite o total de horas que o funcionário faltou: ")
   leia(horasFaltas)
   
   horas <- horasExtras - ((2/3) * horasFaltas)
   
   se (horas < 600 ) entao
       premio <- 100.00
   senao(horas <= 1200) entao
       premio <-  200.00
   senao(horas <= 1800) entao
       premio <- 300.00
   senao(horas <= 2400) entao
       premio <- 400.00
   senao
       premio <- 500.00
   fimse

   salarioFinal <- salarioMinimo + premio
   
   escreval("Horas Extras: ", horasExtras)
   escreval("Horas não trabalhadas: ", horasFaltas)
   escreval("Horas trabalhadas: ", horas)
   escreval("Valor do premio: ", premio)
   escreval("O salário final é: ", salarioFinal)

Fimalgoritmo
Algoritmo "exercicio_2"
// Faça um programa que receba a idade e o peso de uma pessoa. De acordo com a tabela a seguir, verifique e mostre em qual grupo de
// risco essa pessoa se encaixa.

Var
   idade, risco : inteiro
   peso : real

Inicio
   escreval("Digite o peso: ")
   leia(peso)
   
   escreval("Digite a idade: ")
   leia(idade)
   
   se (idade<20) entao

      se (peso<60) entao
          risco <- 9
      senao
         se (peso<=90) entao
            risco <- 8
         senao
            risco <- 7
         fimse
      fimse
      
   senao
        se (idade<=50) entao

            se (peso<60) entao
               risco <- 6
            senao
               se (peso<=90) entao
                   risco <- 5
               senao
                   risco <- 4
               fimse
            fimse
        
        senao
            se (peso<60) entao
               risco <- 3
            senao
               se (peso<=90) entao
                    risco <- 2
               senao
                    risco <- 1
               fimse
            fimse
   fimse
   
   escreval("Idade: ", idade)
   escreval("Peso: ", peso)
   escreval("Grupo de risco: ", risco)

Fimalgoritmo
Algoritmo "exercicio_3"
// Faça um programa que receba a idade de um nadador e mostre sua categoria, usando as regras a seguir. Para idade inferior a 5, 
// deverá mostrar mensagem.

Var
   idade : inteiro
   categoria : caractere

Inicio
   escreval("Digite a idade: ")
   leia(idade)
   
   se (idade<5) entao
       categoria <- "nenhuma"
       senao
           se (idade<=7) entao
           categoria <- "infantil"
           senao
               se (idade<=10) entao
               categoria <- "juvenil"
               senao
                   se (idade<=15) entao
                   categoria <- "adolescente"
                   senao
                       se (idade<=30) entao
                       categoria <- "adulto"
                       senao
                         se (idade>30)  entao
                         categoria <- "sênior"
                         fimse
                  fimse
              fimse
           fimse
        fimse
   fimse
   
   escreval("Idade: ", idade)
   escreval("Categoria: ", categoria)

Fimalgoritmo
Algoritmo "exercicio_4"
// Faça um programa que receba o salário bruto de um funcionário e, usando a tabela a seguir, calcule e mostre o valor a receber. 
// Sabe-se que este é composto pelo salário bruto acrescido de gratificação e descontado o imposto de 7% sobre o salário.

Var
   salarioBruto, salarioFinal, gratificacao, salarioComDesconto, desconto: real

Inicio
   escreval("Digite o salario bruto: ")
   leia(salarioBruto)

   se (salarioBruto <= 350) entao
      gratificacao <- (salarioBruto + 100)
   senao
        se (salarioBruto<=600) entao
           gratificacao <- (salarioBruto + 75)
        senao
             se (salarioBruto<=900) entao
               gratificacao <- (salarioBruto + 50)
             senao
               gratificacao <- (salarioBruto + 35)
             fimse
         fimse
   fimse

   desconto <- (salarioBruto * 0.7)
   salarioComDesconto <- (salarioBruto - desconto)
   salarioFinal <- (salarioComDesconto + gratificacao)
   
   escreval("Salario Bruto: ", salarioBruto)
   escreval("Desconto: ", desconto)
   escreval("Gratificação: ", gratificacao)
   escreval("Salario Final: ", salarioFinal)

Fimalgoritmo

Exercícios While

Algoritmo "exercicio_while_1"
// Uma empresa possui dez funcionários com as seguintes características: código, número de horas trabalhadas no mês, turno de trabalho // (M – matutino; V – vespertino; N – noturno), categoria (O – operário; ou G – gerente), valor da hora trabalhada. Sabendo-se que 
// essa empresa deseja informatizar sua folha de pagamento, faça um programa que: a) Leia as informações dos funcionários, exceto o 
// valor da hora trabalhada, não permitindo que sejam informações dos turnos e nem categorias inexistentes. Trabalhe sempre com a 
// digitação de letras maiúsculas; b) Calcule o valor da hora trabalhada, conforme a tabela 1. Adote o valor de R$450,00 para o 
// salário mínimo; c) Calcule o salário inicial dos funcionários com base no valor da hora trabalhada e no número de horas 
// trabalhadas; d) Calcule o valor do auxílio alimentação recebido pelo funcionário de acordo com seu salário inicial, conforme a 
// tabela 2; e) Mostre o código, número de horas trabalhadas, valor da hora trabalhada, salário inicial, auxílio alimentação e salário 
// final (salário inicial + auxílio alimentação).

Var
   codigo : inteiro
   turno, categoria : caractere
   valorHoraTrabalhada, horasTrabalhadas, salarioMinimo : real
   nome : caractere
   
Inicio

i = 1
enquanto(i<=10) faça

    escreva("Digite o nome do funcionário ")
    leia(nome)
    escreva("digite as horas trabalhadas ")
    leia(horasTrabalhadas)
    escreva("digite o valor das horas trabalhadas ")
    leia(valorHoraTrabalhada)
    escreva("digite o valor do salário mínimo ")
    leia(salarioMinimo)
    escreva("digite o turno de trabalho: M – matutino; V – vespertino; N – noturno  ")
    leia(turno)
    escreva("digite a categoria: O – operário; ou G – gerente ")
    leia(categoria)
    
    se (categoria == "G") entao
       se (turno == "N")) entao
            horaTrabalhada <- salarioMinimo * 0.18
       senao
           horaTrabalhada <- (salarioMinimo * 0.15)
       fimse
    senao (categoria == "O")
       se (turno == "N") entao
         horaTrabalhada <- (salarioMinimo * 0.13)
       senao
         horaTrabalhada <- (salarioMinimo * 0.10)
      fimse
    fimse  

    se(salarioMinimo <= 300) entao
       auxilio <- (salarioMinimo * 0.20)
    senao (salarioMinimo <= 600) entao
       auxilio <- (salarioMinimo * 0.15)
    senao (salarioMinimo > 600) entao
       auxilio <- (salarioMinimo * 0.5)
    fimse

    salarioFinal = salario + auxilio

    escreva("Nome: ", nome)
    escreva("Categoria: ", categoria)
    escreva("Horas Trabalhadas: ", horasTrabalhadas)
    escreva("Valor por hora: ", valorHoraTrabalhada)
    escreva("Valor do auxilio alimentacao: ", auxilio)
    escreva("Salário ", salarioFinal)

    i = i + 1
    
fimenquanto

Fimalgoritmo
Algoritmo "exercicio_2"
// Faça um programa que leia o número de termos, determine e mostre os
// valores de acordo com a série a seguir: SÉRIE = 2, 7, 3, 4, 21, 12,
// 8, 63, 48, 16, 189, 192, 32, 567, 768, …

Var
   I, NUM_TERMOS, NUM1, NUM2, NUM3 : inteiro
   
Inicio
   escreval("Digite o número de termos: ")
   leia(num_termos)

   num1 <- 2
   num2 <- 7
   num3 <- 3
   i <- 4

   enquanto(i<>num_termos)faça
      num1 <- (num1*2)
      escreval(num1)
      i <- (i+1)
      
      se (i<>num_termos) entao
         num2 <- (num2*3)
         escreval(num2)
         i <- (i + 1)      
         se (i<>num_termos) entao
           num3 <- (num3*4)
           escreval(num3)
           i <- (i + 1)
         fimse
      fimse      
   fimenquanto

Fimalgoritmo
Algoritmo "exericio_3"
// Faça um programa que receba o salário de um funcionário chamado Carlos. Sabe-se que outro funcionário, João, tem salário 
// equivalente a um terço do salário de Carlos. Carlos aplicará seu salário integralmente na caderneta de poupança, que rende 2% ao 
// mês, e João aplicará seu salário integralmente no fundo de renda fixa, que rende 5% ao mês. O programa deverá calcular e mostrar a 
// quantidade de meses necessários para que o valor pertencente a João iguale ou ultrapasse o valor pertencente a Carlos

Var
   salarioCarlos, salarioJoao : real
   meses : inteiro

Inicio
   escreval("Digite o valor do salário do Carlos: ")
   leia(salarioCarlos)
   
   salarioJoao <- (salarioCarlos/3)
   
   meses <- 0
   enquanto (salarioJoao < salarioCarlos) faça
         salarioCarlos <- salarioCarlos + (salarioCarlos * 2 / 100)
         salarioJoao < - salarioJoao + (salarioJoao * 5 / 100)
         meses <- meses + 1
   fimenquanto

   escreval(meses)  

Fimalgoritmo
Algoritmo "exercicio_4"
// Faça um programa que leia um conjunto não determinado de valores e
// mostre o valor lido, seu quadrado, seu cubo e sua raiz quadrada.
// Finalize a entrada de dados com um valor negativo ou zero.

Var
   num: inteiro
   quadrado, cubo, raizQuadrada : real
   
Inicio

     escreval("Digite o número de iterações que deseja: ")
     leia(num)
       
      enquanto(num>0)faça
         quadrado <- numero * numero
         escreval(quadrado)
         
         cubo <- exp (numero, 3)
         escreval(numero)
         
         escreval(RaizQ(numero)
         
         escreval("Digite o número de iterações que deseja ou zero para sair: ")
         leia(num)
         
      fimenquanto

Fimalgoritmo

Termino este artigo aqui! Se tiverem quaisquer dúvidas, por favor, deixem nos comentários. Até o próximo.