Форум Понедельник, 20.05.2024, 01:22
Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Peri4  
Форум » Visual Basic » Вопросы » Помогите,пожалуйста! (Задача)
Помогите,пожалуйста!
ItopaДата: Суббота, 03.01.2009, 21:11 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 3
Репутация: 0
Замечания: 0%
Статус: Offline
Помогите, пожалуйста, сделать задание в бэйсике!!! surprised "Отрицательные элементы массива расположить в порядке убывания их модулей(не меняя местоположение положительных элементов" Только пожалуйста весь програмный код полностью.
 
Peri4Дата: Суббота, 03.01.2009, 21:32 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 51
Репутация: 1
Статус: Offline
Вопрос: тебе с комментариями или без?
И что мне за это будет? smile
Да, и какими средствами будет проходить ввод массива?
 
ItopaДата: Воскресенье, 04.01.2009, 10:55 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 3
Репутация: 0
Замечания: 0%
Статус: Offline
С комментариями желательно... Заранее ОГРОМНОЕ ОГРОМНОЕ спасибо! happy Выручайте...
 
Peri4Дата: Воскресенье, 04.01.2009, 23:10 | Сообщение # 4
Admin
Группа: Администраторы
Сообщений: 51
Репутация: 1
Статус: Offline
Держи)

Public Sub MySort(ByRef Arr() As Single)
'Что нужно иметь под рукой:
'парочку Long, временную Single,
'временный массив и его размер tacnt
Dim TmpArr() As Single
Dim tacnt As Long
Dim i As Long
Dim j As Long
Dim tmp As Single

'создаём массив индексов отрицательных элементов
tacnt = -1
ReDim TmpArr(0) As Single

'динамически расширяем временный массив и записываем в него
'индексы отрицательных элементов исходного массива
For i = 0 To UBound(Arr(), 1)
If Arr(i) < 0 Then
tacnt = tacnt + 1
If tacnt > 0 Then ReDim Preserve TmpArr(tacnt) As Single
TmpArr(tacnt) = i
End If
Next

'если отрицательных нет, валим отсюда
If tacnt = -1 Then Exit Sub

'обычная сортировка пузырьком, но вместо
'индексов сортируемого массива используем
'элементы временного массива
For i = 0 To tacnt - 1
For j = tacnt To i Step -1
If Abs(Arr(TmpArr(i))) < Abs(Arr(TmpArr(j))) Then
tmp = Arr(TmpArr(i))
Arr(TmpArr(i)) = Arr(TmpArr(j))
Arr(TmpArr(j)) = tmp
End If
Next
Next
End Sub

 
ItopaДата: Понедельник, 05.01.2009, 11:27 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 3
Репутация: 0
Замечания: 0%
Статус: Offline
СПАСИБО!!! good hello heart roll
 
Форум » Visual Basic » Вопросы » Помогите,пожалуйста! (Задача)
  • Страница 1 из 1
  • 1
Поиск:

Copyright Peri4 © 2007 Сайт управляется системой uCoz