Программа для определения принадлежности чисел одному знаку
Задание.
Проверить и вывести на экран сообщение о том, что a и b одинаковые по знаку.

Математическое вступление
Чтобы определить, что число является положительным или отрицательным нужно сравнить его с нулем:
a>0 - положительное число;
a<0 - отрицательное число.
Случай a=0 рассматривать не будем, хотя можно для более точного решения задачи заменить строгое сравнение на нестрогое. >=
Можно пойти и другим путем, например, проверяя наличие знака у числа, но это будет уже сложнее.
Решение задачи на Паскале.
Пусть вводимые числа для простоты будут целыми
Var
a,b:integer;
Используем условия для проверки принадлежности к диапазону.
(a>0) and (b>0) - становится истиной только при одновременной положительности чисел, исходя из таблицы истинности. Точно также и для отрицательного диапазона.
(a>0) and (b>0) - становится истиной только при одновременной положительности чисел, исходя из таблицы истинности операции and.
Program znaki_1;
Var
a,b:integer;
Begin
write(Введите числа a и b:);
readln(a,b);
if (a>0) and (b>0) then
writeln(Числа a и b - положительные!);
if (a<0) and (b<0) then
writeln(Числа a и b - отрицательные!);
End.
Проверка вводимых значений.
Введите числа a и b: 6 9
Числа a и b - положительные!
Введите числа a и b:-9 -7
Числа a и b - отрицательные!
А вот? если мы будем вводить разные по знакам числа, то ничего на экран не выйдет:
Введите числа a и b:9 -7
Доработка программы.
Чтобы исправить эту проверку, нужно добавить проверку на разность по знакам.
Сделаем ещё одну проверку условия с вложенным оператором ветвления.
Учтите, что перед else не должно стоять точки с запятой!
Program znaki_2;
Var
a,b:integer;
Begin
write(Введите числа a и b:);
readln(a,b);
if (a>0) and (b>0) then
writeln(Числа a и b - положительные!)
else
if (a<0) and (b<0) then
writeln(Числа a и b - отрицательные!)
else
writeln(Числа a и b - разные по знаку!);
End.
Проверка выполнения условия
Введите числа a и b:-9 9
Числа a и b - разные по знаку!
Упрощаем решение задачи.
Вспомним, что по условию задачи нам необязательно проверять вводимые числа на принадлежность к какому-либо конкретному знаку, поэтому задачу можно упростить.
Program znaki_3;
Var
a,b:integer;
Begin
write(Введите числа a и b:);
readln(a,b);
if ((a>0) and (b>0)) or ((a<0) and (b<0)) then
writeln(Числа a и b - одного знака!)
else
writeln(Числа a и b - разные по знаку!);
End.
Условие получилось достаточно большое, но хорошо читаемое. Теперь для проверки используется только одна строка кода.
Сумма всех квадратов целых чисел в заданном диапазоне