Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 8

Некорректная работа команды continue в цикле при проверке корректности введенных данных

25.09.2016, 23:55. Показов 1161. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане. Есть программа для определения количества купюр (монет) того или иного номинала, которое необходимо иметь в наличии для того, чтобы выдать наличными деньгами некоторое количество (различных) сумм некоторому количеству получателей без сдачи. В строках 36-40 я попытался реализовать защиту от неверного ввода данных в переменную fSummaKvydache (потому как при попытке ввести сумму например 12 рублей 50 копеек, отделив копейки от рублей запятой программа "зацикливается", если можно так сказать). Однако конструкция, приведенная в строках 36-40 не помогла (я ожидал от ее исполнения вывод сообщения об ошибке и перезапуск цикла заново, т.е. новое приглашение ввести сумму) в результате сообщение об ошибке выводится, цикл перезапускается как и положено со строки 34 но строка 35, я так понимаю, не выполняется и программа опять "зацикливается", при этом в "цикл" добавляется сообщение об ошибке.
Подскажите, пожалуйста, что я делаю не так.
Это моя первая самостоятельно написанная программа, поэтому буду благодарен за любые советы/замечания по оптимизации (лучшей реализации) задуманного алгоритма.
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
#include <iostream>
 
using namespace std;
 
int main()
{
    // Команда настройки распознавания КИРИЛИЦЫ
    setlocale(0, "Rus");
    // Объявляю константы, соответствующие номиналам купюр (монет)
    float c1=20, c2=10, c3=5, c4=2, c5=1,
    c6=0.5, c7=0.2, c8=0.1, c9=0.05, c10=0.02, c11=0.01;
    // Объявляю переменные для подсчета количества купюр nAmount1 (накапливает значения)
    // и nAmount11 для промежуточного подсчета
    int nAmount1=0,nAmount2=0,nAmount3=0,nAmount4=0,nAmount5=0,nAmount6=0,nAmount7=0,
    nAmount8=0,nAmount9=0,nAmount10=0,nAmount11=0,nAmount01=0,nAmount02=0,nAmount03=0
    ,nAmount04=0,nAmount05=0,nAmount06=0,nAmount07=0,nAmount08=0,nAmount09=0,nAmount010=0
    ,nAmount011=0;
    // Переменная для ввода суммы для получения каждым из n...получателей
    float fSummaKvydache;
    // Переменная для ввода количества n...получателей указанной выше суммы
    int nKolichestvoPolucateley;
    // Временная переменная используемая в каждом
    // подцикле работы программы по вычленению каждого номинала
    // для последующего уменьшения значения переменной fSummaKvydache
    int nNunberOfCoinsTemp;
    // Переменная для вывода и проверки общей суммы наличных к получению
    float fSummaKpolucheniuTest;
    cout <<"!!! ВНИМАНИЕ!!! при вводе суммы рубли от копеек отделяйте  ТОЧКОЙ\n\n";
    // Вводится цикл управления программой
    // пока значение переменной управления циклом nOperator,
    // вводимое пользователем, равно единице цикл программы повторяется
    for (int nOperator=1;nOperator==1; )
        {
    cout <<"Введите сумму к выплате одному получателю:";
    cin >> fSummaKvydache;
    if (cin.fail())
    {
     cout <<"!!!ВНИМАНИЕ ОШИБКА!!!\n Вы некорректно ввели сумму \n Рубли от копеек отделяйте ТОЧКОЙ. \n";
     continue;
    }
    cout <<"Введите количество получателей введенной суммы:";
    cin >> nKolichestvoPolucateley;
    cout <<"\n";
    // Подсчет количества купюр каждого номинала
    // по каждой введенной сумме к выдаче с учетом количества получателей каждой суммы
    // Уменьшение переменной СуммаКвыдаче на сумму 
    nAmount01 = fSummaKvydache/c1;
    nAmount01 = nAmount01 *nKolichestvoPolucateley;
    nAmount1 = nAmount1 + nAmount01;
    nNunberOfCoinsTemp = fSummaKvydache/c1;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c1;
 
    nAmount02 = fSummaKvydache/c2;
    nAmount02 = nAmount02 *nKolichestvoPolucateley;
    nAmount2 = nAmount2 + nAmount02;
    nNunberOfCoinsTemp = fSummaKvydache/c2;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c2;
 
    nAmount03 = fSummaKvydache/c3;
    nAmount03 = nAmount03 *nKolichestvoPolucateley;
    nAmount3 = nAmount3 + nAmount03;
    nNunberOfCoinsTemp = fSummaKvydache/c3;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c3;
 
    nAmount04 =  fSummaKvydache/c4;
    nAmount04 = nAmount04 *nKolichestvoPolucateley;
    nAmount4 = nAmount4 + nAmount04;
    nNunberOfCoinsTemp = fSummaKvydache/c4;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c4;
 
    nAmount05 = fSummaKvydache/c5;
    nAmount05 = nAmount05 *nKolichestvoPolucateley;
    nAmount5 = nAmount5 + nAmount05;
    nNunberOfCoinsTemp = fSummaKvydache/c5;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c5;
 
    nAmount06 = fSummaKvydache/c6;
    nAmount06 = nAmount06 *nKolichestvoPolucateley;
    nAmount6 = nAmount6 + nAmount06;
    nNunberOfCoinsTemp = fSummaKvydache/c6;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c6;
 
    nAmount07 = fSummaKvydache/c7;
    nAmount07 = nAmount07 *nKolichestvoPolucateley;
    nAmount7 = nAmount7 + nAmount07;
    nNunberOfCoinsTemp = fSummaKvydache/c7;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c7;
 
    nAmount08 = fSummaKvydache/c8;
    nAmount08 = nAmount08 *nKolichestvoPolucateley;
    nAmount8 = nAmount8 + nAmount08;
    nNunberOfCoinsTemp = fSummaKvydache/c8;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c8;
 
    nAmount09 = fSummaKvydache/c9;
    nAmount09 = nAmount09 *nKolichestvoPolucateley;
    nAmount9 = nAmount9 + nAmount09;
    nNunberOfCoinsTemp = fSummaKvydache/c9;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c9;
 
    nAmount010 = fSummaKvydache/c10;
    nAmount010 = nAmount010 *nKolichestvoPolucateley;
    nAmount10 = nAmount10 + nAmount010;
    nNunberOfCoinsTemp = fSummaKvydache/c10;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c10;
 
    // В следующей строке корректируется погрешность, почему-то возникающая
    // при выполнении вышеописанных операций с дробной частью переменной fSummaKvydache
    nAmount011 = (fSummaKvydache+0.0001)/c11;
    nAmount011 = nAmount011 *nKolichestvoPolucateley;
    nAmount11 = nAmount11 + nAmount011;
    nNunberOfCoinsTemp = fSummaKvydache/c11;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c11;
 
    cout << "Для продолжения ввода данных введите 1, \n";
    cout << "для окончания работы введите любое другое число:";
    cin >> nOperator;
    cout <<"\n";
    }
    // Подсчет итговой суммы к получению из суммы произведений
    // номиналов купюр на их количество
    fSummaKpolucheniuTest =  c1*nAmount1+c2*nAmount2+c3*nAmount3+c4*nAmount4+
c5*nAmount5+c6*nAmount6+c7*nAmount7+c8*nAmount8+c9*nAmount9+c10*nAmount10+c11*nAmount11;
    // Вывод результатов работы программы
    cout << "Рекомендую Вам получить купюры и монеты следующих номиналов: \n \n";
    cout << "\t 20 рублей - " << nAmount1 << "\n";
    cout << "\t 10 рублей - " << nAmount2 << "\n";
    cout << "\t 5  рублей - " << nAmount3 << "\n";
    cout << "\t 2  рубля  - " << nAmount4 << "\n";
    cout << "\t 1  рубль  - " << nAmount5 << "\n";
    cout << "\t 50 копеек - " << nAmount6 << "\n";
    cout << "\t 20 копеек - " << nAmount7 << "\n";
    cout << "\t 10 копеек - " << nAmount8 << "\n";
    cout << "\t 5  копеек - " << nAmount9 << "\n";
    cout << "\t 2  копейки- " << nAmount10 << "\n";
    cout << "\t 1  копейка- " << nAmount11 << "\n";
    cout << "\t Общая сумма к получению: " << fSummaKpolucheniuTest << "\n\n";
 
    cout << "для выхода введите любую цифру: ";
    cin >> fSummaKvydache;
 
    return 0;
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.09.2016, 23:55
Ответы с готовыми решениями:

Проверка корректности введенных данных
Всем привет. Есть задача: Список товаров, имеющихся на складе, включает в себя наименование товара, количество единиц...

Проверка корректности введенных данных
Здравствуйте, возникла такая проблема - в программе, на языке Си, необходимо реализовать проверку корректности введенных пользователем...

Контроль корректности введенных данных в PropertyGrid
Здравствуйте! Задача заключается в том, чтобы в поле PropertyGrid можно было вносить только цифры в формате ХХ:ХХ - ХХ:ХХ где Х-цифра. ...

7
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
26.09.2016, 01:07
Цитата Сообщение от Vacho_87 Посмотреть сообщение
C++
1
2
3
4
5
6
cin >> fSummaKvydache;
 if (cin.fail())
{
cout <<"!!!ВНИМАНИЕ ОШИБКА!!!\n Вы некорректно ввели сумму \n Рубли от копеек отделяйте ТОЧКОЙ. \n";
continue;
}
C++
1
2
3
4
5
6
7
    if (!(cin >> fSummaKvydache) || cin.peek() != '\n')
    {
        cout <<"!!!ВНИМАНИЕ ОШИБКА!!!\n Вы некорректно ввели сумму \n Рубли от копеек отделяйте ТОЧКОЙ. \n";
        cin.clear();
        while (cin.get() != '\n');
        continue;
    }
Добавлено через 1 час 0 минут
Цитата Сообщение от Vacho_87 Посмотреть сообщение
В строках 36-40 я попытался реализовать защиту от неверного ввода данных в переменную fSummaKvydache (потому как при попытке ввести сумму например 12 рублей 50 копеек, отделив копейки от рублей запятой программа "зацикливается", если можно так сказать). Однако конструкция, приведенная в строках 36-40 не помогла (я ожидал от ее исполнения вывод сообщения об ошибке и перезапуск цикла заново, т.е. новое приглашение ввести сумму) в результате сообщение об ошибке выводится, цикл перезапускается как и положено со строки 34 но строка 35, я так понимаю, не выполняется и программа опять "зацикливается", при этом в "цикл" добавляется сообщение об ошибке.
Подскажите, пожалуйста, что я делаю не так.
Если ввести сумму, отделив копейки от рублей запятой, то ошибки в потоке ввода не будет, поэтому конструкция if (cin.fail()) не сработает. Сумма рублей будет прочитана в переменную, остальное останется в очереди ввода. А вот при следующей итерации, когда первой в очереди чтения будет запятая, в потоке установится флаг ошибки (поток станет нерабочим), и конструкция if (cin.fail()) сработает. Из-за выше сказанного, после чтения нужно проверять не только флаг ошибки, но и то, что осталось в потоке (при правильном чтении должен остаться только '\n').
1
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 8
26.09.2016, 19:42  [ТС]
Спасибо, nd2. Предложенная Вами конструкция:
Цитата Сообщение от nd2 Посмотреть сообщение
if (!(cin >> fSummaKvydache) || cin.peek() != '\n')
* * {
* * * * cout <<"!!!ВНИМАНИЕ ОШИБКА!!!\n Вы некорректно ввели сумму \n Рубли от копеек отделяйте ТОЧКОЙ. \n";
* * * * cin.clear();
* * * * while (cin.get() != '\n');
* * * * continue;
* * }
в коде программы корректно отрабатывает в случае ввода суммы в неверном формате (выводит сообщение об ошибке и заново предлагает ввести сумму). А вот в случае корректного ввода суммы выдается еще одно приглашение на ввод (без приглашающей записи типа "введите то-то"), причем судя по результатам выполнения программы именно введенное значение в повторное приглашение на ввод и воспринимается программой как fSummaKvydache, т.е. та величина из которой программа начинает вычленять n- количество купюр соответствующих номиналов.
Ввиду своего малого опыта не могу понять почему так получается.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
26.09.2016, 20:46
Код с исправлениями покажи.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
26.09.2016, 21:01
Что ввод правильно работает - из скрина видно. Вот этого я не увидел:
Цитата Сообщение от Vacho_87 Посмотреть сообщение
вот в случае корректного ввода суммы выдается еще одно приглашение на ввод (без приглашающей записи типа "введите то-то")
Миниатюры
Некорректная работа команды continue в цикле при проверке корректности введенных данных  
0
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 8
26.09.2016, 21:35  [ТС]
Вот код:
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
#include <iostream>
using namespace std;
int main()
{
    // Команда настройки распознавания КИРИЛИЦЫ
    setlocale(0, "Rus");
    // Объявляю константы, соответствующие номиналам купюр (монет)
    float c1=20, c2=10, c3=5, c4=2, c5=1,
    c6=0.5, c7=0.2, c8=0.1, c9=0.05, c10=0.02, c11=0.01;
    // Объявляю переменные для подсчета количества купюр nAmount1 (накапливает значения)
    // и nAmount11 для промежуточного подсчета
    int nAmount1=0,nAmount2=0,nAmount3=0,nAmount4=0,nAmount5=0,nAmount6=0,nAmount7=0,
    nAmount8=0,nAmount9=0,nAmount10=0,nAmount11=0,nAmount01=0,nAmount02=0,nAmount03=0
    ,nAmount04=0,nAmount05=0,nAmount06=0,nAmount07=0,nAmount08=0,nAmount09=0,nAmount010=0
    ,nAmount011=0;
    // Переменная для ввода суммы для получения каждым из n...получателей
    float fSummaKvydache;
    // Переменная для ввода количества n...получателей указанной выше суммы
    int nKolichestvoPolucateley;
    // Временная перменная используемая в каждом
    // подцикле работы программы по вычленению каждого номинала
    // для последующего уменьшения значения перменной fSummaKvydache
    int nNunberOfCoinsTemp;
    // Переменная для вывода и проверки общей суммы наличных к получению
    float fSummaKpolucheniuTest;
    cout <<"!!! ВНИМАНИЕ!!! при вводе суммы рубли от копеек отделяйте  ТОЧКОЙ\n\n";
    // Вводится цикл управления программой
    // пока значение переменной управления циклом nOperator,
    // вводимое пользователем, равно единице цикл программы повторяется
    for (int nOperator=1;nOperator==1; )
        {
    cout <<"Введите сумму к выплате одному получателю:";
    cin >> fSummaKvydache;
       if (!(cin >> fSummaKvydache) || cin.peek() != '\n')
    {
        cout <<"!!!ВНИМАНИЕ ОШИБКА!!!\n Вы некорректно ввели сумму \n Рубли от копеек отделяйте ТОЧКОЙ. \n";
        cin.clear();
        while (cin.get() != '\n');
        continue;
    }
    cout <<"Введите количество получателей введенной суммы:";
    cin >> nKolichestvoPolucateley;
    cout <<"\n";
    // Подсчет количества купюр каждого номинала
    // по каждой введенной сумме к выдаче с учетом количества получателей каждой суммы
    // Уменьшение переменной СуммаКвыдаче на сумму
    nAmount01 = fSummaKvydache/c1;
    nAmount01 = nAmount01 *nKolichestvoPolucateley;
    nAmount1 = nAmount1 + nAmount01;
    nNunberOfCoinsTemp = fSummaKvydache/c1;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c1;
 
    nAmount02 = fSummaKvydache/c2;
    nAmount02 = nAmount02 *nKolichestvoPolucateley;
    nAmount2 = nAmount2 + nAmount02;
    nNunberOfCoinsTemp = fSummaKvydache/c2;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c2;
 
    nAmount03 = fSummaKvydache/c3;
    nAmount03 = nAmount03 *nKolichestvoPolucateley;
    nAmount3 = nAmount3 + nAmount03;
    nNunberOfCoinsTemp = fSummaKvydache/c3;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c3;
 
    nAmount04 =  fSummaKvydache/c4;
    nAmount04 = nAmount04 *nKolichestvoPolucateley;
    nAmount4 = nAmount4 + nAmount04;
    nNunberOfCoinsTemp = fSummaKvydache/c4;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c4;
 
    nAmount05 = fSummaKvydache/c5;
    nAmount05 = nAmount05 *nKolichestvoPolucateley;
    nAmount5 = nAmount5 + nAmount05;
    nNunberOfCoinsTemp = fSummaKvydache/c5;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c5;
 
    nAmount06 = fSummaKvydache/c6;
    nAmount06 = nAmount06 *nKolichestvoPolucateley;
    nAmount6 = nAmount6 + nAmount06;
    nNunberOfCoinsTemp = fSummaKvydache/c6;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c6;
 
    nAmount07 = fSummaKvydache/c7;
    nAmount07 = nAmount07 *nKolichestvoPolucateley;
    nAmount7 = nAmount7 + nAmount07;
    nNunberOfCoinsTemp = fSummaKvydache/c7;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c7;
 
    nAmount08 = fSummaKvydache/c8;
    nAmount08 = nAmount08 *nKolichestvoPolucateley;
    nAmount8 = nAmount8 + nAmount08;
    nNunberOfCoinsTemp = fSummaKvydache/c8;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c8;
 
    nAmount09 = fSummaKvydache/c9;
    nAmount09 = nAmount09 *nKolichestvoPolucateley;
    nAmount9 = nAmount9 + nAmount09;
    nNunberOfCoinsTemp = fSummaKvydache/c9;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c9;
 
    nAmount010 = fSummaKvydache/c10;
    nAmount010 = nAmount010 *nKolichestvoPolucateley;
    nAmount10 = nAmount10 + nAmount010;
    nNunberOfCoinsTemp = fSummaKvydache/c10;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c10;
 
    // В следующей строке корректируется погрешность, почему-то возникающая
    // при выполнении вышеописанных операций с дробной частью переменной fSummaKvydache
    nAmount011 = (fSummaKvydache+0.0001)/c11;
    nAmount011 = nAmount011 *nKolichestvoPolucateley;
    nAmount11 = nAmount11 + nAmount011;
    nNunberOfCoinsTemp = fSummaKvydache/c11;
    fSummaKvydache = fSummaKvydache - nNunberOfCoinsTemp*c11;
 
    cout << "Для продолжения ввода данных введите 1, \n";
    cout << "для окончания работы введите любое другое число:";
    cin >> nOperator;
    cout <<"\n";
    }
    // Подсчет итговой суммы к получению из суммы произведений
    // номиналов купюр на их количество
    fSummaKpolucheniuTest =  c1*nAmount1+c2*nAmount2+c3*nAmount3+c4*nAmount4+
c5*nAmount5+c6*nAmount6+c7*nAmount7+c8*nAmount8+c9*nAmount9+c10*nAmount10+c11*nAmount11;
    // Вывод результатов работы программы
    cout << "Рекомендую Вам получить купюры и монеты следующих номиналов: \n \n";
    cout << "\t 20 рублей - " << nAmount1 << "\n";
    cout << "\t 10 рублей - " << nAmount2 << "\n";
    cout << "\t 5  рублей - " << nAmount3 << "\n";
    cout << "\t 2  рубля  - " << nAmount4 << "\n";
    cout << "\t 1  рубль  - " << nAmount5 << "\n";
    cout << "\t 50 копеек - " << nAmount6 << "\n";
    cout << "\t 20 копеек - " << nAmount7 << "\n";
    cout << "\t 10 копеек - " << nAmount8 << "\n";
    cout << "\t 5  копеек - " << nAmount9 << "\n";
    cout << "\t 2  копейки- " << nAmount10 << "\n";
    cout << "\t 1  копейка- " << nAmount11 << "\n";
    cout << "\t Общая сумма к получению: " << fSummaKpolucheniuTest << "\n\n";
 
    cout << "для выхода введите любую цифру: ";
    cin >> fSummaKvydache;
    return 0;
}
Вот результат:
Миниатюры
Некорректная работа команды continue в цикле при проверке корректности введенных данных   Некорректная работа команды continue в цикле при проверке корректности введенных данных  
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
26.09.2016, 21:38
Цитата Сообщение от Vacho_87 Посмотреть сообщение
причем судя по результатам выполнения программы именно введенное значение в повторное приглашение на ввод и воспринимается программой как fSummaKvydache
Чтобы судить не по результатам, а по тому, как работает - есть отладчик.

Добавлено через 1 минуту
Цитата Сообщение от Vacho_87 Посмотреть сообщение
cin >> fSummaKvydache;
Это к чему оставил (33 стр.)? Во втором посте я ясно показал: что на что заменить.
1
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 8
26.09.2016, 22:13  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Это к чему оставил (33 стр.)? Во втором посте я ясно показал: что на что заменить.
Дело в том, что я сразу не понял, что приведенные в том посте куски кода надо буквально строка в строку заменить. Кроме того, я думал, что вот это выражение "if (!(cin >> fSummaKvydache)" является только частью условия функции IF и не позволяет ввести значение, а для ввода данных должна быть отдельно использована команда "cin >> fSummaKvydache". Теперь все работает. Буду разбираться в премудростях синтаксиса и поищу отладчик в своем компиляторе. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.09.2016, 22:13
Помогаю со студенческими работами здесь

Форма регистрации, проверка корректности введенных данных
// JScript source code var fio, age, email, pol; var test = 0; var MyGo = true; var DOT = 0; var SOBAKA = 0; var scan_digit =...

Активность кнопки в зависимости от корректности введенных данных
Подскажите, пожалуйста, каким образом сделать проверку внесения данных на форме чтобы кнопке сохранения дать активность? К примеру, есть...

Проверка корректности введенных данных в текстовые поля
Здравствуйте. Хотелось бы узнать что не так в моем коде( не судите строго еще плохо разбираюсь в программировании).Необходимо чтобы если в...

Формат времени с проверкой корректности введенных данных
в проге требуется ввод времени с проверкой и дальнейшем использовать условие if else сначало сделал так: запрашиваем время: ...

Изменение цвета TextBox в зависимости от корректности введенных данных
есть textbox и есть копка в textbox пишется число и нажимается копка, если число не правильное, текст должен сменить цвет и у textbox...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru