Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/25: Рейтинг темы: голосов - 25, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.05.2024
Сообщений: 2

Калькулятор на классах

25.05.2024, 20:22. Показов 5436. Ответов 65
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем, только начинаю изучать c++ и решил сделать калькулятор на классах, чтобы лучше усвоить тему. Все вроде работает, но не выводит сам результат, программа просто заканчивается дополнительной пустой строкой, что сделать в таком случае?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.05.2024, 20:22
Ответы с готовыми решениями:

Векторный калькулятор на классах
Привет всем. Преподаватель дал задание, написать векторный калькулятор на классах. На массивах в консоли я сделал для 4 операций, но как...

Определить, какие из этих имен встречаются во всех классах данной параллели, которые есть только в некоторых классах
2. Заданы имена девочек. Определить, какие из этих имен встречаются во всех классах данной параллели, которые есть только в некоторых...

Определить какие из имён встречаются во всех классах, только в некоторых классах, не встречаются ни в одном
1. Заданный имена девочек . Определить , какие из этих имён встречаются во всех классах данной параллели , которые есть только в некоторых...

65
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
27.05.2024, 00:26
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от SmallEvil Посмотреть сообщение
много ОС не имеют встроенного браузера
много это субъективно. Но если говорить относительно, то ОС, которые не имеют встроенного браузера или WebView будет в разы меньше, чем ОС, которые не смогут выполнить прогу, написанную на SFML.
With SFML, your application can compile and run out of the box on the most common operating systems: Windows, Linux, macOS and Android & iOS (with limitations).
Не так уж много.

Более того, html файл один на все платформы, а на SFML нужно делать под каждую платформу релиз.
0
27.05.2024, 00:28

Не по теме:


Royal_X,
Ага, впарь кому то калькулятор под браузером )))

0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
27.05.2024, 00:31
Цитата Сообщение от SmallEvil Посмотреть сообщение
впарь кому то калькулятор под браузером
уже есть и это даже не калькулятор, а целая система компьютерной алгебры: https://www-fourier.ujf-grenob... ml#lang=en

Я тоже писал, не калькулятор, но прогу для вычисления простых чисел. По скорости JS рвет Python.
Вложения
Тип файла: zip primes.zip (2.5 Кб, 13 просмотров)
0
27.05.2024, 00:38

Не по теме:

Цитата Сообщение от Royal_X Посмотреть сообщение
уже есть
Цитата Сообщение от Royal_X Посмотреть сообщение
это субъективно
Да и разница большая.
Если говорить по текущей теме, то всему правит здравый смысл и необходимость.
Грузить огромный инструмент (время загрузки, место на диске, занимаемая память, нагрузка на процессор)
ради простых арифметических операци.
Или десятки и сотни террабайт и суперкомпьютер для содержания нейросети.
Каждому свой подход и инструмент для предоставления конечному пользователю.
Я пытался подвести тебя к этому. Но ты упорно просто загоняешься и это забавно )))
Мир, жвачка ?

0
27.05.2024, 00:42

Не по теме:

Цитата Сообщение от SmallEvil Посмотреть сообщение
забавно
забавно то, что пока ТС настроит ide и sfml, я открою любой текстовый редактор (подойдет даже виндовый блокнот), и напишу код. Выполнение, отладка - всё в браузере.

0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
27.05.2024, 06:34
Калькулятор:
Миниатюры
Калькулятор на классах  
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
27.05.2024, 07:53
alexu_007, не хватает MRC, M+, M- для классики. Ещё вместо sqrt используй знак √.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
27.05.2024, 08:35
Цитата Сообщение от Royal_X Посмотреть сообщение
для классики
Думаешь он умеет 25**=625 ? )
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
27.05.2024, 09:03
SmallEvil, я гадать на кофейной гуще не буду. Возможно, это просто картинка, сделанная в фоторедакторе
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,217
27.05.2024, 14:19

...даболы.
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,217
27.05.2024, 14:23
Угадайте слово.

Добавлено через 3 минуты

Не по теме:

Royal_X,
Вообще агент хрен какой разведки...

