Массивы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Phibio Optic
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 25.09.2005 (Вс) 20:22

Массивы

Сообщение Phibio Optic » 25.09.2005 (Вс) 20:25

Требуется написать программу как можно проще, без каких-либо выкрутас:

Задан одномерный массив размерностью N. Вывести на экран эелементы массива в строчку, расположив их по убыванию их значений. Определить количество чисел, расположеных между первым максимальным и последним минимальноым среди отрицательных и их сумму

Помогите написать программу. Спасибо.!!

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 25.09.2005 (Вс) 20:32

программы на заказ стоят дорого 8) плати деньги :D
ХЎ

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.09.2005 (Вс) 20:50

Двоечник, блин... :neutral:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Phibio Optic
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 25.09.2005 (Вс) 20:22

Сообщение Phibio Optic » 25.09.2005 (Вс) 20:54

Лана отбой. Тогда хотя бы вот это подправьте, если не трудно?
Спасибо..

Conts VectorSize = 20 'Длина исходного вектора

Dim A(VectorSize) 'Исходный массив (предполагается уже заполненным значениями)
Dim B(VectorSize) 'Массив для сортировки
Dim I, J 'Счетчики циклов
Dim MinInd, MaxInd 'Индекс минимального и максимального отрицательных значений
Dim S 'Сумма отрицательных значений между --"--

'Инициализируем массив индексов перед сортировкой
For I = 1 To VecorSize
B(I) = I
Next I

'Пузырьковая сортировка по убыванию индексов (не значений!)
For I = 1 To VectorSize - 1
For J = VectorSize To I + 1
If A(B(J)) > A(B(I)) Then
Swap(B(I), B(J)) 'По моему процедура Swap была в ранних Бейсиках
End If
Next J
Next I

'Выводим вектор в порядке убывания, заодно найдем индексы первого максимального отрицательного значения, так как минимальное значение очевидно последнее из-за сортировки
MaxInd = 0
For I = 1 To VectorSize
Print A(B(I)); " ";
If (MaxInd <> 0) And (A(B(I)) < 0) Then 'А вот и первый отрицательный максимум
MaxInd = B(I)
End If
Next I

'На всякий случай проверим, а есть ли отрицательные числа в векторе?
If A(B(VectorSize)) < 0 Then
MinInd = B(VectorSize)
Else
MinInd = 0
End If

'Считаем сумму
S = 0
If Abs(MaxInd - MinInd) > 1 Then 'Есть числа между максимумом и минимумом
If MinInd < MaxInd Then
For I = MinInd + 1 To MaxInd - 1
S = S + A(I)
Next I
Else
For I = MaxInd + 1 To MinInd - 1
S = S + A(I)
Next I
End If
Print "Меджу первым отрицательным максимумом и последним минимумом "; Abs(MaxInd - MinInd) - 1; " чисел, их сумма равна "; S
Else
Print "Нет отрицательных чисел среди значений исходного вектора!"
End If

End

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 25.09.2005 (Вс) 23:40

Какой интересный диалект... Это, случаем, не для ZX Spectrum?

Phibio Optic
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 25.09.2005 (Вс) 20:22

Сообщение Phibio Optic » 26.09.2005 (Пн) 8:57

Всем пасиба. Вопрос снят. Добрый человек под корректировал мои старания.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 116

    TopList