Для удобства построения таблицы истинности введем логические переменные.
Обозначим 2*2=4 через a, 3*3=9 - через b.
Тогда высказывание примет вид:
Для этого выражения и построим таблицу истинности.
2. Для доказательства равносильности указанных выражений можно построить таблицы истинности и сравнить их.
Как видно, НЕСОВПАДЕНИЕ полное, т.е. ни при каком сочетании a и b выражения не равносильны. Это подтверждается теорией - имеются законы де-Моргана, в которых еще присутствует общее отрицание или в правой. или в левой части.
<u>1. Программа, которая создает файл</u>
<em>// PascalABC.NET 3.3, сборка 1547 от 07.10.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
type
tДатаРождения=record
день, месяц, год:integer
end;
tАдрес=record
город:string[16];
улица:string[16];
дом:string[16]
end;
tСтудент=record
ФИО:string[24];
Датарождения:tДатаРождения;
Пол:char; // М/Ж
Адрес:tАдрес
end;
begin
Writeln('Вводите данные анкеты, значение * в ФИО - конец ввода');
var Stud:tСтудент;
var f:file of tСтудент;
Rewrite(f,'Student.bin');
while true do begin
Stud.ФИО:=ReadlnString('ФИО студента:');
if Stud.ФИО='*' then break;
Writeln('День, месяц и год рождения: ');
Readln(Stud.Датарождения.день, Stud.Датарождения.месяц,
Stud.Датарождения.год);
Stud.Пол:=ReadlnChar('Пол (М/Ж):').ToUpper;
Stud.Адрес.город:=ReadlnString('Город:');
Stud.Адрес.улица:=ReadlnString('Улица:');
Stud.Адрес.дом:=ReadlnString('Дом:');
Write(f,Stud);
end;
f.Close
end.
<u>2. Программа, которая выводит существующий файл</u>
type
tДатаРождения=record
день, месяц, год:integer
end;
tАдрес=record
город:string[16];
улица:string[16];
дом:string[16]
end;
tСтудент=record
ФИО:string[24];
Датарождения:tДатаРождения;
Пол:char; // М/Ж
Адрес:tАдрес
end;
begin
var Stud:tСтудент;
var f:file of tСтудент;
Reset(f,'Student.bin');
while not Eof(f) do begin
Read(f,Stud);
Writeln(Stud.ФИО,' (',Stud.Пол,'), ',Stud.Датарождения.день,'.',
Stud.Датарождения.месяц,'.',Stud.Датарождения.год,', ',
Stud.Адрес.город,', ',Stud.Адрес.улица,', ',Stud.Адрес.дом);
end;
f.Close
end.
<u>3. Программа, которая делает все это вместе</u>
type
tДатаРождения=record
день, месяц, год:integer
end;
tАдрес=record
город:string[16];
улица:string[16];
дом:string[16]
end;
tСтудент=record
ФИО:string[24];
Датарождения:tДатаРождения;
Пол:char; // М/Ж
Адрес:tАдрес
end;
begin
Writeln('Вводите данные анкеты, значение * в ФИО - конец ввода');
var Stud:tСтудент;
var f:file of tСтудент;
Rewrite(f,'Student.bin');
while true do begin
Stud.ФИО:=ReadlnString('ФИО студента:');
if Stud.ФИО='*' then break;
Writeln('День, месяц и год рождения: ');
Readln(Stud.Датарождения.день, Stud.Датарождения.месяц,
Stud.Датарождения.год);
Stud.Пол:=ReadlnChar('Пол (М/Ж):').ToUpper;
Stud.Адрес.город:=ReadlnString('Город:');
Stud.Адрес.улица:=ReadlnString('Улица:');
Stud.Адрес.дом:=ReadlnString('Дом:');
Write(f,Stud);
end;
Seek(f,0);
while not Eof(f) do begin
Read(f,Stud);
Writeln(Stud.ФИО,' (',Stud.Пол,'), ',Stud.Датарождения.день,'.',
Stud.Датарождения.месяц,'.',Stud.Датарождения.год,', ',
Stud.Адрес.город,', ',Stud.Адрес.улица,', ',Stud.Адрес.дом);
end;
f.Close
end.
<u>Пример работы программы 3)</u>
Вводите данные анкеты, значение * в ФИО - конец ввода
ФИО студента: Иванов И.И.
День, месяц и год рождения:
24 6 1998
Пол (М/Ж): м
Город: Москва
Улица: пр.Ленина
Дом: 152, кор.3
ФИО студента: Петрова Т.Н.
День, месяц и год рождения:
13 11 1999
Пол (М/Ж): ж
Город: Тверь
Улица: ул.Сиреневая
Дом: 18
ФИО студента: *
Иванов И.И. (М), 24.6.1998, Москва, пр.Ленина, 152, кор.3
Петрова Т.Н. (Ж), 13.11.1999, Тверь, ул.Сиреневая, 18
267810/3=89270 остаток 0
89270/3=29756 ост.2
29756/3=9918 ост.2
9918/3=3306 ост.0
3306/3=1102 ост.0
1102/3=367 ост.1
367/3=122 ост. 1
122/3=40 ост. 2
40/3=13 ост. 1
13/3=4 ост 1
4/3=1 ост1
<span>267810</span>₁₀=111121100220₃