Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/40: Рейтинг темы: голосов - 40, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 19.04.2021
Сообщений: 15

Нужно сделать в программе меню для выбора варианта ввода и вывода

19.04.2021, 19:56. Показов 8603. Ответов 5

Студворк — интернет-сервис помощи студентам
помогите доделать программу

https://pastebin.com/p0D14Q4C ошибки такие
инциализация: усечение из double в float 11
148, 155 усечение из double в float
22,60,61,62,63,106,108,134,136,163 отсутствует аргумент
133 преобразования из double в float возможна потеря данных. Хотя в паскальной версии проблем не было https://pastebin.com/Pch3bQS4 вот она
https://pastebin.com/Gp3Ppmft вот код когда пытался изменять там часть с паскалем и с++ я там по очереди менял с паскалем там часть это ввод и вывод не получилось перевести.









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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#include <cstdlib>
#include <cmath>
#include <fstream>
#include <iostream>
using namespace std;
 
int i, n, k, l;
float x[101], y[101];
float aa[100], bb[100], cc[100], d[100];
bool b[100];
const float eps = 1e-7;
 
void readall()
{
    ifstream input;
    input.open("INPUT.TXT");
    input >> n;
    if (n > 100) {
        ofstream fout;
        fout.open("OUTPUT.TXT");
        cout << "Решение невозможно: задано количество точек выше предельного значения" << endl;
        std::exit;
    }
    for (i = 1; i <= n; i++)
        input >> x[i] >> y[i];
    input >> k >> l;
    x[n + 1] = x[1]; y[n + 1] = y[1];
    input.close();
}
 
float x1, y11, a1, b1, c1, d1;
 
float max(float a, float b)
{
    float max_result;
    if (a > b)  max_result = a; else max_result = b;
    return max_result;
}
 
bool equ(float a, float b)
{
    bool equ_result;
    equ_result = abs(a - b) < eps;
    return equ_result;
}
 
float kk, bbz;
 
bool less(float a, float b)
{
    bool less_result;
    less_result = (b - a) > eps;
    return less_result;
}
bool outside(float x2, float y2);
 
 
static void intersect1(int i, float& y2, float& x2, char& c)
{
    if (equ(y[i], y[i + 1]))  exit;
    if (equ(max(y[i], y[i + 1]), y2))  exit;
    if (less(y[i], y2) && less(y[i + 1], y2))  exit;
    if (less(y2, y[i]) && less(y2, y[i + 1]))  exit;
    kk = (x[i + 1] - x[i]) / (y[i + 1] - y[i]);
    bbz = x[i] - kk * y[i];
    x1 = kk * y2 + bbz;
    if (x1 < x2 + eps)  c += 1;
}
 
bool outside(float x2, float y2)
{
    int i, t;
    char c;
 
 
    bool outside_result;
    c = 0;
    for (i = 1; i <= n; i++)
        intersect1(i, y2, x2, c);
    if (c % 2 == 1)  outside_result = false; else outside_result = true;
    return outside_result;
}
 
bool impos(int a, int b)
{
    int i;
 
    bool impos_result;
    impos_result = true;
    for (i = 1; i <= n; i++)
    {
        a1 = y[b] - y[a];
        b1 = x[a] - x[b];
        c1 = y[a] * x[b] - y[b] * x[a];
        d1 = aa[i] * b1 - a1 * bb[i];
        if (abs(d1) < eps)  continue;
        x1 = -(cc[i] * b1 - c1 * bb[i]) / d1;
        y11 = -(aa[i] * c1 - a1 * cc[i]) / d1;
        if ((((x1 > x[a] + eps) && (x1 < x[b] - eps)) ||
            ((x1 > x[b] + eps) && (x1 < x[a] - eps)) ||
            ((y11 > y[a] + eps) && (y11 < y[b] - eps)) ||
            ((y11 > y[b] + eps) && (y11 < y[a] - eps))) &&
            (((x1 > x[i] + eps) && (x1 < x[i + 1] - eps)) ||
                ((x1 > x[i + 1] + eps) && (x1 < x[i] - eps)) ||
                ((y11 > y[i] + eps) && (y11 < y[i + 1] - eps)) ||
                ((y11 > y[i + 1] + eps) && (y11 < y[i] - eps))))  exit;
    }
    if (outside((x[a] + x[b]) / 2, (y[a] + y[b]) / 2))  exit;
    impos_result = false;
    return impos_result;
}
 
 
void calcabc()
{
    int i;
 
    for (i = 1; i <= n; i++)
    {
        aa[i] = y[i + 1] - y[i];
        bb[i] = x[i] - x[i + 1];
        cc[i] = y[i] * x[i + 1] - y[i + 1] * x[i];
    }
}
 
void solve();
 
static void upgradedistance(int a, int b, float& bst)
{
    int i;
    float dd;
 
    dd = sqrt(pow(x[a] - x[b], 2) + pow(y[a] - y[b], 2));
    if (bst + dd >= d[a])  exit;
    if ((abs(a - b) != 1) && (abs(a - b) != n - 1)
        && impos(a, b))  exit;
    d[a] = bst + dd;
}
 
void solve()
{
    int i, t, bi;
    float bst;
 
 
    calcabc();
    for (i = 1; i <= n; i++)
        d[i] = 1e+36;
    for (i = 1; i <= n; i++)
        b[i] = true;
    d[k] = 0;
 
    for (t = 1; t <= n; t++)
    {
        bst = 1e+36; bi = 0;
        for (i = 1; i <= n; i++)
            if ((b[i]) && (d[i] < bst)) { bst = d[i]; bi = i; }
        if (bi == l)
        {
            ofstream fout;
            fout.open("OUTPUT.TXT");
            cout << d[l] << endl;
            std::exit;
        }
        b[bi] = false;
        for (i = 1; i <= n; i++)
            if (b[i])  upgradedistance(i, bi, bst);
    }
}
 
int main(int argc, char** argv) {
    readall();
    solve();
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.04.2021, 19:56
Ответы с готовыми решениями:

Реализовать в программе меню выбора логической операции в зависимости от варианта
Прога нa С# Здравствуйте!!! Мои мозги в отключке, я на C# только недельку и не могу реализовать в программе меню выбора логической...

Нужно сделать меню для вывода решения, графика и выхода
Uses crt, graph; Var a, b, r, r2, tch: Real; i, n:...

Нужно сделать меню в программе...подскажите как это сделать.
Программа определяет числа, которые делятся на n. #include &lt;conio.h&gt; #include &lt;stdio.h&gt; void main(){ int i,n,m,a,b; clrscr (); ...

5
0 / 0 / 0
Регистрация: 19.04.2021
Сообщений: 15
20.04.2021, 11:57  [ТС]
Нужно ввод и вывод сделать так чтоб при нажатии выбиралась 1 получаешь ввод через экран ,2 ввод через файл, и затем когда все просчитается то получить в результате 1 вывод через экран ,2 вывод через файл ,3 вывод через файл и экран и так же в моей программе выдает less неоднозначный. вот программа
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#include <cstdlib>
#include <cmath>
#include <fstream>
#include <iostream>
using namespace std;
 
int i, n, k, l;
float x[101], y[101];
double aa[100], bb[100], cc[100], d[100];
bool b[100];
const double eps = 1e-7;
 
void readall()
{
    ifstream input;
    input.open("INPUT.TXT");
    input >> n;
    if (n > 100) {
        ofstream fout;
        fout.open("OUTPUT.TXT");
        cout << "Решение невозможно: задано количество точек выше предельного значения" << endl;
        std::exit;
    }
    for (i = 1; i <= n; i++)
        input >> x[i] >> y[i];
    input >> k >> l;
    x[n + 1] = x[1]; y[n + 1] = y[1];
    input.close();
}
 
float x1, y11, a1, b1, c1, d1;
 
float max(float a, float b)
{
    float max_result;
    if (a > b)  max_result = a; else max_result = b;
    return max_result;
}
 
bool equ(float a, float b)
{
    bool equ_result;
    equ_result = abs(a - b) < eps;
    return equ_result;
}
 
float kk, bbz;
 
bool less(float a, float b)
{
    bool less_result;
    less_result = (b - a) > eps;
    return less_result;
}
bool outside(float x2, float y2);
 
 
static void intersect1(int i, float& y2, float& x2, char& c)
{
    if (equ(y[i], y[i + 1]))  exit;
    if (equ(max(y[i], y[i + 1]), y2))  exit;
    if (less(y[i], y2) && less(y[i + 1], y2))  exit;
    if (less(y2, y[i]) && less(y2, y[i + 1]))  exit;
    kk = (x[i + 1] - x[i]) / (y[i + 1] - y[i]);
    bbz = x[i] - kk * y[i];
    x1 = kk * y2 + bbz;
    if (x1 < x2 + eps)  c += 1;
}
 
bool outside(float x2, float y2)
{
    int i, t;
    char c;
 
 
    bool outside_result;
    c = 0;
    for (i = 1; i <= n; i++)
        intersect1(i, y2, x2, c);
    if (c % 2 == 1)  outside_result = false; else outside_result = true;
    return outside_result;
}
 
bool impos(int a, int b)
{
    int i;
 
    bool impos_result;
    impos_result = true;
    for (i = 1; i <= n; i++)
    {
        a1 = y[b] - y[a];
        b1 = x[a] - x[b];
        c1 = y[a] * x[b] - y[b] * x[a];
        d1 = aa[i] * b1 - a1 * bb[i];
        if (abs(d1) < eps)  continue;
        x1 = -(cc[i] * b1 - c1 * bb[i]) / d1;
        y11 = -(aa[i] * c1 - a1 * cc[i]) / d1;
        if ((((x1 > x[a] + eps) && (x1 < x[b] - eps)) ||
            ((x1 > x[b] + eps) && (x1 < x[a] - eps)) ||
            ((y11 > y[a] + eps) && (y11 < y[b] - eps)) ||
            ((y11 > y[b] + eps) && (y11 < y[a] - eps))) &&
            (((x1 > x[i] + eps) && (x1 < x[i + 1] - eps)) ||
                ((x1 > x[i + 1] + eps) && (x1 < x[i] - eps)) ||
                ((y11 > y[i] + eps) && (y11 < y[i + 1] - eps)) ||
                ((y11 > y[i + 1] + eps) && (y11 < y[i] - eps))))  exit;
    }
    if (outside((x[a] + x[b]) / 2, (y[a] + y[b]) / 2))  exit;
    impos_result = false;
    return impos_result;
}
 
 
void calcabc()
{
    int i;
 
    for (i = 1; i <= n; i++)
    {
        aa[i] = y[i + 1] - y[i];
        bb[i] = x[i] - x[i + 1];
        cc[i] = y[i] * x[i + 1] - y[i + 1] * x[i];
    }
}
 
void solve();
 
static void upgradedistance(int a, int b, float& bst)
{
    int i;
    float dd;
 
    dd = sqrt(pow(x[a] - x[b], 2) + pow(y[a] - y[b], 2));
    if (bst + dd >= d[a])  exit;
    if ((abs(a - b) != 1) && (abs(a - b) != n - 1)
        && impos(a, b))  exit;
    d[a] = bst + dd;
}
 
void solve()
{
    int i, t, bi;
    float bst;
 
 
    calcabc();
    for (i = 1; i <= n; i++)
        d[i] = 1e+36;
    for (i = 1; i <= n; i++)
        b[i] = true;
    d[k] = 0;
 
    for (t = 1; t <= n; t++)
    {
        bst = 1e+36; bi = 0;
        for (i = 1; i <= n; i++)
            if ((b[i]) && (d[i] < bst)) { bst = d[i]; bi = i; }
        if (bi == l)
        {
            ofstream fout;
            fout.open("OUTPUT.TXT");
            cout << d[l] << endl;
            std::exit;
        }
        b[bi] = false;
        for (i = 1; i <= n; i++)
            if (b[i])  upgradedistance(i, bi, bst);
    }
}
 
int main(int argc, char** argv) {
    readall();
    solve();
    return 0;
}
Добавлено через 6 минут
Помогите пожалуйста
0
0 / 0 / 0
Регистрация: 19.04.2021
Сообщений: 15
20.04.2021, 12:10  [ТС]
Смотрю и пытаюсь добавить библиотеки в форму для ввода и вывода по выбору чтоб появлялся черный экран и при выборе жмешь 1 тогда ввод через экран ,жмешь 2 ввод через файл заранее берет ,затем просчитывается и выбираешь снова жмешь 1 вывод через экран ,2 вывод через файл ,вывод одновременно через экран и файл.Думала пойти через switch но вставляю все нужные библиотеки и выдает 193 ошибки ,хотя без библиотек нет ни одной ошибки (хотя я программу хочу взять с консольной и перевести для формы)

Добавлено через 26 минут
Вот код формы
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
#pragma once
 
namespace Project1 {
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
 
    /// <summary>
    /// Сводка для MyForm
    /// </summary>
    public ref class MyForm : public System::Windows::Forms::Form
    {
    public:
        MyForm(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~MyForm()
        {
            if (components)
            {
                delete components;
            }
        }
 
    protected:
 
    protected:
 
    protected:
 
    private: System::Windows::Forms::Button^ button3;
    private: System::Windows::Forms::Button^ button1;
 
    private:
        /// <summary>
        /// Обязательная переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Требуемый метод для поддержки конструктора — не изменяйте 
        /// содержимое этого метода с помощью редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->button3 = (gcnew System::Windows::Forms::Button());
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->SuspendLayout();
            // 
            // button3
            // 
            this->button3->Location = System::Drawing::Point(563, 253);
            this->button3->Name = L"button3";
            this->button3->Size = System::Drawing::Size(56, 34);
            this->button3->TabIndex = 2;
            this->button3->Text = L"Ок";
            this->button3->UseVisualStyleBackColor = true;
            this->button3->Click += gcnew System::EventHandler(this, &MyForm::button3_Click);
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(118, 57);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(356, 136);
            this->button1->TabIndex = 3;
            this->button1->Text = L"Выбор";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &MyForm::button1_Click_1);
            // 
            // MyForm
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(9, 20);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(631, 299);
            this->Controls->Add(this->button1);
            this->Controls->Add(this->button3);
            this->Name = L"MyForm";
            this->Text = L"MyForm";
            this->ResumeLayout(false);
 
        }
#pragma endregion
 
    private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
        Application::Exit();
    }
    private: System::Void button1_Click_1(System::Object^ sender, System::EventArgs^ e) {
 
    }
    };
}
0
0 / 0 / 0
Регистрация: 19.04.2021
Сообщений: 15
20.04.2021, 16:04  [ТС]
Вот я переделала более менее в с++ но, ввод и вывод так и не сделала прошу помогите https://pastebin.com/drtafCdj вот что я сделала, к заданию дополнилось сделать ввод или файловый илии через экран, вывод или файловый или через экран или одновременно.
Вот паскальный вариант https://pastebin.com/Pch3bQS4
0
458 / 294 / 191
Регистрация: 23.06.2018
Сообщений: 678
20.04.2021, 17:53
усечение из double в float
Просто ставьте f в конце вещественных чисел и будет у вас сразу float (например 4.5f)
отсутствует аргумент
exit так-то функция и принимает возвращаемый при выходе код. exit(1) например, или ноль
0
0 / 0 / 0
Регистрация: 19.04.2021
Сообщений: 15
20.04.2021, 18:19  [ТС]
мне нужно доделать прогу https://pastebin.com/P22vAimH вот мне нужно сделать ввод и вывод выборочный ,ввод через файл или через экран ,вывод не зависема от того что выбрал вывод через файл или экран ,или одновременно у меня получилось лишь ввод через файл и вывод одновременно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.04.2021, 18:19
Помогаю со студенческими работами здесь

Нужно сделать активную кнопку выбора пункта меню
В switch() будет 3 пункта меню. При нажатии на клавиатуре цифры &quot;1&quot; должно выполняться тело case, т.е должен быть не ввод единицы а её...

Ошибка в программе для вывода меню
Нужно сделать раскрывающееся меню, но у меня даже обычное не получается.и так и сяк его кручу...вот код, может кто поможет исправить...

Нужно сделать поле ввода для ввода даты по шаблону
Нужно сделать поле ввода для ввода даты по шаблону ( __ . __ . ____ ). При воде нужно будет вводить только цифры, а разделители...

Сообщение для выбора варианта
Мне нужно вызвать сообщение в котором будут две кнопочки Да или Нет по нажатию на одну из которых выполниться определённая функция...

Использование перечисления для выбора варианта
Здравствуйте. Решил вот сесть за изучение с++, мой первый яп. Мне всегда было трудно с логикой и математикой и первые же упражнения,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru