![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите перевести с Pascal на Delphi [D7, XP]
Andrey__ © (2006-12-05 11:54:00)Всем привет ! И в Паскале и в Дельфи плохо шарю.. Погомите плиз. Заранее спасибо!
program Bag;
{$APPTYPE CONSOLE}
uses
SysUtils, windows;
const N=19; {размер то ли рюкзака то ли шмотки}
const M=19; {размер то ли рюкзака то ли шмотки}
Type Item=record
size, val, items:integer
end;
var
Items :array [0..N] of Item;
D :array [0..M] of integer;
D1:array [0..M] of integer;
a:integer;
h,g,z: real;
function Knap(m: integer): integer;
var i,space,max,maxi,t:integer;
begin
max:=0;
maxi:=0;
if D[M]=0 then
begin
for i:=0 to n-1 do
begin
space:=M-items[i].size;
if space>=0 then
begin
t:=knap(space)+items[i].val;
if t>max then
Begin
max:=t;
maxi:=i;
end;
end;
end;
D[M]:=max;
D1[M]:=maxi;
end;
knap:=D[m];
end;
begin
h:=gettickCount();
items[0].size:=3; items[0].val:=4;
items[1].size:=4; items[1].val:=5;
items[2].size:=5; items[2].val:=10;
items[3].size:=6; items[3].val:=12;
items[4].size:=7; items[4].val:=13;
g:=gettickCount();
z:=g-h;
writeln('Bpem9I ',z:5:3);
writeln(a]);
readln;
end.
iXT (2006-12-06 09:30:00) [1]
> Elen © (06.12.06 07:52) [39]
Сомневаюсь я что он с консолькой. Скорее скатал по чистую [21]
> Andrey__ (06.12.06 06:23) [37]
Уважаемый. Как можно ответить на вопрос, когда вы даже не удосужились указать место в котором возникает ошибка?
А вообще на подобное принято получать ответы вроде "F8 тебе поможет"
Elen (2006-12-06 07:52:00) [2]
> Andrey__
Э-Э а в консольке разве можно рулить ShowMessage?
Loginov Dmitry (2006-12-06 07:43:00) [3]> Пожалуйста подскажите в чем ошибка
В коде видимо. Точнее трудно сказать.
Andrey__ (2006-12-06 06:23:00) [4]Привет Мастера ! Еще раз возвращаюсь к этой теме, сегодня хотел по пребывать использовать функцию Knap, таким образом:
h:=gettickCount();
items[0].size:=3; items[0].val:=4;
items[1].size:=4; items[1].val:=5;
items[2].size:=5; items[2].val:=10;
items[3].size:=6; items[3].val:=12;
items[4].size:=7; items[4].val:=13;
g:=gettickCount();
z:=g-h;
ShowMessage(IntToStr(Knap(19)));
Выходит ошибка, что Стек выходит за пределы (Stack Overflow)
Пожалуйста подскажите в чем ошибка и как ее исправить. Заранее благодарю.
iXT (2006-12-05 13:22:00) [5]
> Вообще-то, код из [0] является консольным приложением делфи
> и прекрасно компилируется к тому же.
Вот и я про то!!!
iXT (2006-12-05 13:21:00) [6]
> Иди проспись... Может больше соображать будишь.
Я спал спасибочки
> Та функция которую он написал сам же, прекрасно компилируется
> в Delphi, я проверил чтобы удостоверится. Закинул откомпилированный
> код, чтобы он понял что не нужно ему высылать код на электронку
Так кто спорит с этим?
> Так в чем проблема?
Проблема в том, что он не сможет все это изложить перед строгим, "но справедливым" преподавателем, пока не разберется что он делает.
> Кстати, а при чем тут TForm. В исходном тексте никаких форм
> не было
Вот предположим, что он так и спросит, что на это скажет автор
Плохиш (2006-12-05 13:18:00) [7]
> from kz (05.12.06 13:14) [33]
> 2 iXT
>
> Иди проспись... Может больше соображать будишь. Та функция
> которую он написал сам же, прекрасно компилируется в Delphi,
Вообще-то, код из [0] является консольным приложением делфи и прекрасно компилируется к тому же.
from kz (2006-12-05 13:14:00) [8]Удалено модератором
iXT (2006-12-05 13:13:00) [9]Кстати, а при чем тут TForm. В исходном тексте никаких форм не было. :)
iXT (2006-12-05 13:11:00) [10]
> Эту функцию не я писал, я такую не смог бы написать сам
Это мы поняли еще с [0]
Andrey__ (2006-12-05 13:10:00) [11]Эту функцию не я писал, я такую не смог бы написать сам. А проблема была в том, что лишнего добавил (End;) был лишний, и еще что-то...
iXT (2006-12-05 13:09:00) [12]
> from kz (05.12.06 13:01) [21]
> unit Unit1;
Теперь объясняй откуда это взялось, и куда program подевался, и причем тут TForm
from kz (2006-12-05 13:08:00) [13]
> А баттон кинул, чтобы оправдать что?
Это я так, забыл убрать))))
clickmaker (2006-12-05 13:08:00) [14]
> [25] Думкин © (05.12.06 13:04)
какая ж песня без баяна, какая ж форма без батона?
Andrey__ (2006-12-05 13:07:00) [15]Теперь все понял, ошибка была в самом простом)))
Думкин (2006-12-05 13:04:00) [16]
> Button1: TButton;
А баттон кинул, чтобы оправдать что?
from kz (2006-12-05 13:03:00) [17]Удалено модератором
iXT (2006-12-05 13:03:00) [18]
> Andrey__ (05.12.06 12:53) [17]
> Мастера, мне очень надо. Когда пытаюсь компилировать в Delphi
> у меня пишет: Expected ':' but '=' found
>
> Если у вас компилируется этот код, плиз скиньте мне на почту.
> Буду очень признателен. Writeln,readlen - можете выключить,
> главное сама функция.
Вот это номер:
"Вот код. Если у вас он работает скиньте его на мыло. :)"
Ты же его сам писал?
Я понтмаю, что очень надо. Поди зачет завтра.
Куда ты этот код вставлял?
clickmaker (2006-12-05 13:02:00) [19]
> Если у вас компилируется этот код, плиз скиньте мне на почту
так тебе уже здесь сказали: компилится. Зачем в почту-то еще раз писать?
from kz (2006-12-05 13:01:00) [20]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
Item = record size,val,items:integer;
end;
type
TForm1 = class(TForm)
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;
const N=19; {ðàçìåð òî ëè ðþêçàêà òî ëè øìîòêè}
const M=19; {ðàçìåð òî ëè ðþêçàêà òî ëè øìîòêè}
var
Form1: TForm1;
Items :array [0..N] of Item;
D :array [0..M] of integer;
D1:array [0..M] of integer;
a:integer;
h,g,z: real;
implementation
{$R *.dfm}
function Knap(m: integer): integer;
var i,space,max,maxi,t:integer;
begin
max:=0;
maxi:=0;
if D[M]=0 then
begin
for i:=0 to N-1 do
begin
space:=M-items[i].size;
if space>=0 then
begin
t:=knap(space)+items[i].val;
if t>max then
Begin
max:=t;
maxi:=i;
end;
end;
end;
D[M]:=max;
D1[M]:=maxi;
end;
knap:=D[m];
end;
end.