Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / 3

.docx
Скачиваний:
15
Добавлен:
04.04.2018
Размер:
175.23 Кб
Скачать

Задание:

Вариант

Контрольная система

Применяемый метод

4

Гаусса для вычисления корней системы

Код:

procedure TForm5.Button1Click(Sender: TObject);

var

a:array [0..10,0..10] of real;

x:array [0..10] of real;

n,k,i,j,m,l,ks:integer;

c,w,s:real;

label v;

label u;

begin

n:=(strtoint(edit3.text)); //порядок

for i:=0 to n-1 do //строка

for j:=0 to n do //столбец

a[i,j]:=strtofloat(stringgrid1.Cells[j,i]); //ввели

m:=1;

n:=n-1;

for i:=0 to (n-1) do begin //глобальная b//

if a[i,i]<>0 then

goto v //метка

else

while a[m,i]=0 do //столбец

m:=m+1;

if m>n then begin

break;

end else

for j:=i to n+1 do begin //2 b//

w:=a[i,j]; //меняем местами

a[i,j]:=a[m,j];

a[m,j]:=w;

end; //2 e//

v:c:=a[i,i]; //метка сюда

a[i,i]:=1;

for l:=(i+1) to (n+1) do begin //1 b/

a[i,l]:=a[i,l]/c;

for k:=(i+1) to n do

a[k,l]:=a[k,l]-a[i,l]*a[k,i];

end; //1 e/

end; //глоб e///

{обратный}

if a[n,n]=0 then begin

showmessage ('no');

break

end else

x[n]:=A[n,n+1]/A[n,n]; //х последнего порядка

k:=n-1; //порядок -1 (3-1)=2

while k>=0 do begin

s:=0;

for j:=k+1 to n do

s:=s+a[k,j]*x[j];

x[k]:=a[k,n+1]-s;

k:=k-1; //4-2

end;

for i:=0 to n do

memo1.Lines.add(floattostr(x[i]));

end;

end.

Результат:

Блок-схема

Ввод {ai}n-2,{bi}n-1,n

A[i,i]<>0

M:=1;

N:=n-1

M:=m+1

A[m,i]=0

A

+

-

+

m>n

end

-

+

end

Соседние файлы в папке Лабы