Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 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
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Возможно, после прочтения аналогичных тем вы найдете ответ на вопрос

Вместо букв печатаются цифры
Посчитать количество букв k в последнем слове строки.
Количество элементов массива С++
Количество элементов массива
Вычислить количество значений функции

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 08:39.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.