IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Free PASCAL
bonduelle
сообщение 23.10.2011 17:19
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Женский

Репутация: -  0  +


Помогите пожайлуста написать программу на 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.


хеелп мии плииз
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Krjuger
сообщение 23.10.2011 21:21
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Ну смотрите,во-первых, ах=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.Работоспособность не проверял,но не вижу причин,чтобы не работало.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
bonduelle
сообщение 23.10.2011 22:29
Сообщение #3





Группа: Пользователи
Сообщений: 2
Пол: Женский

Репутация: -  0  +


спасиибо огромное, все получилось good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.06.2025 8:36
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"