Visual Basic . Двумерные массивы.

Post on 10-Jan-2016

86 views 2 download

description

Visual Basic . Двумерные массивы. Глезденев В.И., Удальцова А.И. – учителя информатики СОШ №3 г. Сосновый Бор. Размерность массива – ( количество строк х количество столбцов ). N x N. Элемент двумерного массива. Элемент массива A 3- й строки 2-го столбца. A(3,2). - PowerPoint PPT Presentation

Transcript of Visual Basic . Двумерные массивы.

Visual BasicVisual Basic. . Двумерные массивы.Двумерные массивы.

Глезденев В.И., Удальцова А.И. – учителя информатики СОШ №3 г. Сосновый Бор

A(1,1)A(1,1) A(1,2)A(1,2) A(1,3)A(1,3) …… A(1,N)A(1,N)

A(2,1)A(2,1) A(2,2)A(2,2) A(2,3)A(2,3) …… A(2,N)A(2,N)

A(3,1)A(3,1) A(3,2)A(3,2) A(3,3)A(3,3) …… A(3,N)A(3,N)

…… …… …… …… ……

A(N,1)A(N,1) A(N,2)A(N,2) A(N,1)A(N,1) …… A(A(NN,,NN))

Размерность массива – Размерность массива – ((количество строк х количество строк х количество столбцовколичество столбцов)) N x NN x N

Элемент двумерного массива.Элемент двумерного массива.A(1,1)A(1,1) A(1,2)A(1,2) A(1,3)A(1,3) …… A(1,N)A(1,N)

A(2,1)A(2,1) A(2,2)A(2,2) A(2,3)A(2,3) …… A(2,N)A(2,N)

A(3,1)A(3,1) A(3,2)A(3,2) A(3,3)A(3,3) …… A(3,N)A(3,N)

…… …… …… …… ……

A(N,1)A(N,1) A(N,2)A(N,2) A(N,1)A(N,1) …… A(A(NN,,NN))

A(3,2) Элемент массива Элемент массива A A 3-3-й строки 2-го столбцай строки 2-го столбца

Заполнение двумерного Заполнение двумерного массивамассива 10x12 10x12..

Dim A(10,12)Dim A(10,12) - определение массива 10х12- определение массива 10х12

For i=1 to For i=1 to 1010 - цикл по строкам

For k=1 to For k=1 to 1122 - цикл по столбцам

A(i, k)=Fix(rnd*90+10) A(i, k)=Fix(rnd*90+10) – – случайное целое случайное целое из отрезка из отрезка[[10, 10010, 100] ]

Next kNext k

Next iNext i

Вывод на форму Вывод на форму двумерного двумерного массива.массива.For i=1 to For i=1 to 1010

For k=1 to For k=1 to 1122

Pset (k*400, i*200),RGB(200,200,200)Pset (k*400, i*200),RGB(200,200,200)

Print A(i, k)Print A(i, k)

Next kNext k

Next iNext i

Строки двумерного массива.Строки двумерного массива.

A(A(11,1),1) A(A(11,2),2) A(A(11,3),3) …… A(A(11,N),N)

Первая строка:Первая строка:

A(A(33,1),1) A(A(33,2),2) A(A(33,3),3) …… A(A(33,N),N)

Третья строка:Третья строка:

Задача:Задача: Выделение строки Выделение строки (столбца).(столбца). массив 10х10массив 10х10

‘‘исключение случайного вводаисключение случайного ввода DoDon1 = InputBox("введите номер строки", "запрос строки")n1 = InputBox("введите номер строки", "запрос строки")Loop UntilLoop Until ( (nn1 < 11) 1 < 11) AndAnd ( (nn1 >1 >=1=1))n1 = Fix(Val(n1))n1 = Fix(Val(n1))

Сумма 5-й строки:Сумма 5-й строки:

S5=0S5=0

For k=1 to For k=1 to 1122

S5=S5+A(S5=S5+A(55,k),k)

Next kNext k

Максимальный элемент Максимальный элемент 7-й строки.7-й строки.

m7=A(m7=A(77,1): n7=1,1): n7=1

For k=2 to For k=2 to 1122

If a(If a(77,k) > m7 Then,k) > m7 Then

m7=A(m7=A(77,k): n7=k,k): n7=k

End IfEnd If

Next kNext k

Замена строк:Замена строк: 4 4 88A(A(44,1),1) A(A(44,2),2) A(A(44,3),3) …… A(A(44,,1212))

A(A(88,1),1) A(A(88,2),2) A(A(88,3),3) …… A(A(88,,1212))

For k=For k=11 to to 1122

sp=A(sp=A(44,k): A(,k): A(44,k)=A(,k)=A(88,k): ,k): A(A(88,k)=sp,k)=sp

Next kNext k

Задача:Задача: Замена строк (столбцов).Замена строк (столбцов).

Столбцы двумерного массива.Столбцы двумерного массива.

Первый Первый столбец:столбец:

Третий Третий столбец:столбец:

A(1,A(1,11))

A(2,A(2,11))

A(3,A(3,11))

……

A(N,A(N,11))

A(1,A(1,33))

A(2,A(2,33))

A(3,A(3,33))

……

A(N,A(N,33))

Сумма Сумма 44-го столбца:-го столбца:

SS44=0=0

For i=1 to For i=1 to 1100

S4=S4+A(i,S4=S4+A(i,44))

Next iNext i

Минимальный 6-го столбца.Минимальный 6-го столбца.

m6=A(1,m6=A(1,66): n6=1): n6=1

For i=2 to For i=2 to 1100

If A(i,If A(i,66) < m6 Then) < m6 Then

m6=A(i,m6=A(i,66): n6=i): n6=i

End IfEnd If

Next iNext i

Первый Первый столбец:столбец:

Третий Третий столбец:столбец:

A(1,A(1,22))

A(2,A(2,22))

A(3,A(3,22))

……

A(A(1010,,22))

A(1,A(1,55))

A(2,A(2,55))

A(3,A(3,55))

……

A(A(1010,,55))

Замена столбцов:Замена столбцов: 22 55

Замена столбцов:Замена столбцов: 22 55

For i=For i=11 to to 1100

sp=A(i,2)sp=A(i,2)

A(i,2)=A(i,5)A(i,2)=A(i,5)

A(i,5)=spA(i,5)=sp

Next iNext i

Диагональные элементы Диагональные элементы двумерного массивадвумерного массива NxN NxN..

A(1,1)A(1,1) A(1,2)A(1,2) A(1,3)A(1,3) …… A(1,N)A(1,N)

A(2,1)A(2,1) A(2,2)A(2,2) A(2,3)A(2,3) …… A(2,N)A(2,N)

A(3,1)A(3,1) A(3,2)A(3,2) A(3,3)A(3,3) …… A(3,N)A(3,N)

…… …… …… …… ……

A(N,1)A(N,1) A(N,2)A(N,2) A(N,1)A(N,1) …… A(N,N)A(N,N)

Главная (первая) диагональ)Главная (первая) диагональ)

Диагональные элементы Диагональные элементы двумерного массивадвумерного массива NxN NxN..

A(1,1)A(1,1) A(1,2)A(1,2) A(1,3)A(1,3) …… A(1,N)A(1,N)

A(2,1)A(2,1) A(2,2)A(2,2) A(2,3)A(2,3) …… A(2,N)A(2,N)

A(3,1)A(3,1) A(3,2)A(3,2) A(3,3)A(3,3) …… A(3,N)A(3,N)

…… …… …… …… ……

A(N,1)A(N,1) A(N,2)A(N,2) A(N,1)A(N,1) …… A(N,N)A(N,N)

Вторая диагональ:Вторая диагональ:

Сумма диагональных Сумма диагональных элементовэлементов массива массива NxNNxN..

SS11=0: S2=0=0: S2=0

For i=1 to NFor i=1 to N

S1=S1+A(i,i)S1=S1+A(i,i)

