|
0 / 0 / 0
Регистрация: 31.12.2019
Сообщений: 8
|
|
Ошибка в задаче24.05.2020, 15:46. Показов 376. Ответов 0
Решал задачу - https://www.e-olymp.com/uk/problems/2191
И вот: Федя живе активним життям онлайн. Він легко шукає найскладніші реферати, використовуючи всесвітньо відомі пошукові машини, викачує музику і ділиться нею з друзями, він приєднався до багатьох популярних спільнот у Jевом Jурнале. І звичайно ж, він багато спілкується з інтернет-друзями по UCM (You Seek Me) - відомому чат-клієнті. Федя навчається в школі. У школі вивчають українську мову. Одного разу вчителька задала домашнє завдання - написати не менше 10-15 фраз, використовуючи непряму мову. Феді лінь переписувати стандартні фрази з шкільних підручників, він хоче мислити нестандартно. І ось у Феді блиснула оригінальна ідея - а чи не взяти кілька діалогів з його улюбленого UCM і чи не перекладати їх в непряму мову? Ідея хороша, але, на жаль, Федя не вміє програмувати, так як його ще не вчили цьому в школі. Допоможіть йому! Технічні умови Вхідні дані: У вхідному файлі знаходиться роздруківка одного з діалогів по UCM. У першому рядку знаходиться повідомлення про те, що співрозмовник Феді увійшов з ним у контакт. Воно виглядає так: ГГ: ММ: СС: <Ім'я> signed on де ГГ: ММ: СС: - час, коли співрозмовник увійшов у контакт, <Ім'я> - ім'я співрозмовника, записане в трансліті (латинськими літерами). Будь-яке число у відображенні часу займає дві цифри, наприклад 9:00 43 хвилини 5 секунд буде виглядати як 9:43:05. У кожному з наступних рядків (крім останнього рядка файлу) знаходиться репліка учасника діалогу. Якщо кожній репліці присвоїти її порядковий номер, то непарні репліки були вимовлені Федею, а парні - його співрозмовником. Репліка знаходиться повністю на одному рядку і складається з мітки часу, смислової частини і розділового знаку в кінці речення. Позначка часу має вигляд: ГГ: ХХ: СС:. Смислова частина відокремлена від мітки часу пропуском і містить текст, що складається з великих або маленьких латинських літер, цифр, пробілів, апострофів, а також ком, крапок з комами і круглих дужок. Розділовий знак - це знак оклику, знак питання або крапка. Він може бути опущений, в цьому випадку мається на увазі крапка. Приклад репліки: ГГ: ХХ: СС: Ya skazal etu frazu. Останній рядок файлу має вигляд: ГГ: ХХ: СС: <Ім'я> signed off де <Ім'я> - ім'я все того ж співрозмовника. Обсяг вхідного файлу не перевищує 20 кілобайт. Довжина кожного рядка не перевищує 250 символів. Вхідні дані У вхідному файлі знаходиться роздруківка одного з діалогов по UCM. У першому рядкуе знаходиться повідомлення про те, що співрозмовникФедораувійшовз ним уконтакт.Воно виглядаєтак: ЧЧ:ММ:СС: <Ім'я> signed on де ЧЧ:ММ:СС: - час, коли співрозмовник увійшов у контакт, <Ім'я> - ім'я співрозмовника, записане у трансліті (латинськими літерами). Довільне число у відображенні часу займає дві цифри, наприклад, 9 годин 43 хвилини 5 секунд буде виглядати як 09:43:05. У кожному з наступних рядків (крім самого останнього рядкаи файлу) знаходиться репліка учасника діалогу. Якщо кожній репліці присвоїти її порядковий номер, то непарні репліки були сказані Федором, а парні - цого співрозмовником. Репліка знаходиться повністю у одному рядку і складається з мітки часу, змістовної частини та розділового знаку в кінці речення. Мітка часу має вид: ЧЧ:ММ:СС:. Змістовна частина відокремлена від мітки часу пропуском і містить текст, який складається з великих або маленьких латинських літер, цифр, пропусків, апострофів (заміняють мягкий та твердий знаки у трансліті), а також ком, крапок з комами і круглих дужок. Розділовий знак - це знак оклику, знак питання або крапка. Він може бути пропущений, у цьому випадку розуміється крапка. Приклад репліки: ЧЧ:ММ:СС: Ya skazal etu frazu. Останній рядок файлу має вид: ЧЧ:ММ:СС: <Имя> signed off де <Ім'я> - ім'я все того ж співрозмвоника. Об'єм вхідного файлу не перевищує 20 кілобайт. Довжина кожного рядка не перевищує 250 символів. Вихідні дані Виведіть у вихідний файл для кожної репліки її ж, перетворивши у непряму мову. Перетворення полягає у наступному. Спочатку візьміть репліку у подвійні лапки, при цьому якщо вона завершується на крапку, то замість крапки поставте кому, інакше залишіть розідловий знак без змін, наприклад: Zakanchivayu tochkoi. → "Zakanchivayu tochkoi," Eto voskhititel'no! → "Eto voskhititel'no!" Потім поставте пропускл, три знаки "-" (тире) і знову пропуск, після чого виведіть слово "skazal" і ім'я співромовника, який промовив цю репліку. Після імені виведіть крапку. Федя пишеться як "Fedya", ім'я його співрозмвоника можна взнати з першого рядка вхідного файлу. Вроде бы все продумал, но есть ошибки в парочки тестах. Вот код: #include <iostream> #include <string> #include <fstream> using namespace std; const char inputf[] = "input.txt"; const char outputf[] = "output.txt"; class Phrase { private: string name; string messege; public: Phrase(): name("Fedya"), messege("") {} void setName(const string& str) { string name; for (int i = str.find(": ") + 2; i < str.length(); i++) { if (str[i] == ' ') break; name += str[i]; } this->name = name; } void setMessage(const string& str) { int index = str.find(": ") + 2; messege = str; messege.erase(0, index); index = messege.length() - 1; if (messege[index] == '!' || messege[index] == '?' || messege[index] == ',' || messege[index] == ';') return; else { if (messege[index] == '.') messege[index] = ','; else messege.push_back(','); } } string getName() { return name; } string getMessage() { return messege; } }; int main() { fstream inf; fstream outf; char p = ' '; Phrase people[2]; string temp; int count_messege = 0; int turn; inf.open(inputf, fstream::in); outf.open(outputf, fstream::out); while (!inf.eof() && p != '\n') { p = ' '; inf.get(p); if(p != '\n') temp += p; } people[1].setName(temp); temp = ""; while (!inf.eof()) { if (count_messege % 2 == 0) turn = 0; else turn = 1; p = ' '; inf.get(p); if (p == '\n') { if (temp.find("signed off") != -1) break; else if (temp == "") continue; people[turn].setMessage(temp); outf << '"' << people[turn].getMessage() << '"' << " --- skazal " << people[turn].getName() << '.' << endl; temp = ""; count_messege++; } else temp += p; } inf.close(); outf.close(); return 0; } Большое спасибо)
0
|
|
| 24.05.2020, 15:46 | |
|
Ответы с готовыми решениями:
0
Ошибка в задаче Ошибка в задаче Ошибка в задаче |
| 24.05.2020, 15:46 | |
|
Помогаю со студенческими работами здесь
1
Ошибка в задаче Ошибка в задаче Ошибка в задаче Ошибка в задаче Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит предопределенное значение перечислений.
Процедура. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|