Jump to content

Ajuda no programa Quadrado Mágico


Pedroalv
 Share

Recommended Posts

Boas, estou com um problema no desenvolvimento deste quadrado magico, que consiste em pedir ao utilizador o tamanho do quadrado e os valores, depois a funcionalidade é somar as linhas, colunas e diagonais e dizer se ele e mágico ou não.

O meu problema é na parte de somar as diagonais, não faço a mínima ideia de como o fazer tanto a diagonal de cima para baixo de como de baixo para cima, isto é o que tenho até agora :

Public Class Form1

   Private Sub btncalcular_Click(sender As Object, e As EventArgs) Handles btncalcular.Click
       Dim tamanho As Integer

       tamanho = Val(InputBox("Tamanho do Quadrado ?"))
       Dim vetCol(tamanho), vetLin(tamanho), As Integer
       Dim mat(tamanho, tamanho) As Integer

       lermatriz(mat, tamanho)
       calcular(mat, vetCol(tamanho), vetLin(tamanho))
   End Sub

   Private Sub lermatriz(mat(,) As Integer, tamanho As Integer)
       Dim msg As String


       For l = 0 To tamanho - 1

           msg = ""
           For c = 0 To tamanho - 1
               mat(l, c) = Val(InputBox(" Elemento " & (l + 1) & "," & (c + 1)))
               msg += mat(l, c) & vbTab

           Next
           lstquadrado.Items.Add(msg)



       Next

   End Sub

   Private Sub calcular(mat(,) As Integer, tamanho As Integer, vetCol As Integer(), vetLin As Integer())
       Dim c, l, diag1, diag2 As Integer


       'Soma Colunas
       For l = 0 To l = tamanho - 1

           For c = 0 To tamanho - 1
               vetCol(c) = mat(l, c) + vetCol(c)
           Next
       Next

       'Soma Linhas

       For l = 0 To l = tamanho - 1
           For c = 0 To c = tamanho - 1
               vetLin(l) = mat(l, c) + vetLin(l)
           Next
       Next


       ' Soma Diagonal cima pra baixo
       For l = 0 To l = tamanho - 1
           For c = 0 To tamanho - 1
               diag1 = 


           Next

       Next


End Class

gostaria que me pudessem ajudar a completar :/ obrigado pela atenção

Edited by Pedroalv
Link to comment
Share on other sites

Olá, esta secção é para vb6 ou versões anteriores...

O que é um quadrado mágico?

para correres um array (quadrado ex: 5x5) de duas dimensões na diagonal, basta um ciclo FOR onde o contador do FOR será o indice do array em ambas as dimensões..

ex:

	    Dim myArr = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}

    For i = 0 To myArr.GetUpperBound(0)
	    MsgBox(myArr(i, i))
    Next
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
 Share

×
×
  • 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.