Advertisement
Guest User

Untitled

a guest
Nov 30th, 2015
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Public Class frmSquareMatrix
  2.     Const GRANDEZZAMAT As Integer = 26
  3.     Public matrice(GRANDEZZAMAT - 1, GRANDEZZAMAT - 1) As ULong
  4.  
  5.     Private Sub getsumenabled() ' LT violazione del principio MaiuscoleEMinuscoleNonACasaccio
  6.        cmdGetSum.Enabled = False
  7.         If rdbRiga.Checked = True And Val(Len(txtQuery.Text)) = 1 Or rdbColonna.Checked = True And Val(Len(txtQuery.Text)) = 1 Then
  8.             'LT Caso mai: If Len(txtQuery.Text) = 1 And (rdbRiga.Checked Or rdbColonna.Checked) Then
  9.            cmdGetSum.Enabled = True
  10.         End If
  11.     End Sub
  12.  
  13.     Private Sub chbMultiple_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles chbMultiple.CheckedChanged
  14.         txtInput.Multiline = chbMultiple.Checked
  15.         If txtInput.Multiline Then
  16.             txtInput.Height = 150
  17.             txtInput.ScrollBars = ScrollBars.Vertical
  18.         End If
  19.     End Sub
  20.  
  21.     Private Function cordinate(ByVal input As Char) 'LT coordinate
  22.        Return Asc(UCase(input)) - 65
  23.     End Function
  24.  
  25.     Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
  26.         getsumenabled()
  27.     End Sub
  28.  
  29.     Private Sub Cancella()  'LT Pulisci? Inizializza?
  30.        Dim riga, colonna As Integer
  31.         For riga = 0 To GRANDEZZAMAT - 1
  32.             For colonna = 0 To GRANDEZZAMAT - 1
  33.                 matrice(riga, colonna) = 0
  34.             Next
  35.         Next
  36.     End Sub
  37.  
  38.     Private Sub cmdClear_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdClear.Click
  39.         Cancella()
  40.     End Sub
  41.  
  42.     Private Sub cmdImport_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdImport.Click
  43.         Dim ncar, riga, colonna As Integer
  44.         Dim valorenuminput As ULong
  45.  
  46.         If Verificatesto(txtInput.Text) = True Then
  47.             ncar = Len(txtInput.Text) - 2
  48.             riga = Asc(UCase(Mid(txtInput.Text, 1, 1))) - 65  ' LT Hai già una funzione che fa questo, perché non usarla?
  49.            colonna = Asc(UCase(Mid(txtInput.Text, 2, 2))) - 65
  50.             valorenuminput = Val(Mid(txtInput.Text, 3, ncar))
  51.             matrice(riga, colonna) = valorenuminput
  52.         End If
  53.  
  54.         ' LT Se è abilitato il testo multilinea dovresti fare l'operazione riga per riga...
  55.  
  56.         txtInput.Text = ""
  57.         txtInput.Focus()
  58.     End Sub
  59.  
  60.     Private Function Verificatesto(ByVal dato As String)
  61.         Dim risposta As Boolean
  62.         Dim i As Integer
  63.  
  64.         If Len(dato) >= 3 And IsNumeric(Mid(txtInput.Text, 3, 3)) Then
  65.             If UCase(Mid(dato, 1, 2)) >= "AA" And UCase(Mid(dato, 1, 2)) <= "ZZ" Then
  66.                 ' LT La stringa "A&', ad esempio, soddisfa la condizione ma non il criterio che vorresti impostare...
  67.                For i = 3 To Len(dato)
  68.                     If (Mid(dato, i, 1) >= "0") And (Mid(dato, i, 1) <= "9") Then
  69.                         risposta = True
  70.                     Else
  71.                         risposta = False
  72.                     End If
  73.                     'LT Problema: basta che l'ultimo carattere sia valido e risposta sarà vero
  74.                Next
  75.             End If
  76.         End If
  77.         Return risposta
  78.     End Function
  79.  
  80.     Private Function Sommariga(ByVal riga As Integer)
  81.         Dim somma As ULong = 0
  82.         Dim colonna As Integer
  83.  
  84.         For colonna = 0 To GRANDEZZAMAT - 1
  85.             somma = somma + matrice(riga, colonna)
  86.         Next
  87.         Return somma
  88.     End Function
  89.  
  90.     Private Function Sommacolonna(ByVal colonna As Integer)
  91.         Dim somma As ULong = 0
  92.         Dim riga As Integer
  93.  
  94.         For riga = 0 To GRANDEZZAMAT - 1
  95.             somma = somma + matrice(riga, colonna)
  96.         Next
  97.         Return somma
  98.  
  99.     End Function
  100.  
  101.     Private Sub txtQuery_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles txtQuery.TextChanged
  102.         getsumenabled()
  103.     End Sub
  104.  
  105.     Private Sub cmdGetSum_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGetSum.Click
  106.         cmdGetSum.Enabled = False
  107.  
  108.         Dim somma As ULong
  109.         Dim i As Integer = cordinate(txtQuery.Text)  ' LT perché i come nome di variabile?
  110.        If rdbRiga.Checked Then
  111.             somma = Sommariga(i)
  112.         End If
  113.         If rdbColonna.Checked Then
  114.             somma = Sommacolonna(i)
  115.         End If
  116.         lblResult.Text = CStr(somma)
  117.     End Sub
  118.  
  119.     Private Sub txtInput_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtInput.TextChanged
  120.         cmdImport.Enabled = False
  121.         If Verificatesto(txtInput.Text) = True Then
  122.             cmdImport.Enabled = True
  123.         End If
  124.     End Sub
  125.  
  126.     Private Sub rdbRiga_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdbRiga.CheckedChanged
  127.         getsumenabled()
  128.     End Sub
  129.  
  130.     Private Sub rdbColonna_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdbColonna.CheckedChanged
  131.         getsumenabled()
  132.     End Sub
  133. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement