![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 17.11.2015
Сообщений: 62
|
![]()
Добрый день,
Нужно написать программу на C# согласно условию задачи, приведенного ниже: Дана последовательность символов C = {c0...cn - 1}. Дан набор из N пар кодирующих символов (ai,bi). Создать многопоточное приложение, кодирующее строку C следующим образом: поток 0 заменяет в строке С все символы a0 на символы b0, поток 1 заменяет в строке С все символы a1 на символы b1, и т.д. Потоки должны осуществлять кодирование последовательно. Не могу разобраться что от меня требуется. Раньше я сталкивался с задачами где всё было конкретно, описаны типы данных и т.д. А такие абстракции с c0...cn-1 и т.д. мне даются тяжелей. Вот как я пытаюсь мыслить: Есть строка C = "Привет, мир! Мир так прекрасен!" И есть 2 пары кодирующих символов (и,а) (р,й) То есть после того как поток 0 отработает мы получаем: C = "Правет, мар! Мар так прекрасен!" А во втором потоке 2 заменяем символ a1 (в данном случае это символ "р" на "й") и в итоге получаем: C = "Пйавет, май! Май так пйекйасен!" То есть от меня требуется придумать строку, придумать N пар кодирующих символов. И уже с помощью N потоков закодировать строку последовательно, как я описал выше? У меня правильный ход мыслей ? Или я ошибаюсь ? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,726
|
![]()
Можете не придумывать, а вводить.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 17.11.2015
Сообщений: 62
|
![]()
А как динамически создавать потоки в зависимости от N пар (Поток 1, поток 2, поток 3 и т.д.)? Ведь я заранее не буду знать сколько мне нужно объявить объектов класса Thread.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,726
|
![]()
Ну так создайте массив
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 17.11.2015
Сообщений: 62
|
![]()
Массив потоков ? Что-то я не пойму.
Вот синтаксис создание потока: Thread myThread0_Run = new Thread(myThread0); myThread0 - функция в которой я кодирую первую пару символов. Соответственно myThread0_Run. Я могу создать массив из 10 кодирующих пар без проблем. Но я не понимаю как мне создать 10 потоков в одному случае. А в другом, например, случае уже ввели 5 пар. И соответственно нужно только 5 потоков. В условии написано: поток 0 заменяет в строке С все символы a0 на символы b0, поток 1 заменяет в строке С все символы a1 на символы b1, и т.д. Потоки должны осуществлять кодирование последовательно. То есть если пар 4. То и потоков должно быть 4 и они запущены одновременно. Но должна соблюдаться некая очередь, и чтобы потоки работали друг за другом. |
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,726
|
![]() Цитата:
Код:
Код:
Последний раз редактировалось p51x; 26.02.2019 в 20:19. |
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 17.11.2015
Сообщений: 62
|
![]()
Спасибо большое за помощь! Программу написал, преподаватель принял.
Вот код, может кому поможет в решении подобной задачи: Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите понять суть задания на макросы | alexboliam | Общие вопросы C/C++ | 0 | 18.03.2018 02:52 |
[Хочу вникнуть суть компонентов] Вид CheckBox'а | Ship_1 | Компоненты Delphi | 17 | 25.01.2017 19:05 |
Парсим текст, не могу вникнуть | antoxamad | Помощь студентам | 7 | 23.02.2012 10:02 |
Задачи на Pascal ABC (обьясните хотябы суть) | Joker_SoloD | Помощь студентам | 1 | 08.12.2010 15:15 |
Помогите вникнуть в условие задачи. Что нужно сделать | garald50 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 04.06.2008 19:42 |