IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> слова в тексте задом наперед VB
kyzia
сообщение 13.4.2010, 12:07
Сообщение #1


Школьник
*

Группа: Продвинутые
Сообщений: 27
Регистрация: 6.4.2010
Город: москва
Учебное заведение: мгу



Как написать программу, которая записывала бы слова в тексте задом наперед.
Пример:
Исходный:hello, my dear friend!
Результат:olleh, ym raed dneirf!
в чем еще сложность, что разделители должны оставаться на своих местах.
Что посоветуете, какой алгоритм?
В принципе представляю процесс: находит слово до разделителя, переворачивает, вписывает в строку, после разделитель вписывает, затем берется за другое слово. Напечатать слово задом наперед не проблема, а вот чтобы его вытащить и заново редактированное вставить на место никак.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Евгений М.
сообщение 13.4.2010, 12:31
Сообщение #2


Студент
**

Группа: Продвинутые
Сообщений: 199
Регистрация: 6.11.2009
Город: Уфа
Вы: студент



Попробуйте следующее:
Находим слово (точнее расположение первой и последней букву) и присвиваем значение этого слова к временной переменной.
Далее попробуйте сами догадаться
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kyzia
сообщение 13.4.2010, 12:44
Сообщение #3


Школьник
*

Группа: Продвинутые
Сообщений: 27
Регистрация: 6.4.2010
Город: москва
Учебное заведение: мгу



Цитата(Евгений М. @ 13.4.2010, 16:31) *

Попробуйте следующее:
Находим слово (точнее расположение первой и последней букву) и присвиваем значение этого слова к временной переменной.
Далее попробуйте сами догадаться

я не понял это флуд или что? у меня разве другие рассуждения о алгоритме.
может кто нибудь по конкретнее напишет, ну типа блок схемы или код сразу.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Евгений М.
сообщение 13.4.2010, 12:52
Сообщение #4


Студент
**

Группа: Продвинутые
Сообщений: 199
Регистрация: 6.11.2009
Город: Уфа
Вы: студент



Ну ладно, видимо ваш алгоритм неправильно понял...
Пример: hello, my dear friend!
После нахождения слова "hello" присваеиваем это слово к какой нибудь временной переменной. Переворачиваем это слово. Далее мы должны получить "olleh, my dear friend!"
Т.е. новая строка состоит из символов, которые были до первой буквы, перевернутое слово (которое содержится во временной переменной) и символы, которые находятся после последней буквы переворачиваемого слова в исходном тексте.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kyzia
сообщение 13.4.2010, 13:12
Сообщение #5


Школьник
*

Группа: Продвинутые
Сообщений: 27
Регистрация: 6.4.2010
Город: москва
Учебное заведение: мгу



Цитата(Евгений М. @ 13.4.2010, 16:52) *

Ну ладно, видимо ваш алгоритм неправильно понял...
Пример: hello, my dear friend!
После нахождения слова "hello" присваеиваем это слово к какой нибудь временной переменной. Переворачиваем это слово. Далее мы должны получить "olleh, my dear friend!"
Т.е. новая строка состоит из символов, которые были до первой буквы, перевернутое слово (которое содержится во временной переменной) и символы, которые находятся после последней буквы переворачиваемого слова в исходном тексте.

ну это все понятно, написание кода не получается
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 13.4.2010, 16:13
Сообщение #6


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



Цитата(kyzia @ 13.4.2010, 12:44) *

я не понял это флуд или что? у меня разве другие рассуждения о алгоритме.
может кто нибудь по конкретнее напишет, ну типа блок схемы или код сразу.



Читаем правила)))
Помощь оказывают только при наличии собственных наработок))
В VB.NET есть уже готовые средства для переворота строк. В VB6... не помню
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kyzia
сообщение 13.4.2010, 17:38
Сообщение #7


Школьник
*

Группа: Продвинутые
Сообщений: 27
Регистрация: 6.4.2010
Город: москва
Учебное заведение: мгу



Цитата(Vahappaday @ 13.4.2010, 20:13) *

Читаем правила)))
Помощь оказывают только при наличии собственных наработок))
В VB.NET есть уже готовые средства для переворота строк. В VB6... не помню


да нет проблем=)
вот просто переворачивает слово
Исходный код

Private Sub cmd1_Click()
Dim a As String, t As String, s As String
t = txt1.Text
s = ""
For i = Len(t) To 1 Step -1
a = Mid(t, i, 1)
s = s & a
Next i
txt1.Text = s
End Sub

ну вначале можно переменную с разделителями задать
s = "`1234567890-=[]\';/.~!@#$%^&*()_+{}|?><-;:""«»,"
потом с помощью instr поискать в тексте разделитель......
ну вообщем у меня бред какой то получался
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 13.4.2010, 21:14
Сообщение #8


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



1. Реализовать функцию Reverse (у Вас уже получилось)) Осталось вынести в функцию)
2. Реализовать функцию IsSplitSymbol(a as String) as Boolean - проверяет, является ли строка разделителем.
3. Завести две Integer переменных - одна хранит начало текущего слова, другая его длину:
Dim myStart, myLen as Integer


Пробегаем по строчке слева направо:
Если текущий символ - разделитель:
Дописываем к рез. строке Reverse(Mid(t,myStart, myLen))
Дописываем символ к результирующей строке
myLen=0
myStart = i+1
Если текущий символ - не разделитель
myLen=myLen+1

Повторю вопрос: это VB6 или уже VB.NET
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kyzia
сообщение 14.4.2010, 12:48
Сообщение #9


Школьник
*

Группа: Продвинутые
Сообщений: 27
Регистрация: 6.4.2010
Город: москва
Учебное заведение: мгу



Цитата(Vahappaday @ 14.4.2010, 1:14) *

Повторю вопрос: это VB6 или уже VB.NET

vb6
почему все так мудрено у вас? я только в начале изучения языка и таких функций не знаю. В моем коде, который выкладывал все просто, простые функции и переменных по минимуму, например Len, Mid, InStr и т.д.
А программку написал я. И обошлось все двумя циклами и одним условием. В одном цикле вырезает слово, в другом переворачивает его, а потом выводит вместе с разделителем.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 14.4.2010, 18:31
Сообщение #10


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



хм.... в общем-то замечательно...
у Вас работает если 2 и более разделителей подряд?

У меня на самом деле ничего мудрёного, я лишь предложил написать парочку своих функций.
Просто я писал на VB в школе, а сейчас перешёл на C/C#, до толкового C++ не дошёл, к сожалению, и привык пользоваться функциями.

Впрочем, рад , что у Вас получилось.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 3.5.2024, 12:13

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru