Страница 1 из 1

Вопрос по типу Int64

Добавлено: 15 дек 2006, 18:22
oif
Почему при изменении типа integer на int64,программа все равно не может работать с большими числами?
Вот код программы.
Помогите кто знает.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var a,b,r,m,n,d: (integer)int64;
begin
Randomize;
m:=strtoint(edit2.text);
d :=random(m);
n:=d;

while n<>1 do begin
a:=m;b:=n;

while b<>0 do begin
r:= a mod b;
a:=b;b:=r;
end;
if a=1 then begin edit1.text:=inttostr(n);exit; end;
n:=n-1;
end;
end;
end.

Re: Вопрос по типу Int64

Добавлено: 15 дек 2006, 18:33
oif
oif писал(а):Почему при изменении типа integer на int64,программа все равно не может работать с большими числами?
Вот код программы.
Помогите кто знает.
Вопрос исчерпан.
Надо было строковые значения переводить в переменные с помощью strtoint64.

Re: Вопрос по типу Int64

Добавлено: 15 дек 2006, 18:37
Duncon
Ну если у тебя Int64 то и юзай StrToInt64
Далее зачем Randomize; вызываешь? если следом random...
И что сделать в итоге хочешь?
И зачем столько лишних переменных если можно с одной играться...

Re: Вопрос по типу Int64

Добавлено: 15 дек 2006, 18:42
oif
Да этот пример который я постоянно меняю,поэтому столько абро кадабры.
Спасибо за замечания.

Re: Вопрос по типу Int64

Добавлено: 16 дек 2006, 05:08
Oleg_Rus
&quot писал(а):зачем Randomize; вызываешь? если следом random...
в некоторых случаях Random не реагирует если не вызван Randomize

Re: Вопрос по типу Int64

Добавлено: 18 дек 2006, 10:34
Игорь Акопян
если мне склероз не изменяет - Randomize нужен один раз (например в начале программы) для инициализации генератора.