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

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Нужна помощь, Visual Basic for Application 
:(
    Опции темы
Глупышка
  Дата 28.6.2006, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 25.2.2006
Где: Москва

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



Народ! Я только начала осваивать программирование на языке Visual Basic for Application... Очень нужна ваша помощь! smile  Как выглядит программа "упорядочить отрицательные элементы А(10)"...? smile  Напишите, если не трудно..? =)) 
PM   Вверх
mihanik
Дата 28.6.2006, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Глупышка!
Приведи, пожалуйста, весь текст задачи, которую ты решаешь.
И потом... Visual Basic for Application - это широкое понятие...
Ты в чём пишешь? В Ехеле? В Аксессе? В Ворде?
 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
cardinal
Дата 28.6.2006, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Модератор: Название темы должно отражать ее суть! 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Глупышка
  Дата 28.6.2006, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 25.2.2006
Где: Москва

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



В Excele... smile 
А задача именно так и звучит: упорядочить отрицательные элементы А(10)... smile   

Это сообщение отредактировал(а) Глупышка - 28.6.2006, 16:05
PM   Вверх
mihanik
Дата 28.6.2006, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Элементы массива откуда брать?
Они расположены ла листе?
Вводятся с клавиатуры?
Считываются из файла?
В каком порядке упорядочивать (возрастание/убывание)?
Задачу понимаю так...
Есть некоторый массив. В нём есть несколько отрицательных элементов.
Упорядочивать только отрицательные элементы, не трогая с места остальные...
 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Глупышка
  Дата 28.6.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 25.2.2006
Где: Москва

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



Цитата(mihanik @ 28.6.2006,  16:21)
Есть некоторый массив. В нём есть несколько отрицательных элементов.
Упорядочивать только отрицательные элементы, не трогая с места остальные...

Скорее всего так... smile 
Мне просто дали задание.. вот в такой формулировке.. и всё... smile 
Видимо, массив А(10) соержит какие-то числа (и положительные, и отрицательные) и нужно упорядочить только отрицательные... smile  
PM   Вверх
~FoX~
Дата 28.6.2006, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

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



Код

Dim a(10) As Integer ' сам массив
Dim i, j, k As Integer 'для циклов
Dim tmp As Integer 'для перестановки ячеек
Randomize Timer ' говорим генератору что он работает от таймера
  For i = 1 To 10 'заполняем массив
    a(i) = -10 + (Rnd * 20)  'числами от -10 до  10
  Next i
  
For j = 1 To 9 'сортируем методом пузырьуа
  For k = J To 10
     If (a(j) < 0) And (a(j) < a(k)) Then ' если число отрицательное (<0) и первое число меньше второго  a(j) < a(k)
       tmp = a(j)  ' то меняем их местами
       a(j) = a(k)
       a(k) = tmp
     End If
  Next k
Next j
  
  
  For i = 1 To 10
    Debug.Print a(i) ' выводим результат
  Next i



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

Это сообщение отредактировал(а) ~FoX~ - 28.6.2006, 16:56


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Глупышка
Дата 28.6.2006, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 25.2.2006
Где: Москва

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



А что такое Randomize Timer, Rnd  и tmp..? smile  
PM   Вверх
~FoX~
Дата 28.6.2006, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

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



Я там поправил чуть
randomize timer - для генерации случайного числа от таймера - чтоб не повторялись при перезапуске
rnd - сам гениратор случайных чисел
tmp - просто для того чтоб переставить элдименты массива - называется сортировка пузыркем  - в твоем случае камушком  

Это сообщение отредактировал(а) ~FoX~ - 28.6.2006, 16:46


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
mihanik
Дата 28.6.2006, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Итак...
Формулирую условие.
На первом листе в столбце A содержиться 10 чисел (в ячейках с А2 по А11)
Рядом находиться кнопка, по нажатию на которую всё и начинается...

Код

Attribute VB_Name = "Module1"

Private Sub CommandButton1_Click()
Dim intNegativeCount As Integer ' количество отрицательных элементов массива
Dim dblMassive(10) As Double    ' Массив для временного хранения отрицательных элементов
Dim dblTmp As Double            ' Временная переменная для "Пузырька"
Dim I As Integer, II As Integer ' Переменные для циклов

