Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

blacksaint

[Resolvido] algoritmo de condição (se e senao)

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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