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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2009, 12:40   #1
Voldemort93
Пользователь
 
Аватар для Voldemort93
 
Регистрация: 27.08.2009
Сообщений: 40
По умолчанию Теорема Виета

Подскажите пожалуйста, как в Паскале сделать подбор чисел x1, x2 для теоремы Виета?
(x*x+px+q=0)
x1+x2=-p
x1*x2=q
Зараннее спасибо!!!
Читаю и перевожу со словарем с Фортрана, Алгола, Кобола и др.
Voldemort93 вне форума Ответить с цитированием
Старый 27.08.2009, 13:11   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Что значит подбор чисел, от минус бесконечности до плюс бесконечности перебирать?
puporev вне форума Ответить с цитированием
Старый 27.08.2009, 13:49   #3
Voldemort93
Пользователь
 
Аватар для Voldemort93
 
Регистрация: 27.08.2009
Сообщений: 40
По умолчанию

ну, что-то вроди того!!! но можна на первый момент и от -10 до +10 (Чтоб я немного сам разобрался)!
Читаю и перевожу со словарем с Фортрана, Алгола, Кобола и др.
Voldemort93 вне форума Ответить с цитированием
Старый 27.08.2009, 15:03   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Ох и трудная задача, пришлось алгебру за 8 класс вспоминать.
Код:
uses crt;
var p,q,eps,x1,x2,d,h:extended;
begin
clrscr;
writeln('Введите коэффициенты p,q уравнения:');
write('p=');readln(p);
write('q=');readln(q);
write('Введите точность определения корня eps=');{типа 0.0001}
readln(eps);
d:=p*p-4*q;{находим дискриминант}
if d<0 then
  begin
   writeln('Уравнение не имеет решений!');
   readln;
   exit;
  end
else if d=0 then
 begin
  writeln('х1=х2=',-p/2:0:5);
  readln;
  exit;
 end
else
 begin
  x1:=-p/2;x2:=-p/2;h:=eps/10;{считаем что корни равны, находятся посередине,
                                            берем шаг вычислений в 10 раз меньше точности}
  repeat
  x1:=x1-h;{один корень считаем влево}
  x2:=x2+h;{второй вправо}
  until (abs(x1*x2-q)<=eps);{когда их произведение практически равно(с учетом точности) свободному члену, прекращаем вычисления}
 end;
writeln('x1=',x1:0:5,'  x2=',x2:0:5);
writeln('Проверка по фoрмуле:');
writeln('x1=',(-p-sqrt(d))/2:0:5,'  x2=',(-p+sqrt(d))/2:0:5);
readln
end.
puporev вне форума Ответить с цитированием
Старый 27.08.2009, 16:28   #5
Voldemort93
Пользователь
 
Аватар для Voldemort93
 
Регистрация: 27.08.2009
Сообщений: 40
Хорошо

СПАСИБО!!! Вы мне очень помогли!!!
Читаю и перевожу со словарем с Фортрана, Алгола, Кобола и др.
Voldemort93 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
решение Квадратного уравнения методом Виета Claster Помощь студентам 3 16.09.2008 20:18