Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Salve, amigos,
iniciei a pouco tempo a faculdade de Analise e Desenvolvimento de Sistemas, e em dos meus trabalhos para entregar, estou preso na última questão dele. Se alguém puder me dá uma luz em como resolvê-lo eu agradeço.
Sei fazer a declaração de variavéis e suas contas, porém o meu problema é em como estruturar as informações nas condicionais "se" e "senao" em portugol. Tenho visualG aqui, segue:
Uma fruteira está vendendo frutas com a seguinte tabela de preços:
Até 5 Kg
Morango R$ 2,50 por Kg
Maçã R$ 1,80 por Kg
Acima de 5 Kg
Morango R$ 2,20 por Kg
Maçã R$ 1,50 por Kg
Se o cliente comprar mais de 8 Kg em frutas ou o valor total da compra ultrapassar R$ 25,00, receberá ainda um desconto de 10% sobre este total. Escreva um algoritmo para ler a quantidade (em Kg) de morangos e a quantidade (em Kg) de maças adquiridas e escreva o valor a ser pago pelo cliente.
Para vocês verem onde parei, mas acho que ficou grande, precisava diminuir isso de alguma forma, segue:
var
Qkgmor, Qkgmaca, Ttlkg, Vttlmor, Vttlmaca, Vfinal, Vfdesc, Desc10:real
mor250, mor220, maca180, maca150: real
inicio
// Seção de Comandos
escreva ("Digite a quantidade de morangos, e maçãs: ")
leia(Qkgmor, Qkgmaca)
Ttlkg<- Qkgmor+Qkgmor
mor250<- 250
maca180<- 180
mor220<- 220
maca150<- 150
se(Ttlkg <= 5) e (Vfinal < 25) entao
Vttlmor<- mor250*Qkgmor
Vttlmaca<- maca180*Qkgmaca
Vfinal<- Vttlmor+Vttlmaca
escreval ("O valor total dos morangos é: ", Vttlmor)
escreval ("O valor total das maçãs é: ", Vttlmaca)
se(Ttlkg > 7) entao
Desc10<- Vfinal*10/100
Vfdesc<- Vfinal-Desc10
escreva ("Você ganhou um desconto por levar mais de 8kg, pagará: ", Vfdesc)
senao
escreval ("Totalizando: ", vfinal)
fimse
senao
Vttlmor<- mor220*Qkgmor
Vttlmaca<- maca150*Qkgmaca
Vfinal<- Vttlmor+Vttlmaca
escreval ("O valor total dos morangos é: ", Vttlmor)
escreval ("O valor total das maçãs é: ", Vttlmaca)
escreval ("Totalizando: ", Vfinal)
Desc10<- Vfinal*10/100
Vfdesc<- Vfinal-Desc10
escreva ("Você ganhou um desconto de 10%, pagará: ", Vfdesc)
fimse
fimalgoritmo
se alguém puder ajudar a diminuir isso, agradeço.
So de olhar eu vi alguns erros.
Por exemplo, você não pode pedir a quantidade de morangos e maças num mesmo inputbox:
escreva ("Digite a quantidade de morangos, e maçãs: ") ' Não faça assim.
escreva ("Digite a quantidade de morangos:")
leia(Qtd_morangos)
Escreva ("Digite a quantidade de maçãs:")
leia(Qtd_macas)
*Não tenha muita preguiça de digitar nomes de variáveis grandes no momento, fica mais fácil debugar o código e de se entender;
Ex:
>
///Ao invés disso///
Qkgmor, Qkgmaca, Ttlkg, Vttlmor, Vttlmaca, Vfinal, Vfdesc, Desc10:real
mor250, mor220, maca180, maca150: real
//Faça isso///
Qtd_morango,Qtd_maca,Total_kg,Valor_total_morango,Valor_total_maca,valor_final,Valor_de_desconto,Preco_morango,Preco_maca,Valor_desconto
Não precisa criar uma variável para cada valor da fruta, basta uma só para cada fruta, pois você vai atribuir o valor já no IF;
1° Passo:
Insira a quantidade de cada fruta;
2° Passo:
Faça a condição IF(SE) para verificar qual será o valor cobrado de cada fruta;
3° Passo:
No mesmo IF anterior já faça as contas de qual será o valor total da compra e a quantidade de kg de frutas;
4°Passo:
Use o IF para verificar se o cliente terá o desconto na compra ou não;e
5° Passo:
Imprima o valor da compra,o valor do desconto e a quantidade em kg comprada.
Seguindo esses passos e escrevendo o seu código você terá sucesso.
Abçs,
LCS
>
So de olhar eu vi alguns erros.
Por exemplo, você não pode pedir a quantidade de morangos e maças num mesmo inputbox:
escreva ("Digite a quantidade de morangos, e maçãs: ") ' Não faça assim.
escreva ("Digite a quantidade de morangos:")
leia(Qtd_morangos)
Escreva ("Digite a quantidade de maçãs:")
leia(Qtd_macas)
*Não tenha muita preguiça de digitar nomes de variáveis grandes no momento, fica mais fácil debugar o código e de se entender;
Ex:
>
///Ao invés disso///
Qkgmor, Qkgmaca, Ttlkg, Vttlmor, Vttlmaca, Vfinal, Vfdesc, Desc10:real
mor250, mor220, maca180, maca150: real
//Faça isso///
Qtd_morango,Qtd_maca,Total_kg,Valor_total_morango,Valor_total_maca,valor_final,Valor_de_desconto,Preco_morango,Preco_maca,Valor_desconto
Não precisa criar uma variável para cada valor da fruta, basta uma só para cada fruta, pois você vai atribuir o valor já no IF;
1° Passo:
Insira a quantidade de cada fruta;
2° Passo:
Faça a condição IF(SE) para verificar qual será o valor cobrado de cada fruta;
3° Passo:
No mesmo IF anterior já faça as contas de qual será o valor total da compra e a quantidade de kg de frutas;
4°Passo:
Use o IF para verificar se o cliente terá o desconto na compra ou não;e
5° Passo:
Imprima o valor da compra,o valor do desconto e a quantidade em kg comprada.
Seguindo esses passos e escrevendo o seu código você terá sucesso.
Abçs,
LCS
Vlw vou tentar aqui, obrigado a todos
>
>
So de olhar eu vi alguns erros.
Por exemplo, você não pode pedir a quantidade de morangos e maças num mesmo inputbox:
escreva ("Digite a quantidade de morangos, e maçãs: ") ' Não faça assim.
escreva ("Digite a quantidade de morangos:")
leia(Qtd_morangos)
Escreva ("Digite a quantidade de maçãs:")
leia(Qtd_macas)
*Não tenha muita preguiça de digitar nomes de variáveis grandes no momento, fica mais fácil debugar o código e de se entender;
Ex:
>
///Ao invés disso///
Qkgmor, Qkgmaca, Ttlkg, Vttlmor, Vttlmaca, Vfinal, Vfdesc, Desc10:real
mor250, mor220, maca180, maca150: real
//Faça isso///
Qtd_morango,Qtd_maca,Total_kg,Valor_total_morango,Valor_total_maca,valor_final,Valor_de_desconto,Preco_morango,Preco_maca,Valor_desconto
Não precisa criar uma variável para cada valor da fruta, basta uma só para cada fruta, pois você vai atribuir o valor já no IF;
1° Passo:
Insira a quantidade de cada fruta;
2° Passo:
Faça a condição IF(SE) para verificar qual será o valor cobrado de cada fruta;
3° Passo:
No mesmo IF anterior já faça as contas de qual será o valor total da compra e a quantidade de kg de frutas;
4°Passo:
Use o IF para verificar se o cliente terá o desconto na compra ou não;e
5° Passo:
Imprima o valor da compra,o valor do desconto e a quantidade em kg comprada.
Seguindo esses passos e escrevendo o seu código você terá sucesso.
Abçs,
LCS
Vlw vou tentar aqui, obrigado a todos
LCS ou quem puder ajudar, fiz os passos menos o passo 4º
tipo você disse:
4°Passo:
Use o IF para verificar se o cliente terá o desconto na compra ou não;e
Seria um novo IF ou mesmo IF anterior?
vlw ajudou muito já, e testei com o mesmo IF anterior e ele dá desconto mesmo não passando de 8 kg ou 25 reais.
ficou assim, sem o desconto:
var
x, y, morango, maca, kilo, total, total_desconto, total_final:real
inicio
// Seção de Comandos
escreva ("Digite o peso da compra do morango: ")
leia(x)
escreva ("Digite o peso da compra da maçã: ")
leia(y)
kilo<- x+y
se(kilo < 5) entao
morango<- 250*x
maca<- 180*y
total<- morango+maca
escreval ("A compra adquirida foi de morango: ", x, " maçã: ", y)
escreva ("Totalizando num valor de R$: ", total)
senao(kilo >= 5 < 8) entao
morango<- 220*x
maca<- 150*y
total<- morango+maca
escreval ("A compra adquirida foi de morango: ", x, " maçã: ", y)
escreva ("Totalizando num valor de R$: ", total)
fimse
fimalgoritmo
Sim você deve fazer um novo if para verificar se o cliente tem ou não o desconto.
Coloque os comandos escreval somente após o segundo if.
A logica vai ficar assim
1° IF:
Vai verificar o valor que será cobrado pelas frutas;e
2° IF: Vai verificar se o cliente tem direito ao desconto.
Resumindo são dois if´s um após o outro.
Obs: Você não precisa colocar então após o senão.
abçs,
LCS
>
Sim você deve fazer um novo if para verificar se o cliente tem ou não o desconto.
Coloque os comandos escreval somente após o segundo if.
A logica vai ficar assim
1° IF:
Vai verificar o valor que será cobrado pelas frutas;e
2° IF: Vai verificar se o cliente tem direito ao desconto.
Resumindo são dois if´s um após o outro.
Obs: Você não precisa colocar então após o senão.
abçs,
LCS
ok, vlw mesmo, ficou assim:
>
var
x, y, morango, maca, kilo, total, totald, totalf:real
inicio
// Seção de Comandos
escreva ("Digite o peso da compra do morango: ")
leia(x)
escreva ("Digite o peso da compra da maçã: ")
leia(y)
kilo<- x+y
se(kilo < 5) entao
morango<- 250*x
maca<- 180*y
total<- morango+maca
escreval ("A compra adquirida foi de morango: ", x, " maçã: ", y)
escreval ("Totalizando num valor de R$: ", total)
senao(kilo >= 5 < 8)
morango<- 220*x
maca<- 150*y
total<- morango+maca
escreval ("A compra adquirida foi de morango: ", x, " maçã: ", y)
escreval ("Totalizando num valor de R$: ", total)
se(kilo >= 8) ou (total >= 2500)entao
totald<- total*10/100
totalf<- total-totald
escreval ("Você ganhou um desconto de 10%: ", totald)
escreva ("O valor final da compra é de: ", totalf)
senao
fimse
fimse
fimalgoritmo
Deu certinho, agora vou estudar ele...
por que sei que tem coisa pior.
vlw por enquanto.
abraços
Parcerinho eu resolvi fazer o código aqui. Bom eu imagino que você deva estar usando o visualg pela forma como esta formatando o seu código,então eu fiz nele.. É só copiar e colar e mandar rodar, ai tu vê se atende as tuas necessidades.
Só quero te lembrar para não apresentar esse código assim para o seu professor, pois se você é iniciante ele vai desconfiar.
Coisas que você tem que levar em consideração:
* Sempre que possível elimine variáveis
* Evite ter que digitar comandos para o programa imprimir as coisas.
* Sempre idente o seu código, bem como comente ele. Assim facilita a vida de quem vai te ajudar e até de você mesmo para não se perder.
* Evite nomear as suas variáveis com nomes como "x,y,z,etc" , procure sempre dar um nome que faça quem esta lendo identificar facilmente e rapidamente o que aquela variável vai guardar.
* Estude cada vez mais a lógica da programação, pois no fim é ela que vai definir se você será ou não um bom programador.
Acho que é só isso por enquanto.
Chega né,kkk ai esta o código:
var
kilo_morango, kilo_maca, morango, maca, kilo, total, total_desconto, total_final,desconto:real
inicio
// Seção de Comandos
Escreval("***********************************************************************")
escreval("*****Programa para calculo do valor da compra de frutas.***********")//Nome e versão do programa
Escreval("*********************Versão 1.0************************************")
escreva ("Digite o peso da compra do morango: ")//Input box do kg do morango
leia(kilo_morango) // Variavel x recebe o valor digitado na input box
escreva ("Digite o peso da compra da maçã: ") // idem
leia(kilo_maca) // idem
kilo<- kilo_morango+kilo_maca // Calculo da quantidade de KG das 2 frutas
se(kilo < 5) entao
morango<- 2.50*kilo_morango
maca<- 1.80*kilo_maca
total<- morango+maca
senao // Condição que irá verificar qual será o valor cobrado por KG.
morango<- 2.20*kilo_morango
maca<- 1.50*Kilo_maca
total<- morango+maca
fimse
se (kilo > 8) ou (total > 25.00) entao //Condição que irá determinar o valor do desconto
desconto<- ((total * 10)/100) // Calcula o desconto se for o caso
total<- total - desconto
fimse
escreval( "O valor da compra é : ","R$",total)
escreval("O Total em KG de Maça é:",kilo_maca,"KG"," e de Morango é:",kilo_morango,"KG") //Imprime na tela o valor da compra e o valor em KG de morangos e maças.
Escreval("Parabéns comprando aqui você economizou: ","R$",desconto)
fimalgoritmo
Vlw mesmo, estou no caminho, só que as vezes me perco onde colocar um segundo "SE".
Vou ler uns pdfs que baixei sobre o assunto.
Exemplo >
se total_kg_fruta < 5 então
preco_morango = 2.50 ' Lemre-se que os valores no código não devem conter virgulas
preco_maca = 1.80 ' idem
senao
preco_morango = 2.20
preco_maca= 1.50
Fimse
se (total_compra > 8) ou (total_compra > 25.00) entao
total_compra = total_compra -((total_compra * 10)/100)
escreva( "O valor da compra é :" , total_compra)
senao
escreva("O valor da compra é :", total_compra
fimse
[/code]
*Lembre-se de ajustar as condições com as suas variáveis, analise atentamente a lógica proposta, assim você vai conseguir gravar o que foi feito.. Assim você consegue resolver sozinho depois..
Qualquer dúvida posta ae..
LCS