Показать сообщение отдельно
Старый 30.09.2006, 13:32     # 1
Yurij
Member
 
Аватар для Yurij
 
Регистрация: 30.05.2003
Адрес: Литва
Пол: Male
Сообщения: 329

Yurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царстве
Перевод программы из Pascal на Delphi

Привет всем!
У меня такая проблема:
у меня есть программа по расчёту детерминанта на Паскале. Теперь её попросили перевести на Delphi, с которым я почти вообще не работал.
Суть в том, что нужно просто создать форму с окном для ввода информации (edit), поле для ответа(label) и кнопку для начала осуществления расчёта.
Может кто нибудь поможет?
Цитата:
program mat;
//---------types-----------------
type
matrix = array [1..50, 1..50] of real;
temp_matrix = array [1..50] of real;
//------------procedures--------------------
procedure ent(var mat_en : matrix; row, col : byte);
var
i, j : byte;
begin
for i := 1 to row do
for j := 1 to col do
read(mat_en[i,j]);
end;
//*******************************************************
procedure det_matrix(var mat_det : matrix; n, k, i : byte);
var
koef : real;
mat_tmp : temp_matrix;
j : byte;
begin
koef := mat_det[i,k]/mat_det[k,k]*(-1);

for j := 1 to n do
mat_tmp[j] := mat_det[k,j]*koef;

for j := 1 to n do
mat_det[i,j] := mat_det[i,j] + mat_tmp[j];

for j := 1 to n do
mat_tmp[j] := 0;
end;
//****************************************
procedure tikr(var mat_tikr : matrix; n, k : byte); {proverka}
var
j, z : byte;
tmp : real;
begin
for z := k+1 to n do
if mat_tikr[z,k] <> 0 then
begin
for j := k to n do
begin
tmp := mat_tikr[k,j];
mat_tikr[k,j] := mat_tikr[z,j];
mat_tikr[z,j] := tmp;
end;
break;
end;
end;
//------------varibles-----------------
var
n, i, k : byte;
mat : matrix;
det : real;
//-------------code--------------------
begin
write('vvedite kollichestvo strok i stolbcov matricy: ');
read(n);
writeln('vvedite elementy matricy: ');
ent(mat, n, n);

k := 1;
while k < n do
begin
if mat[k,k] = 0 then
tikr(mat, n, k)
else
begin
for i := k+1 to n do
if mat[i,k] <> 0 then
det_matrix(mat, n, k, i);
inc(k);
end;
end;

det := 1;

for i := 1 to n do
det := det * mat[i,i];

write('Determinant raven: ',det:3);
end.
Yurij вне форума