' Считаем сначала все отрицательные элементы во временный массив.
    intNegativeCount = 0
    For I = 1 To 10
        If Val(Sheets(1).Cells(1 + I, 1).Value) < 0 Then
            intNegativeCount = intNegativeCount + 1
            dblMassive(intNegativeCount) = Val(Sheets(1).Cells(1 + I, 1).Value)
        End If
    Next I

    MsgBox intNegativeCount

' Если intNegativeCount < 2, то сортировать смысла не имеет, и мы посто завершаем работу процедуры..
    If intNegativeCount < 2 Then Exit Sub

' Сортируем Массив "пузырьком", ну, например, по возрастанию...
    For I = 1 To intNegativeCount - 1
        For II = 1 To intNegativeCount - 1
            If dblMassive(II) > dblMassive(II + 1) Then
                dblTmp = dblMassive(II)
                dblMassive(II) = dblMassive(II + 1)
                dblMassive(II + 1) = dblTmp
            End If
        Next II
    Next I
    
' А теперь пробегаем по массиву, и если в нём находим отрицательный элемент,
' то заменяем его очередным элементом массива...

    II = 2
    For I = 1 To intNegativeCount
        While Val(Sheets(1).Cells(II, 1).Value) >= 0
            II = II + 1
        Wend
        Sheets(1).Cells(II, 1).Value = dblMassive(I)
        II = II + 1
    Next I
    
End Sub


 

Это сообщение отредактировал(а) mihanik - 28.6.2006, 16:56


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Глупышка
Дата 28.6.2006, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 25.2.2006
Где: Москва

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



Как всё сложно.. smile  А проще нельзя..? smile  Для такие как я... smile  
(С самыми элементарными операторами, переменными, без кнопок.. на 1 листе...)... 

Это сообщение отредактировал(а) Глупышка - 28.6.2006, 17:04
PM   Вверх
mihanik
Дата 28.6.2006, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



М-да-а-а...

Глупышка!

Тебе надо задачу решить, или показать какая ты гламурненькая?

Разбирайся уже!!!
Задача-то решена!
 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Глупышка
Дата 28.6.2006, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 25.2.2006
Где: Москва

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



mihanik, решена.. smile  но не так, как мы обычно на парах решали.. smile  Да и объяснить я не смогу... smile 
Так что... smile  
PM   Вверх
cardinal
Дата 28.6.2006, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



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


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
~FoX~
Дата 29.6.2006, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

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



Цитата(Глупышка @  28.6.2006,  18:40 Найти цитируемый пост)
 но не так, как мы обычно на парах решали.

Хмм....а как вы на парах решали? Примерчик приведи, а мы посмотрим.....Хотя то что тут написали элиментарно и вполне подойдет для любова учереждения. 
[off]
К стати
Цитата

' Сортируем Массив "пузырьком", ну, например, по возрастанию...
    For I = 1 To intNegativeCount - 1
        For II = 1 To intNegativeCount - 1
            If dblMassive(II) > dblMassive(II + 1) Then


Очень странный пузырек
[/off] 

Это сообщение отредактировал(а) ~FoX~ - 29.6.2006, 08:08


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
mihanik
Дата 29.6.2006, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



~FoX~ 
Цитата

Очень странный пузырек


Ну... Жизнь вообще странная штука....

Но, ведь, работает же! smile 
 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
~FoX~
Дата 29.6.2006, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

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



[offtop]
Гы, ну вобщем то конечно работает, только вот лишние разы ты пробегаешь по массиву
http://algolist.manual.ru/sort/bubble_sort.php
[/offtop] 


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
mihanik
Дата 29.6.2006, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



~FoX~ !

Ну... Да!

Я рассудил так...
1. человек только-только учиться.
2. Этот НЕОПТИМИЗИРОВАННЫЙ вариант пузырька студенты на занятиях изучают первым, а уже потом его модифицируют и доводят до ума.

Т.е. я опустился до уровня Глупышки и постарался говорить на более-менее понятном языке.

Нес па?

Или больше так не делать? 

ЗЫ.
По-моему Глупышка уже "отвалилась" от этой темы. smile 
Может и нам её закрыть? smile  

Это сообщение отредактировал(а) mihanik - 29.6.2006, 10:18


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Akina
Дата 29.6.2006, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(mihanik @  29.6.2006,  11:15 Найти цитируемый пост)
Может и нам её закрыть? 

Ок. По заявкам трудящихся...

PS. Чего я эту тему раньше пропустил? 


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

PM MAIL WWW ICQ Jabber   Вверх
Страницы: (2) [Все] 1 2 
Закрытая темаСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

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


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

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


 




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


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

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