|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.11.2011, 15:55 | #1 |
Пользователь
Регистрация: 06.11.2011
Сообщений: 25
|
Работа со строкой
1) Составить процедуру, которая позволяет зашифровать слово из клетки А11. Зашифрованное слово помещается в клетку В11. Принцип шифрования следующий: имеется "новый" алфавит, представляющий собой некоторую строку - перестановку букв алфавита. Если некоторая буква является k-той буквой в обычном алфавите, то вместо нее должна быть взята буква из k-той позиции "нового" алфавита.
2) Составить процедуру, которая первую букву фамилии, имени и отчества принудительно делает прописной. 3) Создать процедуру, которая в текстовой строке, введенной в ячейку А13, выдаст сообщение при обнаружении русской буквы. С вашей помощью я смог сделать около 25 заданий. Эти просто физически не успеваю. Если задание 3) я примерно понимаю ( проверить ячейки на совпадение с русским алфавитом), то о чем идет речь в 1) вообще не понимаю. Во втором задании как понимаю, 1 букву, после первого и второго пробела делать большими. Заранее большое спасибо. |
08.11.2011, 16:56 | #2 |
Форумчанин
Регистрация: 05.11.2011
Сообщений: 102
|
в первом просто задать как-нибудь соответствия
во втором есть функция UCase или Format возможно тоже подойдёт обнаружить русскую букву надо при помощи asc т. е. пройтись по всем буквам, или даже не по всем а пока не закончатся или пока не обнаружится русская и проверить принадлежность asc("текущая_буква") промежутку от asc("a") до asc("я") и с заглавными ещё, либо всю строку сперва перевести в один регистр например нижний (LCase) |
08.11.2011, 17:34 | #3 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
1. Процедура должна иметь доступ к паре строк. Первая - алфавит ("абвгдеёжзийк...эюя"); вторая - переставленный алфавит, тоже все 33 буквы по разу каждая, но в другом порядке. Например, т.н. атбаш ("яюэ...дгвба") или шифр Цезаря ("гдеёжзи...эюяабв").
Процедура поштучно перебирает символы слова. Для каждого символа, она ищет его в первой строке, найдя, запоминает номер k. Затем в выходное слово дописывается символ, взятый из второго алфавита по найденному индексу, и так пока не кончится слово. К примеру, если взять атбаш, слово "забег" превратится в "чяюъь". |
08.11.2011, 18:38 | #4 |
Форумчанин
Регистрация: 05.11.2011
Сообщений: 102
|
есть ещё функция replace$, ищет и заменяет найденное
|
08.11.2011, 18:55 | #5 |
Пользователь
Регистрация: 06.11.2011
Сообщений: 25
|
|
08.11.2011, 19:28 | #6 |
Форумчанин
Регистрация: 05.11.2011
Сообщений: 102
|
вот тут сделал что-то на скорую руку, там только латинские буквы и алфавит надо задавать заглавными
Код:
Последний раз редактировалось Camaro Chevelle; 08.11.2011 в 19:30. |
08.11.2011, 19:41 | #7 |
Форумчанин
Регистрация: 05.11.2011
Сообщений: 102
|
по поводу русских букв если я правильно понял можно сделать так
Код:
|
08.11.2011, 20:41 | #8 |
Пользователь
Регистрация: 06.11.2011
Сообщений: 25
|
Спасибо большое, исправил под свои нужды вроде работает.
Осталась вторая задача. Получается нужно сделать поиск первой буквы, первой буквы после пробела и заменить на большие? Последний раз редактировалось TI_ProJecT; 08.11.2011 в 20:43. |
08.11.2011, 21:10 | #9 |
Форумчанин
Регистрация: 05.11.2011
Сообщений: 102
|
юзай функцию format$ думаю ей можно воспользоваться. сам в ней не очень секу. если не выйдет то с ucase и mid поэкспериментируй.
Кстати, mid позволяет ведь не только возвращать подстроку, с её помощью можно заменять подстроку строки другой подстрокой. Допустим есть исходная строка s="abcdefgh" нужно получить "abcxxfgh", для этого пишут такое: Код:
Код:
Последний раз редактировалось Camaro Chevelle; 09.11.2011 в 00:54. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа со строкой | FrostoS | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 04.01.2011 17:20 |
Работа со строкой. | anamnesis | Помощь студентам | 5 | 19.12.2010 18:16 |
работа со строкой | mansp | Общие вопросы C/C++ | 1 | 15.11.2010 23:19 |
работа со строкой | Андрей.12 | Помощь студентам | 1 | 15.02.2010 09:14 |
Работа со строкой | s2dentishe | Общие вопросы Delphi | 6 | 05.12.2009 15:09 |