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

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

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

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

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

Имеется задача: Ввести двоичный код и перевести его в десятичный. Имеется подсказка для решения задачи: использовать деление и деление с остатком, для "вырывания" отдельных чисел из двоичного кода. Сама формула перевода с двоичного на десятичный уже есть.
Проблема: оно заключается в том чтобы создать цикл. Цикл в котором будут "вырываться" числа из двоичного кода, чтобы преобразовать их в десятичный. Но я не знаю какое условие поставить для завершения цикла. Как поставить условие, чтобы оно прекращалась когда заканчивались числа в двоичном коде?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2012, 17:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Условие для прекращения цикла (C++):

Условие для цикла С++ - C++
Доброго всем времени суток! Помогите пожалуйста человеку который только начал открывать для себя С++ Задача следующая: необходимо...

Составить условие для завершения цикла - C++
Почему не работает цикл do-while на проверку '!='? Если проверку меняю на '==', то все работает. Подскажите, пожалуйста, а то я в...

Какое условие поставить на выходе из цикла в методе Рунге Кутта 4 порядка для системы ДУ 1 порядка? - C++
Пока имеется вот такой код для решения системы ДУ 1 порядка, если имеется ошибка исправьте пожалуйста, Вопрос: как мне получить ответ, мне...

Условие цикла while - C++
Не как не соображу как сделать переменную int sh; и потом при диалоге с пользователем проверить что он ввел именно инт а не чар потому...

Условие прерывания цикла - C++
Из-за чего происходит(условие прерывания) выход из цикла? Мои предположения что пока b не равно 0, то цикл выполняется, как только...

Условие выполнения цикла - C++
#include <iostream.h> void main() { char a; int r=1; cin>>a; if(a==r) { cout<<"test"<<endl; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuanish
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 24
25.07.2012, 20:43  [ТС] #16
Это почти то что я хочу. Но я не понял 8-ю строку, а что это за условие?
Я про сообщение #10
Kuanish
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 24
27.07.2012, 15:44  [ТС] #17
объясните 8-ую строку, почему там в скобке "1" стоит?
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.07.2012, 16:32 #18
Цитата Сообщение от Kuanish Посмотреть сообщение
объясните 8-ую строку, почему там в скобке "1" стоит?
Это условие задает бесконечный цикл
Kuanish
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 24
27.07.2012, 17:38  [ТС] #19
а как тогда из цикла выйти, чтобы напечатать m?
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.07.2012, 17:46 #20
Цитата Сообщение от Kuanish Посмотреть сообщение
а как тогда из цикла выйти, чтобы напечатать m?

Не по теме:

с помощью break. Такой вариант не очень одобряется, но все же

Catstail
Модератор
22535 / 10940 / 1774
Регистрация: 12.02.2012
Сообщений: 18,078
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2012, 19:15
Привет! Вот еще темы с ответами:

Объяснить условие цикла while - C++
&lt;#include &lt;fstream&gt; using namespace std; #define FILENAME_1 &quot;file_1.txt&quot; #define FILENAME_2 &quot;file_2.txt&quot; int main() { ...

Не работает условие цикла - C++
Здравствуйте! Есть программа: #include &lt;iostream&gt; using namespace std; main () { setlocale (0,&quot;&quot;); float a, b, d; ...

Условие цикла if, неправильная работа if - C++
cin.getline(str1,N); //getline-запись данных в строку str1,размерность N; cout&lt;&lt;&quot;Enter second string -&gt; &quot;&lt;&lt;endl; ...

Как пропустить условие цикла - C++
Есть небольшой код: #include &lt;iostream&gt; int main() { using namespace std; setlocale(LC_ALL,&quot;Russian&quot;); int n = 0; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.07.2012, 19:15
Ответ Создать тему
Опции темы

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