Скачиваний:
62
Добавлен:
16.01.2016
Размер:
229.85 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«Белгородский Государственный Технологический Университет им. В.Г. Шухова»

(БГТУ им. В.Г. Шухова)

ИИТУС, Кафедра ТК

«Информационные технологии»

Лабораторная работа № 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. Тогда площади закрашенной области будет равна

Для второго графика площадь будет расчитываться по формуле:-не вычисляется

Соседние файлы в предмете Алгоритмические языки и основы программирования