Найти НОД 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д