П. Экспериментальный раздел работы

Пример 1. Проверка таблиц истинности.

program Example_51;

var p,q :boolean;

begin

a:=true; b:=true; {Ввод данных}

writeln (‘p=’, p,’ q=’,q,’ p and q =’, p and q); {Вывод результата}

readln

end.

Измените программу, проведите проверку таблиц истинности основных булевых операций и законов математической логики.

Пример 2. Напишем программу, в которой логическая переменная принимает значение true, если, случайным образом выбранная, точка с координатами (x,y) попадает внутрь кольца с центром в начале координат и радиусами 0.1 и 0.6, иначе - логическая переменная принимает значение false.

program Example_52;

var x,y: real;

p:boolean;

begin

{Ввод данных}

Randomize;

x:=Random; y:=Random; writeln(‘x=’,x:8:5,’ y=’,y:8:5);

{Расчет}

p:= (sqr(x) + sqr(y) > 0. 01) and (sqr(x) + sqr(y)) < 0.36);

{Вывод результата}

writeln (‘p=’, p); readln

end.

Поэкспериментируйте с программой. Замените логическое выражение на

p:= not( (sqr(x) + sqr(y) < 0. 01) or (sqr(x) + sqr(y)) > 0.36));

Основываясь на законах де Моргана, объясните полученные экспериментальные результаты.

Пример 3. Составим программу, результатом работы которой будет удаление из двоичного представления данного натурального числа i-го бита.

program Example_53;

var n,x,y,z,k: integer;

begin

{Ввод данных}

writeln(‘Введите значение натурального числа n=?’ ); readln(n);

writeln(‘Введите номер вычеркиваемого бита k=?’ ); readln(k);

{Расчет}

x:=1 shl k;

y:= not x;

z:=n and y; {Можно было написать z:=n and not(1 shl k)}

{Вывод результата}

writeln(‘x=’,x,’ y=’,y,’ z=’,z);readln

end.

Необходимо разобраться с алгоритмом программы, провести тестовый расчет.

Составьте программу, выполняющую побитовые операции not, and, or, xor с целыми числами. Поясните смысл полученных результатов.

Пример 4. Дайте объяснение результатам следующей программы.

program Example_54;

begin

writeln(1365 and 2730);

writeln(1365 or 2730);

writeln(1365 xor 2730);

writeln(1365 and $FF);

writeln(1365 and $FF0);

writeln(1365 and $FF00);

end.

Для объяснения полученных результатов переведите числа в двоичную систему счисления. Поэкспериментируйте с программой. Убедитесь, например, что -256 and 255 =0; -256 or 255 = -1; -256 xor 255 = -1. Вспомните, что для представления отрицательных чисел в компьютере используется дополнительный код.

Знак $ означает, что число записано в шестнадцатеричной системе счисления, в которой для обозначения цифр 10,11,12,13,14,15 используются буквы A, B, C, D, E, F.

Ш. Раздел заданий для самостоятельной работы

A.

1. Вычислить значение логического выражения при всех возможных значениях логических величин А и В:

1.1 А или В; А и В; В или С.; А или В и не С; А и не В или С; не А или не В;

1.2 А или не В;А и В или С; А и (А или не В); (не А или В) и В; не А и не В или А;

1.3 А и (не В или С);В или не(А и не В); В или не А и не В; не (не А и не В) или А;

1.4 не А и не В; не (не А или не В) или А; не (А и С) или В; А и (не (В или С));

1.5 не (не А или не В) и В; А или не (А и В) или С; не А или А и (В или С);

1.6 (А или В и не С) и С; (не А или не В) и не С; (не А или не В) и (А или В);

1.7 А и В или А и С или не С; не (А или не В и С); А и не (В или не С);.

1.8 не (А или не В и С) или С; не (не А или В и С); не (А и не В или С) и В;

1.9 не (не А или В и С) или А; не (А и В) и (не А или не С); не (А и не В) или (А или не С);

2 Вычислить значения логических выражении:

2.1 П. Экспериментальный раздел работы - student2.ru при х= 1, у=-1;

2.2 ( П. Экспериментальный раздел работы - student2.ru 0) или ( П. Экспериментальный раздел работы - student2.ru 4) при П. Экспериментальный раздел работы - student2.ru

2.3 ( П. Экспериментальный раздел работы - student2.ru 0) и ( П. Экспериментальный раздел работы - student2.ru 4) при П. Экспериментальный раздел работы - student2.ru

2.4 П. Экспериментальный раздел работы - student2.ru и П. Экспериментальный раздел работы - student2.ru при П. Экспериментальный раздел работы - student2.ru ;

2.5 П. Экспериментальный раздел работы - student2.ru или П. Экспериментальный раздел работы - student2.ru при П. Экспериментальный раздел работы - student2.ru ;

2.6 (не ( П. Экспериментальный раздел работы - student2.ru и (у > х)при П. Экспериментальный раздел работы - student2.ru ;

2.7 (не ( П. Экспериментальный раздел работы - student2.ru или (у > х) при П. Экспериментальный раздел работы - student2.ru .

2.8 П. Экспериментальный раздел работы - student2.ru при П. Экспериментальный раздел работы - student2.ru

2.9 П. Экспериментальный раздел работы - student2.ru или ( П. Экспериментальный раздел работы - student2.ru 4) при П. Экспериментальный раздел работы - student2.ru ;

2.10 ( П. Экспериментальный раздел работы - student2.ru ) и ( П. Экспериментальный раздел работы - student2.ru > 4) при П. Экспериментальный раздел работы - student2.ru

2.11 П. Экспериментальный раздел работы - student2.ru и П. Экспериментальный раздел работы - student2.ru при П. Экспериментальный раздел работы - student2.ru

2.12 П. Экспериментальный раздел работы - student2.ru или П. Экспериментальный раздел работы - student2.ru при П. Экспериментальный раздел работы - student2.ru ;

2.13 (не ( П. Экспериментальный раздел работы - student2.ru и (у > х)при П. Экспериментальный раздел работы - student2.ru

2.14 (не ( П. Экспериментальный раздел работы - student2.ru и (у > х)при П. Экспериментальный раздел работы - student2.ru ;

3 Записать условие, которое является истинным, когда

3.1 каждое из чисел А и В больше 100;

3.2 только одно из чисел А и В четное;

3.3 хотя бы одно из чисел А и В положительно;

3.4 каждое из чисел А, В, С кратно трем;

3.5 только одно из чисел А, В и С меньше 50;

3.6 хотя бы одно на чисел А, В, С отрицательно.

3.7 каждое из чисел X и У нечетное;

3.8 только одно из чисел X и У меньше 20;

3.9 хотя бы одно из чисел X и У равно нулю;

3.10 каждое из чисел X, У, Z отрицательное;

3.11 только одно из чисел X, Y и Z кратно пяти;

3.12 хотя бы одно из чисел X, Y, Z больше 100.

3.13 целое А кратно двум или трем;

3.14 целое А не кратно трем и оканчивается нулем.

3.15 целое N кратно пяти или семи;

B.

1. Вычислить значение логического выражения при всех возможных значениях логических величин X, Y и Z:

1.1. не (X или Y); не X и Y; X и не Y; X или Z; (не X или Y) и Y; X или (не X и Y);

1.2. X или не Y; X или Y и Z; не(X и не Y) или X; Y и не X или не П. Экспериментальный раздел работы - student2.ru ; не Y и не X или Y;

1.3. не X и не Y; не (не X и Y) или не X; не (не X и не Y) и X; не (X или не Y) или не Y;

1.4. не (X и Z) или Y; е) X и (не (Y или Z)). не X и не Y; X и (не Y или Z);

1.5. X или Y и не Z; X и не Y или Z; X и не (Z или Y) или не Z; не X или X и (Y или Z);

1.6. (X или Y и не Z) ; не X или не Y или не Z; (не X или не Y) и (X или Y);

1.7. Xи Y или X и Z или не Z; не (X или не Y и Z); Y или (X и не Y или Z);

1.8. не (не X и Y или Z); не (У или не X и Z) или Z; X и не (не Y или Z) или Y;

1.9. не (X или Y и Z) или не X; не (X или Y) и (не X или не Z);

1.10. не (не X и Y) или (X и не Z); в) X или не Y и не (X или не Z).

2. Составьте программу проверки эквивалентности двух логических функций. Постройте соответствующие таблицы истинности(программно).

2.1. Проверьте что X → Y эквивалентна not (x) or y

2.2. Проверьте что X │ Y (Функция Шеффера) эквивалентна not (x) or not(y)

2.3. Проверьте что X ↓ Y (Функция Вебба, или стрелка Пирса) эквивалентна not (x) and not (y)

2.4. Дана некоторая логическая функция, например, ( x→y)→z. Постройте таблицу истинности данной функции. Преобразуйте эту формулу в эквивалентную ей. Составьте программу проверки эквивалентности этих двух логических формул.

2.5. Дана логическая функция ( x │ y) │ z. Постройте таблицу истинности данной функции. Преобразуйте эту формулу в эквивалентную ей. Составьте программу проверки эквивалентности этих двух логических формул.

2.6. Дана логическая функция ( x ↓ y) ↓ z. Постройте таблицу истинности данной функции. Преобразуйте эту формулу в эквивалентную ей. Составьте программу проверки эквивалентности этих двух логических формул.

2.7. Дана логическая функция ( x → y) and z. Постройте таблицу истинности данной функции. Преобразуйте эту формулу в эквивалентную ей. Составьте программу проверки эквивалентности этих двух логических формул.

2.8. Дана логическая функция not ( x or not y and z). Постройте таблицу истинности данной функции. Преобразуйте эту формулу в эквивалентную ей. Составьте программу проверки эквивалентности этих двух логических формул.

2.9. Дана логическая функция x and not ( y or not z). Постройте таблицу истинности данной функции. Преобразуйте эту формулу в эквивалентную ей. Составьте программу проверки эквивалентности этих двух логических формул.

2.10. Дана логическая функция not ( not x or y and z). Постройте таблицу истинности данной функции. Преобразуйте эту формулу в эквивалентную ей. Составьте программу проверки эквивалентности этих двух логических формул.

2.11. Дана логическая функция ( x ↓ y ) ↓ ( z ↓ v). Постройте таблицу истинности данной функции. Преобразуйте эту формулу в эквивалентную ей. Составьте программу проверки эквивалентности этих двух логических формул.

3. Вывести на экран True при выполнении условия

3.1. х принадлежит отрезку [2,5] или [-1,1];

3.2. x лежит вне отрезков [2,5] и [-1,1];

3.3. только одно из чисел x, y и z положительно;

3.4. из чисел x, y и z только два равны между собой;

3.5. уравнение ax2+bx+c=0 не имеет вещественных корней;

3.6. a = max (a, b, c, d) ;

3.7. целые n и k имеют одинаковую чётность;

3.8. поля (г1, в1) и (г2, в2) шахматной доски имеют одинаковый цвет.

3.9. ферзь, расположенный на поле (г1, в1) шахматной доски, "бьет" поле(г2, в2).

3.10. число n нечетное.(Напишите свой вариант функции odd, возвращающей значение "Истина", если её целочисленный аргумент имеет нечетное значение).

Работа 6

УСЛОВНЫE ОПЕРАТОРЫ

Цель работы:

- изучить правила работы с логическими операторами;

- закрепить навыки работы в среде Turbo Pascal.

Наши рекомендации