Liliya
Новичок
|
Привет всем! Помогите пожалуйста! С чего мне начать писать игру Snake( самую простенькую)???
|
Всего сообщений: 1 | Присоединился: ноябрь 2008 | Отправлено: 26 нояб. 2008 23:43 | IP
|
|
sova
Новичок
|
Алгоритм Хошена-Копельмана. Есть ли реализация на Delphi?
|
Всего сообщений: 1 | Присоединился: ноябрь 2008 | Отправлено: 30 нояб. 2008 13:43 | IP
|
|
Slava
Новичок
|
Люди плиз помогите с задачкой !!! Дана целочисленная матрица А(N,M). Обнулить строки и столбцы матрицы , на пересечении которых стоит 0. при решении задачи можно воспользоваться дополнительным одномерным масивом . плиззз кто знает решите пожалуйсто ))
|
Всего сообщений: 1 | Присоединился: декабрь 2008 | Отправлено: 5 дек. 2008 10:45 | IP
|
|
dizpers
Новичок
|
Цитата: Guest написал 21 окт. 2008 14:05 Какой процедурой можно выделить знак переменной в Delphy 7? Например, целая часть выделяется с помощью процедуры Int(x), и т.п.
Всмысле + или - ? Если да, то функции\процедуры такой я что-то не припомню. И зачем тебе их использовать?! Делай так : if x > 0 then //если положительная if x < 0 then // если отрицательная
|
Всего сообщений: 4 | Присоединился: декабрь 2008 | Отправлено: 5 дек. 2008 12:05 | IP
|
|
KMA
Долгожитель
|
Всмысле + или - ? Если да, то функции\процедуры такой я что-то не припомню. И зачем тебе их использовать?! Делай так : if x > 0 then //если положительная if x < 0 then // если отрицательная
Или, если уж очень хочется, можно замутить функцию function single(x: real): boolean; begin if x >= 0 then single:=true else single:=false end; Функция вернет true в том случае, если знак положительный, и false? если знак минус.
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 9 дек. 2008 0:14 | IP
|
|
Reina8
Новичок
|
Здравствуйте! Такая проблемка, нужно реализовать алгоритм Дейкстры с возможностью выбора начальной и конечной вершиной и найти кратчайший путь, но граф задан с помошью списка дуг. Во время написания программы возникли проблемы связанные с массивами..Вроде все есть, а программа вылетает..Возможно при редактировании кода были допущены ошибки, которые мне уже сложно найти. Вобщем подскажите как можно что-либо подправить и исправить. unit Dejkstra; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, Spin, Buttons, ExtCtrls; const maxpath = 99999; maxv =16; type TForm1 = class(TForm) Bevel4: TBevel; FindBtn: TSpeedButton; Bevel2: TBevel; HelpBtn: TSpeedButton; StaticText1: TStaticText; StaticText4: TStaticText; StaticText5: TStaticText; StaticText6: TStaticText; StaticText7: TStaticText; StaticText8: TStaticText; StaticText10: TStaticText; StaticText11: TStaticText; StaticText9: TStaticText; StaticText12: TStaticText; StaticText14: TStaticText; StaticText15: TStaticText; StaticText16: TStaticText; StaticText17: TStaticText; StaticText18: TStaticText; StaticText19: TStaticText; StaticText20: TStaticText; StaticText21: TStaticText; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; StaticText22: TStaticText; StaticText23: TStaticText; StaticText24: TStaticText; StaticText25: TStaticText; StaticText26: TStaticText; StaticText27: TStaticText; StaticText28: TStaticText; StaticText29: TStaticText; StaticText30: TStaticText; StaticText31: TStaticText; StaticText32: TStaticText; StaticText33: TStaticText; StaticText34: TStaticText; StaticText35: TStaticText; StaticText36: TStaticText; StaticText37: TStaticText; StaticText38: TStaticText; StaticText39: TStaticText; StaticText40: TStaticText; StaticText41: TStaticText; StaticText42: TStaticText; StaticText43: TStaticText; StaticText44: TStaticText; StaticText45: TStaticText; Edit8: TEdit; Edit9: TEdit; Edit10: TEdit; Edit11: TEdit; Edit12: TEdit; Edit13: TEdit; Edit14: TEdit; Edit15: TEdit; Edit16: TEdit; Edit17: TEdit; Edit18: TEdit; StaticText46: TStaticText; StaticText47: TStaticText; Edit19: TEdit; Edit20: TEdit; StaticText13: TStaticText; StaticText48: TStaticText; StaticText49: TStaticText; ComboBox1: TComboBox; ComboBox2: TComboBox; ComboBox3: TComboBox; ComboBox4: TComboBox; ComboBox5: TComboBox; ComboBox6: TComboBox; ComboBox7: TComboBox; ComboBox8: TComboBox; ComboBox9: TComboBox; ComboBox10: TComboBox; ComboBox11: TComboBox; ComboBox12: TComboBox; ComboBox13: TComboBox; ComboBox14: TComboBox; ComboBox15: TComboBox; ComboBox16: TComboBox; ComboBox17: TComboBox; ComboBox18: TComboBox; ComboBox19: TComboBox; ComboBox20: TComboBox; ComboBox21: TComboBox; ComboBox22: TComboBox; ComboBox23: TComboBox; ComboBox24: TComboBox; ComboBox25: TComboBox; ComboBox26: TComboBox; ComboBox27: TComboBox; ComboBox28: TComboBox; ComboBox29: TComboBox; ComboBox30: TComboBox; ComboBox31: TComboBox; ComboBox32: TComboBox; ComboBox33: TComboBox; ComboBox34: TComboBox; ComboBox35: TComboBox; ComboBox36: TComboBox; ComboBox37: TComboBox; ComboBox38: TComboBox; ComboBox39: TComboBox; ComboBox40: TComboBox; Atbilde: TMemo; ComboBox41: TComboBox; SpinEdit2: TSpinEdit; ListBox1: TListBox; procedure HelpBtnClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FindBtnClick(Sender: TObject); private we: array [ 0..maxv-1,0..maxv-1 ] of integer; ps:integer; first:integer; ready: array[ 0..maxv-1 ] of boolean; paths: array[ 0..maxv-1 ] of word; nodes: array[ 0..maxv-1 ] of byte; MM:array[ 0..20, 0..20 ] of integer; procedure getweightsmatrix; procedure firstcountstep; procedure gocount; procedure showresults; function allareready:boolean; function getminpath:word; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.HelpBtnClick(Sender: TObject); begin ShowMessage('....'); end; procedure TForm1.FormCreate(Sender: TObject); var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,r,s,t,u,x,z,v,w,q,aa,bb,cc,zz,tt,ss,kk,dd,xx,vv,pp,uu,nn,ee,gg:integer; begin Edit1.Text:='0'; Edit2.Text:='0'; Edit3.Text:='0'; Edit4.Text:='0'; Edit5.Text:='0'; Edit6.Text:='0'; Edit7.Text:='0'; Edit8.Text:='0'; Edit9.Text:='0'; Edit10.Text:='0'; Edit11.Text:='0'; Edit12.Text:='0'; Edit13.Text:='0'; Edit14.Text:='0'; Edit15.Text:='0'; Edit16.Text:='0'; Edit17.Text:='0'; Edit18.Text:='0'; Edit19.Text:='0'; Edit20.Text:='0'; for i1:=1 to 20 do MM[1,i1]:=i1; for i1:=1 to 20 do MM[ i1,1 ]:=i1; a:=ComboBox1.ItemIndex; b:=ComboBox2.ItemIndex; MM[ a,b ]:=StrToInt(Edit1.Text); c:=ComboBox3.ItemIndex; d:=ComboBox4.ItemIndex; MM[ c,d ]:=StrToInt(Edit2.Text); e:=ComboBox5.ItemIndex; f:=ComboBox6.ItemIndex; MM[ e,f ]:=StrToInt(Edit3.Text); g:=ComboBox7.ItemIndex; h:=ComboBox8.ItemIndex; MM[ g,h ]:=StrToInt(Edit4.Text); i:=ComboBox9.ItemIndex; j:=ComboBox10.ItemIndex; MM[ i,j ]:=StrToInt(Edit5.Text); k:=ComboBox11.ItemIndex; l:=ComboBox12.ItemIndex; MM[ k,l ]:=StrToInt(Edit6.Text); m:=ComboBox13.ItemIndex; n:=ComboBox14.ItemIndex; MM[ m,n ]:=StrToInt(Edit7.Text); o:=ComboBox15.ItemIndex; p:=ComboBox16.ItemIndex; MM[ o,p ]:=StrToInt(Edit8.Text); r:=ComboBox17.ItemIndex; s:=ComboBox18.ItemIndex; MM[ r,s ]:=StrToInt(Edit9.Text); w:=ComboBox19.ItemIndex; q:=ComboBox20.ItemIndex; MM[ w,q ]:=StrToInt(Edit10.Text); u:=ComboBox21.ItemIndex; v:=ComboBox22.ItemIndex; MM[ u,v ]:=StrToInt(Edit11.Text); t:=ComboBox23.ItemIndex; x:=ComboBox24.ItemIndex; MM[ t,x ]:=StrToInt(Edit12.Text); dd:=ComboBox25.ItemIndex; zz:=ComboBox26.ItemIndex; MM[ dd,zz ]:=StrToInt(Edit13.Text); aa:=ComboBox27.ItemIndex; bb:=ComboBox28.ItemIndex; MM[ aa,bb ]:=StrToInt(Edit14.Text); ee:=ComboBox29.ItemIndex; gg:=ComboBox30.ItemIndex; MM[ ee,gg ]:=StrToInt(Edit15.Text); cc:=ComboBox31.ItemIndex; dd:=ComboBox32.ItemIndex; MM[ cc,dd ]:=StrToInt(Edit16.Text); ss:=ComboBox33.ItemIndex; tt:=ComboBox34.ItemIndex; MM[ ss,tt ]:=StrToInt(Edit17.Text); xx:=ComboBox35.ItemIndex; vv:=ComboBox36.ItemIndex; MM[ xx,vv ]:=StrToInt(Edit18.Text); uu:=ComboBox37.ItemIndex; pp:=ComboBox38.ItemIndex; MM[ uu,pp ]:=StrToInt(Edit19.Text); kk:=ComboBox39.ItemIndex; nn:=ComboBox40.ItemIndex; MM[ kk,nn ]:=StrToInt(Edit20.Text); end; procedure TForm1.FindBtnClick(Sender: TObject); begin ps:=ListBox1.Items.Count; getweightsmatrix; firstcountstep; gocount; showresults; end; procedure TForm1.GetWeightsMatrix; var i,j,z: integer; begin z:=0; for i:=0 to ps-1 do We[ i,i ]:= 0; for i:=0 to ps-1 do for j:=i+1 to ps-1 do if MM[ i+1,j+1 ]=StrToInt('') then begin We[ i,j ]:=MAXPATH+1; We[ j,i ]:=MAXPATH+1; end else begin inc(z); try We[ i,j ]:=MM[ i+1,j+1 ]; except MessageDlg('Owibka, vvedennie dannie ne sootvetstvujut celim 4islam!', mtError, [ mbOK ], 0); exit; end; if We[ i,j ]<0 then begin MessageDlg('Owibka:vvedennie dannie ne mogut bitj otricateljnimi', mtError, [ mbOK ], 0); exit; end; We[ j,i ] := We[ i,j ]; end; if 9>z then begin MessageDlg('Owibka: spisok reber 9<l<16!', mtError, [ mbOK ], 0); exit; end else if z>16 then begin MessageDlg('Owibka: spisok reber 9<l<16!', mtError, [ mbOK ], 0); exit; end; end; procedure TForm1.FirstCountStep; var i:integer; begin first:=-1; for i:=0 to ps-1 do if ListBox1.Selected[ i ] then first:=i; if (first=-1) then begin MessageDlg('Owibka, viberite na4alo puti!', mtError, [ mbOK ], 0); exit; end; for i:=0 to ps-1 do begin Ready[ i ]:= false; Nodes[ i ]:= first; Paths[ i ]:= We[ first,i ]; end; end; procedure TForm1.GoCount; var k, cur: integer; begin while not AllAreReady() do begin cur := GetMinPath; Ready[ cur ] := true; for k:=0 to ps-1 do if ((Ready[ k ]=false)and(Paths[ k ]>(Paths[ cur ]+We[ cur,k ]))) then begin Paths[ k ] := Paths[ cur ]+We[ cur,k ]; Nodes[ k ] := cur; end; end; end; procedure TForm1.ShowResults; var k, last: integer; str: string; begin Atbilde.Lines.Clear; Atbilde.Lines.Add('Rezultat:'); k:=ComboBox41.ItemIndex; str:=ListBox1.Items[ k ]+' ('+IntToStr(Paths[k])+')'; last:=Nodes[ k ]; if IntToStr(Paths[ k ])='34464' then Atbilde.Lines.Add('verwine ne soedeneni') else begin while last<>first do begin str:=ListBox1.Items[ last ]+' => '+str; last:= Nodes[ last ]; end; str:=ListBox1.Items[ first ]+' => '+str; Atbilde.Lines.Add(str) end; end; function TForm1.AllAreReady: boolean; var i: integer; begin Result := true; for i:=0 to ps-1 do if Ready[ i ]=false then Result := false; end; function TForm1.GetMinPath: word; var i, min, imin: integer; begin min:=MAXPATH+1; imin:=0; for i:=0 to ps-1 do if ((Ready[ i ]=false)and(Paths[ i ]<min)) then begin min:= Paths[ i ]; imin:= i; end; Result:= imin; end; end. Ошибку компилятор показывает уже при выполнении процедуры FirstCountStep. Надеюсь сможите подсказать где искать ошибку.
|
Всего сообщений: 1 | Присоединился: январь 2009 | Отправлено: 2 янв. 2009 3:20 | IP
|
|
Nastya Zanina
Новичок
|
Помогите пожалуйста, завтра задачу нужно показать преподавателю... Напечатать таблицу простых чисел, из интервала от A до B
|
Всего сообщений: 1 | Присоединился: февраль 2011 | Отправлено: 27 фев. 2011 17:43 | IP
|
|
elena92
Новичок
|
нужно найти корень уравнения на промежутке [0,3] методом простых итераций!!что я не так деляю?? function f(x:real):real; begin f:=sin(x)+0.5; end; procedure TForm1.Button1Click(Sender: TObject); //const e=1e-5; var a,b,e,x,m:real; begin e:=1*e-4; a:=0; b:=3; x:=a; m:=f(x); while abs(m-x)>=e do begin x:=m; m:=F(x); end; x:=m; Edit1.Text:=FloatToStr(x); end; end. (Сообщение отредактировал elena92 15 окт. 2012 1:48) (Сообщение отредактировал elena92 15 окт. 2012 1:48)
|
Всего сообщений: 6 | Присоединился: сентябрь 2012 | Отправлено: 14 окт. 2012 23:46 | IP
|
|
|