• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

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

Количество гласных букв в тексте

Регистрация
7 Июн 2011
Сообщения
1
Реакции
0
Баллы
0
Количество гласных букв в тексте

Всем привет! Прошу о помощи, сама в этой сфере новичок, кто сможет помочь, буду очень благодарна.
Работа в сфере С++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 ) );
}

//---------------------------------------------------------------------------
 
Назад
Сверху