![]() |
|
Модераторы: Akina |
![]()
|
|
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Если кто сможет...
Помогите найти ошибку в программе на Visual Basic: подпрограмма выводит всех однофамильцев, однако, если я введу: Иванов Иванов Петров Петров Сидоров Сидоров , то рограмма выведет: Иванов Иванов Петров Сидоров а надо чтобы Петров - 2 раза и Сидоров - 2 раза. Private Sub Command1_Click() Dim i, j As Long Dim A$(6) Dim max As Long For i = 1 To 6 A(i) = InputBox("") Next i P = 0 max = UBound(A$): exchange = True While exchange = True exchange = True exchange = False For i = 2 To max If A$(i - 1) > A$(i) Then exchange = True P = A$(i - 1) 'меняем местами значение A$(i-1) и A$(i) A$(i - 1) = A$(i) 'по правилу 3-х стаканов A$(i) = P ' End If Next i Wend Cls For i = 1 To max Print A$(i) Print " " Next i i = 0 X: i = i + 1 If A$(i) = A$(i + 1) Then Print "ОДНОФАМИЛЬЦЫ: " + A$(i) Else: GoTo X End If For i = 1 To 6 If A$(i) = A$(i - 1) Then Print "ОДНОФАМИЛЬЦЫ: " + A$(i) End If Next i End Sub -------------------- i_i (';') (V) ![]() |
|||
|
||||
| Xena |
|
|||
|
Unregistered |
Это потому, что у тебя прога неправильно написана.
goto тебе зачем? |
|||
|
||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Извиняй, но как без goto ? Я и так и этак, заколбасило, а ты б че сделал без goto?
-------------------- i_i (';') (V) ![]() |
|||
|
||||
| cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
цикл?
Еще раз напиши, что ты хочешь получить, когда эти данные введешь. Я если честно не очень пока понял... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
| Gannibal |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 742 Регистрация: 15.4.2003 Где: 010101 Репутация: 18 Всего: 17 |
как я понял он хочет чтобы прога выводила сколько раз у него в тексте однафамильцев например два сидорова а и три петрова так он хочет выводить чтобы ему три раза написалось петров и два раза сидоров.. просто вот и всё .. так понял я.. а вот код я непонял
-------------------- Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить! |
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Поясняю код: дело в том, что для вывода однофамильцев следует фамилии отсортировать в алфавитном порядке, что я и сделал, можете пользоваться этим кодом, проверено - работает, короче вопрос: как найти в одномерном массиве повторяющиеся цифры: ввод: 1 2 2 3 4 4 5 и вывод: 2 2, 4 4. В C++ - элементарно - но беда - надо юзать Васик.
-------------------- i_i (';') (V) ![]() |
|||
|
||||
| cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Тогда в VB то уж подавно должно быть элементарно?
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Большое спасибо, работает. Пришлось только подправить код:
у меня ни в какую не работает Debug.Print (или .Assert) - может что-то не так делаю, или VB 6 у меня такой кривой (недавно установил MSDN, так после этого MS Office XP стал спрашивать регистрацию - ни один кряк не работает, пришлось самому №-)). P.S. может я опять чего-то не понял, но зачем в объявлении переменных стоит Dim j As Integer ? Если j нигде не используется, C++ ругался бы как мой препод по программированию Все вопросов больше нет. Это сообщение отредактировал(а) cardinal - 28.12.2004, 14:07 -------------------- i_i (';') (V) ![]() |
|||
|
||||
| Akina |
|
||||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Открой окно отладки - Debug.Print пишет туда. на будущее - рекомендую вместо
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||||
|
|||||||
| cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Так как размер массива особо не известен
Ну это, конечно, просто мусор оставшийся в процессе выдумывания алгоритма. Voldemar2004, пользуйся в будущем подсветкой синтаксиса! -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Нужна свежая мысль:
Есть программка. Вопрос: требуется, чтобы программа выводила информацию об однофамильцах: Имя, Отчество, Класс, Оценка1, Оценка2. Я написал подпрограмму вывода всех фамилий, их сортировку по алфавиту и вывод всех повторяющихся фамилий (благодарю Cardinal'a за помощь). Вопрос такой: информация хранится в файле *.txt, все записано в один столбец, т.е. ======================================================== Петров Петр Петрович 10 А 5 5 Иванов Иван Иваныч 10 Б 3 3 Иванов Иван Петрович 6 А 4 4 Петров Аэсп Михайлович 1 А 5 5 Сидоров Альт Линуксович 2 А 3 3 ======================================================== как вывести Имена, Отчества, классы, и оценку1, оценку2: Однофамильцы: Петров Петр Петрович 10 А 5 5 Аэсп Михайлович 1 А 5 5 Однофамильцы: Иванов Иван Иваныч 10 Б 3 3 Иван Петрович 6 А 4 4 Написано много подпрограмм (типа поиска заданного слова, количества повторяющихся слов и т.п. манипуляций со словами). Заранее благодарен. P.S. Если кто пишет подпрогу сортировки по алфавиту, поиска, поиска по критерию, подсчета слов, то пишите - может помогу чем смогу. -------------------- i_i (';') (V) ![]() |
|||
|
||||
| boevik |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 12 Всего: 35 |
1) Прочитать весь файл в string
2) Разбить на строки
3) Вывести данные.
Это основные блоки которые тебе понадобятся. Остольное уже сам приведи к нужному виду. -------------------- Никогда не говори никогда |
||||||
|
|||||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Благодарю, сейчас попорбую. ROL подарила 5 часов бесплатного инета.
-------------------- i_i (';') (V) ![]() |
|||
|
||||
| Voldemar2004 |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Проверил, не работает строка:
Dim oFSO As New FileSystemObject[/color] компилятор: "объявленный пользователем тип не определен". как я понял
это то же самое что:
потом это хозяйство разбиваем на строки:
ну и далее вывод хотя компилятор ругается, что i,j это внешние переменные и нигде не объявлены. А не проще было произвести построчное считывание с помощью
Добавлено @ 17:59 При вводе
не появляется контекстное меню для облегчения жизни программера: может VB 6 требуется сервис-пак? И еще, есть ли хорошие учебники по VB 6, такие как C++ Builder (в 2-ух томах)Архангельского. -------------------- i_i (';') (V) ![]() |
||||||||||
|
|||||||||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |