imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 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 вне форума  
Старый 30.09.2006, 13:54     # 2
Alex_TAV
Junior Member
 
Аватар для Alex_TAV
 
Регистрация: 24.08.2006
Адрес: Омск
Сообщения: 188

Alex_TAV Путь к славе только начался
не понял проблемы. Delphi особенно хорош своей наглядностью, всавь поле edit и бери в программе его значение как edit1.Text, преобразуя StringToInt, для вывода в label1.Caption любую строковую переменную.
Вообщем RTFM и все будет хорошо.
Alex_TAV вне форума  
Старый 30.09.2006, 14:22     # 3
Yurij
Member
 
Аватар для Yurij
 
Регистрация: 30.05.2003
Адрес: Литва
Пол: Male
Сообщения: 329

Yurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царстве
Что так теоретически делать надо я понимаю - а вот практически это реализовать за отсутствием опыта не получается
Yurij вне форума  
Старый 30.09.2006, 14:44     # 4
Alex_TAV
Junior Member
 
Аватар для Alex_TAV
 
Регистрация: 24.08.2006
Адрес: Омск
Сообщения: 188

Alex_TAV Путь к славе только начался
Цитата:
Сообщение от Yurij
Что так теоретически делать надо я понимаю - а вот практически это реализовать за отсутствием опыта не получается
что именно не получается? Есть опыт в Паскале, ну так в Delphi все правила те же. Тебе конкретно пример привести? Ну типа -
a:=StringToInt(edit1.Text); // это взять переменныю
label1.Caption:=IntToStr(result); // вывести результат
Alex_TAV вне форума  
Старый 30.09.2006, 14:47     # 5
Yurij
Member
 
Аватар для Yurij
 
Регистрация: 30.05.2003
Адрес: Литва
Пол: Male
Сообщения: 329

Yurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царствеYurij Луч света в тёмном царстве
Да забацать самый простенький интерфейс не выходит, точнее связать его.
Т.е. вызов процедур... их переменные... вообщем глухой лес
Yurij вне форума  
Старый 02.10.2006, 06:42     # 6
Alex_TAV
Junior Member
 
Аватар для Alex_TAV
 
Регистрация: 24.08.2006
Адрес: Омск
Сообщения: 188

Alex_TAV Путь к славе только начался
Я все еще не понимаю какие проблемы???
ставишь кнопку, на ее нажатие устанавливаешь свою процедуру вычеслений и все.
Alex_TAV вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 01:19.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.