Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.80
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
#1

Проверьте, не является ли слово "кас" корнем слова без приставки - C++

20.11.2011, 23:02. Просмотров 2583. Ответов 21
Метки нет (Все метки)

3 задачи
- проверьте, не является ли слово "кас" корнем слова без приставки.
- Отделите в слове повторяющиеся более двух раз буквы запятыми.
- Вычеркните из слова букву, предшествующую сочетанию "ча"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2011, 23:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Проверьте, не является ли слово "кас" корнем слова без приставки (C++):

Из слова апельсин путем "вырезок" и "склеек" его букв получить слово спаниель - C++
Задача из сборника Златопольского: 9.30. Из слово апельсин путем "вырезок" и "склеек" его букв получить слово...

Со слова процессор путем "вырезок" и "склеек" его букв получить слово рессор - C++
При выполнении этой задачи разрешается использовать любые строчные типы данных (например, динамический массив символов). ...

Заменить всякое вхождение слова "это" на слово "то" - C++
Заменить каждое вхождение слова "это" на слово "то". Прошу помощи! #include <iostream> #include <Windows.h> #include...

Из слова "яблоко" путем склеек и вырезок его букв получить слова "блок" и "око" - C++
Самым самым самым простым способом.

Дана строка, в котором есть слово "да" или слово "нет". Если в нем есть слово "нет", то удалить его - C++
Дана строка, в котором есть слово "да" или слово "нет". Если в нем есть слово "нет", то удалить его или получить строку в слова "да" и...

вывести на друк слово "Одинаковые" если эти массивы полностью совпадают,и слово "Разные" в противоположном случае. - C++
Создать два символьных массива по 12 элементов , и вывести на друк слово "Одинаковые" если эти массивы полностью совпадают,и слово "Разные"...

21
CEBEP
107 / 107 / 9
Регистрация: 21.03.2010
Сообщений: 445
21.11.2011, 00:03 #2
всё верно, можете преступать к работе.

Добавлено через 46 минут
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/*
- проверьте, не является ли слово "кас" корнем слова без приставки. 
- Отделите в слове повторяющиеся более двух раз буквы запятыми. 
- Вычеркните из слова букву, предшествующую сочетанию "ча"
*/
#include<string>
#include<iostream>
class wordAnalizer
{
    std::string word;
    wordAnalizer(std::string st): word(st) {   }
    bool isRoot(std::string root)
    {
        if (root.length() > word.length())
        {
            return !true && !false;
        }
        for (unsigned i = 0; i < root.length(); ++i)
        {
            if (root.at(i) != word.at(i))
            {
                return !true && !false;
            }
        }
        return true || false;
    }
    wordAnalizer& addCommas()
    {
        if (word.length() < 3)
        {
            return *this;
        }
        for (unsigned i = 2; i < word.length(); ++i)
        {
            word.at(i) == word.at(i - 1) && word.at(i) == word.at(i - 2) ? *word.insert(word.begin() + i, ',') : 0;
        }
        return *this;
    }
    wordAnalizer& cha()
    {
        if (word.length() < 3)
        {
            return *this;
        }
        for (unsigned i = 2; i < word.length(); ++i)
        {
            word.at(i) == 'а' && word.at( i - 1 ) == 'ч' ? *word.erase(word.begin() + i - 2) : 0 ;
        }
        return *this;
    }
 
    friend std::ostream& operator << (std::ostream&, const wordAnalizer&);
    friend int main();
};
 
std::ostream& operator << (std::ostream& stream, const wordAnalizer& wordd)
{
    stream << wordd.word;
    return stream;
}
 
int main()
{
    setlocale( LC_ALL, "Russian" );
    wordAnalizer words[] = { (std::string("чача")), "zzzzzz", "касманафт" };
    std::cout << std::boolalpha << words[0].cha() << std::endl << words[1].addCommas() << std::endl << words[2].isRoot("кас");
 
}
0
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
22.11.2011, 18:50  [ТС] #3
не работает
0
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
27.11.2011, 19:29  [ТС] #4
нужно решить задачку. три пункта. можно эти пункта сделать в виде трёх программ или в виде одной

4 задача.

- Проверьте, является ли "кас" корнем слова без приставки.
- Отделите в слове повторяющиеся более двух раз буквы запятыми.
- Вычеркните из слова букву, предшествующую сочетанию "ча".

третий пункт выглядит примерно так
C++
1
2
while((pos = str.find("ча"))  != string::npos)
        str.replace(pos-1, 1, "");
str.replace(pos-1, 1, ""); - меняет позицию pos-1 (символ перед ча), меняет один элемент, на "" - то есть ничего



как сделать остальные? и правильный ли 3 пункт?
0
greshnikk
31 / 31 / 0
Регистрация: 05.11.2008
Сообщений: 162
27.11.2011, 19:36 #5
Какие у Вас есть соображения по поводу алгоритмизации данных задач ? Советую решать по одной, а не пытаться сделать все и сразу.
0
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 312
27.11.2011, 19:41 #6
- Проверьте, является ли "кас" корнем слова без приставки.

