Форум программистов, компьютерный форум, киберфорум
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. Показов 45788. Ответов 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
Регистрация: 20.11.2018
Сообщений: 2
20.11.2018, 16:57
Студворк — интернет-сервис помощи студентам
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
public class LogicalOpTable {
    public static void main(String[] args) {
 
        byte x, z;
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT\t");
 
        x = 1; z = 0;
        System.out.print(x + "\t" + x + "\t" );
        System.out.print(x + "\t" + x + "\t");
        System.out.println(z + "\t" + z);
 
        System.out.print(x + "\t" + z + "\t");
        System.out.print(z + "\t" + x + "\t");
        System.out.println(x + "\t" + z);
 
        System.out.print(z + "\t" + x + "\t");
        System.out.print(z + "\t" + x + "\t");
        System.out.println(x + "\t" + x);
 
        System.out.print(z + "\t" + z + "\t");
        System.out.print(z + "\t" + z + "\t");
        System.out.println(z + "\t" + x);
    }
}
По-моему вот самый простой вариант, на данном уровне, по этому учебнику) Просто поменять переменную с булево на целочисленное, а не изобретать велосипед)
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
20.11.2018, 17:00
АндрейПланов, а где у Вас в коде хоть одна логическая операция используется?
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 2
21.11.2018, 08:57
В задании указано, вместотлогическтх выражений что бы отображались значение 1 и 0. Так почему я должен использовать логические операции?
Миниатюры
Видоизменить программу таким образом, чтобы вместо логических значений true и false отображались 1 и 0  
0
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,507
21.11.2018, 09:59
Цитата Сообщение от АндрейПланов Посмотреть сообщение
вместотлогическтх выражений
это значит у тебя есть true и false, скажем в массиве, а тебе нужно их заменить на 0 и 1.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
21.11.2018, 10:15
АндрейПланов, то есть, по-твоему, для решения задачи "вывести сумму 3 и 4", достаточно написать System.out.print(7); ?
1
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
21.11.2018, 11:46
Цитата Сообщение от iSmokeJC Посмотреть сообщение
написать System.out.print(7);
На самом деле написать надо
Java
1
2
int x = 7;
System.out.print(x);
АндрейПланов, зачем Вы писали:
Цитата Сообщение от АндрейПланов Посмотреть сообщение
System.out.print(x + "\t" + x + "\t" );
System.out.print(x + "\t" + x + "\t");
System.out.println(z + "\t" + z);
если можно было пойти дальше:
Java
1
2
3
System.out.print("1\t1\t" );
System.out.print("1\t1\t");
System.out.println("0\t0");
1
1 / 1 / 0
Регистрация: 21.11.2018
Сообщений: 1
22.11.2018, 12:44
Я ещё совсем зелёный. Хотел использовать только те знания, которые были представлены в учебнике до упражнения, но получалось всё время очень громоздко. В итоге добавил всего лишь два массива и получилась вот такая ёмкая прога.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class exercise_2_2 {
    public static void main(String[] args) {
 
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
 
        boolean[] bool = {true, true, true, false, false, true, false, false};
        boolean p, q;
 
        for (int i = 0; i < bool.length-1; i+=2) {
            p = bool[i]; q = bool[i+1];
            boolean[] exp = {p, q, p&q, p|q, p^q, !p};
 
            for (int k = 0; k <exp.length ; k++) {
                if (exp[k]) System.out.print(1 + "\t");
                else System.out.print(0 + "\t");
            }
 
            System.out.println();
 
        }
    }
}
1
0 / 0 / 0
Регистрация: 21.03.2019
Сообщений: 1
21.03.2019, 23:10
Если использовать знания, полученные в учебнике, только дочитав до этого задания, то выполнить его можно только таким способом(без использования дополнительных функций, использования else)
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
public static void main (String args[]) {
        boolean p,q;
        
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
        
        p=true; q=true;
        if(p==true) System.out.print("1");
        if(p==false) System.out.print("0");
        System.out.print("\t");
        if(q==true) System.out.print("1");
        if(q==false) System.out.print("0");
        System.out.print("\t");
        if((p&q)==true) System.out.print("1");
        if((p&q)==false) System.out.print("0");
        System.out.print("\t");
        if((p|q)==true) System.out.print("1");
        if((p|q)==false) System.out.print("0");
        System.out.print("\t");
        if((p^q)==true) System.out.print("1");
        if((p^q)==false) System.out.print("0");
        System.out.print("\t");
        if((!p)==true) System.out.print("1");
        if((!p)==false) System.out.print("0");
        System.out.println();
        
        p=true; q=false;
        if(p==true) System.out.print("1");
        if(p==false) System.out.print("0");
        System.out.print("\t");
        if(q==true) System.out.print("1");
        if(q==false) System.out.print("0");
        System.out.print("\t");
        if((p&q)==true) System.out.print("1");
        if((p&q)==false) System.out.print("0");
        System.out.print("\t");
        if((p|q)==true) System.out.print("1");
        if((p|q)==false) System.out.print("0");
        System.out.print("\t");
        if((p^q)==true) System.out.print("1");
        if((p^q)==false) System.out.print("0");
        System.out.print("\t");
        if((!p)==true) System.out.print("1");
        if((!p)==false) System.out.print("0");
        System.out.println();
        
        p=false; q=true;
        if(p==true) System.out.print("1");
        if(p==false) System.out.print("0");
        System.out.print("\t");
        if(q==true) System.out.print("1");
        if(q==false) System.out.print("0");
        System.out.print("\t");
        if((p&q)==true) System.out.print("1");
        if((p&q)==false) System.out.print("0");
        System.out.print("\t");
        if((p|q)==true) System.out.print("1");
        if((p|q)==false) System.out.print("0");
        System.out.print("\t");
        if((p^q)==true) System.out.print("1");
        if((p^q)==false) System.out.print("0");
        System.out.print("\t");
        if((!p)==true) System.out.print("1");
        if((!p)==false) System.out.print("0");
        System.out.println();
        
        p=false; q=false;
        if(p==true) System.out.print("1");
        if(p==false) System.out.print("0");
        System.out.print("\t");
        if(q==true) System.out.print("1");
        if(q==false) System.out.print("0");
        System.out.print("\t");
        if((p&q)==true) System.out.print("1");
        if((p&q)==false) System.out.print("0");
        System.out.print("\t");
        if((p|q)==true) System.out.print("1");
        if((p|q)==false) System.out.print("0");
        System.out.print("\t");
        if((p^q)==true) System.out.print("1");
        if((p^q)==false) System.out.print("0");
        System.out.print("\t");
        if((!p)==true) System.out.print("1");
        if((!p)==false) System.out.print("0");
        System.out.println();
    }
Результат:

Java
1
2
3
4
5
P   Q   AND OR  XOR NOT
1   1   1   1   0   0
1   0   0   1   1   0
0   1   0   1   1   1
0   0   0   0   0   1
0
0 / 0 / 0
Регистрация: 05.05.2019
Сообщений: 1
05.05.2019, 21:07
Учусь по этой книге и долго думал как можно упростить код основываясь только на знаниях полученных раньше. В итоге сделал цикл, в котором логические значения "p" и "q" менялись в зависимости от числовой переменной "check". В итоге вот что получилось:
Есть ощущение что можно еще проще, но этот результат тоже меня устраивает.
Кликните здесь для просмотра всего текста

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
class LogicalOpTable2 {
    public static void main(String[] args) {
        boolean p, q;
 
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
 
        p = true; q = true;
 
        for (int check = 1; check <=4; check++) {
            if (check == 1) { p = true; q = true;}
            if (check == 2) { p = true; q = false;}
            if (check == 3) { p = false; q = true;}
            if (check == 4) { p = false; q = false;}
 
            if (p == true) System.out.print(1 + "\t");
            if (p == false) System.out.print(0 + "\t");
            if (q == true) System.out.print(1 + "\t");
            if (q == false) System.out.print(0 + "\t");
            if ((p & q) == true) System.out.print(1 + "\t");
            if ((p & q) == false) System.out.print(0 + "\t");
            if ((p | q) == true) System.out.print(1 + "\t");
            if ((p | q) == false) System.out.print(0 + "\t");
            if ((p ^ q) == true) System.out.print(1 + "\t");
            if ((p ^ q) == false) System.out.print(0 + "\t");
            if ((!p) == true) System.out.println(1 + "\t");
            if ((!p) == false) System.out.println(0 + "\t");
        }
    }
}
0
0 / 0 / 0
Регистрация: 04.07.2019
Сообщений: 1
04.07.2019, 20:03
Как вариант:

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
class LogicalOpTable {
public static void main(String[] args){
boolean p, q;
int i = 0, s = 0;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p = true; q = true;
if(p) i = 1; 
if(q) s = 1;
System.out.print(i + "\t" + s +"\t");
i = 0; s = 0;
if(p & q) i = 1;
if(p | q) s = 1;
System.out.print(i + "\t" + s + "\t");
i = 0; s = 0;
if(p ^ q) i = 1;
if(! p) s = 1;
System.out.println(i + "\t" + s);
p = true; q = false;
i = 0; s = 0;
if(p) i = 1;
if(q) s = 1;
System.out.print(i + "\t" + s +"\t");
i = 0; s = 0;
if(p & q) i = 1;
if(p | q)s = 1;
System.out.print(i + "\t" + s + "\t");
i = 0; s = 0;
if(p ^ q) i = 1;
if(! p) s = 1;
System.out.println(i + "\t" + s);
p = false; q = true;
i = 0; s = 0;
if(p) i = 1;
if(q) s = 1;
System.out.print(i + "\t" + s +"\t");
i = 0; s = 0;
if(p & q) i = 1;
if(p | q) s = 1;
System.out.print(i + "\t" + s + "\t");
i = 0; s = 0;
if(p ^ q) i = 1;
if(! p) s = 1;
System.out.println(i + "\t" + s);
p = false; q = false;
i = 0; s = 0;
if(p) i = 1;
if(q) s = 1;
System.out.print(i + "\t" + s +"\t");
i = 0; s = 0;
if(p & q) i = 1;
if(p | q) s = 1;
System.out.print(i + "\t" + s + "\t");
i = 0; s = 0;
if(p ^ q) i = 1;
if(! p) s = 1;
System.out.println(i + "\t" + s);
}
}
0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
04.07.2019, 23:54
Ух ты!!! А как же без меня с моим любимым Шилдтом?
Я эту задачку в то время решила вот так (ну это когда я еще не знала, что такое else):

Кликните здесь для просмотра всего текста
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
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" + (p | q) + "\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" + (p | q) + "\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" + (p | q) + "\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" + (p | q) + "\t");
        System.out.println((p ^ q) + "\t" + (!p));
        
        
        // Усложнение. Необходимо изменить true и false на 1 и 0
        int a, b;
        System.out.println("\nP\tQ\tAND\tOR\tXOR\tNOT");
        
        a = 1; b = 1; 
        System.out.print(a + "\t" + b +"\t");
        System.out.print((a & b) + "\t" + (a | b) + "\t");
        System.out.print((a ^ b) + "\t");
        if (a == 1) a = 0;
        System.out.println(a);
        
        a = 1; b = 0;
        System.out.print(a + "\t" + b +"\t");
        System.out.print((a & b) + "\t" + (a | b) + "\t");
        System.out.print((a ^ b) + "\t");
        if (a == 1) a = 0;
        System.out.println(a);
        
        a = 0; b = 1;
        System.out.print(a + "\t" + b +"\t");
        System.out.print((a & b) + "\t" + (a | b) + "\t");
        System.out.print((a ^ b) + "\t");
        if (a == 0) a = 1;
        System.out.println(a);
        
        a = 0; b = 0;
        System.out.print(a + "\t" + b +"\t");
        System.out.print((a & b) + "\t" + (a | b) + "\t");
        System.out.print((a ^ b) + "\t");
        if (a == 0) a = 1;
        System.out.println(a);
    }
}
Bash
1
2
3
4
5
6
7
8
9
10
11
P       Q       AND     OR      XOR     NOT
true    true    true    true    false   false
true    false   false   true    true    false
false   true    false   true    true    true
false   false   false   false   false   true
 
P   Q   AND OR  XOR NOT
1   1   1   1   0   0
1   0   0   1   1   0
0   1   0   1   1   1
0   0   0   0   0   1


Добавлено через 19 минут
А сейчас бы я ее решила так:

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class LogicalOpTable {
    public void boolToByte(int one, int two) {
        int a = one; int b = two;
        System.out.print(a + "\t" + b +"\t");
        System.out.print((a & b) + "\t" + (a | b) + "\t");
        System.out.print((a ^ b) + "\t");
        if (a == 1) a = 0; else a = 1;
        System.out.println(a);
    }
    
    public static void main(String[] args) {
        LogicalOpTable shildt = new LogicalOpTable();
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
        shildt.boolToByte(1, 1);
        shildt.boolToByte(1, 0);
        shildt.boolToByte(0, 1);
        shildt.boolToByte(0, 0);
    }
}
Bash
1
2
3
4
5
P   Q   AND OR  XOR NOT
1   1   1   1   0   0
1   0   0   1   1   0
0   1   0   1   1   1
0   0   0   0   0   1
1
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
05.07.2019, 07:09
предлагаю усложнить задачу и вывести таблицу для всех функций от N переменных, а то уже 5 лет одно и то же пишете
0
0 / 0 / 0
Регистрация: 10.09.2019
Сообщений: 1
10.09.2019, 22:49
как то так, с учетом того что написано в этой книге до этого момента, только else добавил
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
class pzdc {
    public static void main(String[] qwert) {
 
        boolean p, q;
        int x,y,z;
            System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
            p = true;
            q = true;
            if (p) x = 1;
            else x = 0;
            if (q) y = 1;
            else y = 0;
            if (!p) z=1; else z=0;
            System.out.print(x + "\t" + y + "\t");
            System.out.print((x & y) + "\t" + (x | y) + "\t");
            System.out.println((x ^ y) + "\t" + (z));
 
            p = true;
            q = false;
        if (p) x = 1;
        else x = 0;
        if (q) y = 1;
        else y = 0;
        if (!p) z=1; else z=0;
            System.out.print(x + "\t" + y + "\t");
            System.out.print((x & y) + "\t" + (x | y) + "\t");
            System.out.println((x ^ y) + "\t" + (z));
 
            p = false;
            q = true;
        if (p) x = 1;
        else x = 0;
        if (q) y = 1;
        else y = 0;
        if (!p) z=1; else z=0;
            System.out.print(x + "\t" + y + "\t");
            System.out.print((x & y) + "\t" + (x | y) + "\t");
            System.out.println((x ^ y) + "\t" + (z));
 
            p = false;
            q = false;
        if (p) x = 1;
        else x = 0;
        if (q) y = 1;
        else y = 0;
        if (!p) z=1; else z=0;
            System.out.print(x + "\t" + y + "\t");
            System.out.print((x & y) + "\t" + (x | y) + "\t");
            System.out.println((x ^ y) + "\t" + (z));
    }
 
}
Добавлено через 3 часа 43 минуты
Но как вариант и при условии не использования else , получится то же самое, только там нужно изменить условие место else снова
Java
1
if (p=false) x = 0;
и далее, код получится тогог же размера, только операторы все что по книге до того момента, и никакого кода больше 56 строк
0
0 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 1
05.12.2019, 18:38
Я как-то так рассуждала.
Добавляем третью переменную z, которая будет отвечать за действие (!р). Если р истина, то результатом будет ложь, если р ложь, то результат истина. Прописываю это:
Java
1
2
3
4
5
if (p == 0) {
    z = 1;
    } else {
                z = 0;
                        }
После этого вставляю это условие в каждый блок после присваивания р и q значений.
Выглядеть это условно должно как-то так:

Присваивание значений;
Условие;
Сам текст с табуляциями, проверками и в конце +z.

Сам код полностью:
Кликните здесь для просмотра всего текста

Да, я выводила все значения не в несколько строчек принта, но ничего серьезного это не меняет.
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
public static void main (String [] args) {
        int p, q, z;
        
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
        
        p = 1; q = 1;
        if (p == 0) {
            z = 1;
        } else {
            z = 0;
        }
        
        System.out.print(p + "\t" + q);
        System.out.print("\t" + (p&q) + "\t" + (p|q) + "\t" + (p^q) + "\t" + z);
        
        p = 1; q = 0;
        if (p == 0) {
            z = 1;
        } else {
            z = 0;
        }
        System.out.println("\n" + p + "\t" + q + "\t" + (p&q) + "\t" + (p|q) + "\t" + (p^q) + "\t" + z);
        
        p = 0; q = 1;
        if (p == 0) {
            z = 1;
        } else {
            z = 0;
        }
        System.out.println(p + "\t" + q + "\t" + (p&q) + "\t" + (p|q) + "\t" + (p^q) + "\t" + z);
        
        p = 0; q = 0;
        if (p == 0) {
            z = 1;
        } else {
            z = 0;
        }
        System.out.println(p + "\t" + q + "\t" + (p&q) + "\t" + (p|q) + "\t" + (p^q) + "\t" + z);
        
    }
0
0 / 0 / 0
Регистрация: 24.01.2020
Сообщений: 3
24.01.2020, 03:39
Всем привет. Тоже долго не мог дать ума как красиво решить задачу. В общем нашел такое решение. Вроде красиво. Ввёл переменную лябулу - от неё и пляшем, плюс в помощь replaceAll.
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
/*
Создаём программу, которая отображает таблицу истинности для
логических операций Java, расставляем табуляцию,
меняем true и false на 1 и 0
*/
class LogicalOpTable {
    public static void main(String args[]) {
 
        boolean p, q;
 
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
 
        p = true;
        q = true;
        String lyabulya = (p + "\t" + q + "\t" + (p & q) + "\t" + (p | q) + "\t" + (p ^ q) + "\t" + (!p));
        lyabulya = lyabulya.replaceAll("true", "1").replaceAll("false", "0");
        System.out.println(lyabulya);
 
        p = true;
        q = false;
        String lyabulya1 = (p + "\t" + q + "\t" + (p & q) + "\t" + (p | q) + "\t" + (p ^ q) + "\t" + (!p));
        lyabulya1 = lyabulya1.replaceAll("true", "1").replaceAll("false", "0");
        System.out.println(lyabulya1);
 
        p = false;
        q = true;
        String lyabulya2 = (p + "\t" + q + "\t" + (p & q) + "\t" + (p | q) + "\t" + (p ^ q) + "\t" + (!p));
        lyabulya2 = lyabulya2.replaceAll("true", "1").replaceAll("false", "0");
        System.out.println(lyabulya2);
 
        p = false;
        q = false;
        String lyabulya3 = (p + "\t" + q + "\t" + (p & q) + "\t" + (p | q) + "\t" + (p ^ q) + "\t" + (!p));
        lyabulya3 = lyabulya3.replaceAll("true", "1").replaceAll("false", "0");
        System.out.println(lyabulya3);
 
    }
}
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
24.01.2020, 08:57
В теме 4 страницы с решениями, что заставляет писать сюда свои кривые?
лябулу
0
0 / 0 / 0
Регистрация: 24.01.2020
Сообщений: 3
24.01.2020, 09:30
Ой, прошу прощения, там просто накипело, Герберт Шилдт попросил то, что ещё не показывал. И вот напрасно пару раз перелистав всё пройденное пошел гуглить. Там нагуглил решение, вроде здесь такого не встречается. В связи с чем для выражения своих чувств раненых задачей я и назвал переменную лаконично А модератор возьми и в слове ...лябула - буковку "б" и убери в начале слова. - от того теперь это не пойми что ... лябула... однако. Да.... а ещё строка 16 исковеркалась. Там так должно быть:
lyabulya = lyabulya.replaceAll("true", "1").replaceAll("false", "0");

и, вопрос. чем же это решение криво?
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
24.01.2020, 09:35
mr_Andr, у нас тут нельзя матюкаться. Даже в завуалированной форме
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
24.01.2020, 09:36
Цитата Сообщение от mr_Andr Посмотреть сообщение
чем же это решение криво?
Как минимум дублированием. Сам-то не видишь, что у тебя кусок кода повторяется 4 раза, при этом абсолютно одинаково, за исключением 1(!) переменной?

Добавлено через 28 секунд
Кстати ненужной
0
0 / 0 / 0
Регистрация: 24.01.2020
Сообщений: 3
24.01.2020, 09:45
Про цензуру - осознал. В этом плане не больше не повторюсь.

По корявости кода - я в этом настолько зелен и юн, что найдя решение - уже стал счастлив. Строго не судите. После НГ только - только созрел приступить к изучению.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.01.2020, 09:45

Изменить программу таким образом, чтобы все большие буквы заменялись на символ
Помогите, пожалуйста, изменить код, чтобы выполнялись такие задания: 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)(Данные/Группа и структура/Группировать). Снимаю...


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

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru