Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [VB6]Сортировка массивов, методами Простой и бинарной вставки 
:(
    Опции темы
MelissaHell
Дата 22.5.2011, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 22.5.2011

Репутация: нет
Всего: нет



Код

Public Sub BinaryInsertionSort(Arr() As Long, ByVal n As Long)
Dim Arr(-100 To 100) As Integer

Option Explicit
Dim F As Long
Private Sub Command1_Click()
Dim mass As String
CommonDialog1.Filter = "Текстовый документ (*.txt) Базы данных (*.dat)|*.txt;*.dat"
CommonDialog1.Flags = cdlOFNFileMustExist
CommonDialog1.DialogTitle = "Загрузить текстовый файл"
CommonDialog1.ShowOpen
Picture3.Cls
Picture1.Cls
i = 0
F = FreeFile
Dim Arr(-100 To 100) As Integer
Open CommonDialog1.FileName For Input As #F
Do While Not EOF(F)
    Line Input #F, mass
    i = i + 1
    Arr(i) = Val(mass)
    Picture1.Print Arr(i)
   
Loop
 n = i
For o = 1 To n 'Код создания гистограммы
  Picture3.Line (0, 0 + 20 * o)-(Arr(o), 20 + 20 * o), RGB(205, 0, 0), BF
  Picture3.Line (0, 0 + 20 * o)-(Arr(o), 20 + 20 * o), RGB(28, 28, 28), B
Next
Close #F

End Sub

Private Sub Command2_Click()
n = Val(Text2)
Picture1.Cls
Picture3.Cls
Dim Arr(-100 To 100) As Integer
Rendomize:
For i = 1 To n
Arr(i) = Int(Rnd * (201)) - 1
 Picture1.Print Arr(i)
For o = 1 To n 'код создания гистограммы
  Picture3.Line (0, 0 + 20 * o)-(Arr(o), 20 + 20 * o), RGB(205, 0, 0), BF
  Picture3.Line (0, 0 + 20 * o)-(Arr(o), 20 + 20 * o), RGB(28, 28, 28), B
Next
Next i
End Sub
Private Sub Command3_Click(Index As Integer)
Dim Arr(-100 To 100) As Integer
n = Val(Text3)
Picture1.Cls
Picture3.Cls
    For i = 1 To n
    Arr(i) = InputBox("Введите число", "Заполнение массива")
     Picture1.Print Arr(i)
    Next i
    MsgBox ("Ввод массива окончен")
    For o = 1 To n 'код создания гистограммы
  Picture3.Line (0, 0 + 20 * o)-(Arr(o), 20 + 20 * o), RGB(205, 0, 0), BF
  Picture3.Line (0, 0 + 20 * o)-(Arr(o), 20 + 20 * o), RGB(28, 28, 28), B
Next
End Sub

Private Sub Command4_Click(Index As Integer)' Сортировка бинарной вставкой
Dim Arr(-100 To 100) As Integer
Picture2.Cls
Dim B As Long
Dim C As Long
Dim E As Long
Dim i As Long
Dim j As Long
Dim k As Long
Dim R As Long
On Error GoTo HandlerError
i = 2
Do
 B = 1
 E = i - 1
 C = (B + E) \ 2
 Do While B <> C
  If Arr(C) > Arr(i) Then
   E = C
  Else
   B = C
  End If
  C = (B + E) \ 2
 Loop
 If Arr(B) < Arr(i) Then
  If Arr(i) > Arr(E) Then
   B = E + 1
  Else
   B = E
  End If
 End If
 k = i
 R = Arr(i)
 Do While k > B
  Arr(k) = Arr(k - 1)
  k = k - 1
 Loop
 Arr(B) = R
i = i + 1
Loop Until Not i <= n
Picture2.Print R

HandlerError:
If Err <> 0 Then
 Err.Clear
End If
End Sub

Private Sub Command8_Click() 'Сортировка простой вставкой
Public Sub InsertionSort(mas() As Long, ByVal n As Long)
Picture2.Cls
Dim Arr(-100 To 100) As Integer
Dim i As Long
Dim j As Long
Dim k As Long
Dim R As Long
On Error GoTo HandlerError
i = 2
Do
 j = 1
 Do
  If mas(i) < mas(j) Then
   k = i
   R = mas(i)
   Do
    mas(k) = mas(k - 1)
    k = k - 1
   Loop Until Not k > j
   mas(j) = R
   j = i
  Else
   j = j + 1
   End If
 Loop Until Not j < i
 i = i + 1
Loop Until Not i <= n
HandlerError:
If Err <> 0 Then
 Err.Clear
End If

End Sub


Вот часть кода моей программы, Кнопка1,2,3- ввод массива(тремя способами)
Кнопка4,8- сортировка массива
помогите пожалуйста поставить Picrure2.Print Arr(i) на свое место (сортировка массивов),
И сделать так чтоб программа сортировала массив.

Мне кажется, что программа не видит массив Arr(i), так как на Picture2 он выводил 0.

Оч нужна ваша помощь, сама я додуматься не могу, уже двое суток мучаю и себя и ноут!(((

Это сообщение отредактировал(а) MelissaHell - 22.5.2011, 12:29
PM MAIL   Вверх
Akina
Дата 22.5.2011, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Локальный массив уровня процедуры не даёт работать с одноимённым глобальным массивом уровня модуля.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0876 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.