• Для области, описываемые логическими выражениями данных областей составить линейную программу, которая печатает true, точка с координатами (х, у)принадлежит закрашенной области, и false-в противном случае:
    Нужен текст программы на Паскаль помогите очень нужно

    question img

Ответы 1

  • Разбиваем заштрихованную область на контуры, ограниченные линиями, уравнения которых мы можем написать. Считаем, что сами линии (границы области) тоже входят в нее. Если это не так, все неравенства, указанные ниже, должны быть строгими.В I четверти:Контур - окружность. Уравнение окружности x² + y² = r².Из графика видно, что r = 6, поэтому все, что лежит внутри круга и на нем, удовлетворяет уравнению x² + y² ≤ 6² или x² + y² ≤ 36Принадлежность I четверти определяется условием (x ≥ 0) и (y ≥ 0).Получаем логическое выражение (x² + y² ≤ 36) ∧ (x ≥ 0) ∧ (y ≥ 0)В IV четверти:Контур - прямоугольный треугольник. В соответствии с графиком уравнение его гипотенузы y = x - 6.Принадлежность IV четверти определяется условием (x ≥ 0) и (y ≤ 0).Получаем логическое выражение (y ≥ x - 6) ∧ (x ≥ 0) ∧ (y ≤ 0)Точка, принадлежащая заштрихованной области или её контуру, может находиться в одной из рассмотренных выше четвертей, поэтому полученные логические выражения объединяем через ИЛИ:[(x² + y² ≤ 36) ∧ (x ≥ 0) ∧ (y ≥ 0)] ∨ [(y ≥ x - 6) ∧ (x ≥ 0) ∧ (y ≤ 0)]Сделаем упрощение:(x ≥ 0) ∧ { [ (x² + y² ≤ 36) ∧ (y ≥ 0) ] ∨ [ (y ≥ x - 6) ∧ (y ≤ 0) ] }С учетом старшинства логических операций можно часть скобок опустить(x ≥ 0) ∧ [ (x² + y² ≤ 36) ∧ (y ≥ 0) ∨ (y ≥ x - 6) ∧ (y ≤ 0) ]В языке Паскаль это выражение запишется так:(x>=0) and ((x*x+y*y<=36) and (y>=0) or (y>=x-6) and (y<=0))Теперь несложно написать саму программу.// PascalABC.NET 3.3, сборка 1576 от 16.11.2017// Внимание! Если программа не работает, обновите версию!begin  var (x,y):=ReadReal2('Введите через пробел x и y:');  Writeln((x>=0) and ((x*x+y*y<=36) and (y>=0) or (y>=x-6) and (y<=0)))end.ПримерыВведите через пробел x и y: 3 2.5TrueВведите через пробел x и y: 6 0TrueВведите через пробел x и y: 5.8 3FalseВведите через пробел x и y: 3 -2TrueВведите через пробел x и y: 4 -3False
    • Автор:

      felix4jzp
    • 2 года назад
    • 4
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years