Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/219: Рейтинг темы: голосов - 219, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 7

Видоизменить программу таким образом, чтобы вместо логических значений true и false отображались 1 и 0

01.10.2015, 19:16. Показов 46091. Ответов 105
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, учу JAVA, попалась задача :
Кликните здесь для просмотра всего текста
Попробуйте видоизменить программу таким образом, чтобы вместо логических значений true и false отображались значения 1 и 0.

Кликните здесь для просмотра всего текста
Java
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
class LogicalOpTable {
    public static void main(String args[])  {
        boolean p, q;
 
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
 
        p = true; q = true;
        System.out.print(p + "\t" + q +"\t");
        System.out.print((p&q) + "\t" + (plq) + "\t");
        System.out.println((p^q) + "\t" + (!p));
 
        p = true; q = false;
        System.out.print(p + "\t" + q +"\t");
        System.out.print((p&q) + "\t" + (plq) + "\t");
        System.out.println((p^q) + "\t" + (!p));
 
        p = false; q = true;
        System, out .print (p + "\t" + q +"\t");
        System.out.print((p&q) + "\t" + (plq) + "\t");
        System.out.println((p^q) + "\t" + (!p));
 
        p = false; q = false;
        System.out.print(p + "\t" + q +"\t");
        System.out.print((p&q) + "\t" + (plq) + "\t");
        System.out.println((p^q) + "\t" + (!p));
    }
}

Сделал ее, но ,как по мне, она слишком большая, есть ли другие способы написать ее по другому.
Критикуйте и т.д, и т.п.
Это первая часть кода, там изменяется только p,q на false или true.
Java
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class Example5 {
    public static void main(String args[]) {
        boolean p,q;
        int x;
        
        
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
        
        p = true; q = true;
        if(p) {
            x = 1;
            System.out.print(x + "\t");
        }
        else {
            x = 0;
            System.out.print(x + "\t");
        }
        if(q) {
        x = 1;
            System.out.print(x + "\t");
                }
        else {
            x = 0;
            System.out.print(x + "\t");
        }
        if(p&q) {
            x = 1;
            System.out.print(x + "\t");
        }
        else {
            x = 0;
            System.out.print(x + "\t");
        }
        if(p|q) {
            x = 1;
            System.out.print(x + "\t");  
        }
        else {
            x = 0;
            System.out.print(x + "\t");
        }
        if(p^q) {
            x = 1;
            System.out.print(x + "\t");
        }
        else {
            x = 0;
            System.out.print(x + "\t");
        }
        if(!p) {
            x = 1;
            System.out.println(x + "\t");
        }
        else {
            x = 0;
            System.out.println(x + "\t");
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.10.2015, 19:16
Ответы с готовыми решениями:

Нужно чтобы вместо false и true отображались 0 и 1 в таблице истинности
Нужно чтобы вместо false и true отображались 0 и 1 в таблице истинности. заменил тип переменных p и q с boolean на byte, но ругается на...

Вместо логических значений true и false отображать значения 1 и 0
class LogicalOpTable { public static void main(String args) { boolean p, q; System.out.println("P\t Q\t ...

Изменение логических значений true и false на 1 и 0
Доброго времени суток, уважаемые форумчане. Заранее извиняюсь за дурацкий вопрос, я просто новичок в программировании. Нужно было в...

105
0 / 0 / 0
Регистрация: 06.03.2018
Сообщений: 2
06.03.2018, 16:11
Студворк — интернет-сервис помощи студентам
xoraxax, обязательно
0
0 / 0 / 0
Регистрация: 02.09.2018
Сообщений: 1
02.09.2018, 11:26
Без тернарных операторов хз как. Получилось так:

Java
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
29
30
31
class LogicalOpTable {
    public static void main(String args[]){
        byte a, b;
        
        System.out.println("A\tB\tAnd\tOr\tXOR\tA_NOT");
        
        a = 1; b = 0;       
        
        System.out.print(a + "\t" + b + "\t");
        System.out.print((a*b) + "\t" + (a+b) + "\t");
        System.out.println(((a==b) ? 0 : 1) + "\t" + ((a==1) ? 0 : 1));
        
        a = 0; b = 1;       
        
        System.out.print(a + "\t" + b + "\t");
        System.out.print((a*b) + "\t" + (a+b) + "\t");
        System.out.println(((a==b) ? 0 : 1) + "\t" + ((a==1) ? 0 : 1));
        
        a = 1; b = 1;
        
        System.out.print(a + "\t" + b + "\t");
        System.out.print((a*b) + "\t" + (a+b) + "\t");
        System.out.println(((a==b) ? 0 : 1) + "\t" + ((a==1) ? 0 : 1));
        
        a = 0; b = 0;
        
        System.out.print(a + "\t" + b + "\t");
        System.out.print((a*b) + "\t" + (a+b) + "\t");
        System.out.println(((a==b) ? 0 : 1) + "\t" + ((a==1) ? 0 : 1));
    }
}
0
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
02.09.2018, 11:54
blacks0n,
Java
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
public class Main {
    public static void main(String[] args) {
        System.out.println("A\tB\tAnd\tOr\tXOR\tA_NOT");
 
        print(1, 0);
        print(0, 1);
        print(1, 1);
        print(0, 0);
    }
 
    private static void print(int a, int b) {
        System.out.println(a + "\t" + 
                b + "\t" +
                (a * b) + "\t" + 
                (a + b) + "\t" +
                (a == b ?
                        0
                        :
                        1) + "\t" + 
                (a == 1 ? 
                        0 
                        : 
                        1));
    }
}
Добавлено через 12 минут
Как по мне, более правильный вариант:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Main {
    public static void main(String[] args) {
        System.out.println("A\tB\tAnd\tOr\tXOR\tA_NOT");
 
        print(true, false);
        print(false, true);
        print(true, true);
        print(false, false);
    }
 
    private static void print(boolean a, boolean b) {
        System.out.println(toIntAndTab(a) +
                toIntAndTab(b) +
                toIntAndTab(a & b) +
                toIntAndTab(a | b) +
                toIntAndTab(a ^ b) +
                toIntAndTab(!a));
    }
 
    private static String toIntAndTab(boolean a) {
        return (a ? 1 : 0) + "\t";
    }
}
0
0 / 0 / 0
Регистрация: 20.09.2018
Сообщений: 1
20.09.2018, 13:53
Всем привет! Начал изучать Java. Вот мое решение этой задачи. Не судите строго.
Java
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
public class LogicalOpTable {
    public static void main (String args[]){
        boolean p, q, a, b, c, d;
        byte pb, qb, ab, bb, cb, db;
        System.out.println("P\tQ\tAnd\tOR\tXOR\tNOT\t");
 
        p=true; q=true;
        for (int i = 0; i < 4; i++) {
            a=(p&q);
            b=(p|q);
            c=(p^q);
            d=(!p);
            if(p) pb=1; else pb=0;
            if(q) qb=1; else qb=0;
            if(a) ab=1; else ab=0;
            if(b) bb=1; else bb=0;
            if(c) cb=1; else cb=0;
            if(d) db=1; else db=0;
            System.out.print(pb+"\t"+qb+"\t");
            System.out.print(ab+"\t"+bb+"\t");
            System.out.println(cb+"\t"+db);
            if (q && !p) q=false;
            if (!q & p) {p=false; q=true;}
            if (p & q) q=false;
        }
    }
}
0
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 3
02.11.2018, 21:27
Вот все что получилось исходя из знаний книги до 2 главы:
Java
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
class LogicalOpTable1 {
    public static void main(String args[]) {
        int i, j;
        boolean p, q;
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
        i=1;
        j=0;
        p=true; q=true;
    if(p) {
        System.out.print(i+ "\t");}
    else {  
        System.out.print(j+ "\t");}
    if(q) {
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(p&q){
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(p|q) {
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(p^q) {
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(!p) {
    System.out.print(i+ "\t");}
    else {
    System.out.println(j+ "\t");}
    p=true; q=false;
    if(p) {
        System.out.print(i+ "\t");}
    else {  
        System.out.print(j+ "\t");}
    if(q) {
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(p&q){
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(p|q) {
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(p^q) {
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(!p) {
    System.out.print(i+ "\t");}
    else {
    System.out.println(j+ "\t");}
    p=false; q=true;
    if(p) {
        System.out.print(i+ "\t");}
    else {  
        System.out.print(j+ "\t");}
    if(q) {
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(p&q){
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(p|q) {
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(p^q) {
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(!p) {
    System.out.println(i+ "\t");}
    else {
    System.out.println(j+ "\t");}
    p=false; q=false;
    if(p) {
        System.out.print(i+ "\t");}
    else {  
        System.out.print(j+ "\t");}
    if(q) {
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(p&q){
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(p|q) {
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(p^q) {
    System.out.print(i+ "\t");}
    else {
    System.out.print(j+ "\t");}
    if(!p) {
    System.out.print(i+ "\t");}
    else {
    System.out.println(j+ "\t");}
    
    
    
    }
}
[/JAVA]
0
03.11.2018, 00:03

Не по теме:

CyberGariKK, держите в курсе об остальных главах

0
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 3
03.11.2018, 00:12
В смысле не по теме???? Вот вам результат:
Миниатюры
Видоизменить программу таким образом, чтобы вместо логических значений true и false отображались 1 и 0  
0
03.11.2018, 00:19

Не по теме:

CyberGariKK, Вы похвастаться хотели? Лучше посмотрите другие решения в теме.

0
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 3
03.11.2018, 00:24
Я просмотрел другие решения в теме и определённо здесь хвастаюсь не я, так как упомянутые выше решения определенно превосходят знания начального уровня.
0
03.11.2018, 00:28

Не по теме:

CyberGariKK, если у Вас нет вопросов и Ваше решение хуже, то смысл Вашего поста?
Еще ж надо было эту тему откопать...

0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
05.11.2018, 23:39
Мой вариант, к тому же стримов еще не было.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.Arrays;
import java.util.stream.Collectors;
 
public class PrintBooltoInt{
 
    public static void main(String[] args){
        boolean a, b;
        System.out.println("A\tB\tand\tor\txor\t!A\t!B");
        a = true; b= true;
        System.out.println(StringBooltoInt(a, b, a&b, a|b, a^b, !a, !b));
        a = true; b= false;
        System.out.println(StringBooltoInt(a, b, a&b, a|b, a^b, !a, !b));
        a = false; b= true;
        System.out.println(StringBooltoInt(a, b, a&b, a|b, a^b, !a, !b));
        a = false; b= false;
        System.out.println(StringBooltoInt(a, b, a&b, a|b, a^b, !a, !b));
    }
    public static String StringBooltoInt(Boolean... boo) {
        return Arrays.stream(boo).map(b -> Integer.toString( b? 1 : 0)+"\t").collect(Collectors.joining(" ")) + "\n";
    }
}
Code
1
2
3
4
5
6
7
8
A   B   and or  xor !A  !B
1    1   1   1   0   0   0  
 
1    0   0   1   1   0   1  
 
0    1   0   1   1   1   0  
 
0    0   0   0   0   1   1
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
06.11.2018, 14:32
Цитата Сообщение от ViktorFX Посмотреть сообщение
.map(b -> Integer.toString( b? 1 : 0)+"\t").collect(Collectors.joining(" "))
Лучше так:
Java
1
.map(b -> b? "1" : "0").collect(Collectors.joining("\t "))
Добавлено через 2 минуты
И для этого я б отдельную функцию сделал чтоб не ошибиться в порядке переменных
Цитата Сообщение от ViktorFX Посмотреть сообщение
StringBooltoInt(a, b, a&b, a|b, a^b, !a, !b)
Например,
Java
1
2
3
public static void printLine(boolean a, boolean b) {
   System.out.println(StringBooltoInt(a, b, a&b, a|b, a^b, !a, !b));
}
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
06.11.2018, 22:14
Цитата Сообщение от JIeIIIa Посмотреть сообщение
Лучше так:
Java
1
.map(b -> b? "1" : "0").collect(Collectors.joining("\t "))
Согласен, я даже сам потом тестировал и находил альтернативы немного получше, но не настолько))
Просто я сначала "зациклился" на ИнтСтрим. Думаю что на самое первое использование стримов пойдет!
Цитата Сообщение от JIeIIIa Посмотреть сообщение
отдельную функцию сделал чтоб не ошибиться в порядке переменных
А здесь либо непонял либо несогласен. Мне кажется просто лишним нагромаждением которое ограничевает нашу гибкость. А так в аргументе я могу задавать любые логические выражения (просто я рассмотривал более общую задачу)
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
06.11.2018, 23:08
[/JAVA]ViktorFX, я про то, что вызывая функцию StringBooltoInt Вы должны постоянно в одном и том же порядке указывать значения (И, ИЛИ, НЕ а, НЕ b). Если, например, решите изменить порядок, то менять придется минимум в 4 местах. В тоже время вывод в каждой строке зависит только от a и b. Поэтому метод printLine мне видится логичным. Тогда вместо System.out.println(StringBooltoInt(a, b, a&b, a|b, a^b, !a, !b)); достаточно вызвать printLine(a, b);
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
06.11.2018, 23:18
Цитата Сообщение от ViktorFX Посмотреть сообщение
А здесь либо непонял либо несогласен. Мне кажется просто лишним нагромаждением которое ограничевает нашу гибкость. А так в аргументе я могу задавать любые логические выражения (просто я рассмотривал более общую задачу)
Чем это наличие дополнительной функции ограничивает твою гибкость?
DRY!

Сравни свой код с кодом JIeIIIa:
Java
1
2
3
4
5
6
7
8
    public static void main(String[] args) {
        boolean a, b;
        System.out.println("A\tB\tand\tor\txor\t!A\t!B");
        printLine(true,  true);
        printLine(true,  false);
        printLine(false, true);
        printLine(false, false);
    }
Чувствуешь разницу?
1
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
06.11.2018, 23:54
korvin_, JIeIIIa, Согласен с вами обоими, так и короче и наверно понятнее, и решает именно нашу задачу. Так правильнее к этой теме.

Мне просто субъективно так не хочется отказываться от выражений типа a&b&(с|b), да они мне и не надо просто "в хозяйстве, а вдруг.." своя радость короче..

П.С. кто ни будь, как выделать строки "Не по теме"?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
06.11.2018, 23:56
ViktorFX, Название: Screenshot_1.png
Просмотров: 61

Размер: 6.7 Кб
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
06.11.2018, 23:57
https://www.cyberforum.ru/abou... 03521.html
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
07.11.2018, 00:13
iSmokeJC, Спасибо)
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
07.11.2018, 07:35
там в начале кто то менял принт стрим, на мой взгляд единственное верное решение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.11.2018, 07:35

Изменить программу таким образом, чтобы все большие буквы заменялись на символ
Помогите, пожалуйста, изменить код, чтобы выполнялись такие задания: 1 программа: Все большие буквы заменить на символ ‘#’. 2...

Модифицируйте, пожалуйста, программу так, чтобы вместо 0 выводилось “false”, а вместо 1 – ”true”
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { bool y, x; bool sq={ {0,0}, {0,1}, ...

Дана последовательность из n логических значений. Определить, каких значений в последовательности больше - True или False
Дана последовательность из n логических значений. Определить, каких значений в последовательности больше - True или False.

Видоизменить массив таким образом, чтобы сначала шли все положительные элементы, потом все отрицательные
Принять в процедуру некоторый заполненный массив с отрицательными и положительными элементами. Нужно слегка видоизменить массив таким...

Возможно ли сделать группировку столбцов таким образом, чтобы при 2 группах отображались оба 'плюса'?
Hi, All! Группирую в Экселе столбцы 2-8(B:H); потом группирую столбцы 2-5(B:E)(Данные/Группа и структура/Группировать). Снимаю...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru