1 / 1 / 2
Регистрация: 15.08.2017
Сообщений: 81

Переделка с консоли в форму

30.10.2017, 16:33. Показов 2280. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
И снова привет ГУРУ программирования, опять пишу сюда с надеждой найти решение задачи.
Излагаю суть вопроса:
есть код для подсчета частотности слов в тексте (нашел на форуме ), он написан под консоль:
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
#include <iostream>
#include <map>
#include <string>
#include <sstream>
#include <iomanip>
 
int main()
{
    setlocale(LC_ALL, "Russian");
    std::string delim(".:,;()-?!");//Разделители
    std::string string;
    //Ассоциативный контейнер, хранит пары (слово, число вхождений)
    std::map<std::string, size_t> freq;
    std::cout << "Введите строку" << std::endl;
    std::getline(std::cin, string);
    size_t str_count=0;//Число слов
    //Замена символов-разделителей из строки на пробел
    size_t index;
    while((index=string.find_first_of(delim))!=std::string::npos)
        string[index]=' ';
    //Разбиение строки на слова, помещение слов в ассоциативный контейнер и подсчет числа вхождений слова в строку
    std::stringstream ss(string);
    while(ss >> string)
    {
        ++str_count;
        freq[string]++;
    }
    std::cout << "Относительная частота вхождения каждого слова:" << std::endl;
    for(std::map<std::string, size_t>::iterator iter=freq.begin(); iter!=freq.end(); ++iter)
    {
        double p=static_cast<double>(iter->second)/static_cast<double>(str_count)*100;
        std::cout << "\'" << iter->first << "\': " << std::setprecision(4) << p << "%" << std::endl;
    }
    system("pause");
    return 0; 
}
пытаюсь переписать данный кон с вводом и выводом данных в Memo1, пока что получилось так:

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
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
 String text;
 text = Form1->Memo2->Text;
  text = text.c_str();
 
 
 setlocale(LC_ALL, "Russian");
    std::string delim(".:,;()-?!");//Ðàçäåëèòåëè
    std::string string;
    //Àññîöèàòèâíûé êîíòåéíåð, õðàíèò ïàðû (ñëîâî, ÷èñëî âõîæäåíèé)
    std::map<std::string, size_t> freq;
    //std::cout << "text" << std::endl;
     string = text.c_str();
 
    std::getline(std::cin, string);
    size_t str_count=0;//×èñëî ñëîâ
    //Çàìåíà ñèìâîëîâ-ðàçäåëèòåëåé èç ñòðîêè íà ïðîáåë
    size_t index;
    while((index=string.find_first_of(delim))!=std::string::npos)
        string[index]=' ';
    //Ðàçáèåíèå ñòðîêè íà ñëîâà, ïîìåùåíèå ñëîâ â àññîöèàòèâíûé êîíòåéíåð è ïîäñ÷åò ÷èñëà âõîæäåíèé ñëîâà â ñòðîêó
    std::stringstream ss(string);
    while(ss >> string)
    {
        ++str_count;
        freq[string]++;
    }
    //std::cout << "Îòíîñèòåëüíàÿ ÷àñòîòà âõîæäåíèÿ êàæäîãî ñëîâà:" << std::endl;
    for(std::map<std::string, size_t>::iterator iter=freq.begin(); iter!=freq.end(); ++iter)
    {
        double p=static_cast<double>(iter->second)/static_cast<double>(str_count)*100;
 
         //Form1->Memo5->Lines->Add(p);
         Form1->Memo5->Lines->Add(iter->first.c_str());
         Form1->Memo5->Lines->Add( p);
        //std::cout << "\'" << iter->first << "\': " << std::setprecision(4) << p << "%" << std::endl;
         //rez = "iter->first";
         //Memo5->Lines->Add(rez);
    }
    Form1->Memo1->Text = text.c_str();
 
   
    return;
}
у меня получилось записать текст в функцию из Memo2 и вывести результат обработки в Memo5
но есть одна проблемка: не знаю как вывести часть кода:


C++
1
2
double p=static_cast<double>(iter->second)/static_cast<double>(str_count)*100;
std::cout << "\'" << iter->first << "\': " << std::setprecision(4) << p << "%" << std::endl;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2017, 16:33
Ответы с готовыми решениями:

Переделка кода - из консоли в форму с++ builder
Помогите перевести код из консоли в форму с++ builder, понятное дело нужно выкинуть все выводы параметров, и переделать ввод начальных...

Холодильник Liebherr icbn 30560 переделка, переделка с инвертора на обычный
Прошу ногами не пинать сам я не холодильщик нужны разъяснения : Холодильник Liebherr icbn 30560, после перенапряжения, привёз в ремонт...

Из консоли в форму
Помогите пожалуйста перенести консольную программу в форму на кнопку. С консолями хоть как то . но вот с формами не могу разобраться ...

44
1 / 1 / 2
Регистрация: 15.08.2017
Сообщений: 81
10.11.2017, 21:36  [ТС]
Студворк — интернет-сервис помощи студентам
Работает))
А как решить проблему с ошибкой?
Возможно я не так записал текст с мемо в переменную:
C++
1
char *token = AnsiString(Memo2->Text).c_str(), buf[81],*separators = "\t,. ";
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
10.11.2017, 22:10
Цитата Сообщение от дно21 Посмотреть сообщение
как решить проблему с ошибкой?
А так...
C++
1
Memo2->Lines->Add("Лексема "+ IntToStr( i)+" - " +(String)token);
??
0
1 / 1 / 2
Регистрация: 15.08.2017
Сообщений: 81
10.11.2017, 22:11  [ТС]
это уже решил, но ошибка на вводе данных
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
10.11.2017, 22:46
Цитата Сообщение от дно21 Посмотреть сообщение
на ввод сумел записать данные, борюсь с выводом
... многоборец?
0
1 / 1 / 2
Регистрация: 15.08.2017
Сообщений: 81
12.11.2017, 01:06  [ТС]
тип того))
не получилось у меня перенести данный код в форму(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.11.2017, 01:06

С консоли на форму
Всем привет, помогите переделать работы с консоли на форму #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; ...

Из консоли в форму
помогите пожалуйста переделать это консольное приложение в форму с эдитом,кнопкой и выводом результата в мемо {$APPTYPE CONSOLE} ...

Из консоли в форму
Доброе время суток. Недавно начал изучать C++ С консольным вариантом разобрался, а вот работать с формами пока что получается не...

Переделать из консоли в форму
Имеется консольная программа для расчета длины и площади окружности через радиус, который человек сам вводит. Как мне оформить её через...

Вывод из консоли в форму
Добрый день. У меня есть приложение, которое выводит SMART инфо о диске в консоль. Хочется выводить все это в форму. Как это можно сделать...


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

Или воспользуйтесь поиском по форуму:
45
Ответ Создать тему
Опции темы

Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru