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

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

Дана квадратная целочисленная матрица порядка 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
Массивы в VBA! Help, please!!!
    #34587098
Русик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое за ответ. Но мне нужна прога для VBA, т.е. я захожу в
Excel, затем Сервис=>Макрос => Редактор Visual Basic. Просто, то что ты
написал у меня не работает
...
Рейтинг: 0 / 0
Массивы в VBA! Help, please!!!
    #34590579
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РусикСпасибо большое за ответ. Но мне нужна прога для VBA, т.е. я захожу в
Excel, затем Сервис=>Макрос => Редактор Visual Basic. Просто, то что ты
написал у меня не работает

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

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

Сессия... Студенты обострились:)
...
Рейтинг: 0 / 0
Массивы в VBA! Help, please!!!
    #34590835
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так!
Код: 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
Массивы в VBA! Help, please!!!
    #34592320
Русик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deggasad большое спасибо!!! Я сдал!!! Хотя все равно немного по своему сделал!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Массивы в VBA! Help, please!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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