Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Массивы в VBA! Help, please!!! / 7 сообщений из 7, страница 1 из 1
09.06.2007, 17:32:19
    #34586647
Русик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы в VBA! Help, please!!!
Здравствуйте! Пожалуйста помогите мне в написании программы:

Дана квадратная целочисленная матрица порядка n. Сформировать
результирующий одномерный массив, элементами которого являются строчные суммы тех строк, которые начинаются с k идущих подряд положительных чисел.
...
Рейтинг: 0 / 0
09.06.2007, 18:41:34
    #34586770
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы в VBA! Help, please!!!
РусикЗдравствуйте! Пожалуйста помогите мне в написании программы:

Дана квадратная целочисленная матрица порядка n. Сформировать
результирующий одномерный массив, элементами которого являются строчные суммы тех строк, которые начинаются с k идущих подряд положительных чисел.

Незнаю может как нибуть по другому можно, но я простой пример на скорую руку накидал, посмотри мож пригодится.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
Sub matrica()
Dim n&, i&, j&, k&, x&
Dim myarray As Variant, newarray As Variant
Dim Proverka As Boolean, Summa As Long
n =  10 
k =  6 
x =  0 
Summa =  0 

ReDim myarray(n -  1 , n -  1 )
ReDim newarray(x)

For i =  0  To n -  1 
 For j =  0  To n -  1 
  myarray(i, j) = Cells(i +  1 , j +  1 ).Value
 Next j
Next i

For i =  0  To n -  1 

Proverka = True

 For j =  0  To k -  1 
  If myarray(i, j) <=  0  Then Proverka = False
 Next j
   
 If Proverka Then
   For j =  0  To n -  1 
    Summa = Summa + myarray(i, j)
   Next
   ReDim Preserve newarray(x)
   newarray(x) = Summa
   Summa =  0 
   x = x +  1 
 End If

Next i


For i =  0  To x -  1 
  Range("M" & i +  1 ).Value = newarray(i)
Next i

End Sub
...
Рейтинг: 0 / 0
10.06.2007, 12:20:44
    #34587098
Русик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы в VBA! Help, please!!!
Спасибо большое за ответ. Но мне нужна прога для VBA, т.е. я захожу в
Excel, затем Сервис=>Макрос => Редактор Visual Basic. Просто, то что ты
написал у меня не работает
...
Рейтинг: 0 / 0
13.06.2007, 08:26:06
    #34590579
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы в VBA! Help, please!!!
РусикСпасибо большое за ответ. Но мне нужна прога для VBA, т.е. я захожу в
Excel, затем Сервис=>Макрос => Редактор Visual Basic. Просто, то что ты
написал у меня не работает

Тогда ты просто не знаешь как с этим работать
...
Рейтинг: 0 / 0
13.06.2007, 09:27:17
    #34590694
udgeen69
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы в VBA! Help, please!!!
Deggasad РусикСпасибо большое за ответ. Но мне нужна прога для VBA, т.е. я захожу в
Excel, затем Сервис=>Макрос => Редактор Visual Basic. Просто, то что ты
написал у меня не работает

Тогда ты просто не знаешь как с этим работать

Сессия... Студенты обострились:)
...
Рейтинг: 0 / 0
13.06.2007, 10:16:37
    #34590835
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы в VBA! Help, please!!!
А так!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
Option Explicit

Sub matrica()
Dim n&, i&, j&, k&, x&
Dim myarray As Variant, newarray As Variant
Dim Proverka As Boolean, Summa As Long
Dim str1 As String, str2 As String

n = InputBox("Введите порядок матрицы", "Ввод",  1 )
k = InputBox("Введите кол-во идущих подряд полож. чисел", "Ввод",  2 )

If k > n Then
 MsgBox "фигня, т.к. k > n"
 Exit Sub
End If

x =  0 
Summa =  0 

ReDim myarray(n -  1 , n -  1 )
ReDim newarray(x)

For i =  0  To n -  1 
 For j =  0  To n -  1 
  myarray(i, j) = (- 1 ) ^ Int( 2  * Rnd +  1 ) * Int( 50  * Rnd +  1 )
  str1 = str1 & myarray(i, j) & " "
 Next j
Next i

For i =  0  To n -  1 

Proverka = True

 For j =  0  To k -  1 
  If myarray(i, j) <=  0  Then Proverka = False
 Next j
   
 If Proverka Then
   For j =  0  To n -  1 
    Summa = Summa + myarray(i, j)
   Next
   ReDim Preserve newarray(x)
   newarray(x) = Summa
   str2 = str2 & newarray(x) & " "
   Summa =  0 
   x = x +  1 
 End If

Next i

MsgBox "Начальный массив: " & Chr( 13 ) & str1 & Chr( 13 ) & "Полученный массив:" & Chr( 13 ) & str2 _
,  65 , "Результат"

End Sub
...
Рейтинг: 0 / 0
13.06.2007, 16:13:28
    #34592320
Русик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы в VBA! Help, please!!!
Deggasad большое спасибо!!! Я сдал!!! Хотя все равно немного по своему сделал!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Массивы в VBA! Help, please!!! / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]