Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 5.00
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
#1

Распечатать те слова, которые являются обращениями других слов в этом предложении - C++

20.04.2010, 15:49. Просмотров 1920. Ответов 27
Метки нет (Все метки)

1. Ввести предложение, слова в котором разделены пробелами и запятыми. Распечатать те слова, которые являются обращениями других слов в этом предложении. Если нужных слов нет - сообщить об этом.


2. Ввести строку, состоящую только из цифр и букв. Распечатать те группы цифр, в которых цифра 7 встречается не более двух раз. (Группа цифр - это последовательность цифр, обрамленная буквами.)

Help!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2010, 15:49     Распечатать те слова, которые являются обращениями других слов в этом предложении
Посмотрите здесь:

C++ Распечатать только те символы, которые не являются буквой А
Все буквы каждого слова в предложении записать в обратном порядке и распечатать получившееся предложение C++
В файле-словаре найти и распечатать слова, которые могут быть полностью составлены из других слов словаря C++
C++ Дан массив слов. Определить количество слов массива, которые не являются «перевертышем».
C++ Подсчитать количество слов, которые встречаются в предложении ровно 1 раз
Отсортировать слова в предложении по алфавиту и подсчитать количество слов C++
C++ В файле-словаре найти и распечатать слова, которые могут быть полностью составлены из других слов словаря
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4661 / 2487 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 16:13     Распечатать те слова, которые являются обращениями других слов в этом предложении #2
2.
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 <iostream>
#include <windows.h>
#include <string.h>
using namespace std;
 
int main ()
{
    int len, i, i_start, i_end, fl, temp; 
    char a[256];
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Ââåäèòå ñòðîêó: "<< endl;
    cin>>a;
    len=strlen(a);
    for(i=0; i<len; i++)
    {
        fl=0;
        if(a[i]>='0' && a[i]<='9')
            fl=1;
        if(fl)
        {
            i_start=i_end=i; temp=0;
            while(a[i_end]>='0' && a[i_end]<='9' && i_end<len)
            {
                i_end++;
                if(a[i_end]=='7')
                    temp++;
            }
            if(temp==1)
            {
                for(i=i_start; i<i_end; i++)
                    cout<<a[i];
            }
            i=i_end-1;
            cout<<endl;
        }
    }
    return 0; 
}
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
20.04.2010, 17:31  [ТС]     Распечатать те слова, которые являются обращениями других слов в этом предложении #3
valeriikozlov, спасибо. А подскажите пожалуйста, как на Си сделать? я переделал вот так, но она не работает на выводе:
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
#include <stdio.h>
#include <string.h>
 
 
int main ()
{
    int len, i, i_start, i_end, fl, temp; 
        char a[256];
 
    printf("Enter the string: ");
    scanf("%s", &a);
        len=strlen(a);
        for(i=0; i<len; i++)
        {
                fl=0;
                if(a[i]>='0' && a[i]<='9')
                        fl=1;
                if(fl)
                {
                        i_start=i_end=i; temp=0;
                        while(a[i_end]>='0' && a[i_end]<='9' && i_end<len)
                        {
                                i_end++;
                                if(a[i_end]=='7')
                                        temp++;
                        }
                        if(temp==1)
                        {
                                for(i=i_start; i<i_end; i++)
                                        a[i]++;
                        }
                        i=i_end-1;
                        printf("%s", i);
                }
        }
    return 0; 
}
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4661 / 2487 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 19:42     Распечатать те слова, которые являются обращениями других слов в этом предложении #4
Во-первых, плохо, что сразу не указываете язык (С или С++). В данном случае ориентировался на Ваш тезис "Лучше С++ чем ++С =)" .
Во вторых, не совсем точно перевели на С. Вот правильный вариант:
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
#include <stdio.h>
#include <string.h>
 
 
int main ()
{
    int len, i, i_start, i_end, fl, temp; 
        char a[256];
 
    printf("Enter the string: ");
    scanf("%s", &a);
        len=strlen(a);
        for(i=0; i<len; i++)
        {
                fl=0;
                if(a[i]>='0' && a[i]<='9')
                        fl=1;
                if(fl)
                {
                        i_start=i_end=i; temp=0;
                        while(a[i_end]>='0' && a[i_end]<='9' && i_end<len)
                        {
                                i_end++;
                                if(a[i_end]=='7')
                                        temp++;
                        }
                        if(temp==1)
                        {
                                for(i=i_start; i<i_end; i++)
                                        printf("%c", a[i]);
                        }
                        i=i_end-1;
                        printf("\n");
                }
        }
    return 0; 
}
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
20.04.2010, 20:51  [ТС]     Распечатать те слова, которые являются обращениями других слов в этом предложении #5
Спасибо большое) понял ошибки. А как быть с первой? может кто-нибудь что-то подсказать?
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4661 / 2487 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 21:00     Распечатать те слова, которые являются обращениями других слов в этом предложении #6
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
А как быть с первой?
Можете сами что-нибудь подсказать по первой? Во-первых откуда вводится предложение?: с клавиатуры или из файла? Что является предложением?: окончание точкой или различными знаками (восклицательным, вопросительным)? И наконец, что является обращением? (могу поискать в инете, но думаю Вы и сами знаете ответ на этот вопрос).
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
21.04.2010, 21:56  [ТС]     Распечатать те слова, которые являются обращениями других слов в этом предложении #7
По первой, то что я понял: предложение вводится с клавиатуры, Предложение- это есть набор букв, разделённых пробелами и запятыми, заканчиватся может как угодно, но в моём случае это точка. А обращение- это слово, которое заключено в запятые с обеих сторон, или с одной, если предложение в начале или в конце строки. Кажется так.

Добавлено через 15 часов 53 минуты
задача ещё не решена!( помогите пожалуйста.

Добавлено через 4 часа 23 минуты
помощь ещё требуется..(

Добавлено через 2 часа 16 минут
Всё ещё...
delfamur
 Аватар для delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 22:12     Распечатать те слова, которые являются обращениями других слов в этом предложении #8
что понимать под обращениями других слов?
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
21.04.2010, 22:17  [ТС]     Распечатать те слова, которые являются обращениями других слов в этом предложении #9
Ну, я пример приведу: Мама, я вернулся!! Здесь обращение- слово мама. Или "Спасибо тебе, Иванушка-дурачёк, за всё." Иванушка-здесь обращение. Теперь понятно? Пожалуйста, помогите.
delfamur
 Аватар для delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 22:19     Распечатать те слова, которые являются обращениями других слов в этом предложении #10
аааа...обычное обращение в открытой речи... даже алгоритм в голову не приходит, как обрабатывать правила русского языка...
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
22.04.2010, 11:59  [ТС]     Распечатать те слова, которые являются обращениями других слов в этом предложении #11
вот вот, и я о том же..

Добавлено через 13 часов 36 минут
Вопрос ещё актуален...всё ещё нужна помощь по первой задаче.
delfamur
 Аватар для delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
22.04.2010, 14:38     Распечатать те слова, которые являются обращениями других слов в этом предложении #12
обращение всегда запятыми выделяется и в большинстве случаев это имя собственное, то есть пишется с большой буквы, попробуй это условие использовать
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
22.04.2010, 23:06  [ТС]     Распечатать те слова, которые являются обращениями других слов в этом предложении #13
Спасибо, а как функцию можно написать?

Добавлено через 5 часов 7 минут
помощь ещё нужна!
delfamur
 Аватар для delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
23.04.2010, 09:50     Распечатать те слова, которые являются обращениями других слов в этом предложении #14
может считывать вводимые слова в массив чар (включая знаки препинания, после них же пробел ставится по правилам) и посимвольно проверять наличие первой большой буквы и запятой после. единственное - одиночное деепричастие в начале предложения попадает под такое же условие, но другого варианта я не вижу, разве что не брать первое слово...
silent_1991
Эксперт С++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,025
Завершенные тесты: 1
23.04.2010, 13:43     Распечатать те слова, которые являются обращениями других слов в этом предложении #15
Да, тут действительно не получится проверять, если обращение стоит в начале предложения. Ибо по описанному выше алгоритму там будет найдено обращение всегда, а если проверять такую конструкцию: запятая-пробел-большая_буква-последовательность_букв-пробел-запятая, то наоборот, первое слово пропускается...
delfamur
 Аватар для delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
23.04.2010, 15:57     Распечатать те слова, которые являются обращениями других слов в этом предложении #16
не, тут одним условием не обойтись, поэтому не первое слово-обращение можно проверять как запятая_Слово_запятая_||_точка. тогда 100% что это обращение. а вот с первым словом не решить программно никак. это тоже ну..99,9%
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
23.04.2010, 16:35  [ТС]     Распечатать те слова, которые являются обращениями других слов в этом предложении #17
так что мне делать? неужели алгоритма не существует?((
delfamur
 Аватар для delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
23.04.2010, 16:38     Распечатать те слова, которые являются обращениями других слов в этом предложении #18
нет, тут человеческое решение нужно
silent_1991
Эксперт С++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,025
Завершенные тесты: 1
23.04.2010, 20:54     Распечатать те слова, которые являются обращениями других слов в этом предложении #19
Не, алгоритм есть, и, думаю, он реализован в таких приложениях, как Word... OpenOffice и т.п. Так что вряд ли это дело программно решаемо, как и сказал delfamur
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2010, 20:57     Распечатать те слова, которые являются обращениями других слов в этом предложении
Еще ссылки по теме:

Найти слова которые могут быть полностью сложены из других слов,сцепление слов(конкатенация) C++
В файле-словаре найти и распечатать слова, которые могут быть полностью составлены из других слов словаря C++
В предложении S1 найти все слова, которые есть в предложении S2 C++
C++ Инвертировать слова в предложении не меняя порядок слов
C++ Упорядочить слова в предложении по возрастанию длин слов

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

Или воспользуйтесь поиском по форуму:
delfamur
 Аватар для delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
23.04.2010, 20:57     Распечатать те слова, которые являются обращениями других слов в этом предложении #20
может в том же ворде забита база всех собственных имен, которые могут являться обращениями)))можно конечно и в языке высокого уровня реализовать)))
Yandex
Объявления
23.04.2010, 20:57     Распечатать те слова, которые являются обращениями других слов в этом предложении
Ответ Создать тему
Опции темы

Текущее время: 04:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru