0 / 0 / 0
Регистрация: 19.04.2021
Сообщений: 15
1

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

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

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

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; ...

Нужно сделать меню в программе...подскажите как это сделать.
Программа определяет числа, которые делятся на n. #include &lt;conio.h&gt; #include &lt;stdio.h&gt; void...

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

5
0 / 0 / 0
Регистрация: 19.04.2021
Сообщений: 15
20.04.2021, 11:57  [ТС] 2
Нужно ввод и вывод сделать так чтоб при нажатии выбиралась 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  [ТС] 3
Смотрю и пытаюсь добавить библиотеки в форму для ввода и вывода по выбору чтоб появлялся черный экран и при выборе жмешь 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  [ТС] 4
Вот я переделала более менее в с++ но, ввод и вывод так и не сделала прошу помогите https://pastebin.com/drtafCdj вот что я сделала, к заданию дополнилось сделать ввод или файловый илии через экран, вывод или файловый или через экран или одновременно.
Вот паскальный вариант https://pastebin.com/Pch3bQS4
0
458 / 294 / 191
Регистрация: 23.06.2018
Сообщений: 678
20.04.2021, 17:53 5
усечение из double в float
Просто ставьте f в конце вещественных чисел и будет у вас сразу float (например 4.5f)
отсутствует аргумент
exit так-то функция и принимает возвращаемый при выходе код. exit(1) например, или ноль
0
0 / 0 / 0
Регистрация: 19.04.2021
Сообщений: 15
20.04.2021, 18:19  [ТС] 6
мне нужно доделать прогу https://pastebin.com/P22vAimH вот мне нужно сделать ввод и вывод выборочный ,ввод через файл или через экран ,вывод не зависема от того что выбрал вывод через файл или экран ,или одновременно у меня получилось лишь ввод через файл и вывод одновременно
0
20.04.2021, 18:19
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.04.2021, 18:19
Помогаю со студенческими работами здесь

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

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

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

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

Открытие формы для выбора варианта, с возможностью добавления
Ситуация: Имеется ленточная форма Ф1. Одно из полей может принимать значения из некого...

Выбор варианта вывода для печати
в качестве изучения Java решил попробовать для себя состряпать маленькую программку суть которой...


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

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

Новые блоги и статьи
Как преобразовать список списков в простой список в Python
bytestream 22.01.2025
При работе с Python разработчики часто сталкиваются с необходимостью обработки сложных структур данных, среди которых особое место занимают вложенные списки. Эти структуры представляют собой списки,. . .
Что такое GUID / UUID и как их создать
bytestream 22.01.2025
В мире разработки программного обеспечения существует постоянная потребность в уникальной идентификации объектов, записей и ресурсов. Эта задача становится особенно актуальной в распределенных. . .
Как добавить пустую директорию в репозиторий Git
bytestream 22.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с ситуацией, когда необходимо сохранить пустую директорию в репозитории. Данная задача может показаться простой на первый. . .
Как валидировать адрес email в JavaScript
bytestream 22.01.2025
JavaScript, как основной язык веб-разработки, предоставляет разработчикам множество инструментов для реализации эффективной валидации email-адресов. От простых встроенных решений до сложных. . .
Как заменить все вхождения подстроки в JavaScript
bytestream 22.01.2025
Строки в JavaScript представляют собой неизменяемые последовательности символов, что делает их обработку особенно интересной с точки зрения оптимизации и выбора правильного подхода к решению задач. . . .
Управление версиями пакетов в Node.js. В чем разница между тильдой (~) и кареткой (^) в package.json
bytestream 22.01.2025
В современной разработке программного обеспечения управление версиями пакетов играет ключевую роль в обеспечении стабильности и надежности проектов. Node. js, как одна из самых популярных платформ для. . .
Аутентификация на сайте с помощью формы
bytestream 21.01.2025
В современном цифровом мире безопасная аутентификация становится краеугольным камнем защиты веб-приложений и пользовательских данных. Каждый день миллионы людей используют различные онлайн-сервисы,. . .
Как получить индекс в цикле for в Python
bytestream 21.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только получить доступ к элементам последовательности, но и знать их позицию в процессе итерации. Индексация в циклах. . .
Как определить адрес, из которого локальный репозиторий Git был клонирован
bytestream 21.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса. При работе с Git разработчики часто сталкиваются с необходимостью. . .
Какая разница между операторами == и === в сравнениях в JavaScript
bytestream 21.01.2025
В мире веб-разработки JavaScript занимает особое место как динамический язык программирования, предоставляющий разработчикам широкий набор инструментов для создания интерактивных веб-приложений. . . .
Из чего и как собрать свой домашний кинотеатр
bt_guru 21.01.2025
Создание домашнего кинотеатра: от идеи до реализации В современном мире домашний кинотеатр стал неотъемлемой частью комфортного жилого пространства, предоставляя возможность наслаждаться. . .
Ошибки стиральных машин
bt_guru 21.01.2025
Современные стиральные машины представляют собой сложные электронные устройства, оснащенные множеством датчиков и систем контроля. Они способны самостоятельно определять вес загруженного белья,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru