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

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

Войти
Регистрация
Восстановить пароль
 
АннаМария
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 4
#1

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

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

Пусть у нас есть текстовый файл,на который не накладываются ограничения относительно его размера. Также не накладываются ограничения на длину строки в этом файле.
Текст состоит из слов,например,идентификаторы английского языка. Слова разделяются промежутками, скобками,кодами операций,вообще символами,которые естественным образом отделяют слова друг от друга. Пусть ограничение на длину слова составляет 30 букв.
В поле результата нужно вывести слова без повторений,которые имеют больше гласных,чем согласных.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2011, 12:12     Вывести слова без повторений,которые имеют больше гласных,чем согласных.
Посмотрите здесь:

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

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 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")
            );            
    }
}
АннаМария
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 4
22.09.2011, 18:20  [ТС]     Вывести слова без повторений,которые имеют больше гласных,чем согласных. #3
Спасибо большущее з помощь!
Еще один вопросик:как подключить в проект файл f.txt? Потому что постоянно пишет,что невозможно открыть файл
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
22.09.2011, 18:25     Вывести слова без повторений,которые имеют больше гласных,чем согласных. #4
АннаМария, перенесите файлик в ту же папку что и екзешник и запустите екзешник
Vedola
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 7
22.09.2011, 19:11     Вывести слова без повторений,которые имеют больше гласных,чем согласных. #5
Помогите пожалуйста написать лабу на С.

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

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

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2011, 22:59     Вывести слова без повторений,которые имеют больше гласных,чем согласных.
Еще ссылки по теме:

Ввести с клавиатуры целое число n и записать в новый файл те слова, которые содержат n или больше согласных - C++
Дана задача: Задан файл формата .txt с текстом на английском языке, ввести с клавиатуры целое число n и записать в новый файл те слова,...

Найти и вывести все слова, у которых число гласных букв превышает число согласных - C++
Задание: Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Символами могут быть только заглавные...

Вывести все слова в столбик без повторений - C++
У меня такое задание: Ввести ленту произвольной длины, которую трактовать как текст, в котором слова отделены одним или несколькими...

Вывести каждое второе слова в котором больше 3 букв и меньше 3 гласных - C++
Нужно вывести каждое второе слово в котором больше трех букв при этом меньше 3 гласных. Я написал прогу которая выводит каждое слово в...

Вывести на экран все слова, которые имеют даные символы - C++
Вывести на экран все слова, которые имеют даные символы. Написал кусок кода, незнаю как реализовать вывод. #include &lt;iostream&gt; #include...


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

Или воспользуйтесь поиском по форуму:
АннаМария
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 4
22.09.2011, 22:59  [ТС]     Вывести слова без повторений,которые имеют больше гласных,чем согласных. #8
Цитата Сообщение от Jupiter Посмотреть сообщение
АннаМария, перенесите файлик в ту же папку что и екзешник и запустите екзешник
спасибо,помогло,все работает
огромное спасибо всем за помощь!
Yandex
Объявления
22.09.2011, 22:59     Вывести слова без повторений,которые имеют больше гласных,чем согласных.
Ответ Создать тему
Опции темы

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