Помощь - Поиск - Пользователи - Календарь
Полная версия: Free PASCAL
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
bonduelle
Помогите пожайлуста написать программу на free pascal

Напишите программу для решения уравнения ax = b относительно х в целых числах. Учтите, что a может принимать любые значения, в том числе и 0.

На вход программе подаются целые числа a, b, по модулю не превосходящие 30000. Требуется вывести целый корень уравнения, если он существует и единственный. Если уравнение не имеет корней, то вывести no solution. Если уравнение имеет больше одного целого корня, то вывести many solutions

в этой сказали много ошибок, ноо гдеее

program horosho;
var a,b:integer;
begin
write('a b ? ');
readln(a,;
if a=0
then
if b=0
then
writeln('many solutions')
else if b mod a<>0
then
writeln('no solution)
else writeln(b div a);
readln
end.


хеелп мии плииз
Krjuger
Ну смотрите,во-первых, ах=b это уравнение прямой,следовательно есть 3 возможных варианта.Первый,прямая пересекает ось Х тогда будет 1 корень.Второй вариант,прямая не пересекает ось Х,значит она паралельна ей.Второй случай делится ще на 2 .Первый, когда b=0 мы получаем бесконечное число корней,второй когда b не равно нулю,тогда корней нет.Теперь давайте разберемся с кодом.

program horosho;
var a,b:integer;
begin
write('a b ? ');
readln(a,b); {надеюсь вы тут ошиблись при переписывании задачи)
}if a=0 then{учитель правильно записывать структуры}
if b=0 then
writeln('many solutions')



else if b mod a<>0
then
writeln('no solution)


причем здесь какие то отношения а и b,если а равно нулю,а b не равно нулю тогда нету решения,и любые други условия избыточны.
Я не совсем понял насчет целого корня,но мне кажеться вы имели в виду,что, если корень существует,но не целый его считать и выводить не надо?

В общем все может выглядеть так.

program horosho;
var a,b:integer;
begin
write('a b ? ');
readln(a,b);
if a=0 then
if b=0 then
writeln('many solutions')
else
writeln('no solution')
else
if (b mod a=0) then
writeln(b/a:5:0);{Зачем использовать Div если мы условием уже проверили,что они деляться целочисленно. }
readln;
end.


Согласитесь,когда есть четкая структура,читать намного проще,понятно какой else к какому if.Работоспособность не проверял,но не вижу причин,чтобы не работало.
bonduelle
спасиибо огромное, все получилось good.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.