基本数据类型与表达式05 - 零基础入门学习Delphi006
这节课就简单多了,涉及到的基本概念在前面已经用到了。赋值语句,编程的最基本语句。有两种型式:变量名 := 表达式对象.属性名 := 表达式最需要注意的是delphi赋值用 := 而不是 =下面最说说delphi的常用函数和过程,主要分为数学类函数、字符类函数、日期时间类函数和顺序类函数,实际上这里说的函数也包括一些过程,本课主要介绍前两类。数学类函数
函数说明参数类型返回值类型
Abs(x)绝对值函数,返回x的绝对值整型或实型与参数相同,但具体是什么整型实型不清楚,帮助中也没说清
Trunc(x)取整函数1,返回x的整数部分ExtendedInt64
Round(x)取整函数2,对x四舍五入取整ExtendedInt64
Int(x)取整函数3,返回x的整数部分ExtendedExtended
Frac(x)取小数函数,返回x的小数部分ExtendedExtended
Sqr(x)平方函数,返回x的平方ExtendedIntegerExtendedInteger
Sqrt(x)平方根函数,返回非负数x的平方根ExtendedExtended
Sin(x)正弦函数,返回弧度制x的正弦值ExtendedExtended
Cos(x)余弦函数,返回弧度制x的余弦值ExtendedExtended
ArcTan(x)反正切函数,返回x的反正切的弧度值ExtendedExtended
Exp(x)e为底的指数函数,返回e的x次方RealReal
Ln(x)自然对数函数,返回x的自然对数RealReal
Rondom(x)随机函数,返回大于等于0小于x的随机数Integer整数
Rondom随机函数,返回大于等于0小于1的随机数-Real
参数的类型虽然的Extended但实际上数据可以是任何实型,甚至是整型,这里选用Extended占字节最多是实型,其他的实型的数据都在它的范围之内,同理Int64也是一样。返回值的类型的Int64 / Extended也能赋值给任何整型 / 实型。Round函数与python并不是严格意义的四舍五入,有人称其为四舍入五成双,举个例子,Round(3.5)为4,而Round(2.5)却不是3而是2,这是因为小数部分为0.5时,它的舍入以形成为整数为偶数为准,但当比2.5大一点点,如2.5000001,得到的值就是3了。Int(x)与Trunc(x)的差别是返回值的数据类型不同。使用Random前最好加上Randomize,否则产生的第一个随机数总是0,且后面的一若干随机数都是同一序列的。我们看到有反正切却没有正切,有Ln却没有Log,这是因为还有不少数学函数在另外的单元中--math单元。Delphi的单元与python的模块有一定的相似性。要想使用这些函数,就必须先引用单元,在Interface后uses引导的部分。与python不同的是,不用在函数名前加上单元名。实际上上面的函数也在一个单元中,system单元,只不过这个单元delphi已缺省引用了。
编写的2个小程序也非常简单:计算不同的函数值
随机产生2个数,你给出相加的值,由程序来验证。
看看cot怎么写的 数学类函数里的Mandom写成Mondom了 本帖最后由 charwavid 于 2023-11-2 16:36 编辑
“我的Tan函数用不了,下载站长写的代码可以用。”
问题在于没用引入Math。 本帖最后由 charwavid 于 2023-11-2 20:32 编辑
对函数和Delphi语法不熟,写了一下午,写了一个和楼主不一样的代码。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
var
x, y : Real;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize;
x := Random(10);
y := Random(10);
Edit1.Text := FloatToStr(x);
Edit2.Text := FloatToStr(y);
Edit3.Text := '';
end;
procedure TForm1.Button2Click(Sender: TObject);
var
_x, _y : Real;
begin
Randomize;
_x := Random;
_y := Random;
//方法1
//x := StrToFloat(FormatFloat('0.00', _x));
//y := StrToFloat(FormatFloat('0.00', _y));
//方法2
x := StrToFloat(Format('%.2f',));
y := StrToFloat(Format('%.2f',));
Edit1.Text := FloatToStr(x);
Edit2.Text := FloatToStr(y);
Edit3.Text := '';
//Edit3.Text := FloatToStr(x + y);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
If (Edit1.Text = '') Or (Edit2.Text = '') Then
ShowMessage('请点击生成按钮')
Else If Edit3.Text = '' Then
ShowMessage('请输入答案')
Else If Edit3.Text = FloatToStr(x + y) Then
ShowMessage('答案正确')
Else
ShowMessage('答案错误');
end;
end.
charwavid 发表于 2023-11-2 15:42
“我的Tan函数用不了,下载站长写的代码可以用。”
问题在于没用引入Math。
是的!视频都没说
页:
[1]