![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 30.04.2012
Сообщений: 21
|
![]()
Здравствуйте.
Задали в универе лабораторную по C#. Сужу над ней уже сколько времени, не могу написать эту элементарщину. Ребята, помогите с этим заданием, пожалуйста! Розробити архіватор: символи строки, що повторюються, заміняти на послідовність – {символЧислоПовторювань}, наприклад: «fehhh eryaaa» повинна перетворитися на строку виду «feh3 erya3». Також реалізувати зворотну функцію програми.
Завтра будет.
Лучше. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 30.04.2012
Сообщений: 31
|
![]()
Возможно, если бы писали по русски, вам бы быстрее помогли
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 30.04.2012
Сообщений: 21
|
![]()
Я просто скопировал с методички. Щас переведу (самому тяжело на украинском):
Разработать архиватор: символы строки, которые повторяются, заменить на последовательность – {символЧислоПовторений}, например: «fehhh eryaaa» должна превратиться на строку вида «feh3 erya3». Также реализовать обратную функцию программы.
Завтра будет.
Лучше. Последний раз редактировалось Dark~VIN; 01.05.2012 в 02:44. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 30.04.2012
Сообщений: 31
|
![]()
тут посимвольный проход строки, для каждого символа строки цикл типа while (пока символ совпадает с предыдущим считаем его), смотрим если переменная счета равна 1, то просто пишем символ, иначе пишем символ плюс цифру.
Обратно: тоже посимвольный проход, только работа с текущим символом и следующим, если следующий цифра, то текущий записываем нужное число раз. На компе нет C# , если нужен код, могу сделать, но только вечером Последний раз редактировалось Рико; 01.05.2012 в 03:10. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Строго говоря, предложенный метод "архивации" является необратимым, т.е. по "сжатому" тексту невозможно восстановить первоначальный.
Приведите формулировку задания полностью. Пример: попытайтесь сжать "q1h333bbb6a" этим алгоритмом, а потом подумайте, что будете делать с результатом. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 30.04.2012
Сообщений: 31
|
![]()
Гы..Весь смысл не в том , что бы написать реальный архиватор, а в том что бы научиться обрабатывать строки. Тут не указано, но скорее всего подразумевается, что начальная строка состоит только из символов не цифр. У меня жена подобные задания даёт студентам первого курса, что бы научить работать со строками
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
И тех преподавателей, которые дают студентам подобные задания, следует стучать по башке. Причем, нещадно! Т.к. они прививают студентам вредные навыки. А переучиваться потом существенно сложнее, чем с самого начала учиться правильно. В исходной формулировке возможно написать "сжиматель", притом, он должен уметь работать с любыми символами. Но невозможно написать "расжиматель". И студент это должен четко осознавать. А если преподаватель ему в этом препятствует... мне жалко студентов этого преподавателя. В данном конкретном случае у студентов есть реальная возможность "настучать преподавателю по башке". И мне кажется, что это непременно нужно сделать. Потому как вреда от такого "педагога" существенно больше, чем пользы. |
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 30.04.2012
Сообщений: 31
|
![]()
Согласен, что с определение "архиватор" препод перестарался, НО наши шибко умные студенты "просто задачи" делать не хотят, им подавай "а зачем это надо", вот и исхитряются преподаватели
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 30.04.2012
Сообщений: 21
|
![]()
Прислал мне ответ по почте некий глубокоуважаемый Reskov с кодом...
Чуть переделал под себя.... Значит сжатие строки работает: Код:
Пишет: Error 1 The best overloaded method match for 'string.Join(string, string[])' has some invalid arguments Error 2 Argument 2: cannot convert from 'System.Collections.Generic.IEnumer able<char>' to 'string[]' Код:
Завтра будет.
Лучше. Последний раз редактировалось Dark~VIN; 01.05.2012 в 13:35. |
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
Впрочем, возможно, он действительно перестарался, указав конкретный вид последовательности. Без такого указания задача становится разрешимой. В общем, в том виде как есть, задача неразрешима, а для того, чтобы она стала разрешима, в условие следует внести изменения. Причем, последние можно сделать разными способами, и в результате получатся разные задачи (а не разные формулировки одной и той же задачи). |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Архивирование строки | Dark~VIN | C# (си шарп) | 0 | 30.04.2012 16:41 |
Архивирование | Яр|/||< (^_^) | Общие вопросы Delphi | 1 | 16.03.2010 16:28 |
Архивирование в Delphi | BuT@JL | Помощь студентам | 1 | 23.03.2009 11:40 |
архивирование | das-xp | Общие вопросы Delphi | 5 | 26.06.2007 20:13 |
архивирование | dron-s | Общие вопросы Delphi | 3 | 03.05.2007 11:56 |