Составить программку на Паскале: Решение кубических уравнений по схеме Горнера. Если
Составить программку на Паскале: Решение кубических уравнений по схеме Горнера. Если что прочитайте в вебе. Я над этой программой сижу 2 недели не могу сделать. Прошу помогите. Я так понял за ваше решение дают 99 баллов
Задать свой вопрос
Katjusha Shaljadova
Да мне это нужно для проекта
Тарлецкий
Санек
именно по схеме горнера
Shagenkov Pasha
1) Turbo? Free? Lazarus? ABC? Delphi? ABC.NET?
Кирилл Зубчевский
2) Для решения необыкновенно кубического? Либо можно, чтоб программа была и четвёртую, и пятую, и десятую ступень?
Miroslava Kuhoreva
Так я эти вопросы задал, поэтому что он зашёл с утра - ответил на прошлые))
Софья
только кубического
1 ответ
Алла Стоякова
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
type
fraction=(integer,integer);
function RatFact(Self:array of integer):sequence of fraction;
extensionmethod;
//
// На основе метода 78б
// В кн.: Агеев М.И., Алик В.П., Марков Ю.И.
// Библиотека алгоритмов 51б-100б. (Справочное пособие.) Вып.2.
// М.б "Сов. радио", 1976.
//
// Отыскание разумных корней полиномов с целыми коффициентами.
// Употребляется предоженное Дж.Пеком расширение вычисления полинома
// способом Горнера.
// !!! Коэффициенты полинома записываются, начиная со свободного члена !!!
//
begin
var L:=new Listlt;fractiongt;; // вынужденное: метод время от времени дает дубликаты
(var a0, var an):=(абс(Self.First),абс(Self.Last));
for var p:=1 to a0 do begin
if a0 mod plt;gt;0 then continue;
for var q:=1 to an do begin
if an mod qlt;gt;0 then continue;
var g:=Self.First; (var f, var t):=(g,p);
foreach var k in Self.Skip(1) do begin
var r:=k*t; (f,g,t):=(f*q+r,-g*q+r,t*p);
end;
if f=0 then L.Add((p,q));
if g=0 then L.Add((-p,q))
end
end;
Result:=L
end;
function RedFrac(Self:fraction):fraction; extensionmethod;
begin
(var p,var q):=Self;
var s:=sign(p*q);
(p,q):=(абс(p),абс(q));
(var a,var b):=(p,q);
while blt;gt;0 do begin a:=a mod b; Swap(a,b) end;
Result:=(s*p div a,q div a)
end;
function Beautify(Self:sequence of fraction):sequence of string;
extensionmethod;
begin
Result:=Self.Select(e-gt;e.RedFrac).Distinct.OrderBy(x-gt;x[0]/x[1]).
Select(e-gt;e[0]+(e[1]lt;gt;1?'/'+e[1]:''))
end;
begin
ReadArrInteger(4).RatFact.Beautify.Println
end.
Образцы
1) -36x+3x+14x+3 = 0
3 14 3 -36
-1/3 3/4
2) (x-1)(x+2)(x+3/5) = 0; 5x+8x-7x-6 = 0
-6 -7 8 5
-2 -3/5 1
// Внимание! Если программа не работает, обновите версию!
type
fraction=(integer,integer);
function RatFact(Self:array of integer):sequence of fraction;
extensionmethod;
//
// На основе метода 78б
// В кн.: Агеев М.И., Алик В.П., Марков Ю.И.
// Библиотека алгоритмов 51б-100б. (Справочное пособие.) Вып.2.
// М.б "Сов. радио", 1976.
//
// Отыскание разумных корней полиномов с целыми коффициентами.
// Употребляется предоженное Дж.Пеком расширение вычисления полинома
// способом Горнера.
// !!! Коэффициенты полинома записываются, начиная со свободного члена !!!
//
begin
var L:=new Listlt;fractiongt;; // вынужденное: метод время от времени дает дубликаты
(var a0, var an):=(абс(Self.First),абс(Self.Last));
for var p:=1 to a0 do begin
if a0 mod plt;gt;0 then continue;
for var q:=1 to an do begin
if an mod qlt;gt;0 then continue;
var g:=Self.First; (var f, var t):=(g,p);
foreach var k in Self.Skip(1) do begin
var r:=k*t; (f,g,t):=(f*q+r,-g*q+r,t*p);
end;
if f=0 then L.Add((p,q));
if g=0 then L.Add((-p,q))
end
end;
Result:=L
end;
function RedFrac(Self:fraction):fraction; extensionmethod;
begin
(var p,var q):=Self;
var s:=sign(p*q);
(p,q):=(абс(p),абс(q));
(var a,var b):=(p,q);
while blt;gt;0 do begin a:=a mod b; Swap(a,b) end;
Result:=(s*p div a,q div a)
end;
function Beautify(Self:sequence of fraction):sequence of string;
extensionmethod;
begin
Result:=Self.Select(e-gt;e.RedFrac).Distinct.OrderBy(x-gt;x[0]/x[1]).
Select(e-gt;e[0]+(e[1]lt;gt;1?'/'+e[1]:''))
end;
begin
ReadArrInteger(4).RatFact.Beautify.Println
end.
Образцы
1) -36x+3x+14x+3 = 0
3 14 3 -36
-1/3 3/4
2) (x-1)(x+2)(x+3/5) = 0; 5x+8x-7x-6 = 0
-6 -7 8 5
-2 -3/5 1
Коля Селефонов
Спасибо большое
Максим
Программка хорошая но там есть оплошности она выводит не так корешки тоесть он мне пишет 1/2 1/4 1/5 где 2 4 5 корешки
Вестениус
Милена
1x^3 -11x^2 + 38x -40
Виталий Мартиконис
Вы просто нигде не написали, что коэффициенты необходимо вводить напротив))))
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
выпиши в свою тетрадь те правила этикета которые тебе не были
Разные вопросы.
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
10) Килограмм конфет дороже килограмма печенья на 52 р. За 8
Математика.
Во сколько раз число атомов кислорода в земной коре больше числа
Химия.
Облако тегов