Ir para conteúdo
PedroCaampos

Duvida com algoritmo portugol

Recommended Posts

Alguém sabe como resolver resolver esse exercício?  Sou novo nessa área da programação e estou quebrando a minha cabeça para fazer. Se vocês pelo menos me der um base irei agradecer.

 

Miguel é responsável pelas contas de uma grande empresa da área de mineração em Minas Gerais. Ele deseja pagar a seus funcionários um bom salário, mas se preocupa com as épocas de crise. Dessa forma, ele paga um salário fixo, condizente com a função do funcionário e paga a eles um valor adicional a título de participação de lucros. Ele deseja que você crie um programa que calcule quanto um funcionário específico receberá em um mês, tendo em vista a sua função e o quanto a empresa lucrou percentualmente em relação à expectativa. Os salários seguem a tabela:

Nível Salário

Ausente R$1600,00

Técnico R$2800,00

Analista R$3500,00

Especialista R$4000,00

 

ENUNCIADO

Ainda, o salário é acrescido do percentual que excedeu as expectativas de lucro da empresa. Lembrando que se o percentual for inferior a 100% o empregado não pode receber menos do que o salário. Enunciado Agora, que Miguel já consegue saber o quanto um funcionário recebe em um mês, ele deseja saber o quanto ele deverá pagar para todos os seus funcionários. Agora, para cada funcionário ele pagará uma bonificação (percentual) sobre seu salário relacionada a seu desempenho individual, além da participação dos lucros. Ele então deseja que você crie um programa que, recebendo as informações suficientes para o cálculo do pagamento de cada funcionário, informe o valor de pagamento total.

 

Questões

 

1. Identifique a entrada, saída e processamento para este problema.

2. Descreva textualmente os passos do algoritmo.

3. Identifique quais serão as variáveis e constantes utilizadas no algoritmo, com seus tipos respectivos.

4. Descreva as funções matemáticas que geram as saídas do algoritmo.

5. Para o algoritmo desenvolvido por você (não programado ainda!), identifique os laços e desvios de fluxo.

6. Escreva um código em Portugol que represente o algoritmo que resolve o problema de Miguel.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

  • Conteúdo Similar

    • Por guiilhermej
      Galera, to com um impasse em umas questões passadas na faculdade, eu realmente gosto de resolver meus exercícios, pois só assim sei que irei aprender, mas acontece que to meio perdido nessas questões, alguem me da um help por favor.

       
      6. Escreva um algoritmo que peça um número n ao usuário, e que gere um novo n de acordo
      com a seguinte regra:
      • se n é par, n = n / 2
      • se n é impar, n = 3 * n + 1
      • imprime n
      • O programa deve parar quando x tiver o valor igual a 1. Por exemplo, para n = 13, a saída
      será:
      40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1

      7. Fazer um algoritmo que leia um número que servira para controlar os primeiros números
      ímpares. Deverá ser impressa a soma desses números. Suponha que o número informado será
      maior que zero, caso não seja, informar o erro.
      Informe um número: 5
      1 3 5 7 9
      A soma dos 5 valores impares é: 25

      8. Fazer um algoritmo que leia os limites inferior e superior de um intervalo e o número cujos
      múltiplos se deseja que sejam impressos no intervalo aberto. Suponha que os dados digitados
      são para um intervalo crescente. Exemplo:
      Valor inicial: 5
      Valor final: 15
      Divisor: 3
      6 9 12 15
       
      9. Fazer um algoritmo que leia a quantidade de números que se deseja digitar para que
      possa ser impresso o maior e o menor número digitado. Não suponha que todos os
      números lidos serão positivos. Exemplo:
      Quantos números deseja digitar?
      5
      Informe um numero:3
      Informe um numero:-2
      Informe um numero:5
      Informe um numero:6
      Informe um numero:19
      O maior numero informado foi: 19
      O menor numero informado foi: -2
    • Por Felipe Cunha
      Boa tarde galera, sei que não é muito comum problemas com essa linguagem porem estou no começo e preciso muito da ajuda de vocês, preciso desenvolver um programa que estou desde ontem tentando desenvolver e não consigo achar uma solução,a linguagem é portugol estou começando no mundo de programação mais estou com muita dificuldade em solucionar esse algorítimo:
       
      Solicite para o usuário nome e sexo de pessoas, ao final da entrada desses dados pergunte para o usuário se o mesmo deseja digitar mais pessoas, se sim solicite novamente os dados, se não, encerre o programa e exiba a quantidade de pessoas que foram digitadas, o total de pessoas do sexo masculino, o total do sexo feminino, o total de sexo inválido e a porcentagem de cada um.
       
      Alguém poderia me ajudar por favor
    • Por Maroto
      Olá, pessoas.
       
      Criei um programa com fins de estudo no visualg, cuja finalidade é preencher uma matriz com valores aleatórios e, em seguida, conferir e armazenar numa segunda atriz se o valores gerados são pares ou ímpares. Todavia o programa fica dando um erro ("Access violation at address xxxx in module" visualg30.exe). Não sei se eu que estou errando na lógica, se meu pc está quebrado ou se é um bug do visualg. 

      Abaixo deixo meu código para quem puder me ajudar. Obrigado :)
       
      Var // Seção de Declarações das variáveis matriz1: vetor [0..2, 0..2] de inteiro matriz2: vetor [0..2, 0..2] de caractere // Procedimento que gera valores inteiros aleatorios para preencher a matriz1. procedimento preencheMatriz var // Variaveis contadoras i1, i2: inteiro inicio para i1 de 0 ate 1 passo 1 faca para i2 de 0 ate 2 passo 1 faca aleatorio on leia (matriz1[i1,i2]) limpatela aleatorio off fimpara fimpara // Imprimindo a matriz na tela para i1 de 0 ate 1 passo 1 faca para i2 de 0 ate 2 passo 1 faca escreva (matriz1[i1,i2]) fimpara escreval ("") fimpara fimprocedimento // Procedimento que verifica se os valores das posições da matriz1 são pares // ou ímpares. procedimento verificaParImpar var i1, i2: inteiro inicio para i1 de 0 ate 1 passo 1 faca para i2 de 0 ate 2 passo 1 faca se (matriz1[i1, i2] MOD 2=0) entao matriz2[i1,i2] <- "par" escreva(matriz2[i1,i2], " ") senao matriz2[i1,i2] <- "ímpar" escreva(matriz2[i1,i2], " ") fimse fimpara escreval(" ") fimpara fimprocedimento Inicio // Seção de Comandos, procedimento, funções, operadores, etc... preencheMatriz verificaParImpar Fimalgoritmo  
    • Por Ddragon 345
      Uma escola deseja saber algumas informações estatísticas referente a uma sala de aula com 20 alunos. Para isso, fora elaborado um questionário contendo as seguintes perguntas:
      - Nome do aluno
      - Data de nascimento (DD/MM/AAAA)
      - Sexo (F/M/O)
      - Signo
      - Altura
      Apresentar no final as seguintes informações:
      a) Percentual de alunos do sexo F
      b) média de idade dos alunos
      c) nome e peso da pessoa mais pesada do sexo M
      d) quantidade de pessoas do signo de aries abaixo de 1,80m de altura
      e) nome e altura da pessoa mais baixa
      f) média aritmética de peso de todos os alunos entrevistados
      g) percentual de pessoas que nasceram em ano BISSEXTO
      h) quantidade de pessoas que nasceram em dias PRIMO
      J) quantidade de alunos por signo
       
      Alguém me ajuda a explicar sobre parte que esta grifado  
       
      Segue a imagem abaixo da onde eu parei 
       
       
      código
        var
      NA,DDMMAAAA,S,Sig:CARACTERE inicio
      Escreval("Digite o nome aluno")
      leia(NA)
      Escreval("Digite data de nascimento")
      leia(DDMMAAAA)
      Repita
         Escreval("Digite o seu sexo")
         leia(S)
         SE (S<>"F") e (S<>"M") e (S<>"O") entao
            Escreval("sexo invalido")
         fimse
      ATE (S="F") ou (S="M") ou (S="0")
      Repita
         Escreval("Digite o seu signo")
         leia(Sig)
         SE (Sig<>"aries") e (Sig<>"touro") e (Sig<>"Gemeos") e (Sig<>"Cancer") e (Sig<>"Leao") e (Sig<>"Virgem") e (Sig<>"Libra") e (Sig<>"Escorpiao") e (Sig<>"Sagitario") e (Sig<>"Capricornio") e (Sig<>"Aquario") e (Sig<>"Peixes") entao
            Escreval("signo invalido")
         fimse
      ATE   (Sig="aries") ou (Sig="touro") ou (Sig="Gemeos") ou (Sig="Cancer") ou (Sig="Leao") ou (Sig="Virgem") ou (Sig="Libra") ou (Sig="Escorpiao") ou (Sig="Sagitario") ou (Sig="Capricornio") ou (Sig="Aquario") ou (Sig="Peixes")
            Escreval("Digite a sua altura")
            leia(alt)
            Escreval("Digite o seu peso")
            leia(p)             fimalgoritmo  
       
       
       
       
       
       


    • Por Carol Cavalcanti
      Programa que recebe do usuário um valor de saque e as cédulas disponíveis no caixa eletrônico, retornando se o saque é possível com as cédulas disponíveis e quantas cédulas serão necessárias no total e especifica quantas cédulas de cada valor.
      o que fiz até agora:
      //Função inicial     funcao inicio()     {         //Declaração de variáveis         logico notaDeDois, notaDeCinco, notaDeDez, notaDeVinte, notaDeCinquenta, notaDeCem //Variáveis que guardam a informação                                                                            //de verdadeiro ou falso para a                                                                            //existência cada cédula no caixa                                                                            //eletrônico         inteiro quantidadeNotaDeDois, quantidadeNotaDeCinco, quantidadeNotaDeDez, quantidadeNotaDeVinte //Variáveis que guardam as         inteiro quantidadeNotaDeCinquenta, quantidadeNotaDeCem //quantidades mínimas necessárias de cada uma das cédulas para o                                                     //saque do valor informado pelo usuário         inteiro quantidadeCedulas = 0 //Variável para uso do programa para a soma da quantidade mínima de cédulas pro saque         inteiro valorDeSaque //Valor a ser sacado, informado pelo usuário         inteiro controleDeResposta //Variável que guardao valor (1 ou 2) da resposta do usuário para a existência da cédula no                               //caixa eletrônico para posterior conversão em uma variável lógica         //Apresentação do programa         escreva ("-- Caixa eletrônico --")         escreva ("\nPrograma que informa as cédulas mínimas necessárias para um saque.\n")         //Solicitações ao usuário         escreva ("\n- Informe o valor do saque: ")         leia (valorDeSaque)         escreva ("- No caixa, há cédulas de R$ 2? (1- sim ou 2- não)\n")         leia (controleDeResposta)         se (controleDeResposta == 1){ //Conversão do controle de resposta (1 ou 2) em valor logico             notaDeDois = verdadeiro             } senao {                 notaDeDois = falso                 }         escreva ("- No caixa, há cédulas de R$ 5? (1- sim ou 2- não)\n")         leia (controleDeResposta)         se (controleDeResposta == 1){ //Conversão do controle de resposta (1 ou 2) em valor logico             notaDeCinco = verdadeiro             } senao {                 notaDeCinco = falso                 }         escreva ("- No caixa, há cédulas de R$ 10? (1- sim ou 2- não)\n")         leia (controleDeResposta)         se (controleDeResposta == 1){ //Conversão do controle de resposta (1 ou 2) em valor logico             notaDeDez = verdadeiro             } senao {                 notaDeDez = falso                 }                 escreva ("- No caixa, há cédulas de R$ 20? (1- sim ou 2- não)\n")         leia (controleDeResposta)         se (controleDeResposta == 1){ //Conversão do controle de resposta (1 ou 2) em valor logico             notaDeVinte = verdadeiro             } senao {                 notaDeVinte = falso                 }             escreva ("- No caixa, há cédulas de R$ 50? (1- sim ou 2- não)\n")         leia (controleDeResposta)         se (controleDeResposta == 1){ //Conversão do controle de resposta (1 ou 2) em valor logico             notaDeCinquenta = verdadeiro             } senao {                 notaDeCinquenta = falso                 }             escreva ("- No caixa, há cédulas de R$ 100? (1- sim ou 2- não)\n")         leia (controleDeResposta)         se (controleDeResposta == 1){ //Conversão do controle de resposta (1 ou 2) em valor logico             notaDeCem = verdadeiro             } senao {                 notaDeCem = falso                 }         //Realização das aferições         //Cédulas de R$100         se (notaDeCem == verdadeiro){ //Verifica se há cédulas de R$100 no caixa             se (valorDeSaque/100>=1){ //Verifica se o valor de saque é superior a R$100                 quantidadeNotaDeCem = valorDeSaque/100 //Cálculo da quantidade de cédulas de R$100                 quantidadeCedulas = quantidadeCedulas + quantidadeNotaDeCem //Soma a quantidade de cédulas de R$100 a quantidade                                                                 //mínima necessária de de cédulas para o saque                 valorDeSaque = valorDeSaque - (quantidadeNotaDeCem*100) //Subtrai o valor que já será sacado só em notas de                                                              //R$100 do valor total de saque                 } senao { //Caso haja cédulas de R$100 e o valor do saque seja inferior a R$100                     quantidadeNotaDeCem = 0                     }                              } senao { //Caso não haja cédulas de R$100                 quantidadeNotaDeCem = 0                 }         //Cédulas de R$50         se (notaDeCinquenta == verdadeiro){ //Verifica se há cédulas de R$50 no caixa             se (valorDeSaque/50>=1){ //Verifica se o valor de saque é superior a R$50                 quantidadeNotaDeCinquenta = valorDeSaque/50 //Cálculo da quantidade de cédulas de R$50                 quantidadeCedulas = quantidadeCedulas + quantidadeNotaDeCinquenta //Soma a quantidade de cédulas de R$50 a                                                                      //quantidade mínima necessária de de cédula                                                                      //para o saque                 valorDeSaque = valorDeSaque - (quantidadeNotaDeCinquenta*50) //Subtrai o valor que já será sacado só em notas de                                                                  //R$50 do valor total de saque                 } senao {                     quantidadeNotaDeCinquenta = 0 //Caso haja cédulas de R$50 e o valor do saque seja inferior a R$50                     }             } senao {                 quantidadeNotaDeCinquenta = 0 //Caso não haja cédulas de R$100                 }         //Cédulas de R$20         se (notaDeVinte == verdadeiro){ //Verifica se há cédulas de R$20 no caixa             se (valorDeSaque/20>=1){ //Verifica se o valor de saque é superior a R$20                 quantidadeNotaDeVinte = valorDeSaque/20 //Cálculo da quantidade de cédulas de R$20                 quantidadeCedulas = quantidadeCedulas + quantidadeNotaDeVinte //Soma a quantidade de cédulas de R$20 a                                                                   //quantidade mínima necessária de de cédula para                                                                   //o saque                 valorDeSaque = valorDeSaque - (quantidadeNotaDeVinte*20) //Subtrai o valor que já será sacado só em notas de R$20                                                               //do valor total de saque                 } senao {                     quantidadeNotaDeVinte = 0 //Caso haja cédulas de R$20 e o valor do saque seja inferior a R$20                     }             } senao {                 quantidadeNotaDeVinte = 0 //Caso não haja cédulas de R$20                 }                 //Cédulas de R$10         se (notaDeDez == verdadeiro){ //Verifica se há cédulas de R$10 no caixa             se (valorDeSaque/10>=1){ //Verifica se o valor de saque é superior a R$10                 quantidadeNotaDeDez = valorDeSaque/10 //Cálculo da quantidade de cédulas de R$10                 quantidadeCedulas = quantidadeCedulas + quantidadeNotaDeDez //Soma a quantidade de cédulas de R$10 a quantidade                                                                 //mínima necessária de de cédula para o saque                 valorDeSaque = valorDeSaque - (quantidadeNotaDeDez*10) //Subtrai o valor que já será sacado só em notas de R$10                                                             //do valor total de saque                 } senao {                     quantidadeNotaDeDez = 0 //Caso haja cédulas de R$10 e o valor do saque seja inferior a R$10                     }             } senao {                 quantidadeNotaDeDez = 0 //Caso não haja cédulas de R$10                 }                                     //Cédulas de R$5         se (notaDeCinco == verdadeiro){ //Verifica se há cédulas de R$5 no caixa             se (valorDeSaque/5>=1){  //Verifica se o valor de saque é superior a R$5                 quantidadeNotaDeCinco = valorDeSaque/5 //Cálculo da quantidade de cédulas de R$5                 quantidadeCedulas = quantidadeCedulas + quantidadeNotaDeCinco //Soma a quantidade de cédulas de R$5 a quantidade                                                                   //mínima necessária de de cédula para o saque                 valorDeSaque = valorDeSaque - (quantidadeNotaDeCinco*5) //Subtrai o valor que já será sacado só em notas de R$5                                                              //do valor total de saque                 } senao {                     quantidadeNotaDeCinco = 0 //Caso haja cédulas de R$5 e o valor do saque seja inferior a R$5                     }             } senao {                 quantidadeNotaDeCinco = 0 //Caso não haja cédulas de R$5                 }             //Cédulas de R$2         se (notaDeDois == verdadeiro){ //Verifica se há cédulas de R$2 no caixa             se (valorDeSaque/2>=1){ //Verifica se o valor de saque é superior a R$2                 quantidadeNotaDeDois = valorDeSaque/2 //Cálculo da quantidade de cédulas de R$2                 quantidadeCedulas = quantidadeCedulas + quantidadeNotaDeDois  //Soma a quantidade de cédulas de R$2 a quantidade                                                                   //mínima necessária de de cédula para o saque                 valorDeSaque = valorDeSaque - (quantidadeNotaDeDois*2) //Subtrai o valor que já será sacado só em notas de R$2                                                              //do valor total de saque                 } senao {                     quantidadeNotaDeDois = 0 //Caso haja cédulas de R$2 e o valor do saque seja inferior a R$2                     }             } senao {                 quantidadeNotaDeDois = 0 //Caso não haja cédulas de R$2                 }             //Exposição dos resultados         se (valorDeSaque == 0){ //Verifica se todo o valor de saque pôde ser disposto nas cédulas disponíveis             //Expõe a quantidade mínima de cédulas para a realização do saque             escreva ("\n> A quantidade mínima de cédulas para a realização desse saque é ", quantidadeCedulas, ". Sendo elas:\n")             //Exposição da quantidade mínima de cédulas de cada valor necessárias para a realização de saque             se (quantidadeNotaDeCem > 0){ //Verifica se é necessária alguma cédula de R$100                 escreva (quantidadeNotaDeCem, " notas de R$100\n") //Expõe a quantidade de cédula de R$100, caso haja                 }             se (quantidadeNotaDeCinquenta > 0){ //Verifica se é necessária alguma cédula de R$50                 escreva (quantidadeNotaDeCinquenta, " notas de R$50\n") //Expõe a quantidade de cédula de R$50, caso haja                 }             se (quantidadeNotaDeVinte > 0){ //Verifica se é necessária alguma cédula de R$20                 escreva (quantidadeNotaDeVinte, " notas de R$20\n") //Expõe a quantidade de cédula de R$20, caso haja                 }                 se (quantidadeNotaDeDez > 0){ //Verifica se é necessária alguma cédula de R$10                 escreva (quantidadeNotaDeDez, " notas de R$10\n") //Expõe a quantidade de cédula de R$10, caso haja                 }                 se (quantidadeNotaDeCinco > 0){ //Verifica se é necessária alguma cédula de R$5                 escreva (quantidadeNotaDeCinco, " notas de R$5\n") //Expõe a quantidade de cédula de R$5, caso haja                 }                             se (quantidadeNotaDeDois > 0){ //Verifica se é necessária alguma cédula de R$2                 escreva (quantidadeNotaDeDois, " notas de R$2\n") //Expõe a quantidade de cédula de R$2, caso haja                 }                                  } senao { //Caso, mesmo usando todos os valores de cédulas disponíveis, ainda reste um valor de saque que cuja                     //realização não seja possível  pelo caixa eletrônico, emite uma mensagem de aviso.                 escreva ("\n> O saque não poderá ser realizado.")                 }                       } }  
       
      o problema é no caso de um valor de saque como 13 que pode ser possível mas o programa diz que não é
×

Informação importante

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