С Новым годом! Форум программистов, компьютерный форум, киберфорум
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. Показов 44881. Ответов 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
 Аватар для Serg22
107 / 107 / 58
Регистрация: 04.03.2013
Сообщений: 479
01.10.2015, 19:41
HighBit, просто меняешь булевый тип p и q на int-овый, присваиваешь 0 и 1 соответственно, и все работает)

Java
1
int p = 0, q = 1;
0
0 / 0 / 0
Регистрация: 05.12.2015
Сообщений: 17
05.12.2015, 22:12
Serg22, извините , но вы неправы. Задачка из учебника Шилдта , он даже там подписал :"Это потребует больших усилий , чем кажется на первый взгляд!". Ошибка ваша в том , что выражение (!p) нельзя применить к переменным типа int.

Добавлено через 3 минуты
HighBit, единственная оптимизация , которую я тут вижу , это в выводе в консоль сразу писать 0 или 1 и тогда переменную x не надо ни объявлять , ни изменять.))
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
06.12.2015, 14:57
HighBit, как вариант для начинающего (поскольку перегружать System.out.print пока что не научился):
Java
1
2
3
4
5
6
7
        System.out.print(((p == true) ? 1 : 0) + "\t" + ((q == true) ? 1 : 0) + "\t");
        System.out.print((((p & q) == true) ? 1 : 0) + "\t" + (((p | q) == true) ? 1 : 0) + "\t");
        System.out.println((((p ^ q) == true) ? 1 : 0) + "\t" + (((!p) == true) ? 1 : 0));
        /* даст вот такой вывод первой строки:
        *P  Q   AND OR  XOR NOT
        *1  1   1   1   0   0
        */
Полагаю суть понятна? А далее уже просто копи/паст...

Добавлено через 15 часов 54 минуты
HighBit, а если уж совсем уменьшать количество повторяющегося кода, тогда можно сделать вот такую констркуцию:
Кликните здесь для просмотра всего текста
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
    public static void logic() {
        boolean p, q;
 
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
 
        p = true;
        q = true;
        table(p, q);
        p = true;
        q = false;
        table(p, q);
        p = false;
        q = true;
        table(p, q);
        p = false;
        q = false;
        table(p, q);
    }
 
    public static void table(boolean p, boolean q) {
        System.out.print(givenP(p) + "\t" + givenQ(q) + "\t");
        System.out.print(actionAND(p, q) + "\t" + actionOR(p, q) + "\t");
        System.out.println(actionXOR(p, q) + "\t" + actionNOT(p));
    }
 
    static int givenP(boolean p) {
        int a = (p == true) ? 1 : 0;
        return a;
    }
 
    static int givenQ(boolean q) {
        int a = (q == true) ? 1 : 0;
        return a;
    }
 
    static int actionAND(boolean p, boolean q) {
        int a = (p & q == true) ? 1 : 0;
        return a;
    }
 
    static int actionOR(boolean p, boolean q) {
        int a = (p | q == true) ? 1 : 0;
        return a;
    }
 
    static int actionXOR(boolean p, boolean q) {
        int a = (p ^ q == true) ? 1 : 0;
        return a;
    }
 
    static int actionNOT(boolean p) {
        int a = (!p == true) ? 1 : 0;
        return a;
    }
 
//    отображение в консоли:
//    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
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 2
22.04.2016, 20:43
Тоже книгу эту читаю сейчас, пока только так намучал...

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
class log{
    public static void main(String args[]){
        boolean p, q;
        byte y, z;
        
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
        
        p=true; q=true;
        y=1; z=1;
            System.out.print(y+"\t"+z+"\t");
                if(p&q){ //"AND"
                    System.out.print(" "+(y*z)+"\t");
                }
                if(p|q){ //"OR"
                    System.out.print((y*z)+"\t");
                }       
                if((p^q)||(p&q)){ //"XOR"
                    System.out.print(" "+(y-z)+"\t");
                }
                if((!p)||(p&q)){ //"NOT"
                    System.out.println(" "+(y-z));
                }
        
        p=true; q=false;
        y=1; z=0;
            System.out.print(y+"\t"+z+"\t");
                if((p&q)||(!q)){ //"AND"
                    System.out.print(" "+(y*z)+"\t");
                }
                if(p|q){ //"OR"
                    System.out.print((y+z)+"\t");
                }       
                if(p^q){ //"XOR"
                    System.out.print(" "+(y+z)+"\t");
                }
                if((!p)||(!q)){ //"NOT"
                    System.out.println(" "+(y-z));
                }
        
        p=false; q=true;
        y=0; z=1;
            System.out.print(y+"\t"+z+"\t");
                if((p&q)||(!p)){ //"AND"
                    System.out.print(" "+(y*z)+"\t");
                }
                if(p|q){ //"OR"
                    System.out.print((y+z)+"\t");
                }       
                if(p^q){ //"XOR"
                    System.out.print(" "+(y+z)+"\t");
                }
                if(!p){ //"NOT"
                    System.out.println(" "+(z-y));
                }
        
        p=false; q=false;
        y=0; z=0;
            System.out.print(y+"\t"+z+"\t");
                if((p&q)||(!p)){ //"AND"
                    System.out.print(" "+(y*z)+"\t");
                }
                if((p|q)||(!p)){ //"OR"
                    System.out.print((y*z)+"\t");
                }       
                if((p^q)||(!p)){ //"XOR"
                    System.out.print(" "+(y-z)+"\t");
                }
                if(!p){ //"NOT"
                    System.out.println(" "+(++y));
                }
    }
}
0
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 2
25.04.2016, 12:17
Но еще немного подумав, и, осознав, что "написал" полную горбуху! Пришел к такому варианту:
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
class Logic{
    public static void main(String args[]){
        boolean p, q;
        
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
        
        p = true; q = true;
        if(p)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(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^q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(!p)System.out.print(1+"\n");
        else System.out.print(0+"\n");
       
        p = true; q = false;
        if(p)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(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^q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(!p)System.out.print(1+"\n");
        else System.out.print(0+"\n");
               
        p = false; q = true;
        if(p)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(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^q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(!p)System.out.print(1+"\n");
        else System.out.print(0+"\n");
       
        p = false; q = false;
        if(p)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(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^q)System.out.print(1+"\t");
        else System.out.print(0+"\t");
        if(!p)System.out.print(1+"\n");
        else System.out.print(0+"\n");
    }
}
0
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
25.04.2016, 14:37
как вариант, для общего развития
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
public class LogicalOpTable {
    static{
        APrintStream aprintStream = new APrintStream(System.out);
        System.setOut(aprintStream);
    }
    private static class APrintStream extends PrintStream{
        private PrintStream printStream;
        public APrintStream(PrintStream printStream){
            super(printStream);
            this.printStream = printStream;
        }
        public void print(String line){
            printStream.print(line.replaceAll("true","1").replaceAll("false", "0"));
        }
        public void println(String line){
            printStream.println   (line.replaceAll("true","1").replaceAll("false", "0"));
        }
        
    }
    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));
    }
}
1
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
25.04.2016, 14:40
Все легко на самом деле:
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
public class Main {
 
    /**
     * @param args
     */
 
    public static int toInt(boolean b) {
        return b ? 1 : 0;
    }
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
 
        boolean p, q;
 
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
 
        p = true;
        q = true;
        System.out.print(toInt(p) + "\t" + toInt(q) + "\t");
        System.out.print(toInt(p & q) + "\t" + toInt(p | q) + "\t");
        System.out.println(toInt(p ^ q) + "\t" + toInt(!p));
 
        p = true;
        q = false;
        System.out.print(toInt(p) + "\t" + toInt(q) + "\t");
        System.out.print(toInt(p & q) + "\t" + toInt(p | q) + "\t");
        System.out.println(toInt(p ^ q) + "\t" + toInt(!p));
 
        p = false;
        q = true;
        System.out.print(toInt(p) + "\t" + toInt(q) + "\t");
        System.out.print(toInt(p & q) + "\t" + toInt(p | q) + "\t");
        System.out.println(toInt(p ^ q) + "\t" + toInt(!p));
 
        p = false;
        q = false;
        System.out.print(toInt(p) + "\t" + toInt(q) + "\t");
        System.out.print(toInt(p & q) + "\t" + toInt(p | q) + "\t");
        System.out.println(toInt(p ^ q) + "\t" + toInt(!p));
 
    }
}
4
1 / 1 / 0
Регистрация: 11.06.2015
Сообщений: 1
12.05.2016, 22:37
я чего-то в ступоре, почему лог. операторы возвращают число (1/0), вместо true/false, используя способ из первого коммента(это же сразу и пришло в голову). да, и все как бы нормально, но !p уже возвращает true/false.

Добавлено через 23 минуты
хотя вот эта формула ((p+1)%2) для 1/0 будет аналогична (!p) для true/false. деление по модулю мощная штука.
весь код:
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[]) {
        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.println((p^q) + "\t" + ((p+1)%2) + "\t");
 
        p = 1; q = 0;
        System.out.print(p + "\t" + q + "\t");
        System.out.print((p&q) + "\t" + (p|q) + "\t");
        System.out.println((p^q) + "\t" + ((p+1)%2) + "\t");
 
        p = 0; q = 1;
        System.out.print(p + "\t" + q + "\t");
        System.out.print((p&q) + "\t" + (p|q) + "\t");
        System.out.println((p^q) + "\t" + ((p+1)%2) + "\t");
 
        p = 0; q = 0;
        System.out.print(p + "\t" + q + "\t");
        System.out.print((p&q) + "\t" + (p|q) + "\t");
        System.out.println((p^q) + "\t" + ((p+1)%2) + "\t");
    }
}
1
0 / 0 / 0
Регистрация: 21.06.2016
Сообщений: 1
21.06.2016, 14:34
Вариант, как по мне -наиболее лаконичен(минимум изменений первоисточника), только проблема в том , что в книжке Шилдта эта задачка стоит до изучения статических методов .
0
0 / 0 / 2
Регистрация: 02.06.2016
Сообщений: 32
21.06.2016, 15:06
Интересно узнать из какой книги Шилдта эта задача(и страница какая):
Кстати у ТСа в спойлере где задача из учебника есть ошибка и кто ж знает может не одна (непонятная переменная p1q вероятно это p |q но хз)
0
0 / 0 / 1
Регистрация: 06.05.2015
Сообщений: 49
14.07.2016, 20:20
про вариант от HighPredator
Все хорошо, только последовательно изучаю книжку Шилдта к такому решению прийти невозможно.
Сам сейчас заморочился этой задачей писать "говнокод" не хочется, но красивого и логичного решения не нашел.
И почему он сам не дал ответ?

Добавлено через 7 минут
Задача в книге - java 8 руководство для начинающих; глава 2; упражнение 2.2 на странице 84 (в издании вильямса, а то мало ли, вдруг кто еще издаст)
0
0 / 0 / 0
Регистрация: 22.01.2016
Сообщений: 3
25.07.2016, 23:33
Я сделал таким образом, чтобы сравнение было по всем четырем вариантам:
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
public class test {
    public static void main(String args[]){
        boolean p, q; //объявляю булевые переменные
        int count; // объявляюю счетчик
        p = true;
        q = true;  
        
        System.out.println ("P\tQ\tAND\tOR\tXOR\tNOT");
        
        for(count = 0; count<=3; count++){
            if(p)System.out.print("1\t");
            else System.out.print("0\t");
            if(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^q)System.out.print("1\t");
            else System.out.print("0\t");
            if(!p)System.out.println("1\t");
            else System.out.println("0\t");
            if (count == 0){ // после каждой итерации меняю переменные
                p = false;
                q = false;
            }
            if (count == 1){
                p = true;
                q = false;
            }
            if (count == 2){
                p = false;
                q = true;
            }
        }
    } 
}
Результат:
P Q AND OR XOR NOT
1 1 1 1 0 0
0 0 0 0 0 1
1 0 0 1 1 0
0 1 0 1 1 1
0
 Аватар для name?
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
29.07.2016, 02:46
как-то так
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
    public static void main(String[] args) {
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");
        print(1, 1);
        print(1,0);
        print(0,1);
        print(0,0);
    }
 
    static public void print(int p, int q){
          System.out.print(p + "\t" + q +"\t");
          System.out.print((p&q) + "\t" + (p|q) + "\t");
          System.out.println((p^q) + "\t" + ((p == 0)? 1:0));
    }
0
0 / 0 / 0
Регистрация: 06.08.2016
Сообщений: 8
07.08.2016, 00:54
Java руководств для начинающих, пятое издание, Герберт Шилд
глава 2, введение в типы данных и операторы. ст., 82
0
0 / 0 / 0
Регистрация: 14.09.2016
Сообщений: 2
14.09.2016, 10:52
HighPredator, красиво. Но надо заметить, что в книге Герберта Шилдта, вроде бы, не рассматривалось до этой задачи такое применение оператора if. Я вот, как настоящий новичок, смог только такой код придумать))

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
public class LogicalOpTableBin {
            
              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(bin_a(p) + "\t" + bin_b(q) + "\t");
              System.out.print(and(p,q) + "\t" + or(p,q) + "\t");
              System.out.println(xor(p,q) + "\t" + no(p));
 
              p = true; q = false;
              System.out.print(bin_a(p) + "\t" + bin_b(q) + "\t");
              System.out.print(and(p,q) + "\t" + or(p,q) + "\t");
              System.out.println(xor(p,q) + "\t" +  no(p));
 
              p = false; q = true;
              System.out.print(bin_a(p) + "\t" + bin_b(q) + "\t");
              System.out.print(and(p,q) + "\t" + or(p,q) + "\t");
              System.out.println(xor(p,q) + "\t" +  no(p));
 
              p = false; q = false;
              System.out.print(bin_a(p) + "\t" + bin_b(q) + "\t");
              System.out.print(and(p,q) + "\t" + or(p,q) + "\t");
              System.out.println(xor(p,q) + "\t" +  no(p)); 
         }
         
         public static int and(boolean a, boolean b){
              int c = 0;
              if(a&b) c = 1;
              return c;
         }
         
         public static int or(boolean a, boolean b){
              int c = 0;
              if(a|b) c = 1;
              return c;
              }
         public static int xor(boolean a, boolean b){
              int c = 0;
              if(a^b) c =1;
              return c;
              }
 
         public static int no(boolean a){
              int c = 0;
              if(!a) c = 1;
              return c;
              }
         
         public static int bin_a(boolean a){
              int c = 0;
              if(a) c = 1;
              return c;
         }
 
         public static int bin_b(boolean b){
              int c = 0;
              if(b) c = 1;
              return c;
         }
}
0
1 / 1 / 0
Регистрация: 10.12.2016
Сообщений: 1
10.12.2016, 18:17
Всем привет! Начал изучать 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
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
class LogicTable {
    public static void main(String args[]) {
        boolean p, q;
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT P");
 
        int a;
 
        p = true; q = true;
        a = 0;
        if(p) ++a; System.out.print(a + "\t");
        a = 0;  
        if(q) ++a; System.out.print(a + "\t"); 
        a = 0;
        if(p&q) ++a; System.out.print(a + "\t");
        a = 0;  
        if(p|q) ++a; System.out.print(a + "\t");
        a = 0;
        if(p^q) ++a; System.out.print(a + "\t");
        a = 0;  
        if(!p) ++a; System.out.println(a + "\t");
 
        p = true; q = false;
        a = 0;
        if(p) ++a; System.out.print(a + "\t");
        a = 0;  
        if(q) ++a; System.out.print(a + "\t"); 
        a = 0;
        if(p&q) ++a; System.out.print(a + "\t");
        a = 0;  
        if(p|q) ++a; System.out.print(a + "\t");
        a = 0;
        if(p^q) ++a; System.out.print(a + "\t");
        a = 0;  
        if(!p) ++a; System.out.println(a + "\t");
 
        p = false; q = true;
        a = 0;
        if(p) ++a; System.out.print(a + "\t");
        a = 0;  
        if(q) ++a; System.out.print(a + "\t"); 
        a = 0;
        if(p&q) ++a; System.out.print(a + "\t");
        a = 0;  
        if(p|q) ++a; System.out.print(a + "\t");
        a = 0;
        if(p^q) ++a; System.out.print(a + "\t");
        a = 0;  
        if(!p) ++a; System.out.println(a + "\t");
 
        p = false; q = false;
        a = 0;
        if(p) ++a; System.out.print(a + "\t");
        a = 0;  
        if(q) ++a; System.out.print(a + "\t"); 
        a = 0;
        if(p&q) ++a; System.out.print(a + "\t");
        a = 0;  
        if(p|q) ++a; System.out.print(a + "\t");
        a = 0;
        if(p^q) ++a; System.out.print(a + "\t");
        a = 0;  
        if(!p) ++a; System.out.println(a + "\t");
    }
}
1
0 / 0 / 0
Регистрация: 28.01.2017
Сообщений: 2
01.02.2017, 20:58
Сейчас тоже читаю эту книгу.
Вариантов не мало как можно с костылем написать код чтобы выдавало 1 и 0.
Есть ли по настоящему практическое решение? Потому что я более чем уверен что задача с подводным камнем. И здесь должно потребоваться минимум кода.
Гуру!? Что скажете
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
01.02.2017, 21:13
Цитата Сообщение от Kosmos007 Посмотреть сообщение
Есть ли по настоящему практическое решение?
по-настоящему практические решения есть у практических задач. Эта задача к таким не относится.
1
0 / 0 / 0
Регистрация: 28.01.2017
Сообщений: 2
01.02.2017, 21:50
Понял, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2017, 21:50
Помогаю со студенческими работами здесь

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru