Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разъясните смысл условия цикла 
V
    Опции темы
Ober
Дата 18.8.2011, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 11.3.2011

Репутация: нет
Всего: нет



В учебнике приведен пример программы которая, в принципе мне понятна, не понятен один момент:
есть объявление
Код

enum RequestType{ ZERO_BALANCE=1,CREDIT_BALANCE,DEBIT_BALANCE,END};


есть функция

Код

int getRequest()
{
  int request; 
  

  cout << "\nEnter request" << endl
    << " 1 - List accounts with zero balances" << endl                            
    << " 2 - List accounts with credit balances" << endl
    << " 3 - List accounts with debit balances" << endl
    << " 4 - End of run" << fixed << showpoint;
    
    do 
    {
      cout << "\n? ";
      cin >> request;
    }while( request << ZERO_BALANCE && request >> END );
    
  return request;
} getRequest


не понятен смысл условия цикла while
Он выполняется пока ...? 
Заранее спасибо.

И еще, если такое вообще есть, подскажите справочник с описанием стандартных заголовочных файлов примерно в таком виде :

#include <iostream>
Функции
width(int x)    минимальное число знаков до следующего вывода
fill(char x)    устанавливает символ-заполнитель и возвращает предыдущий символ-заполнитель. По умолчанию в качестве символа-заполнителя используется пробел
precision(int x)    устанавливает число значащих знаков для чисел с плавающей точкой

Манипуляторы
endl    перевод строки
flush    выгружает содержимое буфера в поток
dec    меняет формат вывода числа на десятичный
oct    меняет формат вывода числа на восьмеричный
hex    меняет формат вывода числа на шестнадцатеричный
ws    извлекает и удаляет символы пустых промежутков из потока
showpos    показывает + перед неотрицательными числами
showpoint    показывает десятичную точку
noshowpoint    скрывает десятичную точку


Это сообщение отредактировал(а) Ober - 18.8.2011, 23:25
PM MAIL   Вверх
bsa
Дата 18.8.2011, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



это тоже самое, что: (request << 1) && (request >> 4)
что эквивалентно: (result & 0x7f) && (request & 0xf0), а это эквивалентно (request & 0x70).
Смысла данного цикла не вижу.
PM   Вверх
Ober
Дата 18.8.2011, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 11.3.2011

Репутация: нет
Всего: нет



Цитата(bsa @ 18.8.2011,  22:38)
это тоже самое, что: (request << 1) && (request >> 4)
что эквивалентно: (result & 0x7f) && (request & 0xf0), а это эквивалентно (request & 0x70).
Смысла данного цикла не вижу.

Но что в данном случае вообще означает, к примеру 
Код

request << 1
 ?
PM MAIL   Вверх
boostcoder
Дата 18.8.2011, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



Цитата(Ober @  18.8.2011,  21:55 Найти цитируемый пост)
подскажите справочник с описанием стандартных заголовочных файлов

http://cplusplus.com/reference/
PM WWW   Вверх
Ober
Дата 18.8.2011, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 11.3.2011

Репутация: нет
Всего: нет



Цитата(boostcoder @ 18.8.2011,  23:37)
Цитата(Ober @  18.8.2011,  21:55 Найти цитируемый пост)
подскажите справочник с описанием стандартных заголовочных файлов

http://cplusplus.com/reference/

Большое спасибо, правда с Английским не очень, нужно поднапрячся. А случайно нет аналогов на русском ?

Это сообщение отредактировал(а) Ober - 18.8.2011, 23:42
PM MAIL   Вверх
volatile
Дата 18.8.2011, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 16
Всего: 85



Цитата(Ober @  18.8.2011,  22:47 Найти цитируемый пост)
Но что в данном случае вообще означает, к примеру 
request << 1

сдвиг влево.

Цитата(Ober @  18.8.2011,  21:55 Найти цитируемый пост)
   do 
    {
      cout << "\n? ";
      cin >> request;
    }while( request << ZERO_BALANCE && request >> END );
Здесь явно бред.
Но что хотели, вобщем-то понятно:
Код

    }while( request < ZERO_BALANCE || request > END );

PM MAIL   Вверх
boostcoder
Дата 18.8.2011, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



Цитата(Ober @  18.8.2011,  23:41 Найти цитируемый пост)
А случайно нет аналогов на русском ?

не встречал

Добавлено через 1 минуту и 25 секунд
Цитата(Ober @  18.8.2011,  21:55 Найти цитируемый пост)
 }while( request << ZERO_BALANCE && request >> END );

похоже на опечатку

Добавлено через 1 минуту и 48 секунд
Ober, что за книжка?
PM WWW   Вверх
borisbn
Дата 19.8.2011, 08:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Цитата(Ober @  18.8.2011,  23:41 Найти цитируемый пост)
А случайно нет аналогов на русском ?

мне так понравилось, что я теперь буду тулить это везде smile
user posted image

А если серьёзно - не читай документацию на русском, практически 0x64 % переводов страдают неточностями.
По поводу условия - явно очепятка. Вместо << и >> должно быть < и > соотв.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Ober
Дата 20.8.2011, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 11.3.2011

Репутация: нет
Всего: нет



Цитата(boostcoder @ 18.8.2011,  23:49)
Цитата(Ober @  18.8.2011,  23:41 Найти цитируемый пост)
А случайно нет аналогов на русском ?

не встречал

Добавлено @ 23:50
Цитата(Ober @  18.8.2011,  21:55 Найти цитируемый пост)
 }while( request << ZERO_BALANCE && request >> END );

похоже на опечатку

Добавлено @ 23:51
Ober, что за книжка?

Книга, "Как программировать на С++" П. Деител, Х. Деител, 5 издание.
PM MAIL   Вверх
mes
Дата 20.8.2011, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Ober @  20.8.2011,  17:03 Найти цитируемый пост)
Книга, "Как программировать на С++" П. Деител, Х. Деител, 5 издание. 

в оригинале  так :
Код

int getRequest()
{
   ...
   do // input user request
   {
      cout << "\n? ";
      cin >> request;
   } while ( request < ZERO_BALANCE && request > END );


     return request;
} // end function getRequest


Это сообщение отредактировал(а) mes - 20.8.2011, 18:30


--------------------
PM MAIL WWW   Вверх
Ober
Дата 20.8.2011, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 11.3.2011

Репутация: нет
Всего: нет



Цитата(mes @ 20.8.2011,  18:29)
Цитата(Ober @  20.8.2011,  17:03 Найти цитируемый пост)
Книга, "Как программировать на С++" П. Деител, Х. Деител, 5 издание. 

в оригинале  так :
Код

int getRequest()
{
   ...
   do // input user request
   {
      cout << "\n? ";
      cin >> request;
   } while ( request < ZERO_BALANCE && request > END );


     return request;
} // end function getRequest

У меня в электронном виде, возможно при сканировании, что-то не то скопировало.
PM MAIL   Вверх
volatile
Дата 20.8.2011, 23:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 16
Всего: 85



Цитата(mes @  20.8.2011,  18:29 Найти цитируемый пост)
в оригинале  так :
...
   } while ( request < ZERO_BALANCE && request > END );

Значит и в оригинале тоже опечатка, так как это  условие никогда не выполнится.
Нужно так:
Цитата(volatile @  18.8.2011,  23:46 Найти цитируемый пост)
 }while( request < ZERO_BALANCE || request > END );


Добавлено через 2 минуты и 41 секунду
при условии, что:
Цитата(Ober @  18.8.2011,  21:55 Найти цитируемый пост)
enum RequestType{ ZERO_BALANCE=1,CREDIT_BALANCE,DEBIT_BALANCE,END};


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.