Форум программистов, компьютерный форум, киберфорум
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. Показов 45702. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru