Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 18.02.2019
Сообщений: 10

Создание нескольких таблиц и переключение между ними

18.02.2019, 19:09. Показов 4358. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня!
Есть программа, в которой идет расчет потока заявок. Перед расчетом нужно указать число лямда, после чего выходит таблица с расчетом. Суть такова, нужно сделать ввод нескольких чисел лямда(через пробел/запятую там не знаю), и чтобы при расчете появлялось столько таблиц сколько чисел лямда было введено. Как это сделать вообще не имею понятия.
Я в программировании полный чайник, и порой не с первого раза понимаю как это всё делается, но очень нуждаюсь в помощи)
код программы mainfrm.cpp

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <cmath.h>
 
 
#pragma hdrstop
 
#include "mainfrm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
 
float matrix[7][8];    // Объявляем матрицу P(t,m)
 
 
 
TForm4 *Form4;
//---------------------------------------------------------------------------
 __fastcall TForm4::TForm4(TComponent* Owner)
    : TForm(Owner)
{
 
}
//---------------------------------------------------------------------------double func(int t, int m, int lamda)
void FindMax()      // Функция поиска максимума м  согласно заданию 2
{
 
float maxval = StrToFloat(Form4->Tables->Cells[1][1]);
int mval = 1;
 
int m1=Form4->Tables->RowCount-1;
int t1=Form4->Tables->ColCount;
 
for (int t = 1; t < t1; t++)       // Цикл перебора максимального значения
{
maxval = StrToFloat(Form4->Tables->Cells[t][1]);
mval = 1;
 
    for (int m = 1; m < m1; m++)       // Цикл перебора максимального значения
    {
         if (StrToFloat(Form4->Tables->Cells[t][m])> maxval)
         {
            maxval=StrToFloat(Form4->Tables->Cells[t][m]);
            mval = m;
         }
    }
Form4->Tables->Cells[t][m1] = Form4->Tables->Cells[0][mval];
}
 
 
// Form4->Tables->Cells[mval][1];
 
}
//---------------------------------------------------------------------------double func(int t, int m, int lamda)
 
void Setfields()    // Процедура наполнения таблицы
{
 int t1 = StrToInt(Form4->t1->Text);
 int t2 = StrToInt(Form4->t2->Text);
 int m1 = StrToInt(Form4->m1->Text);
 int m2 = StrToInt(Form4->m2->Text);
 
 Form4->Tables->RowCount = m2-m1+3;
 Form4->Tables->ColCount = t2-t1+2;
 
 Form4->Tables->Cells[0][0] ="m/t";           // заполнение символьных значений
 Form4->Tables->Cells[0][m2-m1+2] ="m(max)";
 
 for (int t = t1; t <= t2; t++)
 {
          Form4->Tables->Cells[t][0] = FloatToStr(t);    // заполнение горизонтальной строки
 }
 for (int m = m1; m <= m2; m++)
 {
          Form4->Tables->Cells[0][m-m1+1] = FloatToStr(m);  // заполнение вертикальной строки
 }
 
 for (int t = 0; t <= t2-t1; t++) {
    for (int m = 0; m <= m2-m1; m++)
    {
          Form4->Tables->Cells[t+1][m+1] = FloatToStrF(matrix[t][m], ffFixed, 2, 6);  //Заполнение таблицы из матрицы
    }
}
 
}
 
//---------------------------------------------------------------------------double func(int t, int m, int lamda)
float func(int t, int m, int lamda )  // Функция интенсивности потока заявок
{
float fact = 1;   // Рассчет факториала
for (int i = 1; i <= m; i++)
    {
       fact = fact * i;
    }
 
return ((lamda * t)^m)*Exp(-lamda * t)/fact;   // Расчет функции
}
//---------------------------------------------------------------------------
 
void calcmatrix()    // Процедура заполнения матрицы
{
int lamda = StrToInt(Form4->lm->Text);
 int t1 = StrToInt(Form4->t1->Text);
 int t2 = StrToInt(Form4->t2->Text);
 int m1 = StrToInt(Form4->m1->Text);
 int m2 = StrToInt(Form4->m2->Text);
 
for (int t = t1; t <= t2; t++)
  {
    for (int m = m1; m <= m2; m++)
    {
          matrix[t-t1][m-m1]=func(t,m,lamda);
    }
  }
}
 
 
 
//---------------------------------------------------------------------------
 
void __fastcall TForm4::Button1Click(TObject *Sender)
{
calcmatrix();
Setfields();
FindMax();
}
//---------------------------------------------------------------------------


Скриншот программы
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.02.2019, 19:09
Ответы с готовыми решениями:

Создание таблиц и связей между ними
Доброго времени суток! Я уже неделю не могу создать нормальную БД и связи между ними. Пишу программу для учета прогулов и успеваемости...

(Access) Создание таблиц и установление связей между ними
Тесты. включают таблицы -группа -студенты -прохождение тестов -тема теста -название теста помогите. пожалуйста

Запуск нескольких процессов и Анализ переключения между ними
Не могу разобраться, наверное я слишком тормоз...%-) Задание: написать программу которая создаёт несколько процессов(в моём случае 2) и...

27
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
21.02.2019, 20:49
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Sweppi Посмотреть сообщение
а например *.stt
Цитата Сообщение от Sweppi Посмотреть сообщение
И еще по возможности было бы круто дописать код для кнопки "Сохранить как".
добавить два компонента
OpenDialog1
и
SaveDialog1
Вложения
Тип файла: rar lamda.rar (84.5 Кб, 1 просмотров)
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
21.02.2019, 20:50
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
void __fastcall TForm4::Button_LoadClick(TObject *Sender)
{
lambda->Clear();
// в этих полях компонента прописать
//OpenDialog1->Filter="*.stt";
//OpenDialog1->DefaultExt = "*.stt";
    if (OpenDialog1->Execute())
     {
lambda->LoadFromFile(OpenDialog1->FileName);
lm->Text = lambda->Text;
     }
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm4::Button_SaveClick(TObject *Sender)
{
// в этих полях компонента прописать
//SaveDialog1->Filter="*.stt";
//SaveDialog1->DefaultExt = "*.stt";
    if (SaveDialog1->Execute())
        {
lambda->Text = lm->Text;
lambda->SaveToFile(SaveDialog1->FileName);
        }
}
//---------------------------------------------------------------------------
0
0 / 0 / 0
Регистрация: 18.02.2019
Сообщений: 10
21.02.2019, 21:52  [ТС]
lifeforce, сделал так как вы сказали, FormCloseQuery он вообще не находит(
А при открытии и сохранении файлов вообще не показывает тип файла, и это получается код для кнопки "сохранить как", а как будет еще и для просто сохранить?
А еще при открытии файла, он загружает только данные что нужно вводить, сами таблицы нужно рассчитывать заного(
Возможно ли сделать чтобы при сохранении/открытии файла, он сразу показывал поддерживаемый тип файлов?
И чтобы можно было как сохранить так и загрузить таблицы, суть в том что в этих таблицах можно изменять значения)
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
21.02.2019, 22:23
Sweppi,
Цитата Сообщение от Sweppi Посмотреть сообщение
FormCloseQuery он вообще не находит(
это событие надо создать .
Цитата Сообщение от Sweppi Посмотреть сообщение
А еще при открытии файла, он загружает только данные что нужно вводить
да и после просто нажать кнопку "рассчатать"
можно добавить событие при открытии файла и нажатие на кнопку "рассчитать".
Цитата Сообщение от Sweppi Посмотреть сообщение
Возможно ли сделать чтобы при сохранении/открытии файла, он сразу показывал поддерживаемый тип файлов?
это уже реализировано! внимательно просмотреть код.
Цитата Сообщение от Sweppi Посмотреть сообщение
И чтобы можно было как сохранить так и загрузить таблицы, суть в том что в этих таблицах можно изменять значения)
и это тоже работает.


я так понял что используете RAD Studio. завтра создам проект на RAD Studio и выложу.
просто его открыть и запустить , и все оки.
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
22.02.2019, 12:56
вот проект для RAD 2007
Вложения
Тип файла: rar rad studio.rar (273.6 Кб, 1 просмотров)
0
0 / 0 / 0
Регистрация: 18.02.2019
Сообщений: 10
23.02.2019, 02:50  [ТС]
lifeforce, пытаюсь скомпилировать с проекта выходит ошибка:
[bcc32 Error] Project1.cpp(13): E2268 Call to undefined function 'SetApplicationMainFormOnTaskBar'
Цитата Сообщение от lifeforce Посмотреть сообщение
это уже реализировано! внимательно просмотреть код
Запускал через экзешник ваш, там это работает, у меня в проге почему-то нет.
upd: понял свою ошибку) С этим больше проблем нет)
Цитата Сообщение от Sweppi Посмотреть сообщение
а как будет еще и для просто сохранить?
Вы на это так и не ответили(
Возможно я неправильно выразился. Мне нужны три пункта в меню, это открыть, сохранить и сохранить как.
При этом сохраняться должны значения в таблицах поскольку будет проверяться, будут ли сохранены данные самой таблицы. Поэтому это сразу отпадает
Цитата Сообщение от lifeforce Посмотреть сообщение
да и после просто нажать кнопку "рассчатать"
можно добавить событие при открытии файла и нажатие на кнопку "рассчитать".
.
То есть как я понимаю обычно функция сохранить работает так что если файл уже есть такой то в нем сохраняются данные, а если нет предлагает создать новый. А сохранить как отличается тем что предлагает сразу сохранять как новый, либо с заменой уже существующего файла.
А еще я не очень понимаю где создаются события И мне кажется логичнее было бы спрашивать при закрытии программы что то вроде "Данные будут утеряны. Сохранить данные?" ну или как там пишется во всех типичных прогах)))
Работаю в C++ builder 10.3
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
23.02.2019, 20:31
вот проект для C++ builder 10.3
Цитата Сообщение от Sweppi Посмотреть сообщение
Мне нужны три пункта в меню, это открыть, сохранить и сохранить как.
добавлено в меню .
Цитата Сообщение от Sweppi Посмотреть сообщение
И мне кажется логичнее было бы спрашивать при закрытии программы что то вроде "Данные будут утеряны. Сохранить данные?"
работает.
Вложения
Тип файла: rar lamda.rar (84.1 Кб, 2 просмотров)
0
0 / 0 / 0
Регистрация: 18.02.2019
Сообщений: 10
24.02.2019, 13:18  [ТС]
Проект работает, спасибо!) А вот таблицу все равно приходится рассчитывать заного
Цитата Сообщение от lifeforce Посмотреть сообщение
добавлено в меню .
этого не нашел(

Добавлено через 10 минут
Кажется вы не понимаете чего я добиваюсь, чтобы все данные (лямбда, t, m, и значения таблиц) сохранялись в файле. А сохранение идет только чисел лямбда.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2019, 13:18

Загрузка нескольких картинок из папки и реализовать возможность переключения между ними
Добрый день. Хочу для начала сделать следующее: В окне у меня расположен ListBox. Кликая на определенном элементе, в Imagebox отображается...

Создание, редактирование электронных таблиц. Выполнение наипростейших операций с ними
Здравствуйте! Помогите пожалуйста с этим заданием. Начальный уровень сложности, работы на 15 минут, но справиться не могу никак. Спасибо!

C# Консольная псевдографика, создание меню, переключение между страницами
Добрый день, я немного ламер в C#, но у меня стоит задача: Мне надо в консольном приложении создать меню(это осилил) и чтобы при...

Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили пе
Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если...

Создание нескольких таблиц InterBase 6.5
Здравствуйте! Помогите пожалуйста, если не трудно! При компиляции данного кода выскакивает ошибка: Unsuccessful metadata update ...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru