![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 28.04.2012
Сообщений: 5
|
![]()
Здравствуйте, помогите разобраться в написании некоторых программ, я новичек по данной категории, кому не сложно напишите код программы в Delphi7, с объяснением.
1)Дана строка, содержащая полное имя файла. Выделить из этой строки название последнего каталога (без символов «\»). Если файл содержится в корневом каталоге, то вывести символ «\». 2)Дано зашифрованное предложение на русском языке (способ шифрования - Зашифровать строку, выполнив циклическую замену каждой буквы на букву того же регистра, расположенную в алфавите на K-й позиции после шифруемой буквы (например, для K = 2 «А» перейдет в «В», «а» — в «в», «Б» — в «Г», «я» — в «б» и т. д.). Букву «ё» в алфавите не учитывать, знаки препинания и пробелы не изменять.) и кодовое смещение K (0 < K < 10). Расшифровать предложение. 3)Дано предложение, зашифрованное по правилу(строку зашфровать, поместив вначале все символы, расположенные на четных позициях строки, а затем, в обратном порядке, все символы, расположенные на нечетных позициях (например, строка «Программа» превратится в «ргамамроП»). Расшифровать это предложение. буду благодарен если кто откликнется |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
задачи простые. но 2-я и 3-я решение, конечно, займёт какое-то время..
1-я. Код:
а Вы сами что-то делать собираетесь? Или будете ждать готовенького решения задач?! Последний раз редактировалось Serge_Bliznykov; 28.04.2012 в 13:46. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 28.04.2012
Сообщений: 5
|
![]()
я сделал предъидущие 4 задачи, могу показать для подтверждения, просто эти 3 вызвали у меня заруднение. Тк 1 раз с таким сталкиваюсь.
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
т.е. всё-таки самостоятельно будете пытаться решить? это похвально. тогда маленькие советы/подсказки/hints: вторая задача. я бы завёл константу, содержащую весь допустимый алфавит. Номер символа в этой строки и даст нам код буквы. дальше к полученному коду нужно прибавить число K (NewCode := OldCode + K) и, если полученное число меньше длины алфавита, то взять из алфавита символ с кодом NewCode, если же число NewCode > длины алфавита, то нужно из этого кода вычесть длину алфавита и затем взять из алфавита символ с кодом NewCode. у меня, конечно, чешутся руки написать решение. но я оставляю это удовольствие Вам подсказки в виде кода Код:
для третьей задачи я бы рекомендовал воспользоваться дополнительной строкой - где и накапливать результаты... а перебирать символы исходной строки двумя циклами - сначала по чётным индексам, потом, в обратную сторону, по нечётным... Последний раз редактировалось Serge_Bliznykov; 28.04.2012 в 14:12. |
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 28.04.2012
Сообщений: 5
|
![]()
Serge_Bliznykov спасибо за помощь неожидал, что кто-либо откликнится, если у меня будут вопросы по 3, могу ли я вам их задать?
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() ![]() пожалуйста! ну разумеется! в этой же теме можете их и задавать. И чем вопросы будут более конкретными (с вашими наработками в виде кода), тем быстрее и конкретнее получите ответ... p.s. хотя, если честно, третья задача тоже очень простая. не думаю, что при её решении Вы запутаетесь.. |
![]() |
![]() |
![]() |
#7 |
Регистрация: 28.04.2012
Сообщений: 5
|
![]()
К сожалению со 2 программой у меня вышли затруднения.. Попытался зашифровать строку и выполнить замену, но ничего не вышло
![]() Код:
___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 03.05.2012 в 10:43. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Onill, Вы мой пост #4 видите? Там строчки кода с комментариями видите?
Какое отношение ваши ord() и сравнения с 191, 224, 225 имеют к этому коду можете объяснить? (и, кстати, вы хотя бы понимаете, что эти волшебные циферки обозначают? ![]() дальше - разве из исходного задания не ясно, что K - это целочисленная переменная? Почему Вы её строкой сделали?! дальше - где K иницилизируется? (в вашем случае K - это ключ шифра - на сколько символов сдвигать буквы). Где это у Вас задаётся. дальше. что за переменная a вдруг возникла? Которой сначал строка присваивается. Потом идёт обращение к незаполненной переменной s, а потом a вдруг числовое значеие (которое ord() возвращает) присваивается). дальше. если уже вы работаете с кодами символов напрямую так почему Вы не взяли предложенный мной алгоритм преобразования?! Всё, что Вы написали - жуткая нелепица! если уж так хотите работать напрямую с кодами символов, тогда рассмотрите такой пример кода Код:
Последний раз редактировалось Serge_Bliznykov; 03.05.2012 в 11:10. |
![]() |
![]() |
![]() |
#9 |
Регистрация: 28.04.2012
Сообщений: 5
|
![]()
циферки взяты из таблицы ASCI
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
я выложил вариант криптования. разбирайтесь.
попытайтесь декрипт самостоятельно написать. Успехов. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
обработка строк | Litrian | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 22.04.2011 18:14 |
Обработка строк | MO_oNLight | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 22.05.2010 16:20 |
Обработка строк в delphi | Ulena | Помощь студентам | 5 | 31.03.2010 12:47 |
Обработка текста, строк (Delphi) | ekzobyte | Помощь студентам | 2 | 28.05.2009 00:41 |
задачи по теме "Обработка строк" на Delphi 7 | matrix8325 | Помощь студентам | 3 | 27.04.2009 09:47 |