Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
7 / 7 / 1
Регистрация: 23.04.2013
Сообщений: 42
1

Использование цикла do ( программа высчитывает вес, исходя из заданной длины и диаметра арматуры)

24.05.2013, 14:36. Показов 924. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Данная программа высчитывает вес, исходя из заданной длины и диаметра арматуры. Диаметр арматуры расположен в промежутке четных чисел от 6 до 40. При вводе иного диаметра программа выдает сообщение "Неверный диаметр арматуры".
Вопрос: Как включить цикл в данную программу? Что бы после ответа "неверный диаметр арматуры" она возвращала к сообщению "Введите диаметр арматуры".
PS. Я вводил умножение для определенного диаметра отдельно, можно ли упростить данный цикл?

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
61
62
#include <iostream>
using namespace std;
 
bool isGoodDiameter( int d )
{
    if( d<6 || d>40 ) return false;
    return !(d%2);
}
 
int main()
{
    cout << "Vvedite dlinu armaturi: ";
    int l;                                     //длина арматуры
    cin >> l;
 
    cout << "Vvedite diametr armaturi: ";
    int d;                                    //диаметр арматуры
    cin >> d;
 
    if( !isGoodDiameter( d ) )
    {
        cout << "\nNeverniy diametr armaturi\n";
    }
    else
    {
        if ((d > 5) && (d < 7))
        cout << "\nVes armaturi " << 0.222*l << " kg";
        else
        {
            if ((d > 7) && (d < 9))
            cout << "\nVes armaturi " << 0.395*l << " kg";
            else
            {
                if ((d > 9) && (d < 11))
                cout << "\nVes armaturi " << 0.617*l << " kg";
                else
                {
                    if ((d > 11) && (d < 13))
                    cout << "\nVes armaturi " << 0.888*l << " kg";
                    else
                    {
                       if ((d > 13) && (d < 15))
                       cout << "\nVes armaturi " << 1.210*l << " kg";
                        else
                    {
                       if ((d > 15) && (d < 17))
                       cout << "\nVes armaturi " << 1.580*l << " kg";
                       else
                    {
                       if ((d > 17) && (d < 19))
                       cout << "\nVes armaturi " << 2*l << " kg";
                    }
                }
            }
        }
    }
        }
    }
    cout << "\n\nEnter any key to continue...\n";
    cin.get();
    return 0;
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2013, 14:36
Ответы с готовыми решениями:

По заданным параметрам (диаметра и длины) найти вес арматуры
Здравствуйте! Требуется создать код обрабатывающий значения приведенных в задачах и их...

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

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

Поиск цикла заданной длины в неориентированном графе
Всем привет! Есть такая задача: дана система двусторонних дорог. Найти замкнутый путь длиной не...

12
2 / 2 / 1
Регистрация: 21.05.2013
Сообщений: 39
24.05.2013, 15:28 2
C++
1
2
    int d;                                    //диаметр арматуры
    cin >> d;
После этого этого вставляешь
C++
1
d = diametr( int d );
А вот функция
C++
1
2
3
4
5
6
7
int diametr( int d ){
    while(true){
        if( d >= 6 || d <= 40 ) return d;
        cout << "Diametr is wrong. Enter enother"; //Sorry, for my english
        cin >> d;
    }
}
0
7 / 7 / 1
Регистрация: 23.04.2013
Сообщений: 42
24.05.2013, 15:39  [ТС] 3
Цитата Сообщение от kondor1995 Посмотреть сообщение
C++
1
d = diametr( int d );
Компилятор выдает ошибку в этой строке, если есть возможность можешь вставить данную функцию в исходный код? Заранее спасибо.
0
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
24.05.2013, 16:18 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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include "stdafx.h"
#include <iostream>
using namespace std;
 
bool isGoodDiameter( int d )
{
    if( d<6 || d>40 ) return false;
    return !(d%2);
}
 
int diametr( int d ){
    while(true){
        if( d <= 6 || d >= 40 ) return d;
        cout << "Neverniy diametr armaturi. Vvedite drugoy\n";
        cin >>d;
    }
}
 
int main()
{
    cout << "Vvedite dlinu armaturi: ";
    int l;                                     //длина арматуры
    cin >> l;
 
    cout << "Vvedite diametr armaturi: ";
    int d;                                    //диаметр арматуры
    cin >> d;
    d = diametr( d );
 
    if( !isGoodDiameter( d ) )
    {
        cout << "\nNeverniy diametr armaturi\n";
    }
    else
    {
        if ((d > 5) && (d < 7))
        cout << "\nVes armaturi " << 0.222*l << " kg";
        else
        {
            if ((d > 7) && (d < 9))
            cout << "\nVes armaturi " << 0.395*l << " kg";
            else
            {
                if ((d > 9) && (d < 11))
                cout << "\nVes armaturi " << 0.617*l << " kg";
                else
                {
                    if ((d > 11) && (d < 13))
                    cout << "\nVes armaturi " << 0.888*l << " kg";
                    else
                    {
                       if ((d > 13) && (d < 15))
                       cout << "\nVes armaturi " << 1.210*l << " kg";
                        else
                    {
                       if ((d > 15) && (d < 17))
                       cout << "\nVes armaturi " << 1.580*l << " kg";
                       else
                    {
                       if ((d > 17) && (d < 19))
                       cout << "\nVes armaturi " << 2*l << " kg";
                    }
                }
            }
        }
    }
        }
    }
    cout << "\n\nEnter any key to continue...\n";
    cin.get();
    system ("pause");
    return 0;
    }
0
7 / 7 / 1
Регистрация: 23.04.2013
Сообщений: 42
24.05.2013, 16:38  [ТС] 5
Спасибо большое, использую code::blocks, в библиотеке нету файла "stdafx.h".. ( Каким образом можно пополнить библиотеку?
0
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
24.05.2013, 17:04 6
Ты какой компилятор используешь?

Добавлено через 12 минут
Короче, выставь в свойствах проекта "Не использовать предварительно скомпилированные заголовки"
В 2012 => Проект=>Свойства=>С/С++=>Предварительно скомпилированные заголовки
1
Заблокирован
24.05.2013, 17:13 7
Цитата Сообщение от derzila Посмотреть сообщение
Спасибо большое, использую code::blocks, в библиотеке нету файла "stdafx.h".. ( Каким образом можно пополнить библиотеку?
нету да и нету. stdafx.h -- заголовок, включаемый только в MSVS, это "плюшка" для "удобства разработки". codeblocks поставляется с компиляторами (или без, в таком случае можно докачать отдельно и указать в среде пути к компилятору и отладчику) GCC.
0
7 / 7 / 1
Регистрация: 23.04.2013
Сообщений: 42
24.05.2013, 21:10  [ТС] 8
Цитата Сообщение от BAADF00D Посмотреть сообщение
нету да и нету. stdafx.h -- заголовок, включаемый только в MSVS, это "плюшка" для "удобства разработки". codeblocks поставляется с компиляторами (или без, в таком случае можно докачать отдельно и указать в среде пути к компилятору и отладчику) GCC.
Я совсем новичок в этом деле, не подскажете где можно докачать?
0
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
24.05.2013, 21:25 9
Опять же в каком компиляторе ты работаешь?
0
Заблокирован
24.05.2013, 21:36 10
Цитата Сообщение от derzila Посмотреть сообщение
Я совсем новичок в этом деле, не подскажете где можно докачать?
MinGW -- порт GCC для windows. http://sourceforge.net/
0
7 / 7 / 1
Регистрация: 23.04.2013
Сообщений: 42
24.05.2013, 21:58  [ТС] 11
Цитата Сообщение от vetal0007 Посмотреть сообщение
Опять же в каком компиляторе ты работаешь?
использую code::blocks
0
2 / 2 / 1
Регистрация: 21.05.2013
Сообщений: 39
24.05.2013, 22:07 12
Цитата Сообщение от kondor1995 Посмотреть сообщение
C++
1
2
    int d;                                    //диаметр арматуры
    cin >> d;
После этого этого вставляешь
C++
1
d = diametr( int d );
Блин, я ересь написал))
C++
1
d = diametr(d);
должно работать)
0
Заблокирован
24.05.2013, 22:07 13
Компилятор & IDE в чем разница?
0
24.05.2013, 22:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2013, 22:07
Помогаю со студенческими работами здесь

Подсчет длины в зависимости от диаметра и материала
Скажу сразу, в экселе не силен( Буду очень признателен за помощь! Есть большая таблица на 10 тысяч...

Расчет площади, длины, диаметра окружности
Здравствуйте, Всем, изучаю C++ по Дейтелу, недавно начал. Решил составить программку из первого...

Требуется изготовить соленоид данной длины и диаметра.
Требуется изготовить соленоид длиной 20 см и диаметром 5 см, создающий на своей оси магнитную...

Вычисление диаметра, длины окружности и площади круга по радиусу
Коротко задание: написать программу на Си вычисляющую диаметр,длину и площадь окружности....

Программа должна генерировать все двоичные строки заданной длины (MASM)
Доброго времени суток, в общем задание наверху, но чет как-то у меня не идет. Как я понял нужно...

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru