您现在的位置: 捷凌网安 >> 编程语言 >> Delphi编程 >> 正文
Delphi中随机函数Random应用两则

作者:佚名 责任编辑:左决 点击数: 更新时间:2008-2-16 5:55:00

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

  • 上一篇文章:

  • 下一篇文章: 没有了
  •  
    最进更新
    普通文章VC++设计超强仿QQ自动伸缩窗04-17
    推荐文章基于HOOK和MMF的Win密码渗透04-17
    推荐文章几种VC++数据库开发技术的相04-17
    普通文章多线程、Socket技术及委托技04-11
    推荐文章VB.Net连接各种数据库的几种04-11
    普通文章VB.NET中的多窗体编程:升级04-11
    普通文章用VB.NET定制Windows控件04-11
    普通文章VB.NET中监视文件夹的变化04-11
    普通文章VB.NET中对象的克隆04-11
    推荐文章VB.NET中的TextBox控件详解04-11
     
    推荐文章
    推荐文章基于HOOK和MMF的Win密码渗透04-17
    推荐文章几种VC++数据库开发技术的相04-17
    推荐文章VB.Net连接各种数据库的几种04-11
    推荐文章VB.NET中的TextBox控件详解04-11
    推荐文章在VB.NET中进行抓屏04-11
    推荐文章VB.Net开发的长内容自动分页04-11
    推荐文章VB.NET中快速访问注册表技巧04-11
    推荐文章PHP5手动最简安装方法03-07
    推荐文章完全讲解PHP+MySQL的分页显示03-07
    推荐文章Linux Shell元字符知识笔记02-21
     
    热点文章 
    普通文章VC++设计超强仿QQ自动伸缩窗04-17
    推荐文章基于HOOK和MMF的Win密码渗透04-17
    推荐文章几种VC++数据库开发技术的相04-17
    普通文章VB.NET中的多窗体编程:升级04-11
    普通文章用VB.NET定制Windows控件04-11
    普通文章VB.NET中对象的克隆04-11
    推荐文章VB.NET中的TextBox控件详解04-11
    普通文章VB/VB.NET/C#导出到Excel的方04-11
    普通文章如何通过VB.NET获取网卡地址04-11
    普通文章VB.NET中使用ListView控件的04-11

    | 设为首页 | 加入收藏 | 联系站长 | 广告服务 | 友情链接 | 版权申明 | 网站地图 |

    在线交流 捷凌网安主群:51649627
    Copyright 2007-2008 © 捷凌网安. All rights reserved.
    备案序号:蜀ICP备08001812号