МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «Белгородский Государственный Технологический Университет им. В.Г. Шухова» (БГТУ им. В.Г. Шухова) ИИТУС, Кафедра ТК | |||
«Информационные технологии» | |||
Лабораторная работа № 1.2 «Практическое применение основ алгебры логики» | |||
| |||
Выполнил: студент УС-11 Татаринов А.Е. Проверил: ст. преподават. Крюков А.В.
|
Отметка о выполнении
дата, роспись |
Отметка о защите
дата, роспись |
Вариант №16
Всё наше достоинство заключено в мысли. Не пространство, не время, которых мы не можем заполнить, возвышает нас, а именно она, наша мысль. Будем же учиться хорошо мыслить.
Б. Паскаль
Цель работы: Изучение логических операций и правил их преобразований. Получение навыков практической работы по построению таблиц истинности, синтезу логических выражений.
Задача 1
Постановка задачи: Для данной графической интерпретации запишите:
А) единое составное логическое выражение (в формате одного из языков
программирования)
Б) вложенные логические операторы, содержащие лишь простейшие условия сравнения
В) математическую запись в виде системы/совокупности отдельных неравенств, которое принимает значение "истина" тогда и только тогда, когда точка с координатами (x,y) принадлежит заштрихованной области (отдельно для каждого рисунка), и "ложь" в противном случае.
Решение:
Рассмотрим первое изображение. Единым составным логическим выражением для него будет:
var
r, x, y: real;
begin
readln(r);
readln(x, y);
if
((x * x + y * y <= r * r) and ((x <= 0)and(y<=0)) or ((x >= 0) and
(x * x + y * y <= r * r) and (y > sqr(x - 1)))
then
writeln('Yes')
else
writeln('no');
end.
Разобьем код на простейшие логические выражения, вложенные друг в друга:
var
x, y: real;
r: integer;
begin
readln(x, y, r);
if (x * x + y * y <= r) then
if (x <= 0) then
if (y <= 0) then wliteln('Принадлежит')
else writeln('Не пренадлежит')
else if (y >= sqr(x - 1)) then writeln('Принадлежит')
else writeln('Не пренадлежит')
else writeln('Не пренадлежит');
end.
Математическая запись в виде системы:
Рассмотрим второй график. Единым составным логическим выражением будет:
var
r, x, y, b: real;
begin
readln(r, b);
readln(x, y);
if ((x * x + y * y <= r * r) and ((y >= (-b) and (y<=0) and (x<0)) or
((x * x + y * y > r * r) and ((y <= b) and (y>=0)and(x>=r)and(x<=b))
then writeln('Yes')
else writeln('No')
end.
Разобьем код на простейшие логические выражения, вложенные друг в друга:
var
x, y: real;
r: integer;
begin
readln(x, y, r);
if (x * x + y * y <= r * r) then
if (y >= (-b)) then
if (y <= 0) then
if (x < 0) then writeln('Yes')
else writeln('No')
else writeln('No')
else writeln('No')
else if (x * x + y * y > r * r) then
if (y <= b) then
if (y >= 0) then
if (x >= r) then
if (x <= b) then writeln('Yes')
else writeln('No')
else writeln('No')
else writeln('No')
end.
Математическая запись в виде системы:
Построим данные графики в среде программирования PascalABC:
Графики будут иметь следующий вид:
1) 2)
Код для первой программы:
uses
graphABC;
const
//масштаб
px = 100;
py = 100;
var
x0, y0, r: integer;
begin
window.SetSize(400, 400);
window.Caption := 'Лаба';
window.CenterOnScreen;
x0 := window.Width div 2;
y0 := window.Height div 2;
pen.Color := clBlack;
pen.Width := 1;
x0 := 200;
y0 := 200;
Setbrushstyle(bsClear);
ellipse(150, 200, 300, (-500));
r := 100;
circle(x0, y0, r);
pen.Width := 2;
Line(0, 200, 400, y0);
Line(x0, 0, x0, 400);
FloodFill(150, 250, clRed);
floodFill(250, 150, clRed);
end.
Код для второй программы:
uses
graphABC;
const
//масштаб
px = 100;
py = 100;
var
x0, y0, r: integer;
begin
window.SetSize(400, 400);
window.Caption := 'Лаба';
window.CenterOnScreen;
x0 := window.Width div 2;
y0 := window.Height div 2;
pen.Color := clBlack;
pen.Width := 1;
x0 := 200;
y0 := 200;
Setbrushstyle(bsClear);
Rectangle(350, 150, 50, 250);
r := 100;
circle(x0, y0, r);
pen.Width := 2;
Line(0, 200, 400, y0);
Line(x0, 0, x0, 400);
FloodFill(150, 210, clRed);
FloodFill(340, 190, clRed);
end.
Построим данные графики в математическом редакторе MathCAD Prime 3.
1)2)
Расчитаем площади для каждых закрашенных областей. Для решеня представим что радиус нашей окружности равен 5. Тогда площади закрашенной области будет равна
Для второго графика площадь будет расчитываться по формуле:-не вычисляется