Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
2 / 2 / 0
Регистрация: 06.03.2015
Сообщений: 91

Исправить в тексте множественное число существительных на единственное там, где это необходимо

22.05.2015, 06:04. Показов 1281. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Входной файл: input.txt
Выходной: output.txt
Лимит времени: 10 сек.
Ни для кого не секрет, что не королевское дело - бумажки писать, потому в каждом уважающем себя королевстве есть специально обученный писарь. Прогресс не стоит на месте, и привычное для писаря скрипящее гусиное перо заменил мощный королевский компьютер, но и здесь не обошлось без проблем. Дело в том, что писарь ее Английского Величества -человек пожилой, и справиться с компьютером для него - задача не из легких. "Адская " машина все время подменяет окончания существительных так, что число существительного вместо единичного становится множественным. Но на счастье Королевы в английском языке есть артикли, а в мире существуют такие талантливые программисты как вы, способные устранить это досадное недоразумение и заставить компьютер исправить допущенные ошибки.
Согласно старинному королевскому указу множественное число существительных образуется по строго определенным правилам:
-Если сущ. заканчивается на -ss,-x,-z, -sh,-ch,tch или -o, то множественное сущ. образуется добавлением окончания -es ( например: tax-taxes)
-Если сущ. заканчивается на -y, то множественное число образуется удалением окончания -y и добавлением -ies( например: fly-fies)
- В остальных случаях к сущ. в единственном числе просто добавляется окончание -s.
-Чтобы малограмотное население страны не путалось в орфографии, специальным королевским указом было запрещено использование одиночной буквы s в конце сущ. в единственном числе.
В англ. языке существует три вида артиклей: нулевой, определенный(the) и неопределенный( a или an). Артикль ставится прямо перед сущ. и не может быть отделен от него ни другими словами, ни знаками препинания. К счастью, с расстановкой артиклей ни компьютер, ни писарь никогда не ошибаются.
Формат входного файла. Во входном файле находится литературный текст, набранный писарем. Регистр символов текста- как в предложении: первая буква - заглавная, остальные - строчные. Знаки препинания пишутся слитно с предшествующим словом. Нужно исправить множественное число сущ. на единственное там, где это необходимо и вывести исправленный текст в output.txt
Пример файла input.txt
He is a doctors.
Пример файла output.txt
He is a doctor.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.05.2015, 06:04
Ответы с готовыми решениями:

Множественное число английских существительных
Всем привет, буду благодарен если кто-то поможет с решением задачи. Задача - Множественное число большинства английских существительных...

Единственное и множественное число
Извините тех, кто с бронепоезда - а разная выдача и раньше была для единственного и множественного числа? Щас, наверное. тапками...

Множественное число или единственное?
Почему у яндекса так разниться выдача в зависимости от числа слова? Например "тестомес" и "тестомесы". выдача очень...

5
68 / 67 / 59
Регистрация: 14.07.2013
Сообщений: 251
22.05.2015, 10:18
А что с нулевым артиклем делать? Как определить существительное?
0
 Аватар для Alexandr_1982
191 / 90 / 33
Регистрация: 04.11.2013
Сообщений: 473
Записей в блоге: 4
22.05.2015, 10:37
Наработка

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// a[n] - input 
// b[k] - output
for(i=0, j=0;i<n;i++)
{
 if (a[i]== 's' && (a[i+1] == ' ' || a[i+1] == '.' || a[i+1] == ','))
 {
  j--;
  if (a[i-1] == 'e')
  {
   j--;
   if (a[i-2] == 'i') 
   {
    j--;
    b[j] = 'y';
    j++;
   }
  }
  else
  {
   j++;
  }
 }
 else
 {
  b[j] = a[i];
  j++;
 }
}
0
Заблокирован
22.05.2015, 12:57
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//from file
    string init = "tax-taxes, Flies desks  Cell: - is Clans trees zescs ";
 
    string tmp[3] = { "\\b[A-Z|a-z][a-z]+[ss|x|z|sh|ch|tch]es\\b", "\\b[A-Z|a-z][a-z]+ies\\b", "\\b[A-Z|a-z][a-z]+s\\b" };
    std::regex reg;
    std::smatch result;
    for (int i = 0; i < 3; i++){
        reg.assign(tmp[i]);
        for (string str; std::regex_search(init, result, reg);){
            str = result[0].str().substr(0, result[0].str().length() - ((i == 2) ? 1 : i + 2)) + ((i == 1) ? "y" : "");
            init = init.replace(result[0].first, result[0].second, str.begin(), str.end());
        }
    }
 
    //to file
    cout << init;
Добавлено через 1 минуту
Цитата Сообщение от Alexandr_1982 Посмотреть сообщение
Наработка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// a[n] - input 
// b[k] - output
for(i=0, j=0;i<n;i++)
{
 if (a[i]== 's' && (a[i+1] == ' ' || a[i+1] == '.' || a[i+1] == ','))
 {
 j--;
 if (a[i-1] == 'e')
 {
 j--;
 if (a[i-2] == 'i') 
 {
 j--;
Неправильно работает с входными данными ("tax-taxes, Flies desks Cell: - is Clans trees zescs ")
0
2 / 2 / 0
Регистрация: 06.03.2015
Сообщений: 91
22.05.2015, 16:26  [ТС]
Про нулевой артикль честно сказать ничего не могу
0
2 / 2 / 0
Регистрация: 06.03.2015
Сообщений: 91
23.05.2015, 19:19  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <string>
#include <iostream>
#include <iostream>
#include <iterator>
#include <ctime>
#include <cstdlib>
#include<stdio.h>
// a[n] - input
// b[k] - output
using namespace std;
 
int main ( )
for( i=0,  j=0; i<n; i++)
 
{
  if (a[i]== 's' && (a[i+1] == ' ' || a[i+1] == '.' || a[i+1] == ','))
 {
  j--;
  if (a[i-1] == 'e')
  {
   j--;
   if (a[i-2] == 'i')
   {
    j--;
    b[j] = 'y';
    j++;
   }
  }
  else
  {
   j++;
  }
 }
 else
 {
  b[j] = a[i];
  j++;
 }
}
компилятор выдает ошибку в 13 строке, как ее исправить подскажите пожалуйста?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.05.2015, 19:19
Помогаю со студенческими работами здесь

Существует ли способ генерирования события или сигнала в коде там, где это необходимо?
Существует ли способ генерирования события или сигнала в коде там, где это необходимо? Например: if flag==True: #событие 1...

Бесконечный цикл там, где не предполагалось. Как исправить?
Пытаюсь сделать что-то вроде псевдоинтернет магазина в консоли. Есть менюшка, регистрация и вход. Когда пол-ль входит уже со своими...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru