Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите перевести с Pascal на Delphi [D7, XP]


Страницы:   1 2

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.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо