sabing Posted May 20, 2022 at 12:13 AM Report Share #625970 Posted May 20, 2022 at 12:13 AM 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 More sharing options...
antseq Posted May 20, 2022 at 02:18 PM Report Share #625972 Posted May 20, 2022 at 02:18 PM 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 More sharing options...
sabing Posted May 20, 2022 at 02:28 PM Author Report Share #625973 Posted May 20, 2022 at 02:28 PM (edited) 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 May 20, 2022 at 02:41 PM by sabing Errei Link to comment Share on other sites More sharing options...
antseq Posted May 20, 2022 at 03:05 PM Report Share #625974 Posted May 20, 2022 at 03:05 PM (edited) 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 May 20, 2022 at 03:06 PM by antseq sinal trocado Link to comment Share on other sites More sharing options...
sabing Posted May 20, 2022 at 03:19 PM Author Report Share #625975 Posted May 20, 2022 at 03:19 PM O problema que dependendo do numero que coloco , da negativo entendeu? não existe vacas de números negativos! Link to comment Share on other sites More sharing options...
antseq Posted May 20, 2022 at 03:32 PM Report Share #625978 Posted May 20, 2022 at 03:32 PM (edited) 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 May 20, 2022 at 03:32 PM by antseq Link to comment Share on other sites More sharing options...
sabing Posted May 20, 2022 at 08:00 PM Author Report Share #625980 Posted May 20, 2022 at 08:00 PM 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 Link to comment Share on other sites More sharing options...
manuel antonio Posted May 21, 2022 at 12:54 AM Report Share #625981 Posted May 21, 2022 at 12:54 AM (edited) 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 May 21, 2022 at 01:13 AM by manuel antonio Link to comment Share on other sites More sharing options...
antseq Posted May 22, 2022 at 01:47 PM Report Share #625988 Posted May 22, 2022 at 01:47 PM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now