Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - [решено] Помогите с задачкой на VB!

Ответить
Настройки темы
VBA - [решено] Помогите с задачкой на VB!
Dim Dim вне форума

Аватара для Dim

Новый участник


Сообщения: 31
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: jpg gluks.jpg
(21.0 Kb, 15 просмотров)
Всем привет!
Я в школе работаю, решил детям вот такую задачку дать на Visual Basic:
Написать программу, печатающую на экране все символы веденного предложения, кроме символа "в".

Собственно код:
Цитата:
Private Sub Command1_Click()
Dim a As String
Dim c As String
Dim b As Integer
a$ = Text1.Text
b = 1
While b < Len(a$)
c$ = Mid(a$, b, 1)
If c <> "в" Then Form1.Print c$;
b = b + 1
Wend
End Sub
Результат в аттаче.

И вопрос: куда девается последний символ? так должно быть, или я чего-то недопонимаю?

Отправлено: 22:53, 16-04-2009

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Цитата Dim:
While b < Len(a$) »
А почему не меньше либо равно? b <= Len(a$)? Вы же как раз тут и теряете последний символ.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:18, 17-04-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

Dim Dim вне форума Автор темы

Аватара для Dim

Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Помогло.
Большое Вам спасибо!

Отправлено: 07:49, 17-04-2009 | #3


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Dim, для спасибо есть такая кнопочка под ответом - "полезное сообщение"

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 07:58, 17-04-2009 | #4


Аватара для Pliomera

Технолог


Сообщения: 819
Благодарности: 117

Профиль | Отправить PM | Цитировать


Цитата Dim:
или я чего-то недопонимаю? »
Вы действительно чего-то недопонимаете.
Весь Ваш код записывается одним-единственным оператором:

Private Sub Command1_Click()
Form1.Print Replace(Text1, "в", "")
End Sub

Вы же нафигачили туда аж три переменных разных типов и цикл.
Вы просто сами не знаете предмета, которому пытаетесь учить детей, и засираете им мозги, сорри, накипело...

Отправлено: 10:06, 17-04-2009 | #5


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


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

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:32, 17-04-2009 | #6


Аватара для Pliomera

Технолог


Сообщения: 819
Благодарности: 117

Профиль | Отправить PM | Цитировать


Delirium, согласен, погорячился.
Dim, приношу свои извинения за резкость.

Просто работать с такими "учениками" - сплошное мучение. И тратить личное время на "переучивание" таких "учеников" - не фонтан. И "переучиванию" они практически не поддаются.

Отправлено: 16:55, 17-04-2009 | #7


Новый участник


Сообщения: 1
Благодарности: 1

Профиль | Отправить PM | Цитировать


Доброго времени суток!
К сожалению я не знаком с VB, но есть опыт по другим языкам!
Может быть Вы подсчитываете количество символов в предложении, но не учитываете, что последний символ - это символ конца строки (по-крайней мере в ассемблере так). Попробуйте указать количество символов в предложении на один больше, и у Вас скорее всего всё получится!
Удачи!
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:14, 22-04-2009 | #8


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Artjem, в VB для элемента Text1 понятия конца строчки как такового нет.
Тут другой момент, нумерация массива в VB начинается с 1, а не с 0. По этому, как заметил Delirium нужно включать граничное значение, а не только брать меньше него.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:21, 22-04-2009 | #9


Аватара для Pliomera

Технолог


Сообщения: 819
Благодарности: 117

Профиль | Отправить PM | Цитировать


Цитата Admiral:
нумерация массива в VB начинается с 1, а не с 0. »
Опа-на! С чего это вдруг? По умолчанию, как раз-таки с 0. Можно задать нумерацию массива с единицы принудительно - используя в декларативной части любого модуля конструкцию Option Base 1

В рассматриваемом случае массивы вообще не при чем, есть совершенно четко и ясно описанный синтаксис оператора Len, возвращающий длину строки в символах.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:18, 23-04-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - [решено] Помогите с задачкой на VB!

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Slackware - [решено] Помогите с openvpn Trinux Общий по Linux 4 03-12-2009 17:13
[решено] Помогите с выбором. Oxotnik_D Цифровое изображение 2 28-05-2009 13:07
Прочее - [решено] Помогите с запросом. Butunin Klim Microsoft Exchange Server 5 07-05-2009 14:12
Установка - [решено] Помогите восстановить XP Bester Microsoft Windows 2000/XP 13 13-09-2007 23:08
[решено] Помогите советом... vizir Ноутбуки 22 04-09-2006 11:36




 
Переход