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

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

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

Студворк — интернет-сервис помощи студентам
Данная программа высчитывает вес, исходя из заданной длины и диаметра арматуры. Диаметр арматуры расположен в промежутке четных чисел от 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.05.2013, 14:36
Ответы с готовыми решениями:

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

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

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

12
2 / 2 / 1
Регистрация: 21.05.2013
Сообщений: 39
24.05.2013, 15:28
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
 Аватар для derzila
7 / 7 / 1
Регистрация: 23.04.2013
Сообщений: 42
24.05.2013, 15:39  [ТС]
Цитата Сообщение от kondor1995 Посмотреть сообщение
C++
1
d = diametr( int d );
Компилятор выдает ошибку в этой строке, если есть возможность можешь вставить данную функцию в исходный код? Заранее спасибо.
0
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
24.05.2013, 16:18
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
 Аватар для derzila
7 / 7 / 1
Регистрация: 23.04.2013
Сообщений: 42
24.05.2013, 16:38  [ТС]
Спасибо большое, использую code::blocks, в библиотеке нету файла "stdafx.h".. ( Каким образом можно пополнить библиотеку?
0
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
24.05.2013, 17:04
Ты какой компилятор используешь?

Добавлено через 12 минут
Короче, выставь в свойствах проекта "Не использовать предварительно скомпилированные заголовки"
В 2012 => Проект=>Свойства=>С/С++=>Предварительно скомпилированные заголовки
1
Заблокирован
24.05.2013, 17:13
Цитата Сообщение от derzila Посмотреть сообщение
Спасибо большое, использую code::blocks, в библиотеке нету файла "stdafx.h".. ( Каким образом можно пополнить библиотеку?
нету да и нету. stdafx.h -- заголовок, включаемый только в MSVS, это "плюшка" для "удобства разработки". codeblocks поставляется с компиляторами (или без, в таком случае можно докачать отдельно и указать в среде пути к компилятору и отладчику) GCC.
0
 Аватар для derzila
7 / 7 / 1
Регистрация: 23.04.2013
Сообщений: 42
24.05.2013, 21:10  [ТС]
Цитата Сообщение от BAADF00D Посмотреть сообщение
нету да и нету. stdafx.h -- заголовок, включаемый только в MSVS, это "плюшка" для "удобства разработки". codeblocks поставляется с компиляторами (или без, в таком случае можно докачать отдельно и указать в среде пути к компилятору и отладчику) GCC.
Я совсем новичок в этом деле, не подскажете где можно докачать?
0
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
24.05.2013, 21:25
Опять же в каком компиляторе ты работаешь?
0
Заблокирован
24.05.2013, 21:36
Цитата Сообщение от derzila Посмотреть сообщение
Я совсем новичок в этом деле, не подскажете где можно докачать?
MinGW -- порт GCC для windows. http://sourceforge.net/
0
 Аватар для derzila
7 / 7 / 1
Регистрация: 23.04.2013
Сообщений: 42
24.05.2013, 21:58  [ТС]
Цитата Сообщение от vetal0007 Посмотреть сообщение
Опять же в каком компиляторе ты работаешь?
использую code::blocks
0
2 / 2 / 1
Регистрация: 21.05.2013
Сообщений: 39
24.05.2013, 22:07
Цитата Сообщение от 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
Компилятор & IDE в чем разница?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.05.2013, 22:07
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru