Другие языки программирования и технологии

Вопрос по Visual Basic! Очень нужна ваша помощь! Внутри (+)

Как в VB сделать это:
В одномерном массиве, который состоит из N действительных элементов, вычислить:
1) минимальный элемент массива;
2) сумму элементов массива, расположенных между первым и последним положительными элементами.
Преобразовать массив таким образом, чтобы сначала размещались все элементы, которые равны нулю, после чего - все остальные.
На экран вывести: исходный массив; вычисленные значения и преобразованный массив.
Георгий Капиев
Георгий Капиев
34 261
1) Переменной минимума присвоить значение первого элемента, далее в цикле проверять каждый элемент, и если он меньше минимального, то присвоить минимальному значение текущего элемента.
2) Перебираем массив с начала, найдя первый положительный элемент с помощью условного оператора IF запоминаем его индекс в первую переменную и выходим из цикла. Повторяем те же действия, но перебирая массив с конца.
Далее считаем в цикле сумму элементов между первым запомненным индексом плюс один и вторым запомненным индексом минус один.

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

Вывод осуществляется по ходу программы, думаю как его производить объяснять не стоит.
[.
[Сержиk ....]
75 854
Лучший ответ
Георгий Капиев А вот это правильно?
http://otvet.mail.ru/comments/answer/458187618/?begin_comment=1
1. 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

Option Explicit
Dim A() As Integer, i As Integer, j As Integer, n As Integer, m As Integer
Dim max As Integer, sum As Integer, b As Integer
Private Sub Command1_Click()
Randomize 'Иницилизация генератора случайных чисел
Cls 'Очищаем форму
n = InputBox("Vvedite n", , 10)
sum = 0
ReDim A(n) ' Размеры массивов
Print "Massiv A(n)"
For i = 1 To n
A(i) = Int(Rnd * 101 - 50) 'Заполняем массив случайными числами
Print A(i); vbTab;
Next i
max = A(1)
For i = 1 To n
If max < A(i) Then max = A(i): b = i
Next i
Print
Print "Максимальный элемент массива A (" & b & ") = " & max;
For i = 1 To n
If A(i) > 0 Then b = i
Next i
Print
Print "Последний положительный элемент массива A (" & b & ") = " & A(b);
For i = 1 To b - 1
sum = sum + A(i)
Next i
Print
Print "Сумма до последнeго положительного элемента массива A ="; sum
End Sub

SoftIce вне форума
_________________________________________________________________________

2. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Private Sub Command1_Click()
n = 25
ReDim a(n)
For i = 1 To n
Select Case i
Case 1: a(1) = 0
Case 2: a(2) = 4
Case Else
a(i) = a(i - 1) - 3 * a(i - 2)
If a(i) < 0 Then
S = S + a(i)
Me.ForeColor = vbRed
Else
ForeColor = 0
End If
End Select
Print "a("; i; ") = "; Tab(20); a(i)
Next i
Print: Print "S="; S
End Sub