Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2009, 18:02   #1
KREGI
Форумчанин
 
Аватар для KREGI
 
Регистрация: 29.11.2008
Сообщений: 333
По умолчанию Найти все целые корни уравнения

помогите решить задачу, здесь вроде как 4 проверки, я уже запутался что к чему, программа на Делфи:
Если помог - Весы слева
KREGI вне форума Ответить с цитированием
Старый 09.03.2009, 18:38   #2
Jean-Esther
Пользователь
 
Аватар для Jean-Esther
 
Регистрация: 15.01.2009
Сообщений: 69
По умолчанию

Код:
procedure DoIt(a,b,c,d:integer);
begin
for x:=1 to d do
    if d mod x = 0 then
    begin
          if (a+b)*x*x + c*x + d = 0 then Add(x);
          if (a+b)*x*x - c*x + d = 0 then Add(-x);
    end;
end;
Это по условию. Хотя я бы решал так:
Код:
procedure DoIt(a,b,c,d:integer);
var x,y:real;
begin
x:=c*c-4*d*(a+b);
if x>=0 then
begin
    y:=(-c+sqrt(x))/(2*(a+b));
    x:=d/y;
    if frac(y)<1e-5 then Add(round(y));
    if frac(x)<1e-5 then Add(round(x));
end;
end;
Это поиск двух корней по формуле и т-ме Виета и отпереления дробной их части (frac(x)==0)
Silence is of great value...
Jean-Esther вне форума Ответить с цитированием
Старый 09.03.2009, 19:33   #3
KREGI
Форумчанин
 
Аватар для KREGI
 
Регистрация: 29.11.2008
Сообщений: 333
По умолчанию

этоже, только проверка?как весь код выглядеть будет?

и что такое add?

Ребят, ОЧЕНЬ НАДО, помогите! Пожалуйста
Если помог - Весы слева

Последний раз редактировалось Stilet; 10.03.2009 в 09:29.
KREGI вне форума Ответить с цитированием
Старый 10.03.2009, 09:40   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
этоже, только проверка?
А тут проверка - основное.
Цитата:
и что такое add?
Это метод ListBox'а или Memo.
Растяни его на форму и напиши:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var x,y:real;
begin
x:=c*c-4*d*(a+b);
if x>=0 then
begin
    y:=(-c+sqrt(x))/(2*(a+b));
    x:=d/y;
    if frac(y)<1e-5 then ListBox.Items.Add(round(y));
    if frac(x)<1e-5 then ListBox.Items.Add(round(x));
end;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.03.2009, 15:54   #5
KREGI
Форумчанин
 
Аватар для KREGI
 
Регистрация: 29.11.2008
Сообщений: 333
По умолчанию

Судя из условия задачи числа мы вводим сами...значит ваш код, не совсем верный..или я ошибаюсь?

Если и расматривать ваш код, вот так должно быть?
Код:
procedure TForm1.FormCreate(Sender: TObject);
var x,y:real;  b,a,d,C:integer;
begin
x:=c*c-4*d*(a+b);
if x>=0 then
begin
    y:=(-c+sqrt(x))/(2*(a+b));
    x:=d/y;
    if frac(y)<1e-5 then ListBox1.Items.Add(round(y));
    if frac(x)<1e-5 then ListBox1.Items.Add(round(x));
end;
end;

end;
не собирается прога, жалуется на эту часть Add(round(y));
Если помог - Весы слева

Последний раз редактировалось Stilet; 10.03.2009 в 16:05.
KREGI вне форума Ответить с цитированием
Старый 10.03.2009, 16:06   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
числа мы вводим сами
Это уж тебе решать.
Цитата:
жалуется на эту часть
На китайском?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.03.2009, 16:06   #7
KREGI
Форумчанин
 
Аватар для KREGI
 
Регистрация: 29.11.2008
Сообщений: 333
По умолчанию

Я понимаю эту задачу так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var x,y:real;  b,a,d,C:integer;
begin
a:=strtoint(edit1.Text);
b:=strtoint(edit2.Text);
c:=strtoint(edit3.Text);
d:=strtoint(edit4.Text);
y:=0;
x:=0;
begin
x:=c*c-4*d*(a+b);
if x>=0 then
begin
    y:=(-c+sqrt(x))/(2*(a+b));
    x:=d/y;
    if frac(y)<1e-5 then
    Label1.Caption:=+floattostr(y);
    if frac(x)<1e-5 then
    Label1.Caption:=+floattostr(x);
end;
end;
end;

end.
Где тут ошибки? исправил, но все таки не конект((вот еще попытка, но ругается на вывод...
Если помог - Весы слева

Последний раз редактировалось KREGI; 10.03.2009 в 16:19.
KREGI вне форума Ответить с цитированием
Старый 10.03.2009, 16:46   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Где тут ошибки?
Сколько можно обьяснять что ТЕКСТ ОШИБКИ НУЖНО ПРИВОДИТЬ!!!!!!
Цитата:
Label1.Caption:=+floattostr(y);
Плюс убери.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.03.2009, 18:23   #9
KREGI
Форумчанин
 
Аватар для KREGI
 
Регистрация: 29.11.2008
Сообщений: 333
По умолчанию

Все работает, спасибо, на счет текста ошибки, извеняюсь, буду в следующий раз писать, еще раз ОГРОМНОЕ СПАСИБО!!!
Если помог - Весы слева
KREGI вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
корни квадратного уравнения, пример Alexxx92 Помощь студентам 5 18.02.2009 23:37
Найти все целые числа,у которых ровно 6 делителей; jenja Общие вопросы C/C++ 3 03.10.2008 20:32
Как вывести все целые степени числа? riorio07 Паскаль, Turbo Pascal, PascalABC.NET 1 20.05.2008 11:47
Найти все целочисленные решения уравнения 3x+4y=2z на заданном отрезке [L,R] Zmey_by_Nojabrsk Помощь студентам 3 18.10.2007 22:08
корни квадратного уравнения InseR Общие вопросы Delphi 12 01.06.2007 17:30