Página 2 de 2

Ajuda com Código [Iniciante]

Enviado: 01 Ago 2019 02:12
por JoséQuintas
O que eu venho comentando... pense no lado humano

nDesconto menor ou igual a nDescontoBanana

Se alguém falar isso.... não faz sentido.
É pra decidir alguma coisa, está afirmando ou negando alguma coisa, está perguntando alguma coisa... está incompleto.

Ajuda com Código [Iniciante]

Enviado: 01 Ago 2019 02:27
por didzao
JoséQuintas escreveu:O que eu venho comentando... pense no lado humano

nDesconto menor ou igual a nDescontoBanana

Se alguém falar isso.... não faz sentido.
É pra decidir alguma coisa, está afirmando ou negando alguma coisa, está perguntando alguma coisa... está incompleto.
Sim, está incompleto, não postei o código todo, o que eu quero saber é se eu posso, dentro do If dizer que uma variável é menor (ou maior) que uma outra (sendo que ambas já foram declaradas anteriormente), e se for possível, quero saber porque está dando esse erro. O que eu postei foi só um exemplo para ilustrar.

No caso o nDesconto seria um get, porém eu quero limitar ele para cada situação (dependendo do produto, por isso o nDescontoBanana) até certo valor, achei que no If eu conseguiria, mas obtive um erro.

Ajuda com Código [Iniciante]

Enviado: 01 Ago 2019 09:02
por MSDN
Sim, conheço, no começo dos anos 2000 eu morei em Maringá, conheci minha esposa inclusive em Maringá, e na época eu conversei com o dono da empresa sobre uma vaga de emprego, lembro que a empresa utilizava Clipper 5.3 com a biblioteca gráfica LightLibGraphics para fazer o PDV, não me recordo se já usava Harbour, mas lembro que ainda estavam decidindo o que usar para gerar aplicativos "for Windows", na época existia o Fivewin e logo em seguida apareceu a xHarbour.com com um ambiente integrado de programação e possibilidade de criar sistemas GUI, infelizmente por uma questão de tempo não deu certo meu ingresso na empresa, mas sempre acompanho o site e vejo as novidades, eles fazem um trabalho muito bom, são referência no mercado, caso vc seja efetivada, estará em uma ótima empresa, sucesso !

Ajuda com Código [Iniciante]

Enviado: 01 Ago 2019 12:15
por Jairo Maia
didzao escreveu:o que eu quero saber é se eu posso, dentro do If dizer que uma variável é menor (ou maior) que uma outra (sendo que ambas já foram declaradas anteriormente), e se for possível, quero saber porque está dando esse erro. O que eu postei foi só um exemplo para ilustrar.
Sim, você pode, mas em seu exemplo realmente há um erro de sintaxe.

Ambas variáveis são numéricas, e você quer saber se o desconto atribuído é menor ou igual ao desconto permitido para o produto banana. Porém, você tem que atribuir esse valor lógico (.T. ou .F.) a uma outra variável. Exemplo:

Código: Selecionar todos

lDescontoOk := ( nDesconto <=  nDescontoBanana )
Então você terá que tratar se o desconto está ou não ok de acordo com a variável lDescontoOk (por exemplo, você batiza a variável com o nome que achar melhor).

Ajuda com Código [Iniciante]

Enviado: 04 Ago 2019 11:51
por JoséQuintas
Jairo Maia escreveu:Porém, você tem que atribuir esse valor lógico (.T. ou .F.) a uma outra variável.
Pequeno ajuste na resposta: pode ou não atribuir a uma variável, depende da necessidade/gosto pessoal.
Igual colocou pra sair do sistema, pode colocar direto no IF.

Código: Selecionar todos

IF nDesconto <= nDescontoBanana
    // alguma coisa
ENDIF
É que as vezes um IF pode ficar comprido, muito fonte, ou pode querer usar essa comparação mais vezes, então há casos aonde se torna vantagem primeiro atribuir a uma variável.

por exemplo a saída do aplicativo:

Código: Selecionar todos

IF Alert( "Sair do aplicativo", { "Sim", "Não" } ) = 1
   QUIT
ENDIF

Código: Selecionar todos

nOpc := Alert( "Sair do aplicativo", { "Sim", "Não", "Na dúvida" }
IF nOpc == 3
   Alert( "Endoidou? É sim ou não!" )
   LOOP
ELSEIF nOpc == 2
   Alert( "ok, vamos resolver mais coisas" )
   LOOP
ELSE
   Alert( "Ok, já estou com saudades... eu amo escravos trabalhando" )
   EXIT
ENDIF
E o erro que recebeu na compilação, igual falar pra humano:

- vai no mercado...desconto menor ou igual desconto da banana.... - isto seria o que colocou, sem sentido
- Vai no mercado e veja se o desconto é menor ou igual ao desconto da banana. - isto seria a atribuição a variável, pra uso posterior
- Vai no mercado e... se o desconto for menor ou igual ao desconto da banana... - isto seria o IF direto

Então, não é que escreveu palavras inválidas no fonte, é que não fez sentido do jeito que colocou.

Ajuda com Código [Iniciante]

Enviado: 05 Ago 2019 00:54
por Jairo Maia
Eu entendi que se o código é o 3500, entre outras coisas ele quer mesmo saber se houve desconto, e se houve, se está dentro do permitido.

Como se trata de iniciante, procurei não entrar em detalhes, mas apenas responder a dúvida. Veja o código postado:

Código: Selecionar todos

If nCodigo = 3500
    cProduto          := "Banana Prata"
    nPrecoUnitario    := 3.50
    nEstoqueProduto   := nEstoqueBanana
    nQuantidadeBanana := nQuantidade
    nDesconto         <=  nDescontoBanana
Endif
Veja que no futuro esse código nem será usado. Ele vai descobrir que primeiro verifica se o produto existe, então irá ler os dados diretamente do banco de dados. Mas como ele deixou claro, está iniciando, ainda está na fase de exercícios.