Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 18

В одномерном массиве определить сумму нечетных и отрицательных элементов (подскажите, что не так)

20.12.2010, 22:32. Показов 2313. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я не разбираюсь в программировании, помогите, пожалуйста. Здесь что-то не работает(

В одномерном массиве X, состоящем из N элементов, определить сумму тех элементов,
которые нечетны и отрицательны

Private Sub CommandButton1_Click()
Dim X(1 To N) As Integer
Dim k As Integer
For i = 1 To N
X(i) = Val(Cells(1, i))
Next i
If X(i) Mod 2 = 1 And X(i) < 0 Then
k = k + X(i)
End If
End Sub
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.12.2010, 22:32
Ответы с готовыми решениями:

В одномерном целочисленном массиве найти сумму элементов, количество нечетных отрицательных элементов
Дан одномерный массив целых чисел A размера N=7. Найти и вывести а) сумму его элементов б) количество нечетных отрицательных элементов ...

Поиск произведения нечетных отрицательных элементов в одномерном массиве
Помогите,пожалуйста, разработать приложение поиска произведения нечетных отрицательных элементов в одномерном массиве. Может у кого есть...

В одномерном массиве определите, каких элементов больше – положительных нечетных или отрицательных четных
1. В одномерном массиве, состоящем из n вещественных элементов: 1) определите, каких элементов больше – положительных нечет ных или...

11
2 / 2 / 0
Регистрация: 20.12.2010
Сообщений: 7
20.12.2010, 23:10
Как то так попробуй
Dim X(),N, i As Integer
Dim k As Integer
N = Textbox1.text
ReDim X(1 to N)
For i = 1 To N
X(i) = Val(Cells(1, i))
Next i
If X(i) Mod 2 = 1 And X(i) < 0 Then
k = k + X(i)
End If
End Sub
цифра в textbox1.text зависит от того куда будешь вводить размерность массива
0
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 18
20.12.2010, 23:28  [ТС]
Не работает( Выделяет вот эту строчку и выдает какую-то ошибку(

If X(i) Mod 2 = 1 And X(i) < 0 Then
0
2 / 2 / 0
Регистрация: 20.12.2010
Сообщений: 7
20.12.2010, 23:33
Сор допустил ошибку
Private Sub CommandButton1_Click()
Dim X(),N, i As Integer
Dim k As Integer
k=0
N = Textbox1.text
ReDim X(1 to N)
For i = 1 To N
X(i) = Val(Cells(1, i))
Next i
If X(i) Mod 2 <> 0 And X(i) < 0 Then
k = k + X(i)
End If
End Sub
попробуй так
0
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 18
20.12.2010, 23:37  [ТС]
Так я уже пробовала, тоже не работает...
0
2 / 2 / 0
Регистрация: 20.12.2010
Сообщений: 7
20.12.2010, 23:39
Тебе форму сделать надо или просто код написать?
0
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 18
20.12.2010, 23:42  [ТС]
Код, чтобы он работал
0
2 / 2 / 0
Регистрация: 20.12.2010
Сообщений: 7
20.12.2010, 23:48
Sub prog ()
Dim A(),i,n,k as integer
k=0
n=inputbox("Размер массива")
redim a(1 to n)
for i = 1 to n
A(i)=Val(Cells(1, i))
next i
for i 1 to n
if A(i) mod 2 <> 0 or A(i) < 0 then
k=k+A(i)
end if
next i
msgbox(k)
end sub
Вродь щаз правильно, если нет звиняй я сам ток недавно начал осваивать VBA
1
731 / 407 / 95
Регистрация: 19.12.2010
Сообщений: 756
21.12.2010, 00:01
Юля подправь свой код примерно так
PureBasic
1
2
3
4
5
6
7
8
9
10
11
Dim X(1 To 10) As Integer
Dim k As Integer
k = 1
For i = 1 To 10
X(i) = Cells(1, i)
If (X(i) Mod 2 <> 0) And (X(i) < 0) Then
k = k + X(i)
End If
Next i
Cells(1, 11) = "="
Cells(1, 12) = k
Добавлено через 2 минуты
замени k=1 на k=0
изв не заметил
1
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 18
21.12.2010, 00:09  [ТС]
Всё работает, огромное спасибо!!!
Если не трудно и есть желание, посмотри вот это, пожалуйста.

Положительные элементы матрицы заменить минимальным элементом

Sub m_1()
Min = Матрица(0, 0)
For i = 0 To UBound(Матрица, 1)
For j = 0 To UBound(Матрица, 2)
If Марица(i, j) < Min Then
Min = Матрица(i, j)
End If
Next j
Next i
For i = 0 To UBound(Матрица, 1)
For j = 0 To UBound(Матрица, 2)
If Sgn(Матрица(i, j)) = 1 Then
Матрица(i, j) = Min
End If
Next j
Next i
End Sub

Тоже что-то не работает
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
21.12.2010, 11:42
"Юля",
результат выводится в Excel:
Visual Basic
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
Sub m_1()
Dim Матрица() As Double
Dim i As Long
Dim j As Long
Dim Min As Double
Dim vПлюсМинус As Byte
i = Val(InputBox("Введите количество строк матрицы"))
j = Val(InputBox("Введите количество столбцов матрицы"))
ReDim Матрица(i, j)
Randomize
For i = 0 To UBound(Матрица, 1)
    For j = 0 To UBound(Матрица, 2)
        vПлюсМинус = 2 * Rnd
        If vПлюсМинус = 0 Then
            Матрица(i, j) = Rnd * 1000
        ElseIf vПлюсМинус = 1 Then
            Матрица(i, j) = Rnd * -1000
        End If
    Next j
Next i
Min = Матрица(0, 0)
For i = 0 To UBound(Матрица, 1)
    For j = 0 To UBound(Матрица, 2)
        If Матрица(i, j) < Min Then
            Min = Матрица(i, j)
        End If
    Next j
Next i
For i = 0 To UBound(Матрица, 1)
    For j = 0 To UBound(Матрица, 2)
        If Sgn(Матрица(i, j)) = 1 Then
            Матрица(i, j) = Min
        End If
    Next j
Next i
For i = 0 To UBound(Матрица, 1)
    For j = 0 To UBound(Матрица, 2)
            Cells(i + 1, j + 1) = Матрица(i, j)
    Next j
Next i
End Sub
1
731 / 407 / 95
Регистрация: 19.12.2010
Сообщений: 756
21.12.2010, 17:30
PureBasic
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
Dim mas(0 To 4, 0 To 4)
For i = 0 To UBound(mas, 1)
For j = 0 To UBound(mas, 2)
mas(i, j) = Rnd() * 10 - 3
Cells(i + 1, j + 1) = mas(i, j)
Next j
Next i
Min = mas(0, 0)
For i = 0 To UBound(mas, 1)
For j = 0 To UBound(mas, 2)
If mas(i, j) < Min Then
Min = mas(i, j)
End If
Next j
Next i
For i = 0 To UBound(mas, 1)
For j = 0 To UBound(mas, 2)
If mas(i, j) > 0 Then
mas(i, j) = Min
End If
Next j
Next i
Cells(i + 1, 1) = "min="
Cells(i + 1, 2) = Min
Cells(i + 2, 2) = "Массив после замены"
For i = 0 To UBound(mas, 1)
For j = 0 To UBound(mas, 2)
Cells(i + 2 * UBound(mas, 1), j + 1) = mas(i, j)
Next j
Next i
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.12.2010, 17:30
Помогаю со студенческими работами здесь

В одномерном массиве найти сумму отрицательных элементов
Нужна помощь! Не могу больше. Поправьте пожалуйста!! Задание: В одномерном массиве, состоящем из n вещественных элементов, вычислить: ...

В одномерном массиве вычислить сумму отрицательных элементов
Нужна помощь в решении лабораторных работ по Павловской. В самом предмете не бум-бум. Просьба помочь в решении 5-ти лаб :( Naomocoust,...

В одномерном массиве найти сумму четных и количество нечетных элементов
Дан массив из 20 целых чисел из диапазона [10,100). Найдите в нем сумму четных и количество нечетных элементов.

В одномерном числовом массиве найти сумму нечётных по значению элементов
В одномерном числовом массиве найти сумму всех элементов, имеющих нечетное значение

В целочисленном одномерном массиве найти сумму всех нечетных элементов
Помогите! Помогите! Хулиганы меня отчисляют!:cry:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru