Форум программистов, компьютерный форум, киберфорум
Наши страницы

VBA

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Link1518
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 4
#1

Сумма элементов массива, расположенных после последнего отрицательного элемента - VBA

09.12.2011, 19:11. Просмотров 1669. Ответов 3
Метки нет (Все метки)

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

Точнее я сделал код, но к сожалению считается сумма после первого отрицательного элемента. Помогите найти ошибку.

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
Sub PR18()
Dim sum As Single, check As Boolean
Dim A() As Single, n As Integer, i As Single, Str1 As String, Str2 As String
n = InputBox("Введите число элементов массива:", "Определение размера")
ReDim A(n) As Single
Str1 = ""
Str2 = ""
 
'Заполнение массива с клавиатуры и формирование строки
For i = 1 To n
A(i) = Val(InputBox("Введите   " & i & "-ый элемент массива", "Заполнение массива"))
Str1 = Str1 & A(i) & " "
Next
 
'Сумма элементов массива, расположенных после последнего отрицательного элемента
check = False
sum = 0
For i = 1 To n
If A(i) < 0 Then
check = True
ElseIf A(i) > 0 And check = True Then
sum = sum + A(i)
End If
Next
 
MsgBox "Исходный массив: " & Str1 & Chr(13) & "Сумма элементов массива: " & sum, , "Результат"
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2011, 19:11
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сумма элементов массива, расположенных после последнего отрицательного элемента (VBA):

Найти сумму модулей элементов массива, расположенных после первого отрицательного элемента - VBA
Здравствуйте! Дали задачу в дополнение к РГЗ, а я практически не понимаю как ее делать...Помогите пожалуйста, я первое вроде сделал (и...

Произведение элементов массива, расположенных после максимального по модулю элемента - VBA
Привет всем :) Делаю тут задачку и не могу найти ошибку, первое условие выполняется, а вот второе - нет...Постоянно пишет 0 :( Вот само...

Определить среднее арифметическое значение n-го отрицательного и последнего положительного элемента массива - VBA
опр среднее арифметическое значение !-го отрицательного и последнего положит. элемента одномерного массива размером М ХЕЛП!

Вычислить сумму модулей элементов массива, расположенных после первого элемента, равного нулю - VBA
буду очень благодарен за помощь,если еще блок схема будет, то вообще будет прекрасно

Найти разность первого положительного и последнего отрицательного элементов массива - VBA
В заданном векторе (одномерном массиве) найти: разность первого положительного и последнего отрицательного эле- мента ,ввод данных из...

Найти количество элементов, расположенных после минимального элемента матрицы - VBA
Всем привет)) Народ срочно нужна помощь) пожалуйста) вот задание: В матрице А(5,7) найти количество элементов,расположенных после...

3
19vitek
725 / 401 / 56
Регистрация: 19.12.2010
Сообщений: 756
09.12.2011, 20:07 #2
подправил.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub PR18()
Dim sum As Single, check As Boolean
Dim A() As Single, n As Integer, i As Single, Str1 As String
n = InputBox("Введите число элементов массива:", "Определение размера")
ReDim A(n) As Single
Str1 = ""
'Заполнение массива с клавиатуры и формирование строки
For i = 1 To n
A(i) = Val(InputBox("Введите   " & i & "-ый элемент массива", "Заполнение массива"))
Str1 = Str1 & A(i) & " "
Next
For i = 1 To n
If A(i) < 0 Then k = i
Next
'Сумма элементов массива, расположенных после последнего отрицательного элемента
For i = k + 1 To n
sum = sum + A(i)
Next
MsgBox "Исходный массив: " & Str1 & Chr(13) & "Сумма элементов массива: " & sum, , "Результат"
End Sub
1
Казанский
13810 / 5573 / 1405
Регистрация: 24.09.2011
Сообщений: 8,741
09.12.2011, 20:07 #3
Ищите с конца
Visual Basic
1
2
3
4
For i = n To 1 step -1
    If A(i) < 0 Then exit for
    sum = sum + A(i)
Next
Не проверял.
1
Link1518
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 4
09.12.2011, 20:55  [ТС] #4
Благодарю, оба исправленных кода работают на ура
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2011, 20:55
Привет! Вот еще темы с ответами:

Определить количество элементов массива, отличных от последнего элемента - VBA
Sub one() Dim B(20) As Integer Dim i, k As Integer k = 0 For i = 0 To 19 B(i) = Rnd * 20 ThisWorkbook.Sheets(1).Cells(i +...

Вычислить среднее арифметическое элементов, расположенных до максимального элемента массива - VBA
Добрый день. Помогите с кодом. Заранее спасибо. В целочисленном массиве вычислить: сумму квадратов чётных элементов; среднее...

Нахождение третьего отрицательного элемента массива - VBA
помогите пожалуйста решить задачу Дан массив F из 8 элементов. Возвести в квадрат 3 отрицательный элемент. Вывести исходный массив и...

Найти номер первого отрицательного элемента массива - VBA
массив из 10 элементов. найти номер первого отрицательного элемента. максимальный элемент. Помогите пожалуйста составить программу)


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru