profile
Размещено 5 лет назад по предмету Информатика от maks764958

Составить программу на Паскале: Решение кубических уравнений по схеме Горнера. Если что прочитайте в интернете. Я над этой программой сижу 2 недели не могу сделать. Прошу помогите. Я так понял за ваше решение дают 99 баллов

  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 List<fraction>; // вынужденное: метод иногда дает дубликаты
      (var a0, var an):=(abs(Self.First),abs(Self.Last));
      for var p:=1 to a0 do begin
        if a0 mod p<>0 then continue;
        for var q:=1 to an do begin
          if an mod q<>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):=(abs(p),abs(q));
      (var a,var b):=(p,q);
      while b<>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->e.RedFrac).Distinct.OrderBy(x->x[0]/x[1]).
        Select(e->e[0]+(e[1]<>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, 4, 5
    2. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      Два примера даны с программой - Вы не посмотрели и там, как записано? Ну это уже, простите, из серии "Сам себе злобный Буратино"...
    3. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      Или когда что-то не так, Вы спешите окружающих во всех грехах обвинить, вместо того, чтобы сначала подумать, а не в себе ли дело?
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.