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

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

Войти
Регистрация
Восстановить пароль
 
tegos-29
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 6
#1

Цикл - C++

08.08.2012, 18:17. Просмотров 339. Ответов 9
Метки нет (Все метки)

Начал изучать C++ неделю назад. Теперь начал решать некоторые задачи. И возникли у меня некоторые сложности с циклами... Требуется ваша помощь...

Задача:
Переведите натуральное число из двоичной системы в десятичную (в двоичном числе не более 10 цифр).

Решение:
C++ (Qt)
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int a;
    cin >> a;
    int d, b;
    int sum = 0;
    int i = 0;
    int k = 1;
    
    do
    {
            d = a % 10;
            b = a / 10;
            k = k * i;
            sum = sum + d * (2 * k);
            i ++;
    }
    while(0 <= b)
    
    cout << sum;
    
    return 0;
}
Где у меня ошибка??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2012, 18:17     Цикл
Посмотрите здесь:

Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием... - Turbo Pascal
Найти сумму чисел 1 в квадрате до 10 c квадрате...операцию возведению в степень не использовать учесть особенности получения квадратного...

Написать в турбо паскале, Цикл с параметром, Цикл, с постусловием, и с предусловием пожалуйста - Turbo Pascal

Как реализовать бесконечный цикл While, но чтобы этот цикл не грузил процессор? - Visual C++
Допустим есть цикл: while (1) { ... } Как сделать так, чтобы бесконечный цикл не грузил процессор. Избавиться от...

Цикл: Как грамотно организовать цикл с получением количества верных и неверных ответов? - VBA
Доброго времени суток, товарищи. Вот есть у меня два рандомно генерируемых числа, проверка произведения которых проверяется вводом ответа...

.NET 3.x Почему если условие входа в цикл не выполняется, функция заново входит в цикл - C#
Сам код: private void traverse_node(TreeControlItem node) { TreeControlItem childNode = default(TreeControlItem);...

Как переделать программу, чтобы внешний цикл был repeat.until, а цикл for вложенным? Паскаль - Pascal ABC
const x = 0.29; var y, sv, sz, fact, st: real; i, j, zn: integer; begin sz := 0; writeln('cycles for and while');

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
08.08.2012, 18:20     Цикл #2
Цитата Сообщение от tegos-29 Посмотреть сообщение
у меня некоторые сложности с циклами
какие?
кстати,неправильно вы переводите из одной системы в другую,в интернете,да и на этом форуме есть примеры,поищите и разберитесь
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.08.2012, 19:08     Цикл #3
Где у меня ошибка??
Поставьте ; после while(). Выход из while() у вас по значению b. В цикле b = a / 10. a в цикле не меняется, значит и b не изменится. Бесконечный цикл.
tegos-29
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 6
08.08.2012, 19:20  [ТС]     Цикл #4
alsav22, Спасибо... исправил... но всё равно "ошибка компиляции"
исправил на это:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int a, d;
    
    cin >> a;
 
    int sum = 0;
    int  k  = 1;
    int  i  = 0;
    
        do
        {
            d = a % 10;
            a = a / 10;
            k = k * i;
            sum = sum + a * (2 * k);
            i ++;
            if (k == 0)
            {
                    k = 1;
            }
        }   
        while(0 <= a)
        
    cout << sum;
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.08.2012, 19:21     Цикл #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Поставьте ; после while().
Не вижу. 21 строку завершите ;
tegos-29
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 6
08.08.2012, 19:24  [ТС]     Цикл #6
alsav22, поставил.. всё ок... спасибо..
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.08.2012, 19:31     Цикл #7
Цитата Сообщение от tegos-29 Посмотреть сообщение
alsav22, поставил.. всё ок... спасибо..
Код всё равно не рабочий. Бесконечный цикл. При делении на 10, значение a становится равным 0 и дальше не изменяется, а значит и выхода из while() нет. Прислушайтесь к совету alexey31415.
tegos-29
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 6
08.08.2012, 19:35  [ТС]     Цикл #8
alsav22, если а становится 0, то он выйдет из цикла так как я указал while(0 <= a); Не так ли?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.08.2012, 19:49     Цикл #9
Цитата Сообщение от tegos-29 Посмотреть сообщение
Не так ли?
Не так. Это: 0 <= a - условие продолжения цикла. Если значение этого выражения true, то цикл будет продолжаться. При a равном 0, значение выражения 0 <= a, true.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2012, 23:20     Цикл
Еще ссылки по теме:

Нормально ли для системы один и тот же цикл запускать цикл 20 раз в секунду с итерацией до 1000 - Delphi
Нормально ли для системы один и тот же цикл запускать цикл 20 раз в секунду с итерацией до 1000? Или это большая перегрузка для...

Итерационный цикл и цикл с известным числом повторения - Pascal
5.12-интерационный цикл 4.9-цикл с известным числом повторений

Почему цикл на при 1 уходит в бесконечный цикл? - C++
#define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { int x=0, y=0,...

Одномерный массив(ЦИКЛ-ПОКА или ЦИКЛ-ДО) - Pascal ABC
Несколько школьников выстроились в шеренгу. Для каждого школьника известен день его рождения. Требуется определить, является ли...


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

Или воспользуйтесь поиском по форуму:
zuzman322
1 / 1 / 0
Регистрация: 11.07.2012
Сообщений: 5
08.08.2012, 23:20     Цикл #10
вот вроде рабочий код :
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
#include <iostream>
#include <locale>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE,"russian");
    int i=0,a,b=0;
    bool c[10];
    cout<<"÷èñëî  : ";
    cin>>a;
    while(a!=0)
    {
               if(a%2==0)
               c[i]=0;
               else 
               c[i]=1;
               i=i+1;
               b=b+1;
               a=a/2;
               }
    cout<<"Гў äâîè÷Г*îé ñèñòåìå : ";
    for (int j=b-1;j>=0;j--)
    cout<<c[j];
    cout<<endl;
    system("pause");
    }
Yandex
Объявления
08.08.2012, 23:20     Цикл
Ответ Создать тему
Опции темы

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