Консультация № 178962
06.06.2010, 21:31
0.00 руб.
0 6 1
Здравствуйте Эксперты! Затрудняюсь решить задачу. Нуждаюсь в Вашей помощи. Условие такое:
Написать программу которая бы по введенному номеру единицы измерения (1-килограм, 2-миллиграм, 3-грам, 4-тонна, 5-центнер) и массе "М" выдавала бы соотвествующее значение массы в килограммах.
....
Задача на оператор выбора. Заранее благодарен.
[Borland C++ 5.02]

Обсуждение

Неизвестный
07.06.2010, 19:20
общий
Dextrous:
Доброго времени суток!
Вот программа с подробными комментариями.
Проверенно на Visual C++ 2008.

Код:

#include <iostream> // включаем стандартную библиотеку ввода-вывода

using namespace std; // используем стандартное пространство имен

int main()
{
int number; // переменная для номера единицы измерения
float m; // переменная для вводимой массы
float k; // коэффициент для перевода массы в килограммы
bool correct = false; // переменная для определения корректности ввода единицы измерения

cout << "Vvedite edinitsu izmereniya"
<< "(1-kilogramm, 2-miligramm, 3-gramm, 4-tonna, 5-centner): ";

while(correct == false) // пока не дождемся правильного ввода единицы измерения, делаем следующее:
{
cin >> number; // ожидаем ввода единицы измерения

switch(number) // проверяем, какая единица измерения была выбрана
{
case 1: // килограммы
correct = true; // условие выхода из цикла while(correct == false)
cout << "\nEdinica izmereniya - kilogrammi!" << endl;
k = 1; // устанавливаем коэффициент для перевода единицы в килограммы
break;

case 2: // миллиграммы
correct = true; // условие выхода из цикла while(correct == false)
cout << "\nEdinica izmereniya - milligrammi!" << endl;
k = 0.000001; // устанавливаем коэффициент для перевода единицы в килограммы
break;

case 3: // граммы
correct = true; // условие выхода из цикла while(correct == false)
cout << "\nEdinica izmereniya - grammi!" << endl;
k = 0.001; // устанавливаем коэффициент для перевода единицы в килограммы
break;

case 4: // тонны
correct = true; // условие выхода из цикла while(correct == false)
cout << "\nEdinica izmereniya - tonni!" << endl;
k = 1000; // устанавливаем коэффициент для перевода единицы в килограммы
break;

case 5: // центнеры
correct = true; // условие выхода из цикла while(correct == false)
cout << "\nEdinica izmereniya - centneri!" << endl;
k = 100; // устанавливаем коэффициент для перевода единицы в килограммы
break;

default: // если пользователь ввел число, отличное от 1-5, выдаем сообщение об ошибке
cout << "\nVvedena nepravilnaya edinica izmereniya!\n"
<< "Vvedite edinicu izmereniya korrektno: ";
}
}

cout << "Vvedite massu v zadannih edinicah izmereniya: ";
cin >> m; // ожидаем ввода массы

// выводим на экран значение массы в килограммах
cout << "\nMassa v kilogrammah: " << (m*k) << endl;

cin >> number; // эта строчка для того, чтобы окно с результатом работы программы не закрывалось

return 0;
}
Неизвестный
07.06.2010, 20:20
общий
Хазов Михаил Сергеевич:
Разместили бы как ответ, вроде, у Вас всё нормально в программе. Просто укажите, что проверялось не в запрошенной среде.
Неизвестный
07.06.2010, 20:31
общий
Verena:
Только сегодня зарегистрировался на портале, поэтому еще не полностью ориентируюсь что и куда надо постить...
Неизвестный
07.06.2010, 21:16
общий
Большое спасибо
Неизвестный
07.06.2010, 21:25
общий
это ответ
Здравствуйте, Dextrous!
Вот программа с подробными комментариями.
Проверенно на Visual C++ 2008, поэтому для компиляции в Вашей среде могут понадобиться незначительные изменения.
Приведён ответ Хазова Михаила Сергеевича из мини-форума (эксперт не может разместить его сам).

Приложение:
#include <iostream> // включаем стандартную библиотеку ввода-вывода

using namespace std; // используем стандартное пространство имен

int main()
{
int number; // переменная для номера единицы измерения
float m; // переменная для вводимой массы
float k; // коэффициент для перевода массы в килограммы
bool correct = false; // переменная для определения корректности ввода единицы измерения

cout << "Vvedite edinitsu izmereniya"
<< "(1-kilogramm, 2-miligramm, 3-gramm, 4-tonna, 5-centner): ";

while(correct == false) // пока не дождемся правильного ввода единицы измерения, делаем следующее:
{
cin >> number; // ожидаем ввода единицы измерения

switch(number) // проверяем, какая единица измерения была выбрана
{
case 1: // килограммы
correct = true; // условие выхода из цикла while(correct == false)
cout << "\nEdinica izmereniya - kilogrammi!" << endl;
k = 1; // устанавливаем коэффициент для перевода единицы в килограммы
break;

case 2: // миллиграммы
correct = true; // условие выхода из цикла while(correct == false)
cout << "\nEdinica izmereniya - milligrammi!" << endl;
k = 0.000001; // устанавливаем коэффициент для перевода единицы в килограммы
break;

case 3: // граммы
correct = true; // условие выхода из цикла while(correct == false)
cout << "\nEdinica izmereniya - grammi!" << endl;
k = 0.001; // устанавливаем коэффициент для перевода единицы в килограммы
break;

case 4: // тонны
correct = true; // условие выхода из цикла while(correct == false)
cout << "\nEdinica izmereniya - tonni!" << endl;
k = 1000; // устанавливаем коэффициент для перевода единицы в килограммы
break;

case 5: // центнеры
correct = true; // условие выхода из цикла while(correct == false)
cout << "\nEdinica izmereniya - centneri!" << endl;
k = 100; // устанавливаем коэффициент для перевода единицы в килограммы
break;

default: // если пользователь ввел число, отличное от 1-5, выдаем сообщение об ошибке
cout << "\nVvedena nepravilnaya edinica izmereniya!\n"
<< "Vvedite edinicu izmereniya korrektno: ";
}
}

cout << "Vvedite massu v zadannih edinicah izmereniya: ";
cin >> m; // ожидаем ввода массы

// выводим на экран значение массы в килограммах
cout << "\nMassa v kilogrammah: " << (m*k) << endl;

cin >> number; // эта строчка для того, чтобы окно с результатом работы программы не закрывалось

return 0;
}
5
давно
Мастер-Эксперт
680
2811
08.06.2010, 15:22
общий
Хазов Михаил Сергеевич:
Вам повышен рейтинг на то количество баллов, которое Вы бы получили при ответе на вопрос, и сделана отметка в регкарте, чтобы на экзаменах ответ был зачтен.
Успешной работы.
Форма ответа