Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/179: Рейтинг темы: голосов - 179, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 6
1

BOOL B C++ =(

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

Author24 — интернет-сервис помощи студентам
объясните, пожалуйста, значение 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;
                 }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2011, 17:02
Ответы с готовыми решениями:

не работает bool xor(bool a, bool b)
Учусь по &quot;Базовому курсу&quot; Герберта Шилда #include &lt;iostream&gt; bool xor(bool a, bool d); int...

Изменить значение bool a = true в bool a = false
// Логическое выражения - варианты #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; ...

как правильно понять тип bool ? bool true(const string &str) и что дает это значение ?
задам может глупый вопрос, но прошу ответить. как правильно понять тип bool ? bool...

bool+bool=string
Здравствуйте! Прошу помощи в задаче, существует 4 функции, возвращающие 1/0, нужно эти bool...

15
21 / 21 / 2
Регистрация: 09.11.2010
Сообщений: 102
22.01.2011, 17:14 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;
                 }
5
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 6
22.01.2011, 17:36  [ТС] 3
ааа.спасибо)
0
68 / 68 / 3
Регистрация: 18.12.2010
Сообщений: 127
22.01.2011, 22:52 4
Цитата Сообщение от Twitty Посмотреть сообщение
как можно в этом коде заменить bool на более простой тип данных?
Что значит простой тип данных? Bool принемает 2 значения: true, false. Куда проще?
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
22.01.2011, 22:58 5
C
1
2
3
4
5
6
7
8
typedef int BOOL;
#define TRUE 1
#define FALSE 0
...
BOOL b = TRUE;
if( b ){
 
}
ну вы поняли
0
68 / 68 / 3
Регистрация: 18.12.2010
Сообщений: 127
22.01.2011, 23:00 6
Цитата Сообщение от alex_x_x Посмотреть сообщение
typedef int BOOL;
#define TRUE 1
#define FALSE 0
...
BOOL b = FALSE
if( b ){
}
Ну вы поняли
0
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
22.01.2011, 23:14 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 это же все значения отличные от нуля. Ваш код работает, но смысла в нём не вижу (просветите если что не так), можно запутаться
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
22.01.2011, 23:19 8
Цитата Сообщение от NiRamz Посмотреть сообщение
зачем? если и так bool
еще существуют старые компиляторы выпущеные до поддерки типа bool

Цитата Сообщение от NiRamz Посмотреть сообщение
typedef int BOOL;
а bool в 2 байта - это интерсно если программируешь микроконтроллеры
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
22.01.2011, 23:23 9
Цитата Сообщение от Maxwe11 Посмотреть сообщение
еще существуют старые компиляторы выпущеные до поддерки типа bool
еще си существует, до 95 стандарта
а два байта было во времена 16битных систем
ну по поводу двух байт конечно по-разному, если про микроконтроллеры речь
0
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
22.01.2011, 23:29 10
Цитата Сообщение от Maxwe11 Посмотреть сообщение
еще существуют старые компиляторы выпущеные до поддерки типа bool
в таком случаи использовать if(1) {} и if(0) {} нельзя? или я чего то не понимаю ..)
Цитата Сообщение от Maxwe11 Посмотреть сообщение
а bool в 2 байта - это интерсно если программируешь микроконтроллеры
а почему 2? typedef int BOOL; выйдет 4. если просто bool, то 1 байт. или я опять ошибаюсь?)
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
22.01.2011, 23:34 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 зависит от конечной платформы
1
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);
}

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

Добавлено через 2 минуты
правда вообще бида-бида, логические операции в си возвращает в качестве истины ненулевое значение, те (5 == 5) мб не равно TRUE?
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
23.01.2011, 09:14 14
Цитата Сообщение от alex_x_x Посмотреть сообщение
будет работает в си, но не будет работать в плюсах изза невозможности bool преобразовать в enum, а преобразование в int проходит неявно
те legacy не получается
Ну тогда будем использовать встроенный bool
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
23.01.2011, 09:16 15
Nameless One, я думал об этом =)
0
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 6
25.01.2011, 06:41  [ТС] 16

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

спасибо
0
25.01.2011, 06:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2011, 06:41
Помогаю со студенческими работами здесь

Bool
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class multi { private: int...

bool
Помогите с функцией, ее нужно реализовать с помощью типом данных bool Напишите функцию, которая...

Bool на с++
Здраствуйте =) #include &lt;iostream&gt; using namespace std; int main() { int a; int b; ...

bool в g++
При компиляции программы в g++ она не выдают никаких ошибок, но во время выполнения ее выкидывает....


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru