| 网站首页 | 新闻快报 | 软件教程 | 硬件教程 | 设计学院 | Q Q 专区 | 编程开发 | 网络安全 | 
您现在的位置: 浩扬网络 >> 编程开发 >> delphi >> 教程正文
Delphi中随机函数Random应用两则
作者:不详 文章来源:安全中国 点击数: 更新时间:2006-8-5 0:59:53

1. 自动随机出题

  你也许有这样的经历:孩子刚上学,数学老师要你每天给出10或者20道算术题,作为你孩子的家庭作业,你是否有点烦?别着急,电脑可帮你忙!

在Delphi中,有一随机函数,是这样定义的:

function Random [ ( Range: Integer) ];

其中,参数Range为一整数,

该函数返回值也为整数,其范围为:

0< =Random(Range)< Range   (指定Range)

0< =Random< 1   (不带参数Range)
  下面的过程for循环里第一条语句:在屏幕上输出九九表内乘法的随机题;第二条语句:在屏幕上输出一百以内的加法随机题。稍加修改,增加一些条件语句你即可得到得减法、除法及四则混合运算的随机题。当然,你也可以直接将结果输出在打印机的画布(Canvas)上,打印给你的孩子做。
procedure TForm1.Button1Click(Sender: TObject);

var

I: Integer;

begin

Randomize;

for I := 1 to 10 do begin

Canvas.TextOut(20,I*20,

IntToStr(Random(9)+1)+'×'+IntToStr(Random(9)+1)+'=');

Canvas.TextOut(220,I*20, 

IntToStr(Random(100))+'+'+IntToStr(Random(100))+'=');

end;

end;

  2. 随机产生体育彩票号码

  时下体育彩票在全国范围内风行,朋友们买彩票都嫌挑选号码较为头痛,要求我在电脑上想点办法。我想这无非是产生随机数,于是用Delphi的随机函数Random编写了一段程序,具体实现方法见如下程序(SportUnit.pas)。

unit SportUnit;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, 

Controls, Forms, Dialogs,

StdCtrls, Buttons, ExtCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;//以上用于放置七位号码

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

Timer1: TTimer;

Label8: TLabel;

Timer2: TTimer;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure Timer2Timer(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

timer1.Enabled:=True;

timer2.Enabled:=True;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

timer1.Enabled:=false;

timer2.Enabled:=false;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Randomize;

Label1.Caption:=IntToStr(Random(10));

Label2.Caption:=IntToStr(Random(10));

Label3.Caption:=IntToStr(Random(10));

Label4.Caption:=IntToStr(Random(10));

Label5.Caption:=IntToStr(Random(10));

Label6.Caption:=IntToStr(Random(10));

//随机产生0-9整数

Label7.Caption:=IntToStr(Random(5));

//随机产生0-4整数,第七位为特别号

Application.ProcessMessages;

//处理Windows消息,属简单多线程

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

close;

end;

procedure TForm1.Timer2Timer(Sender: TObject);

begin

Label8.Caption:=FormatDateTime('yyyy"年"m"月"d

"日"dddd',date)+'   '+TimeToStr(time);

end;

end.

  此程序段中的定时器Timer2只为显示时间秒而定义,按钮 BitBtn1和 BitBtn2可以只用一个(求逆反运算即可),所以该程序段还可优化精简。

【教程录入:残梦    责任编辑:残梦 】
发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
  • 上一篇教程:

  • 下一篇教程:
  • 网友评论:(评论内容只代表网友观点,与浩扬网络立场无关!)
    热门文章

    赞助商


    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 |