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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Kuanish
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 24
#1

Условие для прекращения цикла - C++

25.07.2012, 17:54. Просмотров 1068. Ответов 20
Метки нет (Все метки)

Имеется задача: Ввести двоичный код и перевести его в десятичный. Имеется подсказка для решения задачи: использовать деление и деление с остатком, для "вырывания" отдельных чисел из двоичного кода. Сама формула перевода с двоичного на десятичный уже есть.
Проблема: оно заключается в том чтобы создать цикл. Цикл в котором будут "вырываться" числа из двоичного кода, чтобы преобразовать их в десятичный. Но я не знаю какое условие поставить для завершения цикла. Как поставить условие, чтобы оно прекращалась когда заканчивались числа в двоичном коде?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2012, 19:15     Условие для прекращения цикла
Еще ссылки по теме:

Не выполняется условие вложенного цикла C++
Условие цикла не работает должным образом C++
C++ Объяснить условие цикла while
C++ Логическое условие И и ИЛИ цикла do while
C++ Как пропустить условие цикла

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

Или воспользуйтесь поиском по форуму:
Catstail
Модератор
22309 / 10714 / 1742
Регистрация: 12.02.2012
Сообщений: 17,787
27.07.2012, 19:15     Условие для прекращения цикла #21
Комментирую:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main(int argc, char* argv[])
{
    int n,m,k,p=1;
    cout << "Insert BINARY number" << endl; // приглашение
    cin >> n;   // чтение числа из нулей и единиц
    m=0;        // здесь будет результат
    while (1)   // заводим бесконечный цикл
    {
        k=n%10;  // остаток от деления исх. числа на 10 = младшая цифра
        if (k > 1)  // если > 1, значит число не двоичное
        {
            cout << "It is not a binary number!" << endl; // сообщим об этом
            break;                                                    // выход из цикла
        }
        m=m+k*p; // прибавим к m очередную цифру*p (p-степень 2)
        n=n/10;    // отрежем от n младшую (уже не нужную) цифру
        p=p*2;     // увеличим степень двойки
        if (n == 0) break; // если число "источилось" до нуля - выход из цикла
    }
    cout << m << endl;  // печать результата (или нуля, если была ошибка).
    return 0;
}
Yandex
Объявления
27.07.2012, 19:15     Условие для прекращения цикла
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru