Форум программистов, компьютерный форум, киберфорум
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. Показов 45740. Ответов 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
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
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 существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru