ПО - программное обеспечение - является группой программ, обеспечивающих решение некоторой задачи (учет фантиков от конфет), ведение некоторого процесса (просмотр фотографий котиков), работу некоторого отдела (бухгалтерии) и т.п. Эта самая группа программ - безымянна, ПО не может иметь своего имени. Нельзя говорить ПО "Фантики", ПО "Котики" или ПО "Бухгалтерия" - это попросту звучит не по-русски. Вместо этого говорят ПО учета фантиков, ПО просмотра фотографий, ПО бухгалтерии.
Поскольку у ПО нет имени, всегда можно обозвать его как-нибудь по-другому. ПО просмотра фотографий вполне может превратиться в ПО просмотра котиков - или войти в состав ПО комнаты отдыха. Если там находится один и тот же просмотрщик изображений Windows - то это будет одно и то же ПО, как его не назови.
ИС - информационная система, напротив, всегда именная. Вполне могут существовать ИС "Фантики", ИС "Котики" и ИС "Бухгалтерия". Впрочем, ИС просмотра фотографий также имеет право на существование (здесь название системы - это и есть "ИС просмотра фотографий"). Также для ИС не требуется, чтобы для ее компонентов существовал какой-то объединяющий признак - вполне допускается существование ИС "Фантики и Бухгалтерия", если, конечно же, такая ИС будет хоть кому-нибудь нужна.
С другой стороны, имя для ИС придумывается только тем, кто ее распространяет. Нельзя купить ИС "Фантики", а потом написать в документах, что куплена ИС "Пожиратель конфет" - это совершенно разные ИС, даже если они составлены из одних и тех же компонентов (хотя одна ИС все же может войти в состав другой - но обычно такие ИС называют все-таки не системами, а подсистемами).
Еще одно отличие ИС от ПО - ИС может содержать компоненты, не являющиеся программами или данными к ним. К примеру, в состав ИС, которая предоставляет пассажирам на вокзале расписание поездов, вполне могут входить информационные киоски. ПО же, как следует из названия, может содержать только программы, иначе будет зваться уже АПО (аппаратно-программное обеспечение).
Во вложении показана принятая условная схема нумерации полей.
Предполагается, что если ферзь стоит на клетке с координатами (3,4), он может пойти по горизонтали, вертикали или диагонали. Соответствующие направления выделены цветом.
Чтобы взять фигуру (или пешку) противника по горизонтали, у обоих фигур должны быть одинаковы координаты строки (первые в паре).
Чтобы взять фигуру противника по вертикали, у обоих фигур должны быть одинаковы координаты столбца (вторые в паре в паре).
Наконец, чтобы взять фигуру противника по диагонали, у обоих фигур должна быть одинакова абсолютная величина разницы как между строками, так и между колонками.
Последнее правило взятия сложное, поэтому запишем его в условных обозначениях. Пусть Rq и Cq - соответственно номера строки и столбца, пересечение которых указывает положение клетки с ферзем. Пусть также фигура противника находится на клетке, заданной координатами Rx и Cx.
Тогда последнее правило можно записать в виде |Rq-Rx| = |Cq-Cx|
Теперь можно записать логическое выражение, значение которого истинно, если ферзь может взять фигуру (или пешку) противника.
(Rq=Rx) ∨ (Cq=Cx) ∨ (|Rq-Rx| = |Cq-Cx|)
<em>// PascalABC.NET 3.3, сборка 1625 от 17.01.2018</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
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.
<u>Пример</u>
Введите номера горизонтали и вертикали ферзя: 3 4
Введите номера горизонтали и вертикали фигуры: 6 1
Yes