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

Найти среди 10-ти русских существительных отглагольные (хождение) и вывести их - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с файлами http://www.cyberforum.ru/cpp-beginners/thread444408.html
Нужно создать программу которая записывает в файл,вводимый текст. Далее выводится меню выбора. 1.Просто вывети тект из файла; 2.Вывети опредленную строку из файла. Помогите реализовать.. Вначале ошибка,не могу понять почему не записывает... #include <iostream.h> #include <fstream.h> #include <cstdlib>
C++ Преобразование и построение матриц Дана действительная матрица http://www.cyberforum.ru/cpp-beginners/thread444402.html
C++ Даны целые числа р и q. Получить все делители числа q, взаимно простые с р
Получить все делители числа q, взаимно простые с р.
Даны натуральные числа п, р, целые числа A1 ..., An,. C++
Получить произведение членов последовательности A1, ..., An, кратных р
C++ чтение из файла http://www.cyberforum.ru/cpp-beginners/thread444391.html
нужно скопировать файл как с начало до конца, так и с конца в начало (то есть в обратном порядке). с первой частью никаких проблем не возникает, а вот как прочесть файл в обратном порядке..?попытался переместить указатель в конец файла и, так как считывать надо блоками, перемещал указатель,считывал строкой и потом записывал строку в обратном порядке,но данный способ кажется не рациональным!есть...
C++ Как перевести строку в читабельный вид? Собственно из названия темы. Есть строка символов (к примеру такая: 0430002004370430043904340438) Как перевести ее в читабельный вид, т.е в текст. Уже всю голову сломал %-) Подскажите что прочитать(ссылочку если можно) подробнее

Показать сообщение отдельно
remarkes
302 / 225 / 13
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
11.02.2012, 23:13     Найти среди 10-ти русских существительных отглагольные (хождение) и вывести их
Цитата Сообщение от Hey Посмотреть сообщение
предложение
тогда может вам стоит обратиться к разработчикам "Переводчика Google"? может они поделятся кодом, специально для начинающих программистов?
первую программу я почти написал.

Добавлено через 48 минут
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//~ 1)Найти среди 10-ти русских существительных
//~ отглагольные(хождение) и вывести их.
//~ эти слова называются девербативами
 
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
//~ максимальная длина предложения
#define MAX_INPUT 1024
//~ максимальная длина каждого слова в предложении
#define MAX_WORD 256
 
int is_word_deverbativ(char []);
 
int read_sentence(char []);
 
int main()
{
    //~ переменная с предложением
    char sentence[MAX_INPUT];
 
    //~ эмуляция ввода предложения
    strcpy(sentence, "Для обвинителя было очевидным: \
    примерное вождение и хождение в трезвом виде - \
    основа безопасности в правилах дорожного движения.");
 
    printf("%s\n\n", sentence);
 
    read_sentence(sentence);
    return 0;
}
 
//~ читаем каждое слово в предложении
//~ вызываем функцию девербатива
int read_sentence(char sentence[])
{
    int i=0;
    int i_word=0;
    char check_word[MAX_WORD];
 
    //~ добавляем пробел в конце предложения,
    //~ чтобы алгоритм мог прочесть последнее слово.
    strcat(sentence, " ");
 
    while ( sentence[i] != '\0' ) {
        if ( !isspace(sentence[i]) ) {
            check_word[i_word]=sentence[i];
            i++;
            i_word++;
        } else {
            check_word[i_word]='\0';
            i++;
            i_word=0;
            if ( is_word_deverbativ(check_word) == 1 )
                printf("%s - девербатив\n", check_word);
        }
    }
    return 0;
}
 
//~ проверяем слово на девербатив
int is_word_deverbativ(char check_word[])
{
    int i;
    int yes=0;
    //~ окончания по падежам (может что пропустил): 
    //~ именительный, родительный, дательный... и т.д.
 
    //~ не помню как посчитать размер
    //~ маccива указателей, поэтому ввел макрос MAX_CHECK
    //~ кто знает, как это сделать - подскажите мне
    #define MAX_CHECK 11
    
    char *check[MAX_CHECK]={"ние", "ния", "нию", "ния", "нии", 
    //~ другой тип девербативов
    "тель", "теля", "телей", "телю", "телем", "теле"};
    for (i=0; i<MAX_CHECK; i++) {
        if ( strstr(check_word, check[i]) != NULL )
            yes=1;
    }
    return yes;
}
Добавлено через 27 минут

Вторая задача:
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
//~ 2)Определить, является ли в простом предложении cold
//~ прилагательным или существительным и перевести его на русский язык. 
 
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
//~ максимальная длина предложения
#define MAX_INPUT 1024
 
void check_sentence(char []);
 
int main()
{
    //~ переменная с предложением
    char sentence[MAX_INPUT];
    //~ эмуляция ввода предложения с существительным
    strcpy(sentence, "I fell a cold.");
    check_sentence(sentence);
 
    //~ эмуляция ввода предложения с прилагательным
    strcpy(sentence, "I drink cold water.");
    check_sentence(sentence);
 
    return 0;
}
 
void check_sentence(char sentence[])
{
    //~ переменная прилагательное или существительное
    char which_is[9];
 
    if ( strstr(sentence, "a cold.") || strstr(sentence, "the cold.") )
    //~ which_is существительное
        strcpy(which_is, "noun"); 
    else
    //~ which_is прилагательное
        strcpy(which_is, "adjective"); 
 
    printf("In sentence \"%s\" cold is %s.\n\n", sentence, which_is);
}
Добавлено через 4 минуты
вторая задача решается просто. cold - в простом предложении - существительное, когда оно стоит в конце. То есть должна стоять точка. Дополнительно проверяем наличие перед словом артикля (или как его там) "a" или "the" (мало ли).

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