Jump to content

Lógica de um calculo vb.net


sabing

Recommended Posts

Eu tenho que fazer um calculo para reajustar a quantidade , de duas variáveis ,

vaca cheia = 20

vaca vazia = 2

total = 22

15 animais inseminados, dentre esses 15 animais irão ter uma seleção de novo que vai ser exemplo :

11 vacas vazias

4  vacas cheias

total de 15 animais

eu fiz um algoritmo, porém o calculo não está certo, queria uma ajuda

Tem hora que o calculo da errado, tem hora que da certo? eu acho que a lógica está errada, pode me ajudar???
 

'Aqui eu crio uma variavel de reajuste

Dim vacaVazia As integer = 20

dim vacaCheia As integer =2

Dim var As Integer = VaziaN - CheiaN

Dim vcr As Integer = CheiaN - VaziaN

'depois eu faço o calculo

If vcr > 0 Then
      Dim resultado As integer  = vacaVazia - vcr         
Else
      Dim resultado As integer  = vacaVazia + vcr               
End If

If var > 0 Then
        Dim resultado As integer  = vacaCheia - var                  
Else
        Dim resultado As integer  = vacaCheia + var   
End If

 

Link to comment
Share on other sites

14 horas atrás, sabing disse:

Tem hora que o calculo da errado, tem hora que da certo? eu acho que a lógica está errada, pode me ajudar???

Não chega a explicar o que são as variáveis "VaziaN, "CheiaN" e o "resultado" quer obter.

De qualquer forma, seja lá aonde quer chegar, o seu código tem no fim 2x IFs e ambos com ESLEs, para a mesma variável "resultado", ou seja o primeiro IF não está lá a fazer absolutamente nada, uma vez que o segundo IF tem "resultado" para verdadeiro e ELSE "resultado" para falso portanto o "resultado" final será sempre o do segundo IF.

Link to comment
Share on other sites

Eu estou fazendo um programinha de inseminação
Eu estou sem entender , de como vou fazer o calculo , eu só quero ajustar o estoque , tipo vou ter um estoque de animais vazias e cheias, exemplo

Dim vacaVazia As integer = 20

Dim vacaCheia As integer =2

depois , vou fazer um reajuste de animais cheias e vazias, dentro dos animais que foram inseminados exemplo , inseminei 15 animais ,depois que inseminei os animais tem que ver se esses animais estão cheios e vazios, e tenho que reajustar no estoque dentro como mostrei nas variáveis acima , que são o estoque atual

exemplo depois do indice dentro dos 15 animais inseminados foram , detectados 

Dim VrVacia As integer = 11

dim VcCheias As integer = 4

como eu procederia esse calculo? eu estou meio perdido

Dim var As Integer = VrVacia - VcCheias

Dim vcr As Integer = VcCheias - VrVacia

 

Eu tenho que fazer um calculo para reajustar, o estoque 

Dim vacaVazia As integer = ?

Dim vacaCheia As integer = ?

 

Bom , eu imaginei assim, não sei se está certo, esse 

If vcr > 0 Then
      Dim resultado As integer  = vacaVazia - vcr         
Else
      Dim resultado As integer  = vacaVazia + vcr               
End If

If var > 0 Then
        Dim resultado As integer  = vacaCheia - var                  
Else
        Dim resultado As integer  = vacaCheia + var   
End If

 

Edited by sabing
Errei
Link to comment
Share on other sites

Ou seja... 

Tens inicialmente 22 vacas:
vacaVazia = 20
vacaCheia = 2
total = 22

Das 20 vacaVazia's, inseminas 15 e dessas 15 tens o sub-contagem:
.. vacaVaziaSub = 11
.. vacaCheiaSub = 4

Precisas agora dos novos totais:
vacaVazia = vacaVazia(que já tinhas) - novas vacas cheias = 20 - 4 = 16
vacaCheia = vacaCheia(que já tinhas) + novas vacas cheias = 2 + 4 = 6
total = 16 + 6 = 22 vacas (o total é igual o que já tinhas)

Se é isto... não precisas de IF's, basta fazer a soma/subtração acima.
Se não é isto... não percebo nada de vacas vazias e cheias 🙂 🙂 🙂

Edited by antseq
sinal trocado
Link to comment
Share on other sites

12 minutos atrás, sabing disse:

O problema que dependendo do numero que coloco , da negativo entendeu? não existe vacas de números negativos!

Não pode inseminar mais vacas do que as vacas que tem (22) e pelo que percebi só inseminará no máximo as vazias (20) e destas 20 inseminadas fiquem 1 ou 20 cheias nunca terá um número negativo. Se correr isto várias vezes, no final, terá 0 vazias, 22 cheias e 22 de total (todas inseminadas).

Edited by antseq
Link to comment
Share on other sites

Boa noite.

Penso que deves crias variáveis para as inseminadas, para poderes jogar de forma correta com os cálculos.

Vvz=20
Vch=2

Insem=15

InsemVz=11
InsemCh=4
 

Vvz=Vvz+(-Insem+InsemVz) ' o que dará 16  "- Insem porque das 20 saíram 15.

Vch=Vch+(Insem-InsemVz) ' o que dará 6

E podes declaras as variáveis de forma diferente e menos repetitiva.
Dim resultado as integer, vcr as integer, vacaVazia as integer ' etc

Depois é só utilizar o nome da variável sem os constantes Dim as ...

Não sei se ajudei.

MASL

Edited by manuel antonio
Link to comment
Share on other sites

Em 20/05/2022 às 21:00, sabing disse:

Vem cá nesse caso não atualiza as vacas vazias?

vacaVazia = vacaVazia(que já tinhas) - novas vacas cheias = 20 - 4 = 16
vacaCheia = vacaCheia(que já tinhas) + novas vacas cheias = 2 + 4 = 6

Eu acho que entendi, agora é pq como já existe vacas vazias , não pode acrescentar somente tirar

Não percebo nada de vacas e do que deu a entender, assumi que:

- cheia/vazia seria equivalente a inseminada com sucesso/sem sucesso 

- a ser assim não iria inseminar as já inseminadas com sucesso (cheias), seriam apenas inseminadas as ainda sem sucesso (vazias)

- a cada nova interação, inseminação, nova conclusão => quantas com sucesso e quantas sem sucesso

- o stock de vacas é constante... portanto se houver novas cheias, somo as cheias e subtraio o mesmo número as vazias.

* se realmente em cada interação, há vacas cheias que se tornam vazias... uma vez mais não há negativos, porque no pior caso só até ao máximo de cheias é que poderiam ficar vazias.

* seria então uma aplicação, sem fim, com vida própria... a cada nova interação, inseminação... cheias (old) permanecem cheias(new) ou ficam vazias(new) e vazias(old) permanecem vazias(new) ou ficam cheias(new) e o stock total de vacas constante (ou por cada nova passagem de cheia => vazia, haja um nova vaca em stock => mesmo assim, é pacífico, há mais vacas e não há negativos)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.