Решить в целых числах уравнение ( ax + b ) : ( cx + d ) = 0.
Входные данные
Вводятся 4 числа: a, b, c и d; c и d не равны нулю одновременно.
Выходные данные
Необходимо вывести все решения, если их число конечно, “NO” (без кавычек), если решений нет, и “INF” (без кавычек), если решений бесконечно много.
решение
program uravnenie_s3;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
a,b,c,d:integer;
e:real;
begin
readln(a,b,c,d);
if (((c = 0) and (d = 0))or (a=0)) then writeln('NO');
e:=-b/a;
if (((a=c) and (b=d)) or ((a=0) and (b<>0))) then writeln('NO')
else if ((a=0) and (b=0)) then writeln('INF')
else if (a<>0) then
if ((round(e)=e) and (c*round(e)+d<>0)) then writeln(round(e))
else writeln('NO');
readln;
end.
На 7 тесте выводит ошибку во время выполнения программы. Не пойму в чем проблема.Помогите
Ошибка в программе -- это деление на 0. Операция mod это тоже деление. Посмотрите внимательно, почему она выполняется при каких-либо данных.
Далее, Паскаль не определяет порядок вычисления выражений. Так что в Паскале следующая конструкция не работает if (x != 0 && y / x == 42) {...}
Пишите на Си.
Далее, Паскаль не определяет порядок вычисления выражений. Так что в Паскале следующая конструкция не работает if (x != 0 && y / x == 42) {...}
Пишите на Си.