Chinaunix首页 | 论坛 | 博客
  • 博客访问: 544687
  • 博文数量: 252
  • 博客积分: 6057
  • 博客等级: 准将
  • 技术积分: 1635
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-21 10:17
文章分类

全部博文(252)

文章存档

2013年(1)

2012年(1)

2011年(32)

2010年(212)

2009年(6)

分类:

2010-08-12 16:24:07

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可以只用一个(求逆反运算即可),所以该程序段还可优化精简。

(出处:DelphiFans.com)

阅读(7223) | 评论(0)| 复制链接


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

阅读(239) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chulia200020012010-08-12 16:31:54

delphi中怎么调用随机函数[问题点数:50分,结帖人:lyq111] http://topic.csdn.net/t/20020821/20/959649.html 发表于:2002-08-21 20:54:56 楼主 delphi中怎么调用随机函数,最好能给个例子。 回复于:2002-08-21 20:58:53 #1楼 得分:10 procedure TForm1.Button1Click(Sender: TObject); var I: Integer; begin Randomize; I := Random(100); Caption := IntToStr(I); end; 回复于:2002-08-21 21:01:34 #3楼 得分:10 首先在FormCreate中初始化随机数 Randomize; 然后调用时使用如下: Random(i); Random返回0-1之间的随机数,i为一个整数, 例如 Random(30);则返回