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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 203, средняя оценка - 4.88
Twitty
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 6
#1

BOOL B C++ =( - C++

22.01.2011, 17:02. Просмотров 25489. Ответов 15
Метки нет (Все метки)

объясните, пожалуйста, значение bool, и вообще, что это и зачем?
насколько я понял, это в С++...
и как можно в этом коде заменить bool на более простой тип данных?
(на С-шный)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Sort(int col)
{
    int trash=0;
    bool f=true;
    for (int i=1;  (i<=col) && (f=true)  ;  i++)
      {
         f=false;
         for (int j=1;  j<=col-i;  j++)
            {
               if (array [j]>array [j+1])
                 {
                    trash=array[j];
                    array [j]=array [j+1];
                    array [j+1]=trash;
                    f=true;
                 }
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2011, 17:02     BOOL B C++ =(
Посмотрите здесь:

C++ Bool на с++
C++ bool в div C++
C++ bool без if
bool C++
опрератор bool C++
не работает bool xor(bool a, bool b) C++
bool в g++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Мигрень
20 / 20 / 2
Регистрация: 09.11.2010
Сообщений: 102
22.01.2011, 17:14     BOOL B C++ =( #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
bool логический тип который принимает значения только true (еденица, истина) или false (ноль, ложь). Используется как флаг и его можно заменить тем же int'ом, имея ввиду что true = 1, а false = 0
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Sort(int col)
{
    int trash=0;
    int f=1;
    for (int i=1;  (i<=col) && (f==1)  ;  i++)
      {
         f==0;
         for (int j=1;  j<=col-i;  j++)
            {
               if (array [j]>array [j+1])
                 {
                    trash=array[j];
                    array [j]=array [j+1];
                    array [j+1]=trash;
                    f==1;
                 }
Twitty
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 6
22.01.2011, 17:36  [ТС]     BOOL B C++ =( #3
ааа.спасибо)
killboss
60 / 60 / 2
Регистрация: 18.12.2010
Сообщений: 127
22.01.2011, 22:52     BOOL B C++ =( #4
Цитата Сообщение от Twitty Посмотреть сообщение
как можно в этом коде заменить bool на более простой тип данных?
Что значит простой тип данных? Bool принемает 2 значения: true, false. Куда проще?
alex_x_x
бжни
2443 / 1648 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
22.01.2011, 22:58     BOOL B C++ =( #5
C
1
2
3
4
5
6
7
8
typedef int BOOL;
#define TRUE 1
#define FALSE 0
...
BOOL b = TRUE;
if( b ){
 
}
ну вы поняли
killboss
60 / 60 / 2
Регистрация: 18.12.2010
Сообщений: 127
22.01.2011, 23:00     BOOL B C++ =( #6
Цитата Сообщение от alex_x_x Посмотреть сообщение
typedef int BOOL;
#define TRUE 1
#define FALSE 0
...
BOOL b = FALSE
if( b ){
}
Ну вы поняли
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
22.01.2011, 23:14     BOOL B C++ =( #7
Цитата Сообщение от alex_x_x Посмотреть сообщение
typedef int BOOL;
#define TRUE 1
#define FALSE 0
...
BOOL b = TRUE;
if( b ){
}
смысла вообще не понятно..
typedef int BOOL;
зачем? если и так bool, а так что ли не работает? if (true) {}, все прекрасно работает. true это же все значения отличные от нуля. Ваш код работает, но смысла в нём не вижу (просветите если что не так), можно запутаться
Jupiter
Каратель
Эксперт C++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
22.01.2011, 23:19     BOOL B C++ =( #8
Цитата Сообщение от NiRamz Посмотреть сообщение
зачем? если и так bool
еще существуют старые компиляторы выпущеные до поддерки типа bool

Цитата Сообщение от NiRamz Посмотреть сообщение
typedef int BOOL;
а bool в 2 байта - это интерсно если программируешь микроконтроллеры
alex_x_x
бжни
2443 / 1648 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
22.01.2011, 23:23     BOOL B C++ =( #9
Цитата Сообщение от Maxwe11 Посмотреть сообщение
еще существуют старые компиляторы выпущеные до поддерки типа bool
еще си существует, до 95 стандарта
а два байта было во времена 16битных систем
ну по поводу двух байт конечно по-разному, если про микроконтроллеры речь
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
22.01.2011, 23:29     BOOL B C++ =( #10
Цитата Сообщение от Maxwe11 Посмотреть сообщение
еще существуют старые компиляторы выпущеные до поддерки типа bool
в таком случаи использовать if(1) {} и if(0) {} нельзя? или я чего то не понимаю ..)
Цитата Сообщение от Maxwe11 Посмотреть сообщение
а bool в 2 байта - это интерсно если программируешь микроконтроллеры
а почему 2? typedef int BOOL; выйдет 4. если просто bool, то 1 байт. или я опять ошибаюсь?)
alex_x_x
бжни
2443 / 1648 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
22.01.2011, 23:34     BOOL B C++ =( #11
Цитата Сообщение от NiRamz Посмотреть сообщение
а почему 2? typedef int BOOL; выйдет 4. если просто bool, то 1 байт. или я опять ошибаюсь?)
bool в си до с95 не было (да в с95 он вообще Bool), а в с++ до с98? я не помню
вообщем автор судя по топику говорит о си

Добавлено через 1 минуту
Цитата Сообщение от NiRamz Посмотреть сообщение
а почему 2? typedef int BOOL; выйдет 4. если просто bool, то 1 байт. или я опять ошибаюсь?)
размер int, как и всего другого кроме char и wchar_t зависит от конечной платформы
Nameless One
23.01.2011, 08:49
  #12

Не по теме:

Цитата Сообщение от alex_x_x Посмотреть сообщение
C
1
2
3
4
5
6
7
8
typedef int BOOL;
#define TRUE 1
#define FALSE 0
...
BOOL b = TRUE;
if( b ){
 
}
ну вы поняли
А я бы так сделал:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>
 
typedef enum 
{
    FALSE,
    TRUE
} bool_t;
 
int main()
{
    bool_t flag = TRUE;
    if(flag)
        puts("Hello, Bool!");
    exit(0);
}

alex_x_x
бжни
2443 / 1648 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
23.01.2011, 09:13     BOOL B C++ =( #13
Nameless One, да, определенно красивей выглядит
однако, подобная строка
C
1
bool_t b = ( 0==5 );
будет работает в си, но не будет работать в плюсах изза невозможности bool преобразовать в enum, а преобразование в int проходит неявно
те legacy не получается

Добавлено через 2 минуты
правда вообще бида-бида, логические операции в си возвращает в качестве истины ненулевое значение, те (5 == 5) мб не равно TRUE?
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,433
23.01.2011, 09:14     BOOL B C++ =( #14
Цитата Сообщение от alex_x_x Посмотреть сообщение
будет работает в си, но не будет работать в плюсах изза невозможности bool преобразовать в enum, а преобразование в int проходит неявно
те legacy не получается
Ну тогда будем использовать встроенный bool
alex_x_x
бжни
2443 / 1648 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
23.01.2011, 09:16     BOOL B C++ =( #15
Nameless One, я думал об этом =)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2011, 06:41     BOOL B C++ =(
Еще ссылки по теме:

C++ как правильно понять тип bool ? bool true(const string &str) и что дает это значение ?
bool+bool=string C++
Bool C++
Тип BOOL C++
C++ Изменить значение bool a = true в bool a = false

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

Или воспользуйтесь поиском по форуму:
Twitty
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 6
25.01.2011, 06:41  [ТС]     BOOL B C++ =( #16

после замены на f=1()
и f=0 все работает)

спасибо
Yandex
Объявления
25.01.2011, 06:41     BOOL B C++ =(
Ответ Создать тему
Опции темы

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