Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2008, 17:14   #1
Лицеистка
 
Регистрация: 11.01.2008
Сообщений: 9
По умолчанию Qbasic, шифрование

Написали и сдали программу шифрования "из буковок в циферки". Помогите, пжлста, написать "из циферок в буковки" на основе той программы!

Вот "из буковок в циферки":
cls
kl$="йцукенгшщзхъфывапро...(символы даллее, буквы и знаки препинания)..."
DIM a$(LEN(kl$)+100)
FOR i=1 to len (kl$)
a$ (i+99)=MID(kl$, i, 1)
PRINT a$(i+99); i+99; "";
NEXT
PRINT
INPUT n$
For j=1 to len (n$)
k$=MID$(n$, j, 1)
For i=100 to (LEN(kl$)+100)
IF a$(i)=k$ then f$=f$+MID$(STR$(i),2,3)
NEXT
NEXT
PRINT f$

А как теперь наоборот? Последний срок - 23 число, потому что 25 уже сдача, а еще нужно время, чтобы программку выучить и уметь рассказать, о чём она.
Буду очень благодарна, если еще и с объяснениями всё будет. Если есть вопросы, касающиеся программы первой, стучите в асю: 259708102
Лицеистка вне форума Ответить с цитированием
Старый 17.01.2008, 09:22   #2
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Ваш переделанный алгоритм шифрования
без всяких массивов
Код:
kl$ = "qwertyuiopasdfghjklzxcvbnm1234567890-=[];',./"
INPUT n$
f$ = ""
FOR i = 1 TO LEN(n$)
FOR j = 1 TO LEN(kl$)
a1$ = MID$(n$, i, 1)
a2$ = MID$(kl$, j, 1)
IF a1$ = a2$ THEN f$ = f$ + LTRIM$(STR$(j + 99))
NEXT j
NEXT i
PRINT f$
Алгоритм дешифрации тоже как не странно без массивов
Код:
s$ = ""
i = 1
DO
a = VAL(MID$(f$, i, 3)) - 99
s$ = s$ + MID$(kl$, a, 1)
i = i + 3
LOOP UNTIL i > LEN(f$)
PRINT s$
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 17.01.2008, 18:59   #3
Лицеистка
 
Регистрация: 11.01.2008
Сообщений: 9
По умолчанию

СПАСИБО!
Извините, я ничего в этом не понимаю, и, возможно, вопрос покажется глупым, не смейтесь))
Мне нужно, чтобы было так:
вверху отображаются все буковки, которые можно шифровать, каждая под своим собственным номерком. Чтобы потом, когда зашифруешь, можно было бы проверить соответствие буковок и циферок (информатик потом проверяет, напортачили или нет).
Мне нравится программка, которую вы сделали, Plague. Она поменьше, поэтому мне кажется попроще... Пожалуйста! Если можно, сделайте буковки! Красиво как-нибудь, ровненькими столбиками?
Очень-очень буду благодарна!

Последний раз редактировалось Лицеистка; 17.01.2008 в 19:19.
Лицеистка вне форума Ответить с цитированием
Старый 17.01.2008, 20:58   #4
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Код:
CLS
kl$ = "qwertyuiopasdfghjklzxcvbnm1234567890-=[];',./"
FOR i = 1 TO LEN(kl$)
PRINT MID$(kl$, i, 1); i + 99,
NEXT
Так устроит?
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 20.01.2008, 08:03   #5
Лицеистка
 
Регистрация: 11.01.2008
Сообщений: 9
По умолчанию

Спасибо! Столбики очень красивые, только вот программка дешифрации не запускается, пишет, что s$ = s$ + MID$(kl$, a, 1) - неверный выззов функции.
Лицеистка вне форума Ответить с цитированием
Старый 20.01.2008, 12:11   #6
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

kl$, то кто будет указывать в начале программы.
как я понял это ключ к дешифрации
Код:
kl$ = "qwertyuiopasdfghjklzxcvbnm1234567890-=[];',./"  
s$ = ""
i = 1
DO
a = VAL(MID$(f$, i, 3)) - 99
s$ = s$ + MID$(kl$, a, 1)
i = i + 3
LOOP UNTIL i > LEN(f$)
PRINT s$
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 20.01.2008, 13:27   #7
Лицеистка
 
Регистрация: 11.01.2008
Сообщений: 9
По умолчанию

Я все указала... Не выходит и все тут...
Лицеистка вне форума Ответить с цитированием
Старый 21.01.2008, 17:10   #8
Лицеистка
 
Регистрация: 11.01.2008
Сообщений: 9
По умолчанию

Блин... Какие-нибудь еще есть варианты? Программка plaque не работает. Через программку plaquе только из уже зашифрованного снизу выводится слово. Может быть, задумано им было не так, но по-другому программа не работает.
Нужно теперь чтобы я вводила, например, "100" и получала букву "q"!
Лицеистка вне форума Ответить с цитированием
Старый 22.01.2008, 06:34   #9
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Ну надо просто добавить
Код:
INPUT f$
тогда заработает
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 22.01.2008, 10:07   #10
Лицеистка
 
Регистрация: 11.01.2008
Сообщений: 9
По умолчанию

ОГРОМНОЕ СПАСИБО!
Лицеистка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос по QBasic kaf-17 Помощь студентам 2 01.04.2010 20:59
Задачи по QBasic Ванек Помощь студентам 14 08.11.2008 15:00
[QBasic] Вычислить ряд!! toad88 Помощь студентам 1 20.11.2007 00:07
Help me on QBasic. Анимация. toad88 Помощь студентам 2 16.11.2007 21:58