var a,b:integer;
x:real;
begin
readln (a,b);
x:=-b/a;
if (a<>0) then writeln(x) else
if (b<>0) then writeln(‘корней нет’) else writeln (‘любое число’)
end.
Почему при выполнении в строке 5 не возникает ошибки при задании a=0
На платформе .NET при делении вещественного числа на ноль переполнение возникает, но перехватывается и обрабатывается средой исполнения. В PascalABC.NET результатом обработки будет получения значения, которое он скромно называет " - infinity "
/ - это вещественное деление. Вещественное деление на 0 не порождает исключения, его результат - это особое значение Infinity или NaN, если делить 0 на 0. Для целочисленного деления используйте div. “4 div 0” должно вызвать исключение.
Большинство современных микропроцессоров изготовляются с аппаратной реализацией представления вещественных переменных в формате IEEE754.
Язык программирования и программист не могут изменить эту ситуацию, иного преставления вещественного числа в микропроцессоре не существует.
До этого в древних системах типа Turbo Pascal действительно происходила ошибка времени выполнения, но эти времена давно ушли