Количество гласных букв в тексте
Всем привет! Прошу о помощи, сама в этой сфере новичок, кто сможет помочь, буду очень благодарна.
Работа в сфере С++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 ) ); } //--------------------------------------------------------------------------- |
Часовой пояс GMT +4, время: 00:11. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.