鱼C论坛

 找回密码
 立即注册
查看: 4321|回复: 5

[学习笔记] 基本数据类型与表达式05 - 零基础入门学习Delphi006

[复制链接]
发表于 2017-6-14 21:53:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这节课就简单多了,涉及到的基本概念在前面已经用到了。
赋值语句,编程的最基本语句。有两种型式:
变量名 := 表达式
对象.属性名 := 表达式
最需要注意的是delphi赋值用 := 而不是 =
下面最说说delphi的常用函数和过程,主要分为数学类函数、字符类函数、日期时间类函数和顺序类函数,实际上这里说的函数也包括一些过程,本课主要介绍前两类。
  
  
数学类函数
函数
说明
参数类型
返回值类型
Abs(x)
绝对值函数,返回x的绝对值
整型或实型
与参数相同,但具体是什么整型实型不清楚,帮助中也没说清
Trunc(x)
取整函数1,返回x的整数部分
Extended
Int64
Round(x)
取整函数2,对x四舍五入取整
Extended
Int64
Int(x)
取整函数3,返回x的整数部分
Extended
Extended
Frac(x)
取小数函数,返回x的小数部分
Extended
Extended
Sqr(x)
平方函数,返回x的平方
Extended
  
Integer
Extended
  
Integer
Sqrt(x)
平方根函数,返回非负数x的平方根
Extended
Extended
Sin(x)
正弦函数,返回弧度制x的正弦值
Extended
Extended
Cos(x)
余弦函数,返回弧度制x的余弦值
Extended
Extended
ArcTan(x)
反正切函数,返回x的反正切的弧度值
Extended
Extended
Exp(x)
e为底的指数函数,返回ex次方
Real
Real
Ln(x)
自然对数函数,返回x的自然对数
Real
Real
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的模块有一定的相似性。要想使用这些函数,就必须先引用单元,在Interfaceuses引导的部分。与python不同的是,不用在函数名前加上单元名。实际上上面的函数也在一个单元中,system单元,只不过这个单元delphi已缺省引用了。

编写的2个小程序也非常简单:
计算不同的函数值
1.jpg

随机产生2个数,你给出相加的值,由程序来验证。
2.jpg

006-1.ZIP

201.16 KB, 下载次数: 33

006-2.ZIP

208.53 KB, 下载次数: 41

评分

参与人数 1鱼币 +8 收起 理由
小甲鱼 + 8 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-14 22:40:22 | 显示全部楼层
看看cot怎么写的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-2 15:40:58 | 显示全部楼层
数学类函数里的Mandom写成Mondom了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-2 15:42:42 | 显示全部楼层
本帖最后由 charwavid 于 2023-11-2 16:36 编辑

“我的Tan函数用不了,下载站长写的代码可以用。”

问题在于没用引入Math。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-2 19:21:54 | 显示全部楼层
本帖最后由 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',[_x]));
  y := StrToFloat(Format('%.2f',[_y]));

  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.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-22 09:31:15 | 显示全部楼层
charwavid 发表于 2023-11-2 15:42
“我的Tan函数用不了,下载站长写的代码可以用。”

问题在于没用引入Math。

是的!视频都没说
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 00:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表