Guest - Diego - Postado Novembro 24, 2006 Denunciar Share Postado Novembro 24, 2006 Boa tarde,alguém poderia me passar um exemplo ou me ajudar a como fazer umamatriz 2 x 2 em delphi e calcular o seu determinante...valeu Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Nobre Postado Novembro 25, 2006 Denunciar Share Postado Novembro 25, 2006 Quando você diz fazer uma matriz 2x2, imagino que seja a idéia visual para montar a matriz,não é isso?Uma idéia seria colocar 4 Edits no formato de duas linhas e duas colunas, afinal este é o formato de uma matriz 2x2, não é? Temos que usar 5 variáveis do tipo extended, 4 para armazenar os valores dos edits e uma para o resultado.Bom faça o seguinte: coloque quatro edits e renomei eles para txta11, txta12,txta21 e txta22.Coloque um componente button e renomei-o para cmdCalcularD2.Coloque om outro Edit, para receber o resultado, renomeando-o para txtRD2.Um código(para o button) poderia ser o seguinte: procedure TfrmPrincipal.cmdCalcularD3Click(Sender: TObject); Var a11, a12,a21,a22: Extended; RD2: Extended; begin try If txta11.Text = '' Then begin Messagebox(handle,'Nenhum valor deve ser deixado em branco.','FALTA UM VALOR',MB_IconExclamation); txta11.SetFocus; abort; end; If txta12.Text = '' Then begin Messagebox(handle,'Nenhum valor deve ser deixado em branco.','FALTA UM VALOR',MB_IconExclamation); txta12.SetFocus; abort; end; If txta21.Text = '' Then begin Messagebox(handle,'Nenhum valor deve ser deixado em branco.','FALTA UM VALOR',MB_IconExclamation); txta21.SetFocus; abort; end; If txta22.Text = '' Then begin Messagebox(handle,'Nenhum valor deve ser deixado em branco.','FALTA UM VALOR',MB_IconExclamation); txta22.SetFocus; abort; end; a11:= StrToFloat(txta11.Text); a12:= StrToFloat(txta12.Text); a21:= StrToFloat(txta21.Text); a22:= StrToFloat(txta22.Text); RD2:= a11*a22 - a12*a21; txtRD2.Text:= FloatToStr(RD2); except On E:EConvertError do Messagebox(handle,'Expressões como valor não serão aceitas.'+#13+'Por exemplo, 3-4 ou -1-5, não são valores válidos !'+#13+'O sinal de menos só pode aparecer uma vez e antes do número.','ERRO',MB_IconStop); end; end; É claro que muitos outros detalhes podem ser implementados, como colocar um botao para limpar todos os valores dos edits etc... Com a idéia acima você pode passar para o cálculo de um determinanre 3x3(usando a regra de Sarrus) e depois para um 4x4, usando o teorema de Laplace. Diversos outros detalhes deverão ser cuidados, por exemplo, para que o programa não tenha erros. Por exemplo: para o usuário digitar apenas números nos edits. neste caso no evento OnKeyPress de cada edit coloque o código abaixo: If Not(Key In ['0'..'9',',','-',#8]) Then begin beep; Abort; end; E outra coisas mais, como por exemplo digitar apenas uma vírgula em edit etc..O básico está aí em cima. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Nobre Postado Novembro 27, 2006 Denunciar Share Postado Novembro 27, 2006 Diego, um código alternativo ao meu, muito mais otimizado e enxuto, que foi sugerido a mim por M.P. pelo colega Micheus é o seguinte: procedure TForm1.Button1Click(Sender: TObject); function ValidaNum(txtValue :TEdit) :Extended; begin if txtValue.Text = '' Then begin Messagebox(handle,'Nenhum valor deve ser deixado em branco.','FALTA UM VALOR',MB_IconExclamation); txtValue.SetFocus; abort; end else Result := StrToFloat(txtValue.Text); end; var a11, a12,a21,a22: Extended; RD2: Extended; begin try a11:= ValidaNum(txta11); a12:= ValidaNum(txta12); a21:= ValidaNum(txta21); a22:= ValidaNum(txta22); RD2:= a11*a22 - a12*a21; txtRD2.Text:= FloatToStr(RD2); except On E:EConvertError do Messagebox(handle,'Expressões como valor não serão aceitas.'+#13+'Por exemplo, 3-4 ou -1-5, não são valores válidos !'+#13+'O sinal de menos só pode aparecer uma vez e antes do número.','ERRO',MB_IconStop); end; end; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest - Diego -
Boa tarde,
alguém poderia me passar um exemplo ou me ajudar a como fazer uma
matriz 2 x 2 em delphi e calcular o seu determinante...
valeu
Link para o comentário
Compartilhar em outros sites
2 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.