Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Задачи на Delphi
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 ]
Модераторы: paradise, KMA
  

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

Отправка ответа:
Имя пользователя   Вы зарегистрировались?
Пароль   Забыли пароль?
Сообщение

Использование HTML запрещено

Использование IkonCode разрешено

Смайлики разрешены

Опции отправки

Добавить подпись?
Получать ответы по e-mail?
Разрешить смайлики в этом сообщении?
Просмотреть сообщение перед отправкой? Да   Нет
 

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 ]

Форум работает на скрипте © Ikonboard.com