flavioavilela Postado Janeiro 25, 2010 Denunciar Share Postado Janeiro 25, 2010 boa tarde a todos...tenho um lugar no meu sistema em que a pessoa tem que informar uma fração...gostaria de saber se caso a pessoa coloque 2/4, como simplificar isso para 1/2? ou seja, como simplificar uma fração??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 26, 2010 Denunciar Share Postado Janeiro 26, 2010 tenho um lugar no meu sistema em que a pessoa tem que informar uma fração...gostaria de saber se caso a pessoa coloque 2/4, como simplificar isso para 1/2? ou seja, como simplificar uma fração???flavioavilela... simplificação de fração no delphi é dificil achar na net, entretanto isso não quer dizer que seja impossivel fazer alguma coisa nesse sentido. voce como programador deve usar a lógica e o conhecimento do delphi para criar as rotinas necessarias para a solução desse problema.então se voce se basear nos conceitos matemáticos, voce consegue montar essa rotina; CONCEITO DE FRAÇÕESFração é todo par de números naturais na forma que mostra a figura 1,onde: o denominador “b” indica em quantas partes iguais o inteiro foi divido. Onumerador “a” indica a quantidade utilizadas dessas partes. Como não existe divisãopor zero, não existe fração com denominador igual a zero.Figura 1: Modelo de Fração. a - bLEITURA DE FRAÇÕESPara lermos uma fração, primeiro lemos o numerador, depois lemos odenominador, da seguinte forma:a) Denominadores 2 e 3 são lidos como meio e terços;B) Denominadores entre 4 e 9 são lidos como números ordinais;c) Denominadores 10, 100, 1000 são lidos como décimos, centésimos, milésimos;d) Denominadores acima de 10 (excluído os do item c) são lidos acrescentando-se a palavra “avos” no final.Para começar, faríamos um modelo em um esquema no delphi de uma fração, ou seja, essa estrutura matemática que tem um numerador e um denominador que divide o numerador, por exemplo, 18/6.A fração será o objeto e terá duas propriedades, o numerador e o denominador. Logo, poderia ter vários métodos como simplificar, somar com outra fração ou número, subtrair com outra fração, etc.De fato, ao se dividir os dois termos de uma fração pelo seu mdc, obtem-se quocientes primos entre si, e portanto formam uma fração irredutível. Além do mais, essa fração é igual à fração original uma vez que foi obtida dividindo-se seus dois termos por um mesmo número.No exemplo anterior o mdc(18,6) = 6 = 2 x 3, os fatores utilizados para se determinar a forma irredutível da fração dada. O mesmo resultado, claro, seria obtido se efetuassemos a divisão por 6.Simplificar uma fração é reduzir esta fração à uma fração mais simples mantendo-se a proporção da fração original. E o princípio que norteia a simplificação de frações é: uma fração não se altera quando dividimos seus termos por um mesmo número diferente de zero.Observe que para simplificar frações é necessário que haja um divisor comum, além da unidade, aos seus termos. E, torná-la irredutível é obter a fração equivalente em que o único divisor comum aos seus termos é a unidade, ou seja, quando o mdc – máximo divisor comum – entre o numerador e o denominador é igual a 1, o que é o mesmo que os seus dois termos serem primos entre si.Portanto, concluímos que ao fatorar dois ou mais números, o cálculo do mdc será calculado com a multiplicação dos fatores primos comum aos termos. como obter os numeros primos:http://scriptbrasil.com.br/forum/index.php...st&p=576041OBS: A base do que voce precisa está ai.... tente se esforçar para conseguir desenvolver o raciocínio lógico em cima desse conceito.abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 flavioavilela Postado Janeiro 26, 2010 Autor Denunciar Share Postado Janeiro 26, 2010 boa tarde galera... fuçando na net achei uma função que nos tras o mmc de duas frações... imagino que será muito útil para todos nós aqui do forum...function TFrmMenu_Geral.MMC(x1, x2: Integer): Integer; var Resp, Prime: Integer; Flip: Boolean; begin //Inicializando as variáveis de controle Flip := false; Resp := 1; Prime := 2; while (x1 > 1) or (x2 > 1) do begin //Se x1 for divisível por Prime... if (x1 > 1) and ((x1 mod Prime) = 0) then begin x1 := x1 div Prime; Flip := true; end; //Se x2 for divisível por Prime... if (x2 > 1) and ((x2 mod Prime) = 0) then begin x2 := x2 div Prime; Flip := true; end; if Flip then begin Resp := Resp * Prime; Flip := false; end else NextPrime(Prime); end; result := Resp; end; verificar os números primos... procedure TFrmMenu_Geral.NextPrime(var P: Integer); begin if P = 2 then P := 3 else if P = 3 then P := 5 else if P = 5 then P := 7 else if P = 7 then P := 11 else if P = 11 then P := 13 else if P = 13 then P := 17 else if P = 17 then P := 19 else if P = 19 then P := 23 else if P = 23 then P := 29 else if P = 29 then P := 31 else if P = 31 then P := 37 else if P = 37 then P := 41 else if P = 41 then P := 43 else if P = 43 then P := 47 else if P = 47 then P := 49 else if P = 53 then P := 59 end; chamada da função... m := MMC(x2, y2); // <-- Chamar a função pro MMC aqui r2 := m; x1 := (m div x2) * x1; y1 := (m div y2) * y1; r1 := x1 + y1; result := IntToStr(r1) + ''/'' + IntToStr(r2); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 26, 2010 Denunciar Share Postado Janeiro 26, 2010 gostaria de saber se caso a pessoa coloque 2/4, como simplificar isso para 1/2? ou seja, como simplificar uma fração???flavioavilela... imagino que voce não saiba montar o código ... na verdade é mais simples do que parece, acho que com umas 10 linhas de código seria suficiente para resolver o seu problema.se voce não conseguir ( mas tente fazer ) depois posto o código para simplificar uma fração até a forma irredutivelabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 flavioavilela Postado Janeiro 26, 2010 Autor Denunciar Share Postado Janeiro 26, 2010 você diz a respeito de usar essas lances do procedimento nextprime? ou de um todo? da uma dica ai sobre o que está falando rsrs... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 26, 2010 Denunciar Share Postado Janeiro 26, 2010 Simplificar ma fração...basicamente consiste em dada uma determinada fraçãoexemplo: imagine que voce digite em um Edit a seguinte fração: 18/6A fração será o objeto e terá duas propriedades, o numerador e o denominador... então deverá cria duas variaveis, uma para o numerador ( ex: num ) e outra para o denominador ( ex: den ) ambas deverão ser do tipo integer.agora basta separar os numeros da fração para cada uma das variaveisex: num := 18 e den := 6para fazer a separação voce deve retirar da string ( '18/6') o 18 e o 6 ignorando a barrao princípio que norteia a simplificação de frações é: uma fração não se altera quando dividimos seus termos por um mesmo número diferente de zero.agora basta montar um simples rotina onde os termos da fração serão divididos por um mesmo numero Observe que para simplificar frações é necessário que haja um divisor comum, além da unidade, aos seus termos. E, torná-la irredutível é obter a fração equivalente em que o único divisor comum aos seus termos é a unidadePortanto, concluímos que ao fatorar dois ou mais números, o cálculo do mdc será calculado com a multiplicação dos fatores primos comum aos termos.o que é o mesmo que os seus dois termos serem primos entre si.Ou seja, a forma irredutuvel da fração será dois numeros primos entre si.então uma simples divisão de cada um dos numeros ( num e den ) por numeros primos resultará a fração simplificada veja se consegue montar ... é mais facil do que parece. só precisa usar um pouco a massa cinzenta... rsabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
flavioavilela
boa tarde a todos...
tenho um lugar no meu sistema em que a pessoa tem que informar uma fração...
gostaria de saber se caso a pessoa coloque 2/4, como simplificar isso para 1/2? ou seja, como simplificar uma fração???
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.