120 likes | 314 Views
Тема урока : Многочлены с комплексными коэффициентами. Изучение темы направлено на достижение учащимися следующих целей:. O 1 - Распознавать многочлены с комплексными коэффициентами O 2 - Применять алгоритм деления многочленов
E N D
Тема урока: Многочлены с комплексными коэффициентами
Изучение темы направлено на достижение учащимися следующих целей: O1 - Распознавать многочлены с комплексными коэффициентами O2 - Применять алгоритм деления многочленов O3 - Определять различными способами значения некоторого многочлена O4 - Использовать свойства делимости многочленов в различных контекстах O5 - Вычислять корни многочлена. О6 - Применять алгоритмы решения систем линейных уравнений методом Гаусса
Для реализации этих целей : • Я хочу … • Я могу … • Я умею … • Я делаю …
program metoda_eliminarii_lui_Gasuss; uses crt; const nmaxlin=10; nmaxcol=10; type vector=array[1..nmaxcol] of real; matr_coef= array[1..nmaxlin,1..nmaxcol] of real; var b,x:vector; a:matr_coef; n,m:integer; prima,er:boolean;
procedure schimb(var a,b:real); var temp:real; begin temp:=a; a:=b; b:=temp; end;
procedure citeste (var a:matr_coef;var b:vector;var n,m: integer); { citeste valorile lui n si matricele a,b } var i,j:integer; begin writeln; repeat write('Dati numarul de ecuatii n='); readln(n); if not prima then clrscr else prima:=false; m:=n until n<nmaxlin; if n>1 then begin for i:=1 to n do begin writeln('ecuatia',i:3); for j:=1 to n do begin write(j:3,':'); read(a[i,j]) end; write('termenul liber b:'); read(b[i]); readln end; end; end;
procedure tipar_matrice(a:matr_coef;b:vector); vari,j:integer; begin writeln('matriceainitialaeste:'); for i:=1 to n do begin for j:=1 to m do write(a[i,j]:8:3); writeln(':',b[i]:8:3) end; writeln end;
procedure afisare; { afisaresolutii } var i:integer; begin writeln('solutiilesunt: '); for i:=1 to m do write(x[i]:10:3); writeln end;
procedure gauss(a:matr_coef;b:vector; var x:vector;ncol:integer); { solutiadupametoda de eliminare Gauss } var c:matr_coef; { matrice de lucru cu nlin,ncol } lib:vector; { vector de lucru cu ncol } i,j,i1,k,l,n:integer; temp,sum,t,curent,amax:real
begin n:=ncol; er:=false; for i:=1 to n do begin { copiere in matrice de lucru } for j:=1 to n do c[i,j]:=a[i,j]; lib[i]:=b[i] end; for i:=1 to n-1 do { determinalinia pivot avandelementul maxim } begin { pecoloana i1 } amax:=abs(c[i,i]); l:=i; i1:=i+1; for j:=i1 to n do begin { determinaelementul maximal } curent:=abs(c[j,i]); if curent>amax then begin amax:=curent; l:=j end end; if amax=0.0 then er:=true else begin if l<>i then begin { interschimbaliniilesauecuatiilepentru a pune elementul maxim pediagonalaprincipala } for j:=1 to n do schimb(c[l,j],c[i,j]); schimb(lib[l],lib[i]); end; for j:=i1 to n do begin t:=c[j,i]/c[i,i]; { impartelinia pivot } for k:=i1 to n do c[j,k]:=c[j,k]-t*c[i,k]; lib[j]:=lib[j]-t*lib[i] end end end;
if c[n,n]=0.0 then er:=true else begin x[n]:=lib[n]/c[n,n]; i:=n-1; { fazasubstitutiei inverse } repeat sum:=0.0; for j:=i+1 to n do sum:=sum+c[i,j]*x[j]; x[i]:=(lib[i]-sum)/c[i,i]; i:=i-1 until i=0 end; if er then writeln('eroare! matricesingulara!'); end;
begin { programul de baza } prima:=true; clrscr; repeat citeste(a,b,n,m); tipar_matrice(a,b); if n>1 then begin gauss(a,b,x,n); if not er then afisare; end until n=0; end.