Если после "кас" пишется буква "а", то в большинстве случаев "кас" будет корнем)
0
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
27.11.2011, 19:48  [ТС] #7
я вообще не соображаю по этой задаче) незнаю как её решать
0
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 312
27.11.2011, 19:52 #8
osipov93, извини, я пока не умею толком писать программы)) вот только советом пытаюсь помочь)
0
greshnikk
31 / 31 / 0
Регистрация: 05.11.2008
Сообщений: 162
27.11.2011, 19:55 #9
Я предложил бы так:
1. Как минимум проверить наличие буквы перед "кас", если таковая есть, то это уже не корень без приставки, не так ли. Это или другой корень. Или корень с приставкой.
2. Дальше я бы уже не делал никаких проверок. Вася1q предложил что после "кас" должно быть "а". Ну тогда я предлагаю слово "касса", "кассир". Корень "кас", но после кас вовсе не буква "а", а буква "с". То есть дальше как проверить алгоритм я не то что не знаю, даже придумать таковой не могу. Проверять на букву это не решение. Можно проверять на наличие дальше суффикса (при этом заранее сохранить все известные суффиксы) и окончания. Но это тоже довольно кропотливая работа и не факт что это сработает во всех случаях. По этому я предлагаю делать только проверку на наличие приставки.
0
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 312
27.11.2011, 19:59 #10
1) Или соединительная гласная)

Добавлено через 1 минуту
greshnikk, Почему вы решили что в слове "касса" корень кас?
0
greshnikk
31 / 31 / 0
Регистрация: 05.11.2008
Сообщений: 162
27.11.2011, 20:05 #11
Цитата Сообщение от Вася1q Посмотреть сообщение
1) Или соединительная гласная)
Нет. В условии четко прописано. Проверьте, является ли "кас" корнем слова без приставки. То есть у нас есть слова имеющее корень равный "кас". Многокоренное слово имеет 2 корня. А нам сказали четко, что корень только "кас". Поэтому идет проверка на отсутствие символа перед "кас"
Цитата Сообщение от Вася1q Посмотреть сообщение
Почему вы решили что в слове "касса" корень кас?
Касса, кассир это однокоренные слова. Отсюда вывод, общий корень - "кас". Может быть "касс", но я предполагаю, что разница тут не велика.
0
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 312
27.11.2011, 20:08 #12
Корень как раз "касс"))) но ладно, все равно вариант с суффиксом "а" действенный)
0
greshnikk
31 / 31 / 0
Регистрация: 05.11.2008
Сообщений: 162
27.11.2011, 20:25 #13
Цитата Сообщение от Вася1q Посмотреть сообщение
Корень как раз "касс"))) но ладно, все равно вариант с суффиксом "а" действенный)
Какой корень в слове "касатка" ? Как минимум первый пример того, что проверка на гласную "а" не является частью решения.

Немного поразмыслив и посетив этот сайт я пришел к выводу, что проверка на "а" не такой уж и плохой ход. Да, конечно этот метод очень грубый. И если будут вводится новые слова, он будет не такой практичный, но в настоящее время можно решить так эту задачу.
Итак я узнал, что все слова с корнем "кас" имеют после букву "а". Более того, все слова, которые начинаются на "каса" имеют корень "кас", что тоже не маловажно. Исключение составляют 2 слова - касатка и касатик (я бы добавил еще касабланка). Так вот алгоритм вырисовывается следующий:
1. Проверка на символ перед "кас"
2. Проверка на "а" после "кас"
3. Проверка является ли слово одно из двух (трех).
После этого можно определенно сказать, что это слово с корнем "кас" и без приставки
0
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
28.11.2011, 12:05  [ТС] #14
ОЧЕНЬ срочно нужно решить задачку. три пункта. можно эти пункта сделать в виде трёх программ или в виде одной

4 задача.

- Проверьте, является ли "кас" корнем слова без приставки.
- Отделите в слове повторяющиеся более двух раз буквы запятыми.
- Вычеркните из слова букву, предшествующую сочетанию "ча".

[модераторы, прошу извинения за повтор.]
 Комментарий модератора 
Намеренное дублирование тем в следующий раз будет наказываться карточкой.
0
osipov93
3 / 3 / 0
Регистрация: 17.10.2011
Сообщений: 131
28.11.2011, 12:13  [ТС] #15
UP!!!!!!!!!!!!!
0
28.11.2011, 12:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2011, 12:13
Привет! Вот еще темы с ответами:

Проверить, является ли третье слово в массиве знаком "=" - C++
Всем привет. Для вас скорее всего этот вопрос будет пустяковым, но я реально на этом застрял и не понимаю в чем дело. Суть в...

Определить является ли слово "перевертышем". - C++
Доброго дня. Написал примерный код данной программы,но он работает не верно, и хотелось бы ,вид программы какой нибудь по мудренее. ...

Даны три слова - "мама", "мыла", "раму". Задача - напечатать всевозможные варианты построения слов - C++
Я записал код, однако эту часть надо автоматизировать, поможете? КОД: } #include &lt;iostream&gt; using namespace std; int main()...

Вывести текст файла, заменив цифры от 0 до 9 на слова "ноль", "один"."девять", начиная каждое предложение с новой строки - C++
Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова &quot;ноль&quot;, &quot;один&quot;...&quot;девять&quot;,...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru