Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Очень интересная задача по VBA! Есть мысли? Добавлено: 13.05.06 21:00  

Автор вопроса:  AlonZo
Добрый денЬ!
У меня имеется очень интересная задача. Я над ней голову ломал уже неделю. Может, кто из вас догонит, как её сделать или предложит хорошие идеи по написанию кода?
Задача такая (VBA):
В Поле1 вводится строка (можно фиксированной длины, например 12 символов)
В других полях высвечиваются все символы, которые встречаются в тексте, рассчитываются их количества в тексте и их вероятность.
Затем эти слова зашифровываются с помощью нулей и единиц (тут как раз самое интересное)
После шифрования соответствующая бинарная последовательность выводится в Поле2. А после щелчка на кнопку должна происходить расшифровка в обратную сторону в Поле3. И ещё добавочка: надо, чтобы при изменении бинарной строки, в Поле3 должна выписываться именно то, что должно получиться (в общем, лабуда какая-то, а не то, что было в Поле1 изначально)
Например:
ПОЛЕ1 :Маша – каша.

М 1/12 1101
А 4/12 0
Ш 2/12 101
Пробел 2/12 100
- 1/12 1100
К 1/12 1111
. 1/12 1110

ПОЛЕ2: 11010101010011001001111010101110
ПОЛЕ3: Маша – каша.

При изменении Поля2: 11110101010111001001111010101110
Поле3: Кашаывлв (например)

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #1 Добавлено: 13.05.06 21:16
Ничего интересного не вижу в этой задаче.

Ответить

Номер ответа: 2
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 14.05.06 01:35
HOOLIGAN,эт просто ему задачку задали в школе, вот он и разводит всех, чтоб за него написали..
Ну о-о-о-чень интересная задачка! :-)))

Ответить

Номер ответа: 3
Автор ответа:
 AlonZo



Вопросов: 1
Ответов: 2
 Профиль | | #3 Добавлено: 14.05.06 12:00
Блин, пацаны, мне и не надо, чтобы вы её решали, я прошу всего лишь ценных идей по еёё решению. Но уже если вы такие жлобы, то и Бог с вами. На свете ещё много хороших людей! А от вас, как от "жителей" форума, я такого наезда не ожидал! Norespect!

Ответить

Номер ответа: 4
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #4 Добавлено: 14.05.06 17:30
Вижу здесь только одного жлоба, некоего AlonZo, который не удосужившись прочесть правила форума, создает топик с бессмысленным названием.
Давай своим темам нормальные названия, например: "Шифрование строки".

Ответить

Номер ответа: 5
Автор ответа:
 AlonZo



Вопросов: 1
Ответов: 2
 Профиль | | #5 Добавлено: 14.05.06 19:23
Да я уже понял, что как тему не назови от Вас можно услышать только пафосный возглас о том, что Вы стало быть круче всех, а я - ламер. Я этого и не скрываю, поэтому и прошу помощи (кстати, для меня эта задача действительно интересна). А уж если я отрываю Вас - великого программиста VBA от создания программы планетарногго масштаба, то уж простите. Пойду почитаю книги для ламеров и не буду лезть к профи. Adios loshuiliganos! :-(

Ответить

Номер ответа: 6
Автор ответа:
 ofile



ICQ: 11750095 

Вопросов: 5
Ответов: 15
 Профиль | | #6 Добавлено: 14.05.06 20:53
ни на кого обиду не держи, они не со зла =)
значит так:
берешь значение ячейки, сначала переводишь в коды символов (у каждого символа есть код, который отражается цифрой десятичной системы исчисления), при этом между кодами можно наставить каких-нить символов для обозначения границ цифр каждой буквы (например, граница - " ", настоящий пробел " " )потом переводишь этот код в в двоичный, расшифровка тем же макаром, что еще интересует?

Ответить

Номер ответа: 7
Автор ответа:
 Chan



ICQ: 26977559 

Вопросов: 3
Ответов: 14
 Web-сайт: chan-dzu.chat.ru
 Профиль | | #7
Добавлено: 29.05.06 11:48
Задавай конкретные вопросы, что не получается. Вместо тебя твою задачу здесь никто делать не будет

Ответить

Номер ответа: 8
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #8 Добавлено: 29.05.06 15:36
ох и задачу описал... опять напиваться чтобы понять? ладно... пиво где-то было, щас открою, попробую...

значит так 2:
Как я понял, есть 3 поля...
1) Строка оригинал
2) Строка зашифрованный оригинал
3) Строка расшифрованного поля 2 (зашифр. оригинал)

Шифровать/Расшифровать текст тебе надо двоичной системой исчисления... За тебя ессно небуду, но так уж и быть функцию подкнину...

Function FromDEC$(Numsys, Deci)
Dim CnvStr$: CnvStr$ = ""
Do
Ostatok = Deci Mod Numsys
Deci2 = Deci - Ostatok
Deci2 = Deci2 / Numsys
If Ostatok > 9 Then Osy$ = Chr$((Ostatok - 10) + 65) Else Osy$ = LTrim$(Str$(Ostatok))
CnvStr$ = Osy$ + CnvStr$
Deci = Deci2
Loop Until Deci = 0
FromDEC = CnvStr$
End Function

Function ToDEC(NumSystem, number$)
number$ = UCase$(number$)
DecNum = 0
For Convert = 1 To Len(number$)
SysNum$ = Mid$(number$, Convert, 1)
If Asc(SysNum$) > 64 Then SysNum$ = LTrim$(Str$((Asc(SysNum$) - 65) + 10))
DecNum = DecNum + Val(SysNum$)
If Convert = Len(number$) Then Exit For
DecNum = DecNum * NumSystem
Next Convert
ToDEC = DecNum
End Function


(с) ЦыРакс

глотает любые системы исчисления...

Теперь прохидишь циклом по всему тексту

For i = 1 to len(Поле1)
 'и шифруешь каждый символ, шифр добавляя к полю 2
Поле2 = Поле2 & FromDEC(2,chr(mid(Поле1,i,1)))
next i

расшифровка аналогично, только используй ToDEC

p.s. покопайся в поисковике, найдёшь гораздо быстрее функцию конкретно для перевода в двоичную/с двоичной...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам