Eis o exercício:
35) Uma empresa de aluguel de carros precisa cobrar pelos seus serviços. O aluguel de um carro custa R$90 por dia para carro popular e R$150 por dia para carro de luxo. Além disso, o cliente paga por Km percorrido. Faça um programa que leia o tipo de carro alugado (popular ou luxo), quantos dias de aluguel e quantos Km foram percorridos. No final mostre o preço a ser pago de acordo com a tabela a seguir:
- Carros populares (aluguel de R$90 por dia)
- Até 100Km percorridos: R$0,20 por Km
- Acima de 100Km percorridos: R$0,10 por Km
- Carros de luxo (aluguel de R$150 por dia)
- Até 200Km percorridos: R$0,30 por Km
- Acima de 200Km percorridos: R$0,25 por Km
CÓDIGO:
algoritmo "alugueldecarros"
// Função : Exercício35
// Autor : THIAGO
// Data : 21/08/2020
// Seção de Declarações
var
km, kmp, carrop, totalp: real //variáveis carros populares kmp = km popular, carrop = carro popular, totalp = total carro popular
kml, carrol, totall: real // variáveis carros de luxo kml = km luxo, carrol = carro de luxo, totall = total carro de luxo
dia: inteiro
carro: caracter
inicio
// Seção de Comandos
escreva ("Tipo de carro - Popular[p]/Luxo[l]: ")
leia (carro)
escreva ("KM percorridos: ")
leia (km)
escreva ("Quantos dias alugado: ")
leia (dia)
carrop <- 90 * dia // carro popular VALOR DO ALUGUEL POR DIA
carrol <- 150 * dia // carro de luxo VALOR DO ALUGUEL POR DIA
// INICIO CALCULO CARRO POPULAR
se (km <=100) e (carro = "p") entao
kmp <- 0.20 *km
totalp <- kmp + carrop
escreval ("Valor total KM: ", kmp, " Reais. Total dias de aluguel: ", carrop, " Reais")
escreval ("Valor final: ", totalp)
senao
se (km >100) entao
kmp <-0.10*km
totalp<- kmp + carrop
escreval ("Valor total KM: ", kmp, " Reais. Total dias de aluguel: ", carrop, " Reais")
escreval ("Valor final: ", totalp:5:2)
// FIM CALCULO DOS CARROS POPULARES
//INICIO CALCULO CARROS DE LUXO
senao
se (km <=200) e (carro ="l") entao
kml <- 0.30 * km
totall <- kml + carrol
escreval ("Valor total KM: ", kml, " Reais. Total dias de aluguel: ", carrol, " Reais")
escreval ("Valor final: ", totall:5:2)
senao
se (km > 200) entao
kml <- 0.25 * km
totall <- kml + carrol
escreval ("Valor total KM: ", kml, " Reais. Total dias de aluguel: ", carrol, " Reais")
escreval ("Valor final: ", totall:5:2)
//FIM CALCULO CARROS DE LUXO
fimse
fimse
fimse
fimse
fimalgoritmo
Minha dúvida está nas áreas assinaladas em negrito. Na parte km > 100 e km <= 200, o programa não está distinguindo se o carro é de luxo ou não. Se eu digitar um valor de 150 km quando escolho carros de luxo, ele automaticamente, retoma o valor da operação dos preços dos carros populares ao invés de serem os de luxo, sendo que deveria retomar o valor dos carros de luxo. Ele também desconsidera o valor dos dias alugados para carros de luxo que são de 150 reais por dia e retoma os populares que é 90 por dia. Tentei tirar a parte dos carros de luxo abaixo de duas "fimse", ele mostra o resultado correto, mas também, mostra o resultado dos carros populares (e não é pra mostrar). Gostaria, humildemente, que alguém me ajudasse a solucionar este problema.
Exemplo: