1 / 1 / 0
Регистрация: 30.09.2015
Сообщений: 35
Записей в блоге: 1
1

Вычислить индекс массы тела

22.10.2015, 06:16. Показов 2511. Ответов 2
Метки нет (Все метки)

Напишите короткую программу, которая запрашивает рост в футах и дюймах и вес в фунтах. (Для хранения этой информации используйте три переменных.) Программа должна выдать индекс массы тела (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
#include <iostream>
int main()
{
    int iInch = 0;
    double dFoot = 0;
    std::cout << "Enter value of inches: ";
    std::cin >> iInch;
    std::cout << "Enter value of foots: ";
    std::cin >> dFoot; //Почему после cin не получилось вставить endl?
    std::cout << iInch << " inches and " << dFoot << " foots equal to ";
    const dFoot = (iInch * 12) + dFoot;
    std::cout << dFoot << "." << std::endl;
    std::cout << dFoot << " foots equal to " << dFoot * 0.0254 << " meters." << std::endl;
    double dPound = 0;
    std::cout << "Enter value of pounds: ";
    std::cin >> dPound;
    std::cout << dPound << " equal to " << dPound / 2.2 << " kilograms." << std::endl;
    std::cout << "Body mass index equal to " << (dPound / 2.2) / ((dFoot * 0.0254) * (dFoot * 0.0254)) << std::endl;
    return 0;
}
Застопорился с const она совершенно не хочет работать с int. Пишет:
Ошибка 1 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию d:\music\c++\me trying to learn c++\me trying to learn c++\teachme1.h 16
Ошибка 2 error C2373: dFoot: переопределение; различные модификаторы типа d:\music\c++\me trying to learn c++\me trying to learn c++\teachme1.h 16
Ошибка 3 error C2088: <<: недопустимо для class d:\music\c++\me trying to learn c++\me trying to learn c++\teachme1.h 17
Ошибка 4 error C2088: <<: недопустимо для class d:\music\c++\me trying to learn c++\me trying to learn c++\teachme1.h 18

Честно говоря, все прекрасно работает и без const, но раз надо, так надо.
И еще вопросы:
const работает только с int и с остальными типами, например double работать не будет?
И почему если поставить endl после cin, то программа не скомпилируется?

Добавлено через 6 минут
И еще кое что. Я пытался преобразовать int в double таким образом:
C++
1
2
int a = 2
double a = 2
Соответственно выдало ошибку.

Я так понимаю, для преобразования int в double достаточно провести действие с любым значением double?

Например:
C++
1
2
int a = 1
a / 0.5
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2015, 06:16
Ответы с готовыми решениями:

c++ Индекс массы тела
Всем привет. сразу скажу что мой уровень знаний языков программирования практически 0 Пару дней...

Выдать индекс массы тела
Здравствуйте. Вот такая задача. Вот, что получилось у меня: #include &lt;iostream&gt; #include...

Определить индекс массы тела (BMI)
Учебник Стивен Прата 6-е издание. Лекции и упражнения. 3 глава - 2 задача. Напишите короткую...

Вычисление индекса массы тела
Напишите короткую программу, которая запрашивает рост в футах и дюймах и вес в фунтах. (Для...

2
Модератор
Эксперт С++
12094 / 9768 / 5907
Регистрация: 18.12.2011
Сообщений: 26,221
22.10.2015, 07:34 2
Вы что-то совсем не восприняли идеологию Си.
Переменная должна быть ОДИН раз Объявлена. После этого, ее можно использовать многократно.
C++
1
2
double dFoot = 10.5;
dFoot+=iInch * 12.0;
Повторное объявление запрещено!
Объявление может использовать префикс const. Тогда переменную повторно менять нельзя.
C++
1
2
const double dFoot = 10.5;
//dFoot+=iInch * 12.0; <- ошибка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
    int iInch,dFoot;
    std::cout << "Enter value of inches: ";
    std::cin >> iInch;
    std::cout << "Enter value of foots: ";
    std::cin >> dFoot; 
    std::cout << iInch << " inches and " << dFoot << " foots equal to ";
    const int FOOT_TO_INCH=12;
    int TotalInches =iInch + dFoot * FOOT_TO_INCH;
    std::cout << TotalInches << " inches." << std::endl;
 
    std::cout << iInch << " inches and " << dFoot << " foots equal to ";
    double TotalFoots =iInch/(double)FOOT_TO_INCH + dFoot;
    std::cout << TotalFoots << " Foots." << std::endl;
  ... 
   
    return 0;
}
1
1 / 1 / 0
Регистрация: 30.09.2015
Сообщений: 35
Записей в блоге: 1
22.10.2015, 08:03  [ТС] 3
zss,
Спасибо! Надеюсь я когда-нибудь найду пример, где const жизненно необходим и без него никуда.

А по поводу, объявления переменной лишь один раз: я усвоил, во время своих попыток это правило нарушить. Но хотелось лишь подтверждения, за что спасибо еще раз. И в книге этот момент был, но к сожалению, быстро вылетел из головы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2015, 08:03
Помогаю со студенческими работами здесь

Найти потенциальную и кинетическую энергию тела массы m, движущегося на высоте h со скоростью v
Тела массой m на высоте h и движется со скоростью v. Надо найти потенциальную (P=mgh) и...

Найти массу тела по заданному номеру единицы массы (целое число в диапазоне 1-5)
7. Единицы массы пронумерованы следующим образом: 1 — килограмм, 2 — миллиграмм, 3 — грамм, 4 —...

Программа, которая бы по введенному номеру единицы измерения и массы M выдавала бы соответствующее значение массы в килограммах
Написать программу, которая бы по введенному номеру единицы измерения(1-килограмм, 2-миллиграмм,...

Вычислить время падения тела с высоты
Вычислить время падения тела с высоты H с начальной скоростью V0.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru