Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
6 / 6 / 3
Регистрация: 29.12.2016
Сообщений: 132
1

Проверка вводимых данных

14.01.2017, 15:16. Показов 1725. Ответов 5
Метки нет (Все метки)

Доброго времени суток, форумчане. Я столкнулся с такой проблемой: при введении еденицы измерения, если та инициализирована ранее то все верно. Но мне нужно написать, допустим, "Error" , если вводится неизвестная еденица измерения. Как это сделать?
Вот условие задачи:
Если введена неправильная единица измерения, например yard, meter, km или gallons, то такое значение следует отклонить
Код:
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
  #include <iostream>
#include <conio.h>
#include <vector>
#include <string>
using namespace std;
int main()
{
    vector<int> cmeters;
    vector<string> units;
    double val1;
    string unit;
    double cm;
    double m;
    double ft;
    double in;
    m = 100;
    cm = 1;
    in = 2.54;
    ft = 30.48;
    for (int i = 0; i < 2; i++)
    {
        cout << "Введите число и еденицу измерения: ";
        cin >> val1;
        cin >> unit;
        cmeters.push_back(val1);
        units.push_back(unit);
    }
    for (int i = 0; i < 2; i++)
    {
   
        if (unit == "cm")
            unit = cm;
        else if (unit == "m")  //
            unit = m;
        else if (unit == "ft")
            unit = ft;
        else if (unit == "in")
           { unit = in; }
        
          
         cout << cmeters[i] << units[i] << ';' << endl;
        
    }
        
    double min = cmeters[0];
    double max = cmeters[0];
        for (int i = 0; i < cmeters.size(); i++)
    {
        if (min > cmeters[i])
            min = cmeters[i];
        if (max < cmeters[i])
            max = cmeters[i];
    }
    cout << "Max = " << max << ';' << endl;
    cout << "Min = " << min << ';' << endl;
    
 
_getch();
return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2017, 15:16
Ответы с готовыми решениями:

Проверка вводимых данных.
предполагается, что функция будет проверять, что ввел пользователь, и, если он ввел не натуральное...

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

Проверка вводимых данных
Вот часть программы int main(void) { int vop; setlocale(LC_ALL, &quot;Russian&quot;); int mas1,...

Проверка вводимых данных
Как сделать так, чтобы при вводе символов в строку года поступления на экран появлялось...

5
357 / 316 / 216
Регистрация: 21.02.2013
Сообщений: 744
14.01.2017, 16:44 2
C++
1
2
3
4
5
6
 do{
         cout << "Еденицу измерения: ";
        cin >> unit;
        if(unit != "cm" && unit != "m" && unit != "ft" && unit != "in")
        cout << "error\n";
        }while(unit != "cm" && unit != "m" && unit != "ft" && unit != "in");
1
294 / 123 / 106
Регистрация: 30.10.2015
Сообщений: 690
14.01.2017, 18:02 3
Если я вас правильно понял, то вот так:
C++
1
2
3
4
5
6
7
8
9
10
if (unit == "cm")
  std::cout << "cm" << std::endl;
else if (unit == "m") 
  std::cout << "m" << std::endl;
else if (unit == "ft") 
  std::cout << "ft" << std::endl;
else if (unit == "in") 
  std::cout << "in" << std::endl;
else
  std::cout << "Error! Incorrect data." << std::endl;
1
0 / 0 / 0
Регистрация: 19.07.2018
Сообщений: 2
19.07.2018, 15:58 4
Столкнулся с этим заданием. Есть решение через вектор, но интересно, как это решить другим способом. Программа выдает максимальное и минимальное значения именно из введенных, а как сделать чтобы выводила после преобразования в сантиметры не знаю
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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cmath>
#include <cstdlib> 
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    double  a1=0, max=0, min=0;
    bool first = true;
    char id;
    cout << "Введите число и единицу измерения:m-метры, i-дюймы, f-футы: " << '\n';
    while (cin >> a1 >> id) {
        cout << "Вы ввели число: " << a1 << id << '\n'; 
        if (id == 'm') {
            cout << "Введенная вами длинна в метрах: " << a1<< " равна:" <<  a1*100 << " см" << '\n';
            
        }       else if (id == 'i') {
            cout << "Введенная вами длинна в дюймах: " << a1 << " равна:" << a1 * 2.54 << " см" << '\n';
        }       else if (id == 'f') {
            cout << "Введенная вами длинна в футах: " << a1 << " равна:" << a1 * 12 * 2.54 << " см" << '\n';
        }       else {
            cout << "ERROR!!!!  Введите корректную единицу измерения!!" << '\n';
        }   
        if (first) {
            first = false;
            max = a1;
            min = a1;
 
        }
            else
            if (a1 > max) {
                max = a1;
                cout << "Наибольшее число: " << a1 <<id << '\n';
            }
            else
                if (a1 < min)
                {
                    min = a1;
                    cout << "Наименьшее число: " << a1 << id <<'\n';
                }
    }       
}
0
3414 / 2773 / 751
Регистрация: 25.03.2012
Сообщений: 10,084
Записей в блоге: 1
19.07.2018, 20:50 5
war_child, блин, да откуда вы одинаковые задания берёте!
Цитата Сообщение от war_child Посмотреть сообщение
Программа выдает максимальное и минимальное значения именно из введенных, а как сделать чтобы выводила после преобразования в сантиметры не знаю
сохранять преобразованное в сантиметры значение в ещё одну переменную не судьба типа?
C++
1
2
3
4
5
6
7
8
9
10
double converted;
 if (id == 'm') {
            converted= a1*100;
            cout << "Введенная вами длинна в метрах: " << a1<< " равна:" <<  converted << " см" << '\n';
///
///
///
///
max = converted;
min = converted;
"длинннннна" с одной н пишется
0
0 / 0 / 0
Регистрация: 19.07.2018
Сообщений: 2
20.07.2018, 11:58 6
Задания одинаковые из книги Бьерн Страуструп - Программирование. Принципы и практика использования C++
До меня в итоге дошло решение, но вот есть другой вопрос. В следующем задании говорится: Вычислите сумму введенных значений и определите их количество. Как найти сумму введенных значений понятно как, а вот как определить количество не понимаю.

P.S. ну подумаешь описка в слове длинннна)))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.07.2018, 11:58

Проверка вводимых данных
#include &lt;iostream&gt; using namespace std; int main() { double a, b, c; cout &lt;&lt;...

Проверка корректности вводимых данных
Здравствуйте, подскажите,пожалуйста, как прописать условия проверки. Мне нужно: если вводится...

Проверка на коректность вводимых данных
Есть такой код где данные вводятся целого типа( int x; cin &gt;&gt; x; ). Вопрос такой как проверить...

Проверка корректности вводимых данных
Есть программа на проверку високосного года. Преподаватель при проверке вводит &quot;5 Аотао&quot; к...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.