Inquiridor
Me ajudem nessa lógica

Pergunta
-
Olá pessoal do MSDN. Estou apanhando na lógica para montar uma pequena rotina envolvendo uma matriz dupla. Preciso montar uma rotina que popule uma matriz dupla, poderia popular essa matriz manualmente, mas a rotina deve ficar enorme.
A matriz é dimensionada assim:
Dim matrizSeq(25,25) As Integer
Quero que a rotina funcione da seguinte maneira, insiro uma variável num TexBox que varia de 2 a 15, se eu inserir o 2 a rotina deve popular a matriz com duas dezenas, da seguinte forma:
1,2 : 2,3 : 3,4 ...até 24:25 Essa seria a matriz de duas dezenas, se eu inserir o 3 no TextBox, popularia a matriz de três dezenas, assim:
1,2,3 : 2,3,4 : 3,4,5.... até 23,24,25 Essa seria a matriz de três dezenas, se eu inserir o 4 no TextBox, a matriz seria populada com quatro dezenas, seria assim:
1,2,3,4 : 2,3,4,5 : 3,4,5,6 ..... até 22,23,24,25
Acredito que com estes exemplos já se consegue entender como seria a lógica da rotina, para finalizar, como escrevi antes a variável deve variar de 2 a 15, então a última matriz de 15 dezenas ficaria populada assim:
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 : 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 : 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 até 10,11,12,13,15,16,17,18,19,20,21,22,23,24,25
A lógica parece aparentemente fácil, mas como estou há 3 dias tentando monta-la, resolvi apelar para conhecimento de algum amigo que possa me dar essa força.
Obrigado/Durval
Todas as Respostas
-
Boa tarde,
Não tenho nenhuma experiência com o VB, mas segue uma sugestão para testes:
Dim matrizSeq(25,25) As Integer Dim qtdDezenas As Integer = Int32.Parse(TextBox1.Text) Dim numero As Integer = 1; Dim indGeral As Integer Dim dezenas As Integer Do indGeral = numero - 1; For indDezenas As Integer = 0 To qtdDezenas - 1 matrizSeq(indGeral, indDezenas) = numero + indDezenas Next numero += 1 Loop Until numero + qtdDezenas > 25
Não fiz nenhum teste, pode ser que tenha algum erro.
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
-
Coloque um textbox, um button e um listbox em um form:
Dim q As Integer q = TextBox1.Text - 1 Dim matrizSeq(25, q) As Integer Dim i As Integer Dim j As Integer j = 1 For x = 0 To 24 i = j For y = 0 To q matrizSeq(x, y) = i i = i + 1 Next y j = j + 1 Next 'Pra verificar o resultado em um listbox Dim s As String ListBox1.Items.Clear() For x = 0 To 24 s = x + 1 & ": " For y = 0 To q s = s & matrizSeq(x, y) & "," Next ListBox1.Items.Add(s) Next
Natan
- Editado 'Natan Silva domingo, 28 de fevereiro de 2021 23:05
-
-
Bom de mais Natan, obrigado mesmo. Parece que você leu meus pensamentos criando também o método de fazer a verificação com o ListBox. Só tenho que fazer uma pequena modificação porque o limite é 25, a tua rotina enumera até 25 levando as dezenas com valores acima de 25.
Agradeço tua força, obrigado
Durval 01/03/21
-
-