S2=S2+A(N-i+1,i)S2=S2+A(N-i+1,i)

Next iNext i

11-я схема замены диагональных -я схема замены диагональных элементовэлементов массива массива NxNNxN..

A(1,1)A(1,1) A(1,2)A(1,2) A(1,3)A(1,3) …… A(1,N)A(1,N)

A(2,1)A(2,1) A(2,2)A(2,2) A(2,3)A(2,3) …… A(2,N)A(2,N)

A(3,1)A(3,1) A(3,2)A(3,2) A(3,3)A(3,3) …… A(3,N)A(3,N)

…… …… …… …… ……

A(N,1)A(N,1) A(N,2)A(N,2) A(N,1)A(N,1) …… A(N,N)A(N,N)

11-я схема замены диагональных -я схема замены диагональных элементовэлементов массива массива NxNNxN..

For i=1 to NFor i=1 to N

sp=A(i,i)sp=A(i,i)

A(i,i)=A(N-i+1,i)A(i,i)=A(N-i+1,i)

A(N-i+1,i)=spA(N-i+1,i)=sp

Next iNext i

2-я схема замены диагональных 2-я схема замены диагональных элементовэлементов массива массива NxNNxN..

Самостоятельно!!Самостоятельно!!

Задача:Задача: определить и выделить определить и выделить в двумерном массиве в двумерном массиве минимальные элементы строк.минимальные элементы строк.

Задача:Задача: Определить и выделить в Определить и выделить в двумерном массиве минимальные двумерном массиве минимальные элементы строк. Записать значения и элементы строк. Записать значения и положение в другой массив.положение в другой массив.

For i = 1 To 10For i = 1 To 10m = a(i, 1): n = 1m = a(i, 1): n = 1For k = 1 To 10For k = 1 To 10If a(i, k) < m ThenIf a(i, k) < m Thenm = a(i, k): n = km = a(i, k): n = kEnd IfEnd IfNext kNext kForeColor = RGB(255, 0, 0)ForeColor = RGB(255, 0, 0)PSet (n * 400, i * 200), RGB(200, 200, 200)PSet (n * 400, i * 200), RGB(200, 200, 200)Print a(i, n)Print a(i, n)ForeColor = RGB(0, 0, 0)ForeColor = RGB(0, 0, 0)b(i, 1) = a(i, n): b(i, 2) = i: b(i, 3) = nb(i, 1) = a(i, n): b(i, 2) = i: b(i, 3) = nNext iNext i

Max

Задача:Задача: Определить и выделить в Определить и выделить в двумерном массиве минимальные двумерном массиве минимальные элементы строк. Записать значения и элементы строк. Записать значения и положение в другой массив. положение в другой массив. Определить максимальный.Определить максимальный.

For i = 1 To 10For i = 1 To 10For k = 1 To 3For k = 1 To 3PSet (k * 400 + 5000, i * 200)PSet (k * 400 + 5000, i * 200)Print b(i, k)Print b(i, k)Next kNext kNext iNext imb = b(1, 1):mb = b(1, 1):For i = 1 To 10For i = 1 To 10If b(i, 1) > mb ThenIf b(i, 1) > mb Thenmb = b(i, 1): ns1 = i: ns2 = b(i, 3)mb = b(i, 1): ns1 = i: ns2 = b(i, 3)End IfEnd IfNext iNext iPSet (5400, 2500), RGB(200, 200, 200)PSet (5400, 2500), RGB(200, 200, 200)Print mb; " "; ns1; " "; ns2Print mb; " "; ns1; " "; ns2

Задача:Задача: Удаление строки со Удаление строки со сдвигом.сдвигом.

If (n>=1) AND (n<10) then If (n>=1) AND (n<10) then For i = n To 9For i = n To 9For k = 1 To 10For k = 1 To 10a(i, k) = a(i + 1, k)a(i, k) = a(i + 1, k)Next kNext kNext iNext iEnd ifEnd if

For k = 1 To 10For k = 1 To 10a(10, k) = 0a(10, k) = 0Next kNext k