UnKn0wZ_L@U 0 Denunciar post Postado Agosto 3, 2008 Olá Criei um programa em VB.NET p/ calcular o mmc de 2 ou mais numeros em um unico textbox. Bem o algoritmo parece estar perfeito, eu ja revisei ele mais de 5 vezes e naum consigo achar nenhum um errinho de lógica. Mas quando vou compila-lo o visual studio trava e naum mostra nenhum menssagem sobre o problema ocorrido, issu que eu acho estranho, ele simplesmente trava e naum responde mais. Bem passei o código que esta em vb.net para linguagem estruturada e espero que vcs possam me ajudar, caso for algum problema na lógica do algoritimo. Bem segue o código abaixo: CODE Var: VarTxtValor as alphanumeric ValorMatriz(10) as integer Marcador2, MaiorNum, I, Exp, Quebra, Controle as integer Marcador1 as integer = 1 Mmc as integer = 1 Dividir as integer = 2 Begin Read VarTxtValor For I = 1 to Len(VarTxtValor) If Mid(VarTxtValor, I, 1) = "," Then Marcador2 = Marcador2 + 1 ValorMatriz(Marcador2) = Mid(VarTxtValor, Marcador1, I - 1) Marcador1 = I + 1 ElseIf I = Len(VarTxtValor) Then Marcador2 = Marcador2 + 1 ValorMatriz(Marcador2) = Mid(VarTxtValor, Marcador1, I) End If Next I For I = 1 To Marcador2 If ValorMatriz(I) > MaiorNum Then MaiorNum = ValorMatriz(I) End If Next I Do While Dividir <= MaiorNum Or Quebra <> 0 For I = 1 To Marcador2 Do While ValorMatriz(I) Mod Dividir = 0 For I3 As Integer = I To Marcador2 If ValorMatriz(I3) Mod Dividir = 0 Then ValorMatriz(I3) = ValorMatriz(I3) / Dividir End If Next I3 For I4 As Integer = 1 To I - 1 If ValorMatriz(I4) Mod Dividir = 0 Then ValorMatriz(I4) = ValorMatriz(I4) / Dividir End If Next I4 Exp = Exp + 1 Loop Next I For I = 1 To Exp Mmc = Mmc * Dividir Next I For I = 1 To Marcador2 If ValorMatriz(I) = 1 Then Controle = Controle + 1 End If Next I If Controle = Marcador2 Then Quebra = Quebra + 1 Else Controle = 0 Exp = 0 Dividir = Dividir + 1 End If Loop Write Mmc End Obrigado http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 4, 2008 Ele trava realmente (congelamento do pc) ou simplesmente não termina de executar? Compartilhar este post Link para o post Compartilhar em outros sites
UnKn0wZ_L@U 0 Denunciar post Postado Agosto 6, 2008 Ele trava realmente (congelamento do pc) ou simplesmente não termina de executar? Ele trava msmo.. tpw, o software abre, ai qnd eu coloco os numeros e clico em calcular, ele trava o software, ai soh fechandu ele no gerenciador de tarefas msmo. E o estranho eh q o visual studio naum da nenhuma tela de erro sobre a excessão ocorrida. Issu eh muito estranho. <_< Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Agosto 6, 2008 olha ainda naum cheguei verificar o codigo + isso ocorre as vzs qnd tem um loop infinito no codigo! []'s Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 6, 2008 Loop infinito iterativo não dá erro. O que geralmente dá erro é loop infinito recursivo.E acho que ainda depende da linguagem. Compartilhar este post Link para o post Compartilhar em outros sites
Mortalzera 0 Denunciar post Postado Agosto 14, 2008 tipo assim bem facil para dois números dai você usa a mesma idéia. MMC de dois numeros : sexa x um numero tal que x = y.k sendo k uma constante qualquer você tem um MMC, você pode usar essa idéia tbm, eu fiz uma coisa bem simple aqui em baixo só para mostrar o MMC de dois números. Se não consiguir resolver eu faço para n números. CODE #include <stdio.h> int verificasemultiplo(int a, int B){ if(a%b == 0)return 0; if(b%a == 0)return 1; else return 2; } int main(){ int x,y; printf("Digite o primeiro numero : "); scanf("%d", &x); printf("\nDigite o segundo numero : "); scanf("%d", &y); if (verificasemultiplo(x,y) == 0) printf("O MMC é : %d\n", x); if (verificasemultiplo(x,y) == 1) printf("O MMC é : %d\n", y); if (verificasemultiplo(x,y) == 2) printf("O MMC é : %d\n", x*y); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites