0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 4
1

Вывести слова без повторений,которые имеют больше гласных,чем согласных.

22.09.2011, 12:12. Показов 1794. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пусть у нас есть текстовый файл,на который не накладываются ограничения относительно его размера. Также не накладываются ограничения на длину строки в этом файле.
Текст состоит из слов,например,идентификаторы английского языка. Слова разделяются промежутками, скобками,кодами операций,вообще символами,которые естественным образом отделяют слова друг от друга. Пусть ограничение на длину слова составляет 30 букв.
В поле результата нужно вывести слова без повторений,которые имеют больше гласных,чем согласных.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2011, 12:12
Ответы с готовыми решениями:

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

Определить слова, в которых больше гласных букв, чем согласных
В программировании пока не силен. Не могу решить 3 интересных задачки. Нужна помощь. 1) В...

Определить, есть ли в строке слова, в которых гласных больше чем согласных
Подскажите пожалуйста, что не так в коде: #include <iostream> #include <conio.h> #include...

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

7
Эксперт С++
3223 / 1750 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
22.09.2011, 16:29 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
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/////////////////////////////////////////////////////////////////////////////////////////
// Есть текстовый файл, на который не накладываются ограничения относительно его размера. 
// Также не накладываются ограничения на длину строки в этом файле.
// Текст состоит из слов,например,идентификаторы английского языка. Слова разделяются 
// промежутками, скобками,кодами операций, вообще символами, которые естественным образом 
// отделяют слова друг от друга. Пусть ограничение на длину слова составляет 30 букв.
// В поле результата нужно вывести слова без повторений, которые имеют больше гласных,
// чем согласных.
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cctype>
#include <fstream>
#include <iostream>
#include <set>
#include <sstream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string       T_str;
typedef T_str             T_word;
typedef std::set<T_word>  T_words;
/////////////////////////////////////////////////////////////////////////////////////////
bool  is_vowel(char  c)
{
    static const T_str  vowels = "aeiouy";
    return  vowels.find( tolower(c) ) != T_str::npos;
}
/////////////////////////////////////////////////////////////////////////////////////////
bool  has_not_more_vowels(const T_word&  word)
{
    return  
        std::count_if
            (
                word.begin(),
                word.end(),
                is_vowel
            ) * 2 <= int( word.size() );
}
/////////////////////////////////////////////////////////////////////////////////////////
bool  get_more_vowels_words_from
    (
        const T_str  filename,
        T_words&     words
    )
{   
    std::ifstream  file( filename.c_str() );    
    if(!file)
    {
        return false;
    }
 
    std::ostringstream  sout;
    sout << file.rdbuf();
    T_str  line = sout.str(); 
 
    T_str       line_new;
    const char  SPACE_SYMB = ' ';
 
    std::replace_copy_if
        (
            line.begin(),
            line.end(),
            std::back_inserter(line_new),
            std::not1( std::ptr_fun(isalpha) ),                
            SPACE_SYMB
        );
 
    std::istringstream  ssin(line_new);
 
    std::remove_copy_if
        (
            std::istream_iterator<T_word>(ssin),
            std::istream_iterator<T_word>(),
            std::inserter( words, words.begin() ),            
            has_not_more_vowels
        );
   
    return  true;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    T_str  filename = "f.txt";
 
    T_words  more_vowels_words; 
    if( !get_more_vowels_words_from(filename, more_vowels_words) )
    {
        std::cout << "Невозможно открыть файл "
                  << filename
                  << std::endl;        
    }
    else
    {
        std::cout << "В файле "
                  << filename
                  << " содержатся следующие слова, содержащие больше гласных:"
                  << std::endl;
        
        std::copy
            (
                more_vowels_words.begin(),
                more_vowels_words.end(),
                std::ostream_iterator<T_word>(std::cout, "\n")
            );            
    }
}
1
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 4
22.09.2011, 18:20  [ТС] 3
Спасибо большущее з помощь!
Еще один вопросик:как подключить в проект файл f.txt? Потому что постоянно пишет,что невозможно открыть файл
0
Каратель
Эксперт С++
6608 / 4027 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
22.09.2011, 18:25 4
АннаМария, перенесите файлик в ту же папку что и екзешник и запустите екзешник
1
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 7
22.09.2011, 19:11 5
Помогите пожалуйста написать лабу на С.

1. Дан массив а, состоящий из 10 целых чисел.
Определить, сколько раз повторяется наибольшее значение, вывести порядковые номера соответствующих елементов.
Упорядочить массив по убыванию.
Найти произведение всех элементов аi, для которых верно ai (x, y вводить с клавиатуры). Числа не принадлежащие заданному интервалу заменить нулями.
0
Каратель
Эксперт С++
6608 / 4027 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
22.09.2011, 19:13 6
Цитата Сообщение от Vedola Посмотреть сообщение
Помогите пожалуйста написать лабу на С.
один вопрос - одна тема

Добавлено через 13 секунд
и ваши нароботки покажите
0
65 / 18 / 3
Регистрация: 09.10.2010
Сообщений: 97
22.09.2011, 20:11 7
Цитата Сообщение от Jupiter Посмотреть сообщение
один вопрос - одна тема
Добавлено через 13 секунд
и ваши нароботки покажите

Не по теме:

Это пользователь таск-спамер. Не нужно ему помогать! Он плохой :)

1
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 4
22.09.2011, 22:59  [ТС] 8
Цитата Сообщение от Jupiter Посмотреть сообщение
АннаМария, перенесите файлик в ту же папку что и екзешник и запустите екзешник
спасибо,помогло,все работает
огромное спасибо всем за помощь!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.09.2011, 22:59
Помогаю со студенческими работами здесь

В строке найти слова, в которых гласных букв больше, чем согласных
В общем, такое задание : Написать программу, которая выводит на экран слова введенной с клавиатуры...

Ввести строку. Выдать все слова, которые имеют длину больше, чем длина последнего слова строки
ввести строку. на печать, выдать все слова, которые имеют длину больше, чем длина последнего слова...

Найти слова, которые состоят из 3х и более букв и имеют более 2х гласных
Написать функцию, которая выводит слова, которые состоят из 3 х и более букв и имеющих более 2х...

Работа со строчками (вывести в столбец все слова без повторений и количеством использования каждого слова)
Ввести строку. Учитывая что строка может содержать слова которые повторяются, вывести в столбец все...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru