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

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

14.01.2017, 15:16. Показов 2894. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.01.2017, 15:16
Ответы с готовыми решениями:

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

Проверка вводимых данных
Подскажите, пожалуйста, как зациклить ввод данных до тех пор пока пользователь не введёт корректный ответ #include &lt;iostream&gt; ...

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

5
365 / 321 / 219
Регистрация: 21.02.2013
Сообщений: 756
14.01.2017, 16:44
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
296 / 125 / 106
Регистрация: 30.10.2015
Сообщений: 690
14.01.2017, 18:02
Если я вас правильно понял, то вот так:
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
Столкнулся с этим заданием. Есть решение через вектор, но интересно, как это решить другим способом. Программа выдает максимальное и минимальное значения именно из введенных, а как сделать чтобы выводила после преобразования в сантиметры не знаю
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
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
19.07.2018, 20:50
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
Задания одинаковые из книги Бьерн Страуструп - Программирование. Принципы и практика использования C++
До меня в итоге дошло решение, но вот есть другой вопрос. В следующем задании говорится: Вычислите сумму введенных значений и определите их количество. Как найти сумму введенных значений понятно как, а вот как определить количество не понимаю.

P.S. ну подумаешь описка в слове длинннна)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.07.2018, 11:58
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru