Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

Random number

Posted on 2001-07-03
7
208 Views
Last Modified: 2010-04-06
i got a problem in a code i made here it is:

function altdom (Zero:integer) : integer;
var
TD:TDateTime;
ms:word;
i,res:integer;
 a,b:array[1..3] of word;
 begin
      TD:=Now;
     DecodeTime(TD,a[1],a[2],a[3],ms);
      DecodeDate(TD,b[1],b[2],b[3]);
    res:=3;
     for i:=1 to ms do // replace the 10 in what number u want...
begin
        res:=a[1]*a[2]*a[3]+res;
        res:=res*(b[1]+b[2]-b[3])-ms;
         res:=res*a[1]-ms;
res:=res div b[3];
     end;
if res=0 then res:=ms*b[2];
      res:=(res mod 5) + res ;
      result:=abs(res mod zero); <---- this is probably the ugly mistake but i dont know what i should do about it :(
 end;

procedure TForm1.Button1Click(Sender: TObject);
begin
sleep(altdom(0)*3);
label1.caption := inttostr(altdom(StrToInt(Label5.caption)));
end;

i want the program to choose a random number from label5.caption, and i dont wana use Random(number)
ex if label5.caption := 1000 then it  chooses a number from 1000 ex 526
0
Comment
Question by:TeChNiCh
  • 2
  • 2
  • 2
  • +1
7 Comments
 
LVL 13

Expert Comment

by:Epsylon
ID: 6250737
The line "sleep(altdom(0)*3)" passes 0 to altdom, so "result:=abs(res mod zero)" causes a 'division by zero' error.
0
 

Expert Comment

by:didil
ID: 6251028
dear TeChNiCh,
   
   maybe you already know the problem, that no number can be divide by 0, neither can be mod, so you cannot have the result for modifying the number by zero. try another number.
0
 

Author Comment

by:TeChNiCh
ID: 6252056
Well, i know that but i want it to be mod with label5.caption but i have no clue how... if u know how it can be done in any way... then please tell me, there is prolly a easier thing to do, but i dont wana use Random()
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 13

Expert Comment

by:Epsylon
ID: 6252081
Sorry, but I don't understand what you want.....

And what is the sleep(altdom(0)*3) doing there? It doen't make any sense to me.....
0
 
LVL 5

Accepted Solution

by:
TheNeil earned 100 total points
ID: 6252254
Is there any specific reason why you don't want to use Random()? As a psuedo random routine you're code looks Ok but as everyone else has already said, passing 0 to it will cause divide by zero problems. Why not simply add a check to specifically look for zero when you come to the MOD at the end:

IF Zero = 0
THEN
  Result := ABS(res MOD ms)
ELSE
  Result := ABS(res MOD Zero);

Although I've used your ms value it really doesn't matter which number you choose (it's a random number generator after all - I just thought using ms again would liven things up a little)

The Neil =:)
0
 

Author Comment

by:TeChNiCh
ID: 6252648
TheNeil has a pretty cool solution
0
 
LVL 5

Expert Comment

by:TheNeil
ID: 6252973
Nope, The Neil just has an awful lot of luck. Thanks for the points

The Neil =:)
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Create Database on Android via Delphi dbExpress 3 111
SUM 2 INTEGER ARRAYS INTO 1 10 108
Dynamically Created Query 3 62
Wincontrol not (correctly) drawn 15 40
Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

856 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question