Найти НОД 2-х многочленов, используя алгоритм Евклида - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Алгоритм основан на том факте, что для любых двух многочленов от одного переменного, f(x) и g(x), существуют такие многочлены q(x) и r(x), называемые соответственно частное и остаток: f(x) = g(x)∙q(x) + r(x)

Решение задачи: «Найти НОД 2-х многочленов, используя алгоритм Евклида»

textual
Листинг программы
uses crt;
var k1,k2,k3:array[1..100] of real;
i,z,q,j,s1,s2:integer;
begin
  clrscr;
  write('Введите  степень большего многочлена: ');
    readln(z);
    z := z + 1;
  write('Введите степень меньшего многочлена: ');
    readln(q);
    q := q + 1;
  writeln('Введите коэффициенты делимого: ');
    for i := 1 to z do
    read(k1[i]);
  writeln('Введите коэффициенты делителя: ');
    for i := 1 to z do
    if i <= z-q then k2[i] := 0 else readln(k2[i]);
      j := 0;
      s1 := 0;
      repeat
        repeat
        s2 := 1;
        for i := 1 to z do
        if k2[i] = 0 then
         s2 := s2 + 1;
         s1 := s1 + 1;
        if s2 >= s1 then
          begin
            j := j + 1;
            k3[j] := k1[s1]/k2[s2];
            for i := s1 to z do
             k1[i] := k1[i] - k2[s2+i-s1]*k3[j];
          end;
         until (s2 < s1) and (k2[i]<>0);
      until k3[i]=0;
      writeln('Коэффициенты поученного многочлена (Нод): ');
   for i := 1 to s1-1 do
    write(k3[i],' ');
    writeln;
    writeln('Остаток: ');
     for i := s1 to z do
     write(k1[i],' ');
end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы