Форум программистов, компьютерный форум CyberForum.ru

Выдать индекс массы тела - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Grandy
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 29
28.01.2014, 21:13     Выдать индекс массы тела #1
Здравствуйте.
Напишите короткую программу, которая запрашивает рост в футах и дюймах и
вес в фунтах. (Для хранения этой информации используйте три переменных.)
Программа должна выдать индекс массы тела (body mass index — ВМІ). Чтобы
рассчитать ВМІ, сначала преобразуйте рост в футах и дюймах в рост в дюймах
(1 фут =12 дюймов). Затем преобразуйте рост в дюймах в рост в метрах,
умножив на 0.0254. Далее преобразуйте вес в фунтах в массу в килограммах,
разделив на 2.2. После этого рассчитайте ВМІ, разделив массу в килограммах на
квадрат роста в метрах. Для представления различных коэффициентов
преобразования используйте символические константы.
Вот такая задача.

Вот, что получилось у меня:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    const short foot = 12; 
    const float meter = 0.0254; 
    const float kilogram = 2.2; 
 
 
    cout << "Enter height in feet and inches:___\b\b\b";
    float fi1;
    cin >> fi1;
 
    cout << "Enter your weight in pounds:___\b\b\b";
    float p1;
    cin >> p1;
 
    int f1 = fi1 * foot; // Преобразование роста в футах и дюймах в рост в дюймах.
    float m1 = f1 * meter; // Преобразование роста в дюймах в рост в метрах.
    float k1 = p1 / kilogram; // Преобразование вес в фунтах в массу в килограммах.
 
    float bmi = k1 / (m1, m1); // Рассчитываение индекса массы тела (BMI - Body Mass Index).
 
    cout << "Height in inches: " << f1 << endl;
    cout << "Height in meters: " << m1 << endl;
    cout << "Weight in kilograms: " << k1 << endl;
    cout << "Body Mass Index: " << bmi << endl;
 
    cin.get();
    cin.get();
 
    return 0;
}


По-моему правильно, не?

Единственное, что не понял, так это как сделать так:
Напишите короткую программу, которая запрашивает рост в футах и дюймах и вес в фунтах. (Для хранения этой информации используйте три переменных.)
У меня получилось 2 переменные для хранения.
Поправьте, если что не так.

Спасибо!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2014, 21:13     Выдать индекс массы тела
Посмотрите здесь:

C++ Определяет единицы массы в кг
Единицы массы C++
Конвертер различных измерений массы C++
C++ Пользователь вводит 10 чисел программа должна выдать 2 максимальных(берём от 1 до 10,если выпадает 2 10,то программа должна выдать 2 10,а не 10,9)
C++ Программа, которая бы по введенному номеру единицы измерения и массы M выдавала бы соответствующее значение массы в килограммах
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Frosten
3 / 3 / 5
Регистрация: 28.01.2014
Сообщений: 13
28.01.2014, 21:45     Выдать индекс массы тела #2
ввод роста в фунтах и дюймах вроде отдельно должен быть т.е в 2 переменные
Grandy
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 29
28.01.2014, 22:28  [ТС]     Выдать индекс массы тела #3
Цитата Сообщение от Frosten Посмотреть сообщение
ввод роста в фунтах и дюймах вроде отдельно должен быть т.е в 2 переменные
Да, я это понял.
И, кажется, понял как сделать.

Наверное так:
Кликните здесь для просмотра всего текста
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
#include <iostream>
using namespace std;
 
int main()
{
    const short foot = 12; 
    const float meter = 0.0254; 
    const float kilogram = 2.2; 
 
 
    cout << "Enter height in feet: _\b"; 
    short f1; 
    cin >> f1;
    cout << "and inches: _\b";
    short i1;
    cin >> i1;
 
    cout << "Enter your weight in pounds:___\b\b\b";
    float p1;
    cin >> p1;
 
    int f2 = f1 * foot + i1; // Преобразование роста в футах и дюймах в рост в дюймах.
    float m1 = f2 * meter; // Преобразование роста в дюймах в рост в метрах.
    float k1 = p1 / kilogram; // Преобразование вес в фунтах в массу в килограммах.
 
    float bmi = k1 / (m1, m1); // Рассчитываение индекса массы тела (BMI - Body Mass Index).
 
    cout << "Height in inches: " << f2 << endl;
    cout << "Height in meters: " << m1 << endl;
    cout << "Weight in kilograms: " << k1 << endl;
    cout << "Body Mass Index: " << bmi << endl;
 
    cin.get();
    cin.get();
 
    return 0;
}
Frosten
3 / 3 / 5
Регистрация: 28.01.2014
Сообщений: 13
28.01.2014, 22:55     Выдать индекс массы тела #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Grandy Посмотреть сообщение
Да, я это понял.
И, кажется, понял как сделать.

Наверное так:
Да, теперь правильно все
andreypplk
1 / 1 / 0
Регистрация: 08.02.2014
Сообщений: 27
08.02.2014, 20:36     Выдать индекс массы тела #5
а мою проверьте может всё таки типы переменных сменить с double на float
Кликните здесь для просмотра всего текста
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
// convert_BMI.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <Windows.h>
#include <iostream>
 
const int c_duim = 12;
const double c_metr = 0.0254;
const double c_kg = 2.2;
 
int _tmain(int argc, _TCHAR* argv[])
{
    using namespace std;
 
    SetConsoleCP(1251);         //позволяет выводить русские буквы в консоле но нужно поменять
    SetConsoleOutputCP(1251);   // шрифт в консоле на Lucida Console и подключить Windows.h
 
    cout.setf(ios_base::fixed, ios_base::floatfield);
    cout << "Введите свой рост в футах и дюймах а также вес в фунтах" << endl;
    int foot_s = 0, inch_s = 0, foont_s = 0, 
        cant_r = 0, ves_kg = 0, res_bmi = 0;    //рост в футах и дюймах и вес
    double inch_r = 0.0, metr_r = 0.0;
    cout << "Введите рост в футах:___\b\b\b";
    cin >> foot_s;
    cout << "Введите дюймы:___\b\b\b";
    cin >> inch_s;
    cout << "Введите вес в фунтах:___\b\b\b";
    cin >> foont_s;
    inch_r = foot_s * c_duim + inch_s;//футы в дюймы
    cout << "Вош рост в дюймах равен: " << inch_r << endl;
    metr_r = inch_r * c_metr;//дюймы в метры
    cout << "Вош рост в метрах равен: " << metr_r << endl;
    ves_kg = foont_s / c_kg;
    cout << "Вош вес в килограммах равен: " << ves_kg << endl;
    res_bmi = ves_kg / (metr_r, metr_r);
    cout << "Результат " << res_bmi << endl;
 
    cin.get();
    cin.get();
 
    return 0;
}
tiger97
3 / 3 / 2
Регистрация: 21.10.2014
Сообщений: 49
29.12.2014, 18:19     Выдать индекс массы тела #6
Мне кажется, или правильно так:
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
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    const short foot = 12; 
    const float meter = 0.0254; 
    const float kilogram = 2.2; 
 
 
    cout << "Enter height in feet: _\b"; 
    short f1; 
    cin >> f1;
    cout << "and inches: _\b";
    short i1;
    cin >> i1;
 
    cout << "Enter your weight in pounds:___\b\b\b";
    float p1;
    cin >> p1;
 
    int f2 = f1 * foot + i1; // Преобразование роста в футах и дюймах в рост в дюймах.
    float m1 = f2 * meter; // Преобразование роста в дюймах в рост в метрах.
    float k1 = p1 / kilogram; // Преобразование вес в фунтах в массу в килограммах.
 
    float bmi = k1 / pow(m1, 2); // Рассчитываение индекса массы тела (BMI - Body Mass Index).
 
    cout << "Height in inches: " << f2 << endl;
    cout << "Height in meters: " << m1 << endl;
    cout << "Weight in kilograms: " << k1 << endl;
    cout << "Body Mass Index: " << bmi << endl;
 
    cin.get();
    cin.get();
 
    return 0;
}
Нам ведь нужно разделить на квадрат роста в метрах, а не на "рост в метрах в степени роста в метрах".
Yandex
Объявления
29.12.2014, 18:19     Выдать индекс массы тела
Ответ Создать тему
Опции темы

Текущее время: 03:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru