verich
?>

Каково назначение раздела объявления процедур и функции?

Информатика

Ответы

Лилит_Шутова
Чертёж дан во вложении.
Пусть ΔABC - равнобедренный, АВ = с - его основание, АС = ВС = b - боковые стороны. По условию треугольник симметричен относительно горизонтальной оси, так что его основание АВ должно быть перпендикулярно горизонтальной оси и при этом АО = ОВ, а вершина С попадет на горизонтальную ось. Разместим ΔABC так, чтобы основание попало на вертикальную ось.
Окружность, описанная вокруг треугольника, пройдет через все три его вершины. Точка М - центр описанной окружности, - лежит на пересечении перпендикуляров, проведенных из середин сторон треугольника. Поскольку ΔABC равнобедренный, то ОС - его высота и отрезок МС, равный радиусу окружности R, также лежит на горизонтальной оси.
Найдем высоту ОС, обозначив её через h, по теореме Пифагора.
ОС - это катет ΔAOC, AO ⊥ OC.
\displaystyle h= \sqrt{AC^2-AO^2}= \sqrt{b^2-\left(\frac{c}{2}\right)^2}
Площадь ΔABC находим по формуле
\displaystyle S= \frac{1}{2}\cdot AB \cdot OC = \frac{1}{2}hc
Для нахождения радиуса R = MC рассмотрим прямоугольные ΔAOC и ΔMDC, имеющие общий угол АСО = α
\displaystyle \cos \alpha= \frac{OC}{AC}= \frac{CD}{MC} \to MC= \frac{AC\cdot CD}{OC}; \\ R= \frac{b\cdot \displaystyle \frac{b}{2}}{h} = \frac{b^2}{2h}; \qquad OM=h-R
Теперь легко сделать необходимое построение.
Для этого откладываем от начала координат по горизонтальной оси отрезок ОМ и проводим из него, как из центра, окружность радиуса R. Соединяем между собой три точки пересечения окружностью осей координат и получаем треугольник с длинами сторон, равными заданным.

Ниже приводится программа на языке Microsoft QBasic, позволяющая рассчитать длину отрезка ОМ (Mx - координату х точки М) и радиус описанной окружности R по заданной длине основания с и длине боковой стороны b.

INPUT "Основание: ", c
INPUT "Боковая сторона: ", b
h = SQR(b ^ 2 - (c / 2) ^ 2)
R = b ^ 2 / (2 * h)
Mx = h - R
PRINT "Радиус равен "; R, "Координата центра равна "; Mx

Тестовое решение:
Y:\qbasic>QBASIC.EXE
Основание: 6
Боковая сторона: 5
Радиус равен  3.125         Координата центра равна  .875

Чтобы продолжить, нажмите любую клавишу

(qbasic) построить равнобедренный треугольник симметричный относительно горизонтальной оси, задать е
asnika1989
Во вложении показана принятая условная схема нумерации полей.
Предполагается, что если ферзь стоит на клетке с координатами (3,4), он может пойти по горизонтали, вертикали или диагонали. Соответствующие направления выделены цветом.
Чтобы взять фигуру (или пешку) противника по горизонтали, у обоих фигур должны быть одинаковы координаты строки (первые в паре).
Чтобы взять фигуру противника по вертикали, у обоих фигур должны быть одинаковы координаты столбца (вторые в паре в паре).
Наконец, чтобы взять фигуру противника по диагонали, у обоих фигур должна быть одинакова абсолютная величина разницы как между строками, так и между колонками.
Последнее правило взятия сложное, поэтому запишем его в условных обозначениях. Пусть Rq и Cq - соответственно номера строки и столбца, пересечение которых указывает положение клетки с ферзем. Пусть также фигура противника находится на клетке, заданной координатами Rx и Cx.
Тогда последнее правило можно записать в виде |Rq-Rx| = |Cq-Cx|
Теперь можно записать логическое выражение, значение которого истинно, если ферзь может взять фигуру (или пешку) противника.
(Rq=Rx) ∨ (Cq=Cx) ∨ (|Rq-Rx| = |Cq-Cx|)

// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var (Rq,Cq):=ReadInteger2('Введите номера горизонтали и вертикали ферзя:');
  var (Rx,Cx):=ReadInteger2('Введите номера горизонтали и вертикали фигуры:');
  if (Rq=Rx) or (Cq=Cx) or (Abs(Rq-Rx)=Abs(Cq-Cx)) then Writeln('Yes')
  else Writeln('No')
end.

Пример
Введите номера горизонтали и вертикали ферзя: 3 4
Введите номера горизонтали и вертикали фигуры: 6 1
Yes

Вводятся 4-ре числа: координаты клетки(номер строки и номер столбца) на которой стоит ферзь, и коорд

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Каково назначение раздела объявления процедур и функции?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

fymukham
Zebra198383
Khlustikova_Borisovna
tihonovrv477
misterdre9991
simplexsol
ortopediya
Vello Olga
Wlad967857
ВадимСмирнов116
Amelin-Alipova
Сергеевич1386
Lyubov214
Михайлов
Zheleznyakova