1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
27.05.2024, 15:24
Наталья8, там вируса нет. Внутри архива находится один html файл, внутри которого внедрены JS и CSS. Ложное срабатывание из-за обфускации кода.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
27.05.2024, 21:37
Цитата Сообщение от Royal_X Посмотреть сообщение
Возможно, это просто картинка, сделанная в фоторедакторе
Обижаете! Калькулятор реальный.
1
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
28.05.2024, 17:49
Цитата Сообщение от SmallEvil Посмотреть сообщение
Думаешь он умеет 25**=625 ? )
А в чём тут проблема?
25*=625
25**=625
25***=625
Если нажать неск. раз на кнопку умножить, вводится только 1 звездочка.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
28.05.2024, 18:15
Цитата Сообщение от alexu_007 Посмотреть сообщение
ут проблема?
25*=625
Цитата Сообщение от alexu_007 Посмотреть сообщение
25*=625
И ваш бульбулятор такое подддерживает ?
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
28.05.2024, 19:14
alexu_007, SmallEvil, а разве у классических калькуляторов существовала такая функция. Я только видел калькуляторы с таким сложением, но не умножением. Ведь, у них на экране макс 8-12 цифр было и они не поддерживали экспоненту.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
29.05.2024, 10:24
Цитата Сообщение от SmallEvil Посмотреть сообщение
И ваш бульбулятор такое подддерживает ?
Да. Нажимаешь 25х=, результат 625. В верхнем окошке вторая 25 подставляется сама.
Как это реализовал уже не помню, исходник могу выложить. Написано на Qt 5.
Миниатюры
Калькулятор на классах  
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
29.05.2024, 10:53
исходник могу выложить.

пожалуйста.

Как это реализовал уже не помню

разберемся )

Добавлено через 8 минут
Цитата Сообщение от Royal_X Посмотреть сообщение
alexu_007, SmallEvil, а разве у классических калькуляторов существовала такая функция. Я только видел калькуляторы с таким сложением, но не умножением. Ведь, у них на экране макс 8-12 цифр было и они не поддерживали экспоненту.
Всё это ложь и провокация.
Нормальные калькуляторы такое поддерживали (где то с 1990).
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
29.05.2024, 16:20
Тока сразу предупреждаю: классов там нет...

C++ (Qt)
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
#ifndef WIDGET_H
#define WIDGET_H
 
#include <QWidget>
 
#include <QDialog>
#include <QEvent>
#include <QKeyEvent>
#include "math.h"
 
namespace Ui {
class Widget;
}
 
class Widget : public QWidget
{
    Q_OBJECT
 
public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
 
private:
    Ui::Widget *ui;
 
    bool eventFilter(QObject *obj, QEvent *event);
 
    // строковые переменные
    QString  A, B;
 
    // ôëàãè
    int fl1;      // флаг введения первой цифры
                  // он же вида арифметической операции
 
    int fl2;      // флаг первого нажатия цифровой кнопки
    int fl3;      // флаг нажатия кнопки равно
    int fl4;      // флаг введения второй цифры
 
    void fn_Digit(int);
    void fn_Action(int);
 
    QString fnProcent(QString, QString, int);
 
public slots:
    void Press_Digit_Key();
    void Press_Arifm_Key();
    void Press_Enter_Key();
    void Press_Esc___Key();
    void Press_CE____Key();
    void Press_SQRT__Key();
    void Press_PROCENT_Key();
    void Press_ZNAK__Key();
    void MyEventHandler9();
};
#endif // WIDGET_H

C++ (Qt)
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
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
#include "widget.h"
#include "ui_widget.h"
 
 
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
 
    A = "0";
    B = "0";
 
    fl1 = 0;
    fl2 = 0;
    fl3 = 0;
    fl4 = 0;
 
    qApp->installEventFilter(this);
 
    QObject::connect(ui->pbtn_digit_00, SIGNAL(clicked()), this, SLOT(Press_Digit_Key()));
    QObject::connect(ui->pbtn_digit_01, SIGNAL(clicked()), this, SLOT(Press_Digit_Key()));
    QObject::connect(ui->pbtn_digit_02, SIGNAL(clicked()), this, SLOT(Press_Digit_Key()));
    QObject::connect(ui->pbtn_digit_03, SIGNAL(clicked()), this, SLOT(Press_Digit_Key()));
    QObject::connect(ui->pbtn_digit_04, SIGNAL(clicked()), this, SLOT(Press_Digit_Key()));
    QObject::connect(ui->pbtn_digit_05, SIGNAL(clicked()), this, SLOT(Press_Digit_Key()));
    QObject::connect(ui->pbtn_digit_06, SIGNAL(clicked()), this, SLOT(Press_Digit_Key()));
    QObject::connect(ui->pbtn_digit_07, SIGNAL(clicked()), this, SLOT(Press_Digit_Key()));
    QObject::connect(ui->pbtn_digit_08, SIGNAL(clicked()), this, SLOT(Press_Digit_Key()));
    QObject::connect(ui->pbtn_digit_09, SIGNAL(clicked()), this, SLOT(Press_Digit_Key()));
 
    QObject::connect(ui->pbtn__add__10, SIGNAL(clicked()), this, SLOT(Press_Arifm_Key()));
    QObject::connect(ui->pbtn__sub__11, SIGNAL(clicked()), this, SLOT(Press_Arifm_Key()));
    QObject::connect(ui->pbtn__mul__12, SIGNAL(clicked()), this, SLOT(Press_Arifm_Key()));
    QObject::connect(ui->pbtn__div__13, SIGNAL(clicked()), this, SLOT(Press_Arifm_Key()));
 
    QObject::connect(ui->pbtn_enter_14, SIGNAL(clicked()), this, SLOT(Press_Enter_Key()));
    QObject::connect(ui->pbtn_Esc___15, SIGNAL(clicked()), this, SLOT(Press_Esc___Key()));
    QObject::connect(ui->pbtn_CE____16, SIGNAL(clicked()), this, SLOT(Press_CE____Key()));
    QObject::connect(ui->pbtn_SQRT__17, SIGNAL(clicked()), this, SLOT(Press_SQRT__Key()));
    QObject::connect(ui->pbtn_PROTC_18, SIGNAL(clicked()), this, SLOT(Press_PROCENT_Key()));
    QObject::connect(ui->pushButton_19, SIGNAL(clicked()), this, SLOT(MyEventHandler9()));
    QObject::connect(ui->pushButton_20, SIGNAL(clicked()), this, SLOT(Press_ZNAK__Key()));
 
    ui->pbtn_enter_14->setFocus();
}
 
 
 
 
Widget::~Widget()
{
    delete ui;
}
 
 
 
// обработка прерываний клавиатуры
bool Widget::eventFilter(QObject *obj, QEvent *event)
{
    if (event->type() == QEvent::KeyPress)
    {
 
        QKeyEvent *keyEvent = static_cast <QKeyEvent *>(event);
        int ix = keyEvent->key();
 
        /*
        // тут можно посмотреть коды нажатых клавиш
        ui->lineEdit->setText(QString::number(ix));
        return true;
        */
 
        switch(ix)
        {
            case Qt::Key_Escape:    Widget::Press_Esc___Key(); return true;  //Esc = C
            case Qt::Key_Home:      Widget::Press_Esc___Key(); return true;  //Home = C
        }
 
        // при ошибке обрабатываются лишь кнопки сброс
        if (ui->lineEdit->text() == "error")
                return QWidget::eventFilter(obj, event);
 
        // цифры
        if ((ix > 47) && (ix < 58))
            {fn_Digit(ix - 48); return true;}
 
        switch(ix)
        {
            case Qt::Key_Plus: fn_Action(1); return true;             // +
            case Qt::Key_Minus: fn_Action(2);  return true;           // -
            case Qt::Key_Asterisk: fn_Action(3); return true;         // *
            case Qt::Key_Slash: fn_Action(4);  return true;           // /
            case Qt::Key_Enter: Press_Enter_Key();  return true;      //Enter
            case Qt::Key_Return: Press_Enter_Key();  return true;     //Return
            case Qt::Key_End:   Press_CE____Key();  return true;      //End = SE
            case Qt::Key_PageUp: Press_SQRT__Key();  return true;     //PgUp = Sqrt
            case Qt::Key_PageDown: Press_PROCENT_Key();  return true; //PgDn = %
            case Qt::Key_Control: Press_ZNAK__Key();  return true;    //Ctrl = +/-
            case Qt::Key_Period: MyEventHandler9();  return true;     //"."
        }
   }
 
return QWidget::eventFilter(obj, event);
}
 
 
 
 
// функция помещает в edit нажатие цифровой кнопки
// ******************************************************
void Widget::fn_Digit(int ix)
{
   //QMessageBox msgBox;
 
    QString Str = ui->lineEdit->text();
 
    // частичный сброс калькулятора, если была нажата кнопка равно
    if(fl3 == 1) {fl1 = 0; fl3 = 0; fl4 = 0;}
 
    // (fl2 = 0) первое нажатие, (fl2 = 1) второе с следующее
    // нажатия цифровых клавиш
    //*******************************************************
    if(fl2 == 0)
    {
        // при нажатии первого 0 нажатие остаётся первым
        if(ix != 0) fl2 = 1;
        Str = QString::number(ix);
    }
 
    else
    {
        if(Str.length() < 17) Str += QString::number(ix);
    }
 
 
    // ввод либо в переменную А, либо В
    // при вводе первой цифры заполняем и фичу
    if(fl1 == 0) {A = Str; ui->lineEdit_2->setText(A);}
    else         {B = Str; fl4 = 1;}
 
    ui->lineEdit->setText(Str);
}
 
 
 
/*
    msgBox.setText(QString::number(fl1) + " " +
                   QString::number(fl2) + " " +
                   QString::number(fl3) + " " +
                   QString::number(fl4) + " " +
                   QString::number(ix));
    msgBox.exec();
*/
 
 
 
 
// функция арифметических вычислений
// ******************************************************
QString fnArifm(QString sA, QString sB, int X)
{
    long double A1, B1;
 
    //QMessageBox msgBox;
    //msgBox.setText(sA + " " + sB);
    //msgBox.exec();
 
    A1 = sA.toDouble();
    B1 = sB.toDouble();
 
    switch (X)
    {
        case 0: {break;}
        case 1: {B1 = A1 + B1; break;}
        case 2: {B1 = A1 - B1; break;}
        case 3: {B1 = A1 * B1; break;}
        case 4: {B1 = A1 / B1; break;}
        case 5: {B1 = sqrt(B1); break;}
        case 6: {B1 = - A1; break;}
    }
 
    sB = QString::number(B1, 'g', 16);
 
    if((sB == "inf") || (sB == "nan")) sB = "error";
 
    return sB;
}
 
 
 
 
// функция вычисления %
// ******************************************************
QString Widget::fnProcent(QString sA, QString sB, int X)
{
    long double A1, B1;
 
    A1 = sA.toDouble();
    B1 = sB.toDouble();
 
    switch (X)
        {
        case 0: break;
        case 1: {B1 = A1 + A1 * B1 / 100; break;}
        case 2: {B1 = A1 - A1 * B1 / 100; break;}
        case 3: {B1 = A1 * B1 / 100; break;}
        case 4: {B1 = A1 * B1 / 100; break;}
        case 5: break;
        case 6: break;
        }
 
    sB = QString::number(B1, 'g', 16);
 
    if((sB == "inf") || (sB == "nan")) B = "error";
 
    return sB;
}
 
 
 
 
// функция обработки нажатия кнопок арифм. действий
// ******************************************************
void Widget::fn_Action(int X)
{
    QString Str = "+-*/";
 
    // вычисляем результат предыдущего действия
    if(fl4 > 0) ui->lineEdit->setText(fnArifm(A, B, fl1));
 
    // устанавливаем флаг
    fl1 = X;
 
    // сбрасываем фдаг повторного нажатия и кнопки равно
    fl2 = 0;
    fl3 = 0;
 
    A = ui->lineEdit->text();
    B = ui->lineEdit->text();
 
    //заполнение фичи
    if(X > 0) ui->lineEdit_2->setText(A + " " + Str[X - 1]);
}
 
 
 
 
 
//****************************************************************************************************
// обработка нажатий цифровых кнопок
void Widget::Press_Digit_Key()
{
    if (ui->lineEdit->text() == "error") return;
 
    QString x = sender()->objectName();
    fn_Digit(x.remove(0, 12).toInt());
}
 
 
 
 
//*****************************************************************************************************
// обработка нажатия кнопок арифметических действий
void Widget::Press_Arifm_Key()
{
    if (ui->lineEdit->text() == "error") return;
 
    QString x = sender()->objectName();
    fn_Action(x.remove(0, 11).toInt() - 9);
}
 
 
 
//*****************************************************************************************************
// обработка нажатия кнопки равно
void Widget::Press_Enter_Key()
{
    if (ui->lineEdit->text() == "error") return;
 
    QString Str = "+-*/";
 
    if (ui->lineEdit->text() == "0,") {B = "0"; ui->lineEdit->setText(B);}
 
    if (fl1 > 0)
    {
        // вычисление
        ui->lineEdit->setText(fnArifm(A, B, fl1));
        // заполнение фичи
        ui->lineEdit_2->setText(A + " " + Str[fl1 - 1] + " " + B);
        A = ui->lineEdit->text();
    }
 
    // сбрасываем флаг повторного нажатия
    fl2 = 0;
    // устанавливаем флаг нажатия кнопки равно
    fl3 = 1;
    // сбрасываем флаг
    fl4 = 0;
}
 
 
 
 
//****************************************************************************************************
// обработка нажатия кнопки сброс
void Widget::Press_Esc___Key()
{
    fl1 = 0;
    fl2 = 0;
    fl3 = 0;
    fl4 = 0;
 
    A =  "0";
    B =  "0";
 
    ui->lineEdit->setText(A);
    ui->lineEdit_2->clear();
}
 
 
 
 
//****************************************************************************************************
// обработка нажатия кнопки СЕ
void Widget::Press_CE____Key()
{
    if (ui->lineEdit->text() == "error") return;
 
    fl2 = 0;
    B =  "0";
 
    ui->lineEdit->setText(B);
}
 
 
 
 
//****************************************************************************************************
// обработка нажатия кнопки sqrt
void Widget::Press_SQRT__Key()
{
    if (ui->lineEdit->text() == "error") return;
 
    fn_Action(0);
 
    // заполнение фичи
    ui->lineEdit_2->setText("sqrt " + A);
 
    ui->lineEdit->setText(fnArifm(A, B, 5));
 
    // сбрасываем флаг повторного нажатия
    fl2 = 0;
    // устанавливаем флаг нажатия кнопки равно
    fl3 = 1;
    // сбрасываем флаг
    fl4 = 0;
}
 
 
 
 
//****************************************************************************************************
// обработка нажатия кнопки %
void Widget::Press_PROCENT_Key()
{
    if (ui->lineEdit->text() == "error") return;
 
    QString Str = "+-  ";
    if (ui->lineEdit->text() == "0,") {B = "0"; ui->lineEdit->setText(B);}
 
    if (fl1 > 0)
    {
        // вычисление
        ui->lineEdit->setText(fnProcent(A, B, fl1));
 
        //заполнение фичи
        ui->lineEdit_2->setText(A + " " + Str[fl1 - 1] + " " + B + "%");
 
        A = ui->lineEdit->text();
    }
 
    // сбрасываем флаг повторного нажатия
    fl2 = 0;
    // устанавливаем флаг нажатия кнопки равно
    fl3 = 1;
    // сбрасываем флаг
    fl4 = 0;
}
 
 
 
 
//****************************************************************************************************
// обработка нажатия кнопки ","
void Widget::MyEventHandler9()
{
    if (ui->lineEdit->text() == "error") return;
 
    QString str = ui->lineEdit->text();
 
    // первое нажатие точки после сброса или равно
    if (fl2 == 0 || fl3 > 0)
    {
        ui->lineEdit->setText("0.");
        fl2 = 1;
        return;
    }
 
    // точка вставляется в цифру только один раз
    if(str.indexOf(".") >= 0) return;
 
    str += ".";
    ui->lineEdit->setText(str);
}
 
 
 
 
//****************************************************************************************************
// обработка нажатия кнопки +/-
void Widget::Press_ZNAK__Key()
{
    if (ui->lineEdit->text() == "error") return;
 
    QString S = ui->lineEdit->text();
 
    // отрицательный ноль
    if (S.toDouble() == 0) return;
 
    B = fnArifm(S, S, 6);
    ui->lineEdit->setText(B);
}
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
29.05.2024, 16:33
Цитата Сообщение от alexu_007 Посмотреть сообщение
Тока сразу предупреждаю: классов там нет...
Qt классы зато есть))

alexu_007, не мог бы ты выложить экзешник, чтобы покликать и тестировать. У меня нет Qt, чтобы компилировать самому.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.05.2024, 16:33

Определить, какие из этих имен встречаются во всех классах, какие есть хотя бы в двух классах, и какие - только в одном классе
Для каждого из четырех классов указаны имена девочек, обучающихся в них. Определить, какие из этих имен встречаются во всех классах, какие...

Заданы имена девочек. Определить, какие встречаются во всех классах, которые есть только в некоторых классах и какие не встречаются
Заданы имена девочек. Определить, какие из этих имен встречаются во всех классах данной параллели, которые есть только в некоторых классах...

Определить, какие из имен встречаются во всех классах, в некоторых классах и какие не встречаются ни в одном классе
Поможете с задачкой С# недавно изучаю если возможно с комментарием Заданы имена девочек. Определить, какие из этих имен встречаются во...

какие из этих имен встречаются во всех классах данной параллели которые есть только в некоторых классах и какие из этих имен не встречаются ни в одном
Помогите написать программу: заданы имена девочек определить какие из этих имен встречаются во всех классах данной параллели которые есть...

Как преобразовать обычный калькулятор в калькулятор использующий класс стек?
#include &lt;iostream&gt; int main(){ int a = 0; int b = 0; char operation; std::cout &lt;&lt; &quot;Enter first number: &quot;; ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru