Форум программистов, компьютерный форум, киберфорум
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. Показов 46104. Ответов 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.2017
Сообщений: 1
06.03.2017, 01:49
Студворк — интернет-сервис помощи студентам
Вот такой код для данного задания на мой взгляд будет правильным.
string a добавил ради прикола - просто интересно как ведет себя программа при такой структуре.
Задумка такая, что 'string a' выражение прописывалось в программе один раз и при разных условиях boolean p, q; выводился только результат - в общем сократить код. Если кто поправит - заранее спасибо. На самом деле задача на усвоение материала и практическая польза только для обучающихся.
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 LogicalOpTabl {
public static void main(String args[]) {
 
boolean p, q;
String a;
 
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
 
p = true; q = true;
a = ((p ? 1 : 0) + "\t" + (q ? 1 : 0) +"\t" + ((p&q)? 1 : 0) + "\t" + ((p|q)? 1:0) + "\t" + ((p^q)? 1 :0) + "\t" + ((!p)? 1 :0));
System.out.println(a);
 
p = true; q = false;
System.out.println((p ? 1 : 0) + "\t" + (q ? 1 : 0) +"\t" + ((p&q)? 1 : 0) + "\t" + ((p|q)? 1:0) + "\t" + ((p^q)? 1 :0) + "\t" + ((!p)? 1 :0));
 
p = false; q = true;
System.out.println((p ? 1 : 0) + "\t" + (q ? 1 : 0) +"\t" + ((p&q)? 1 : 0) + "\t" + ((p|q)? 1:0) + "\t" + ((p^q)? 1 :0) + "\t" + ((!p)? 1 :0));
 
p = false; q = false;
System.out.println((p ? 1 : 0) + "\t" + (q ? 1 : 0) +"\t" + ((p&q)? 1 : 0) + "\t" + ((p|q)? 1:0) + "\t" + ((p^q)? 1 :0) + "\t" + ((!p)? 1 :0));
}
}
0
0 / 0 / 1
Регистрация: 06.05.2015
Сообщений: 49
28.04.2017, 18:44
Grover76,

Привет!

Скобок много ))))
Тоже пришел к выводу, что товарищ Герберт подталкивает читателя к использованию тренарого оператора.
Code
1
<логическое выражение> ? <выражение1> : <выражение2>
По крайней мере другого решения на этом уровне подачи материала - нет.
Тренарный оператор единственно доступное решение, условия if else и прочие replace идут позже.

Ну и мой варит решения.

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
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?1:0) + "\t" + (p|q?1:0) + "\t"); 
    System.out.println((p^q?1:0) + "\t" + (!p?1:0)); 
 
    p = true; q = false; 
    System.out.print(p + "\t" + q +"\t"); 
    System.out.print((p&q?1:0) + "\t" + (p|q?1:0) + "\t"); 
    System.out.println((p^q?1:0) + "\t" + (!p?1:0)); 
 
    p = false; q = true; 
    System.out.print(p + "\t" + q +"\t"); 
    System.out.print((p&q?1:0) + "\t" + (p|q?1:0) + "\t"); 
    System.out.println((p^q?1:0) + "\t" + (!p?1:0)); 
 
    p = false; q = false; 
    System.out.print(p + "\t" + q +"\t"); 
    System.out.print((p&q?1:0) + "\t" + (p|q?1:0) + "\t"); 
    System.out.println((p^q?1:0) + "\t" + (!p?1:0)); 
  }    
}
0
0 / 0 / 0
Регистрация: 22.11.2016
Сообщений: 1
27.05.2017, 00:31
Доброго вечера.
Беда в том, что на этом уровне материала - Тернарный оператор не проходится.
И в вашем коде первые 2 столбика все равно возвращают слова true/false.
Как сделать так, чтобы все столбцы отображали 0 или 1?
реально ли сделать исключительно по учебнику или тут включается тот момент, что надо черпать информацию из других источников (со слов Шильдта)?
0
0 / 0 / 1
Регистрация: 06.05.2015
Сообщений: 49
29.05.2017, 15:06
Цитата Сообщение от RemukC Посмотреть сообщение
Доброго вечера.
Беда в том, что на этом уровне материала - Тернарный оператор не проходится.
...
вашем коде первые 2 столбика все равно возвращают слова true/false.
Он упоминается на предыдущей странице в теме "приоритеты операций".
Ну то есть, если бы въедливый читатель озаботился тем, что бы исследовать за что отвечает каждый оператор, он бы знал как решить эту задачу.

У меня везде где нужно подменяется.
Кроме первых двух столбцов которые я оставил специально для наглядности.
А исправить можно все тем же тернарным оператором (x?1:0)
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
30.05.2017, 14:50
ne2win, А можно как-то расширить System.out? Ну чтобы не всегда менялось true, false на 1,0, а только когда хочется. Честно сказать я не очень понимаю логику, в частности System.setOut(aprintStream);
Насколько я понимаю, aprintStream это объект унаследованый от System.out, и в этом объекте мы переопределяем println и print. И когда я пишу System.out.print() я по сути вызываю новый переопределенный метод. Все вроде правильно, все работает, Но когда я в этом внутренем классе пишу новий метод public void A() {}; то его не видно в списке возможных в System.out.
Не подскажете что именно я неправильно понимаю?
0
33 / 33 / 20
Регистрация: 18.03.2016
Сообщений: 101
30.05.2017, 15:28
Цитата Сообщение от Kosmos007 Посмотреть сообщение
Есть ли по настоящему практическое решение?
Я думаю, что есть. Как раз сказали, что задача из раздела статических методов. Вот такое решение:
Кликните здесь для просмотра всего текста

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
public class Main {
    public static void main(String[] args) {
        boolean p, q;
 
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
 
        p = true; q = true;
        print(p + "\t" + q +"\t");
        print((p&q) + "\t" + (p|q) + "\t");
        println((p^q) + "\t" + (!p));
 
        p = true; q = false;
        print(p + "\t" + q +"\t");
        print((p&q) + "\t" + (p|q) + "\t");
        println((p^q) + "\t" + (!p));
 
        p = false; q = true;
        print (p + "\t" + q +"\t");
        print((p&q) + "\t" + (p|q) + "\t");
        println((p^q) + "\t" + (!p));
 
        p = false; q = false;
        print(p + "\t" + q +"\t");
        print((p&q) + "\t" + (p|q) + "\t");
        println((p^q) + "\t" + (!p));
    }
    public static void print(String s) {
        System.out.print(s.replaceAll("true","1").replaceAll("false","0"));
    }
    public static void println(String s) {
        System.out.println(s.replaceAll("true","1").replaceAll("false","0"));
    }
}


Вариант №2, использовать подобным образом такой метод:
Java
1
2
3
public static void print(boolean b) {
        System.out.println((b) ? 1 : 0);
    }
или такой
Java
1
2
3
4
5
6
7
public static void printf(String s, Object... b) {
        for (int i = 0; i < b.length; i++) {
            if (b[i].toString().equals("true")) b[i] = "1";
            if (b[i].toString().equals("false")) b[i] = "0";
        }
        System.out.printf(s,b);
    }
0
0 / -1 / 0
Регистрация: 07.08.2017
Сообщений: 2
07.08.2017, 02:01
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
//вот правильный код
  class Logic {
  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("1\t1\t");
        if(p&q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(p|q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(p^q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(!p)System.out.println(1);
        else System.out.println(0);
 
  p=true; q=false;
  System.out.print("1\t0\t");
        if(p&q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(p|q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(p^q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(!p)System.out.println(1);
        else System.out.println(0);
 
        p = false; q = true;
        System.out.print("0\t1\t");
        if(p&q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(p|q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(p^q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(!p)System.out.println(1);
        else System.out.println(0);
 
         p = false; q = false;
        System.out.print("0\t0\t");
        if(p&q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(p|q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(p^q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(!p)System.out.println(1);
        else System.out.println(0);
 }
}
-1
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
07.08.2017, 08:23
Цитата Сообщение от Gev1989 Посмотреть сообщение
вот правильный код
Достаточно спорное утверждение.. Обосновать можете?
0
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,507
07.08.2017, 13:04
мой вариант :
Кликните здесь для просмотра всего текста

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
public class CyberForum {
 
    public static void main(String[] argv) {
        boolean [] boolValue = {true, false};
        Helper sc = new Helper();
        char [] operator = {'&','|','^','!'};
 
        for (boolean p : boolValue)
            for (boolean q : boolValue) {
                System.out.println(p + " " + q);
                for (char op : operator) {
                    if (op != '!')
                        System.out.println(sc.conferencier(p) + sc.conferencier(op) + sc.conferencier(q) +
                                " = " + sc.conferencier(sc.conferencier(p, op, q)));
                    else
                        System.out.println(sc.conferencier(op) + sc.conferencier(q) +
                                " = " + sc.conferencier(sc.conferencier(op, q)));
                }
            }
    }
}
// ===============
public class Helper {
    public String conferencier(char operator){
        switch (operator){
            case '&' : return " & ";
            case '|' : return " | ";
            case '^' : return " ^ ";
            case '!' : return " ! ";
            default : return "  ";
        }
    }
 
    public boolean conferencier(boolean firstOperand, char operator, boolean secondOperand){
        switch (operator){
            case '&' : return firstOperand & secondOperand;
            case '|' : return firstOperand | secondOperand;
            case '^' : return firstOperand ^ secondOperand;
            case '!' : return !secondOperand;
            default : return false;
        }
    }
 
    public boolean conferencier(char operator, boolean firstOperand){
        switch (operator){
            case '!' : return !firstOperand;
            default : return false;
        }
    }
 
    public char conferencier(boolean operand){
        return operand ? '1' : '0';
    }
}

Результат работы
Кликните здесь для просмотра всего текста
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
true true
1 & 1 = 1
1 | 1 = 1
1 ^ 1 = 0
 ! 1 = 0
true false
1 & 0 = 0
1 | 0 = 1
1 ^ 0 = 1
 ! 0 = 1
false true
0 & 1 = 0
0 | 1 = 1
0 ^ 1 = 1
 ! 1 = 0
false false
0 & 0 = 0
0 | 0 = 0
0 ^ 0 = 0
 ! 0 = 1
0
07.08.2017, 14:40

Не по теме:

перестаньте насиловать труп же

0
17 / 17 / 3
Регистрация: 06.08.2017
Сообщений: 34
07.08.2017, 16:29
java way для этой задачи - унаследоваться от Boolean и переопределить ему toString(). Но только Boolean помечен final
0
0 / -1 / 0
Регистрация: 07.08.2017
Сообщений: 2
07.08.2017, 19:47
вернее рабочий...))

Добавлено через 3 минуты
вернее рабочий, и соответствует уровню знаний в этом этапе
0
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
07.08.2017, 20:05
Цитата Сообщение от xave Посмотреть сообщение
java way
Можно обернуть поток
Java
1
2
3
4
PrintStream out = new PrintStream(System.out){
     @Override
     public void print(boolean b) { print(b ? 1 : 0); }
};
3
7 / 8 / 2
Регистрация: 22.06.2017
Сообщений: 30
14.08.2017, 16:03
Привести булевы к строке , а затем, используя регулярные выражения, заменить на соответствующие значения...
0
0 / 0 / 0
Регистрация: 15.10.2017
Сообщений: 2
15.10.2017, 22:55
Меня тоже не могла не смутить эта задача, однако топорное решение все же нашел. Вперед не лез и решил задачу с теми знаниями, которые получил до этого упражнения. Не хвастаюсь, скорее наоборот стыжусь, потому что в этой же теме нашел более красивые и менее массивные решения. Думаю и мою можно сжать

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
class LogicalOpTable2 {
  public static void main(String args[]) {
    boolean p, q;
    byte a, b, c, d, e, f;
          
    System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
    a = b = c = d = e = f = 1;
    p = true; q = true;
    if(!p) a = 0; 
    if(p) f = 0;
    if(!q) b = 0;
    if(!(p&q)) c = 0;
    if(!(p|q)) d = 0;
    if(!(p^q)) e = 0;
    System.out.print(a + "\t" + b + "\t");
    System.out.print(c + "\t" + d + "\t");
    System.out.println(e + "\t" + f);
 
    a = b = c = d = e = f = 1;
    p = true; q = false;
    if(!p) a = 0; 
    if(p) f = 0;
    if(!q) b = 0;
    if(!(p&q)) c = 0;
    if(!(p|q)) d = 0;
    if(!(p^q)) e = 0;
    System.out.print(a + "\t" + b + "\t");
    System.out.print(c + "\t" + d + "\t");
    System.out.println(e + "\t" + f);
 
    a = b = c = d = e = f = 1;
    p = false; q = true;
    if(!p) a = 0; 
    if(p) f = 0;
    if(!q) b = 0;
    if(!(p&q)) c = 0;
    if(!(p|q)) d = 0;
    if(!(p^q)) e = 0;
    System.out.print(a + "\t" + b + "\t");
    System.out.print(c + "\t" + d + "\t");
    System.out.println(e + "\t" + f);
 
    a = b = c = d = e = f = 1;
    p = false; q = false;
    if(!p) a = 0; 
    if(p) f = 0;
    if(!q) b = 0;
    if(!(p&q)) c = 0;
    if(!(p|q)) d = 0;
    if(!(p^q)) e = 0;
    System.out.print(a + "\t" + b + "\t");
    System.out.print(c + "\t" + d + "\t");
    System.out.println(e + "\t" + f);
  }
}
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
15.10.2017, 23:07
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class TrueOrFalse {
    public static void main(String[] args) {
        boolean p = true;
        boolean q = false;
        System.out.println("P = " + getZeroOtOne(p));
        System.out.println("Q = " + getZeroOtOne(q));
        System.out.println("P AND Q = " + getZeroOtOne(p & q));
        System.out.println("P OR Q = " + getZeroOtOne(p | q));
        System.out.println("P XOR Q = " + getZeroOtOne(p ^ q));
        System.out.println("NOT P == Q = " + getZeroOtOne(!p == q));
    }
 
    public static int getZeroOtOne(boolean bool) {
        return bool ? 1 : 0;
    }
}
0
0 / 0 / 0
Регистрация: 17.09.2017
Сообщений: 1
06.11.2017, 20:16
у меня так получилось согласно теме в книге

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class example {
public static void main(String args []) {
int p,q,c;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
p=49; q=49; c=48;
System.out.print((char)p + "\t" + (char)q +"\t");
System.out.print((char)(p&q) + "\t" + (char)(p|q) + "\t");
System.out.println((q^p) + "\t" +(char)(c));
p=49; q=48;
System.out.print((char)p + "\t" + (char)q +"\t");
System.out.print((char)(p&q) + "\t" + (char)(p|q) + "\t");
System.out.println((p^q) + "\t" + (char)(q));
p=48; q=49;
System.out.print((char)p+ "\t" + (char)q +"\t");
System.out.print((char)(p&q) + "\t" + (char)(p|q) + "\t");
System.out.println((p^q) + "\t" + (char)(q));
p=48; q=48; c=49;
System.out.print((char)p + "\t" + (char)q +"\t");
System.out.print((char)(p&q) + "\t" + (char)(p|q) + "\t");
System.out.println((p^q) + "\t" + (char)(c));
}
}
0
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 14
13.02.2018, 03:06
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
class Quiz {
    
public static void main(String[] args) {
boolean q, p;
int a = 1, b = 0;
System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
q = true;
p = true;
System.out.print(a + "\t" + a + "\t");
if ((p&q) == true) {
    System.out.print(a + "\t");}
if ((p&q) == false) {
    System.out.print(b + "\t");}
if ((p|q) == true) {
    System.out.print(a + "\t");}
if ((p|q) == false) {
    System.out.print(b + "\t");}
if ((p^q) == true) {
    System.out.print(a + "\t");}
if ((p^q) == false) {
    System.out.print(b + "\t");}
if ((!p) == true) {
    System.out.println(a + "\t");}
if ((!p) == false) {
    System.out.println(b + "\t");}
 
 
q = true;
p = false;
System.out.print(a + "\t" + b + "\t");
if ((p&q) == true) {
    System.out.print(a + "\t");}
if ((p&q) == false) {
    System.out.print(b + "\t");}
if ((p|q) == true) {
    System.out.print(a + "\t");}
if ((p|q) == false) {
    System.out.print(b + "\t");}
if ((p^q) == true) {
    System.out.print(a + "\t");}
if ((p^q) == false) {
    System.out.print(b + "\t");}
if ((!p) != true) {
    System.out.println(a + "\t");}
if ((!p) != false) {
    System.out.println(b + "\t");}
 
 
q = false;
p = true;
System.out.print(b + "\t" + a + "\t");
if ((p&q) == true) {
    System.out.print(a + "\t");}
if ((p&q) == false) {
    System.out.print(b + "\t");}
if ((p|q) == true) {
    System.out.print(a + "\t");}
if ((p|q) == false) {
    System.out.print(b + "\t");}
if ((p^q) == true) {
    System.out.print(a + "\t");}
if ((p^q) == false) {
    System.out.print(b + "\t");}
if ((!p) != true) {
    System.out.println(a + "\t");}
if ((!p) != false) {
    System.out.println(b + "\t");}
 
 
q = false;
p = false;
System.out.print(b + "\t" + b + "\t");
if ((p&q) == true) {
    System.out.print(a + "\t");}
if ((p&q) == false) {
    System.out.print(b + "\t");}
if ((p|q) == true) {
    System.out.print(a + "\t");}
if ((p|q) == false) {
    System.out.print(b + "\t");}
if ((p^q) == true) {
    System.out.print(a + "\t");}
if ((p^q) == false) {
    System.out.print(b + "\t");}
if ((!p) == true) {
    System.out.println(a + "\t");}
if ((!p) == false) {
    System.out.println(b + "\t");}
 
}}
А вот мое решение. Может кто нить подсказать, как поправить if ((!p) == true) в 43, 45 и 64, 66 строчке. Или объяснить, правильное это решение или нет. Сам чувствую, что это костыль. Здесь есть правильные решения, с учетом материала, который, автор уже успел довести до читателя. Например цепочка операторов if-else автор еще не успел довести. Спасибо.
0
0 / 0 / 0
Регистрация: 06.03.2018
Сообщений: 2
06.03.2018, 15:25
я немного подумал, и понял почему бы и нет. Главное этот код понятен даже новичкам


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
class LogicalOpTable {
 public static void main (String args[]) {
  int p, q ; 
System.out.println ("P\tQ\tAND\tOR\tXOR\tNOT");
  p = 1; q = 1;
System.out.print (p + "\t" + q + "\t");
System.out.print ((p&q) + "\t" + (p|q) + "\t");
System.out.print ((p^q) + "\t");
   if(p == 1){ 
     p = 0;
       }else {
        p = 1;
      }
System.out.println(p + "\t");
   p = 1; q = 0;
System.out.print (p + "\t" + q + "\t");
System.out.print ((p&q) + "\t" + (p|q) + "\t");
System.out.print ((p^q) + "\t");
     if(p == 1){ 
       p = 0;
        }else {
          p = 1;
      }
System.out.println(p + "\t");
      p = 0; q = 1;
System.out.print (p + "\t" + q + "\t");
System.out.print ((p&q) + "\t" + (p|q) + "\t");
System.out.print ((p^q) + "\t");
      if(p == 1){ 
       p = 0;
         }else {
          p = 1;
     }
System.out.println(p + "\t");
    p = 0; q  = 0; 
System.out.print (p + "\t" + q + "\t");
System.out.print ((p&q) + "\t" + (p|q) + "\t");
System.out.print ((p^q) + "\t");
     if(p == 1){ 
       p = 0;
        }else {
        p = 1;
      }
System.out.println(p + "\t");
}
}
0
06.03.2018, 15:41

Не по теме:

Цитата Сообщение от Uniy Programmis Посмотреть сообщение
я немного подумал
в следующий раз побольше подумай

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.03.2018, 15:41

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации 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 — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru