|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
07.06.2011, 02:48 | #1 (permalink) |
Новичок
Регистрация: 07.06.2011
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Количество гласных букв в тексте
Работа в сфере С++Builder. Само задание: Разработать алгоритм и написать программу, которая анализирует текст на английском языке. Текст находится в файле, имя которого является входным параметром программы. Результат анализа должен быть выведен на экран и показывать:Количество гласных букв в тексте. Исходный текст и результат должны отображаться одновременно в разных окнах. Есть готовая похожая программа, как вы думаете можно ли ее подогнать под мой вариант задания и что нужно изменить или добавить? Буду ждать с не терпеньем ваших предложений. //--------------------------------------------------------------------------- #include <vcl.h> #include <iostream> #include <algorithm> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" using namespace std; //Это, что бы переменную стринг // не писать вот так std::string text TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Memo1->Clear(); // Обнуление Мемо1.. Просто лень было на форме надпись убирать Memo2->Clear(); //Как и выше } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { OpenDialog1->FileName == ""; //Этот оператор открывает любой файл TOpenDialog *od = new TOpenDialog(this);//Тут создаётся переменная для фильтрования od->Filter = "Текстовые файлы|*.txt";//тут в переменную вводятся критерии фильтра if (od->Execute()) { //Если открыт текстовый файл Memo1->Lines->LoadFromFile(od->FileName); //То его содержимое вписывается // в Мемо1 } delete od; // На сколько я понимаю, это что бы потом можно было od = NULL; // открыть другой файл потом } //--------------------------------------------------------------------------- bool isDelimeter( char ch ) { //Функция для поиска (обязательно писать вне других функций) return ch == '.'; //Тут думаю понятно, вводится что нужно искать точку } bool isDelimeter1( char ch ) { //Тут и далее аналогично предыдущему return ch == ','; } bool isDelimeter2( char ch ) { return ch == '!'; } bool isDelimeter3( char ch ) { return ch == '?'; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { string text = Memo1->Lines->Text.c_str(); //Строковое чтение содержания Memo1 int allSignsCount = count_if( text.begin(), text.end(), isDelimeter ); //Запись // в переменную allSignsCount результата поиска точки int allSignsCount1 = count_if( text.begin(), text.end(), isDelimeter1 );//Как и выше, // только в allSignsCount1 записывает результат поиска запятой (isDelimeter1) int allSignsCount2 = count_if( text.begin(), text.end(), isDelimeter2 ); int allSignsCount3 = count_if( text.begin(), text.end(), isDelimeter3 ); Memo2->Clear(); // Обнуление Мемо2 Memo2->Lines->Add( "Кол-во точек = " + AnsiString( allSignsCount ) ); //Вывод в Мемо2 // результата поиска точки Memo2->Lines->Add( "Кол-во запятых = " + AnsiString( allSignsCount1 ) ); Memo2->Lines->Add( "Кол-во восклицательных знаков = " + AnsiString( allSignsCount2 ) ); Memo2->Lines->Add( "Кол-во Вопросительных знаков = " + AnsiString( allSignsCount3 ) ); } //--------------------------------------------------------------------------- |
07.06.2011, 02:48 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Возможно, после прочтения аналогичных тем вы найдете ответ на вопрос Вместо букв печатаются цифры Посчитать количество букв k в последнем слове строки. Количество элементов массива С++ Количество элементов массива Вычислить количество значений функции |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|