Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2011, 20:13   #1
nulyjarden
Пользователь
 
Регистрация: 03.04.2010
Сообщений: 26
По умолчанию Из Pascal в Delphi

Доброго времени суток.

Мне нужно перенести программу написанную в Pascal, в Delphi.
Программа находит кратчайший остов взвешенного неориентированного графа методом Прима.
Вот код в Pascal
Код:
Program prim;
uses Crt;var a:array[1..100,1..100] of integer;
 t,min,x,y,u,i,j,k,l,m,n,cost:longint; 
b,c:array[1..100] of integer;
begin clrscr; 
writeln;
 write('Vvedite Razmer Massiva: '); 
readln(n); 
for i:=1 to n do  
for j:=1 to n do 
a[i,j]:=32000; 
writeln('Vvedite Kolichestvo Vvodimih Elementov: '); 
readln(m);
 for i:=1 to m do begin   
Writeln('Vvedite Aderess(x,y) i Harakteristiku #',i,':');   
readln(k,l,cost);
 a[k,l]:=cost;   
a[l,k]:=cost;  
end;
 k:=0; 
u:=1;
 c[1]:=1;
 b[u]:=1;
 while u<n do  begin   
min:=32000;  
 for i:=1 to u do   
if b[i]>0 then   begin    
t:=b[i];    
for j:=1 to n do      
if (a[t,j]<min) and (c[j]=0) then begin 
min:=a[t,j]; 
y:=t; 
x:=j;
 end;   
end;  
 inc(u); 
  b[u]:=x;  
 c[x]:=1;   
k:=k+a[y,x];   
a[y,x]:=32000;   
a[x,y]:=32000;  
end;
 Writeln('Rezultat: ',k);
 readkey;
 end.
Вот что я написал в Delphi.
В ComboBox выбирается размерность StringGrid(Без фиксированных линий). В StringGrid- вводится матрица.
Помогите правильно перенести ее в Delphi.
Код:
procedure TForm1.btn1Click(Sender: TObject);
Var
  a:array[1..100,1..100] of integer;
 t,min,x,y,u,i,j,k,l,m,n,cost:integer;
b,c:array[1..1000] of integer;
begin
  for i:=1 to StrToInt(Cbb1.Text) do
    for j:=1 to StrToInt(Cbb1.Text) do
      a[i,j]:=32000;
  for i:= 1 to strngrd1.RowCount do begin
    for j:= 1 to strngrd1.ColCount do
      a[i,j]:= StrToInt(strngrd1.Cells[i-1,j-1]);
  end;
  k:=0;
  u:=1;
  c[1]:=1;
  b[u]:=1;
  while u< StrToInt(Cbb1.Text) do  begin
    min:=32000;
    for i:=1 to u do
      if b[i]>0 then
      begin
        t:=b[i];
        for j:=1 to n do
        if (a[t,j]<min) and (c[j]=0) then
        begin
          min:=a[t,j];
          y:=t;
          x:=j;
        end;
      end;
    inc(u);
    b[u]:=j;
    c[j]:=1;
    lbl2.Caption:= IntToStr(t);
    k:= k+ a[t,j];
    a[t,j]:=32000;
    a[j,t]:=32000;
  end;
  lbl1.Caption:= IntToStr(k);
end;
nulyjarden вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из Delphi в Pascal pilot76 Помощь студентам 2 09.01.2010 16:08
Pascal--->Delphi. MoxFalder Помощь студентам 15 05.11.2008 23:05
из Delphi в Pascal sanek0322 Фриланс 2 17.12.2007 21:33