首页 > 其他分享 >极语言基础

极语言基础

时间:2025-01-03 16:16:44浏览次数:1  
标签:控件 语言 基础 整数 数组 文本 写法 变量

极语言基础

目录

快速入门

启动与界面设计

  1. 启动极语言编程,点击“初级程序”进入主界面。
  2. 若设计界面小窗口未显示图标,请关闭设计窗口后重新打开。
  3. 控件设计器可通过右键创建或拖曳鼠标绘制控件。
  4. 调整控件大小:按住鼠标左键拖动控件的四角或四边。
  5. 选中控件,使用鼠标滚轮调整大小和位置(通过左顶宽高属性)。
  6. 双击属性列表修改控件名称、文字、位置、尺寸等,控件编号为唯一标识符。
  7. 控件事件绑定:双击左键或右键单击,自定义事件名称(如按钮点击、列表双击)。
  8. 右键添加控件时,新控件将与前一个控件大小相同并自动对齐。

菜单设计

  1. 设计菜单界面,首个添加的自动设为弹出菜单(子菜单)。
  2. 添加子菜单项目,项目前自动空格缩进,区分菜单层次。
  3. 添加新子菜单时,需选中“弹出”复选框,添加后自动取消。
  4. 二级子菜单:在名称前加空格,选中“弹出”选项,继续添加项目。
  5. 菜单和快捷键可绑定事件,子菜单无编号,事件对应唯一标识编号。

窗体与对话框设计

  1. 窗体设计共用一个窗体消息接收系统事件,对话框按名称接收。
  2. 基础应用采用模式对话框,类似消息框,需关闭后才执行后续代码。
  3. 初级程序窗口设计自动添加控件对象全局变量,后添加的控件在前代码中不可用。
  4. 对话框设计不增加控件对象,窗体变量在代码中申请获取,可不用控件对象。
  5. 控件编号可在设计界面查看和修改,有效范围0到32767,不需编号可设为-1。
  6. 对话框窗体编号指定资源里的编号,与菜单资源绑定一致。
  7. 控件快捷键:在名称中加入&符号和大写字母(如:打开(&O)​),Alt+字母触发。
  8. 窗体图片框可指定资源图标或位图,文字属性设为#资源号显示图像。
  9. 对话框图标框直接指定文字属性为资源号或加#号,显示图标时修改风格为图标文件。
  10. 编译程序默认6.0界面风格,取消“新版界面”选择使用Windows 95风格。

极语言语法

  1. 关键语法:如果​、否则​、判断​、循环​(四种写法)。
  2. 循环​和循环于​是为迎合传统编程习惯,不推荐初学者使用。
  3. 程序段名称后可加小括号传递参数,无类型限制,可自由提交数值或变量指针。
  4. 程序段可无返回值或返回整数,返回小数需加冒号(如:返回(:值 * 6.5)​)。
  5. 参数变量可指定默认值,不指定默认为0,不写参数按默认值提交。

控件内容操作

  1. 获取控件文字内容使用~​符号,需申请文本变量(如:文本 内容[16];​)。
  2. 获取内容:内容 ~ 文本框1;内容 ~ 窗体;内容 ~ 标签1;
  3. 写入内容:文本框1 ~ 内容;标签2 ~ “你好”;窗体 ~ 内存;
  4. 写入内容右边的变量可为内存指针的整数变量或一段文字。

编辑快捷键

CTRL+Z 撤销
CTRL+Y 重做
CTRL+C 复制
CTRL+V 粘贴
Delete 删除
CTRL+F 查找
CTRL+R 替换
CTRL+P 编译
CTRL+W 关闭
CTRL+拖曳 复制文字
F1 编程帮助
F2 语法补全
F3 查找下个
F4 编辑模块
F5 水平平铺
F6 垂直平铺
F7 标点转换
F8 更新日志

常见问题

中文输入法问题及解决办法

问题:编译运行后,某些独占式运行的输入法会在新进程里自动开启,导致极语言编辑器的输入法关闭。
解决办法:
CTRL+F​弹出搜索框,然后切换开启输入法。
正常输入中文后,按Esc​取消搜索,输入法将被重新激活。
注意:有些输入法会自动跟随输入框,位置会随焦点窗口改变。

鼠标悬停信息

功能:在极语言编辑器中,选中带颜色的文字可查看相关解释,比搜索更方便。
效率考虑:鼠标指向文字的提示会产生多次鼠标移动事件,效率不高。建议使用键盘选中文字和进行语法补全。

对其他语言的兼容

文本变量

易语言和VB:采用整数指针。
其他语言:string​采用整数对象,与整数有严格区分。

内存管理

这些语言使用的整数先申请约64K内存,随数据量增加自动扩充。
变长文本与字符串概念不同。
字符​ vs. ​:字符为ASCII编码(32-127),字为支持各国文字的编码。
Windows编程API处理字符串时需提交缓冲区和长度,获取文本时返回实际长度。
极语言文本为指定长度的内存缓冲区,需指定长度配合API使用。
使用C库函数注意事项:可能改变堆栈地址,导致数据异常。建议将C库函数放到程序段中调用,以保持堆栈空间稳定。

内存回收和安全机制

内存使用:主要由开发者控制。
局部变量内存:离开程序段时自动回收。
全局变量内存:关闭程序时系统自动回收。
极语言无变长文本,不自动申请临时内存。
内存回收:只要内存被使用,就不能回收。编译和运行时最多能防止内存泄漏,增加安全性。
效率考虑:运行时监视每条执行指令会影响效率。建议开发者根据需要申请文本变量长度,自行控制内存使用。
安全性与透明度:极语言让开发者全透明地管理内存,提高安全性。相比C语言,极语言规则限制少,功能实现更轻松,无需增加复杂特性。

自制中文编程环境

安装目录说明

Sec.exe:集成开发环境(IDE)
Sc.exe:编译器(可配合其他工具编辑代码进行编译)

文件类型说明

.sec​:单文件二进制源码结构
.SEC​和.极​:多文件文本结构
其他扩展名(如.txt​、.c​、.张三​、.李四​等):单文件文本源码

使用极语言开发环境保存代码

保存时需加上扩展名,保存为纯文本源码。

编译方法

  1. 将保存的文件拖曳到Sc.exe上。
  2. 运行Sc.exe,点击打开保存的源码。
  3. 使用命令行编译:cmd Sc.exe 源码路径​(完整路径前后不用加双引号)。
  4. 自定义IDE编译:参考使用命令行的编译方法在Sc.exe后面空格加上路径即可实现编译。

变量类型

变量的定义与使用

最简单的变量——整数变量

最常用的变量类型是整数,例如定义一个名为“窗口”的整数变量。整数变量也可以作为万能的指针,在参数传递时,通常只有整数和小数这两种类型。

局部变量与全局变量

定义与范围

局部变量:在程序段内申请的变量,包括传递的参数,都是局部变量。它们的作用域限定在程序段或子类内部。
全局变量:在程序段和子类之外申请的变量是全局变量。全局变量的作用域覆盖整个程序。

全局变量的类型

全局变量可以包括以下类型:

  • 字符
  • 字节
  • 整形(短数)
  • 正数
  • 整数
  • 日期
  • 小数
  • 浮点
  • 大数
  • 子类
  • 对象
  • 自定义类型
存储空间

全局变量:使用静态数据空间存储。
局部变量:使用动态栈内存空间存储。

参数传递

任何变量在作为参数传递时,都是4字节的数值。对于大于4字节的类型(如文本、浮点和自定义类型),传递的是变量的地址,而不是值。地址通常大于0x400000。

参数类型

在大多数情况下,提交的参数都按整数类型处理。
当需要直接进行小数运算时,才需要特别指定小数类型。
因此,程序段的参数通常只有小数和整数这两种。

结构体和子类参数

结构体和子类参数前可以写上类的名称来定义参数,例如:

程序段 示例(坐标类 值)
    整数 横坐标 = 值.左
    整数 纵坐标 = 值.顶

示例: 计算函数

程序段 计算(角色类 人物)
    整数 伤害 = (攻击 - 人物.防御) * 1.5 - 人物.减伤
局部变量的申请与使用

变量的作用

变量的主要用途包括存储数据、传递参数、进行算法运算等。

变量类型转换

转换语法

变量类型之间可以通过等号进行相互转换,语法如下:

变量一 = 变量二

这表示将右侧的变量类型转换为左侧变量的类型。

示例
整数 数一; 小数 数二; 浮点 数三;
数一 = 数二; // 小数转整数
数二 = 数一; // 整数转小数
数一 = 数三; // 浮点转整数
数三 = 数一; // 整数转浮点

文本操作

局部文本和全局文本都可以像操作数组一样,读写其中每个字节。例如:

文本 s(16) = "abc"
s(2) = \d

也可以像其他变量一样,写入数字。例如:

s = 0  // 文本被清空
s = $31323334  // 文本开头等于4321

注意:十六进制是反转的,最后的34写入字符的第一字节,对应文字是4。使用s(1)读取出来就是52。

文本拼接

在转换文本时,可以进行拼接,例如:

文本 内容[16] = "结果:" + 数一 + " 浮点:" + 数三;

等号左边是文本时,会自动进行文本转换或拼接。

追加文本
内容 += 数一 + "\r\n"; // 向内容追加数字和换行符

运算规则

如果等号左边是整数,右边是混合运算,尽量将小数或浮点变量写在前面。
如果等号左边和右边都是整数变量,需要进行浮点运算时,等号后面要加上冒号。

数一 =: 数一 - 数二; // 整数浮点运算
数一 = 数二; // 小数或浮点转整数,无运算

代码规范

代码末尾需要加上换行符或分号,以明确区分浮点运算与整数的转换。

变量类型

|英文名称|中文名称|数值范围和|
||||
||||
||||
||||
||||
||||
||||
||||
||||
||||
||||
||||
||||
||||
||||

Bool 布尔 范围:真(1),假(0)。
数组写法:布尔 数组[16];
二维数组:布尔 数组[10,16];
自动长度写法:布尔 数组 = {真,假,真}
char,sbyte 字符 范围:-128~127。
数组写法:字符 数组[16];
二维数组:字符 数组[10,16];
自动长度写法:字符 数组={1,2,-3}
byte,uchar 字节 范围:0到256。
数组写法:字节 数组[16];
二维数组: 字节 数组[10, 16];
自动长度写法:字节 数组 = {1, 2, 3}
short 短数/整形 范围:-32768到32767。
数组写法:短数 数组[16];
二维数组: 整形 数组[10, 16];
自动长度写法:整形 数组 = {1, 2, -3}
ushort,word 正数 范围:0到65535。
数组写法:正数 数组[16];
二维数组: 正数 数组[10, 16];
自动长度写法:正数 数组 = {1, 2, 3}
int,dword 整数 范围:-2147483648到2147483647。
数组写法:整数 数组[16];
二维数组:整数 数组[10, 16];
自动长度写法:整数 数组 = {1, 2, -3}
single 小数 范围:-3.402823E38到3.402823E38。
数组写法:小数 数组[16];
二维数组:小数 数组[10, 16];
自动长度写法:整数 数组 = {1, 2.5, 0.3}
string 文本 申请指定长度的内存缓冲区,可用来存储文字或数据。
数组写法:文本 数组[10,16];
自动长度写法:整数 内容 = "文字";整数 数组 = {"你好", "在吗", "朋友"}
bytes 字节组 一组固定的数据,跟文本性质相似
字节组 数组[15, $20, 60, 128];
Double 浮点 范围:-1.79769313486232E308到1.79769313486232E308。
数组写法:浮点 数组[16];
二维数组:浮点 数组[10, 16];
自动长度写法:浮点 数组 = {1, 2.5, 0.3}
date 日期 8字节日期时间,Win32编程通常用文件时间类的两个整数结构来表示时间
long,ulong 大数 64位整数
范围:-9223372036854775808到9223372036854775807。
数组写法:大数 数组[16];
二维数组:大数 数组[10, 16];
自动长度写法:大数 数组={1, 2, 3}
type 结构 结构 窗口类{整数 句柄, 左边;文本 标题[64], 内容[256]}
用法:窗口类 窗一; 窗一.标题 = "你好"
数组写法:窗口类 窗一[10]; 窗一(0).标题 = "你好"
datab 数据表 数据表 人物表{整数 生命, 内功;字节 等级, 职业;}
用法:重置 人物表(100); 人物表(2).等级 = 10; 数 = 人物表(0).生命
object 对象 申请一个对象变量,结构是(类, 标识, 函数名..)
用法:对象 内存 = 内存对象;自定义对象:对象 未知($, $, 接口, 计数, 释放)
scls 子类 子类 类名{整数 变量1,变量2; 程序段 登陆(账号)...结束;}
用法:整数 测试 = 新建 测试类;数组写法:整数 测试 = 新建 测试类[10]

转义和标点符号

转义

转义符号用于特殊字符的处理,使得这些字符能够在文本内容中正确表示。例如,在极语言中,我们可以这样使用转义符号:

s = "您好\r\n世界";

这里的 \r\n​ 表示换行加回车。极语言的代码允许在字符串中间换行,以下是一些常用的转义符号及其含义:

  • \r​:换行符
  • \n​:回车符
  • \t​:水平制表符
  • \f​:分页符
  • \v​:垂直制表符
  • \"​:双引号
  • \0​:0字符
  • \1​:缩进符号
  • \2​:两个换行和回车符的组合

此外,可以使用 \ 将单个文字转换为编码值,例如:

查字符(str, \s);

或者写作:

查字符(内容, 's');

在极语言中,还可以使用以下方式获取编码值:

  • 0#中国​:取两个汉字的编码值
  • 0$abcd​:取四个英文的编码值
  • 0:1.2.3.4​:支持IP段、颜色值、字节高低位等转换为整数值

标点

标点符号在代码中主要用于区分文字、定义代码范围或行为性质等。虽然这些符号不直接生成执行指令,但它们对于规范代码结构和改变执行指令的生成具有重要意义。

符号 类型 中文释义和示例
@ 多用途 1. 标记
2. 取内存地址
3. 取已知内存偏移地址
|| 多条件判断
&& 多条件判断
\undefinedC7A"`​,把十六进制字符转换成二进制数据
` 宽字符文本 "`文字内容"​,ANSI转成宽字符文本
. 指针/连接符 读写指针偏移,也可在名称中使用
_ 指针/连接符 读写指针偏移,也可在名称中使用
"" 文字内容 文字内容前后用双引号
$ 声明文本 变量或函数后使用,代表是文本数据
: 标记 现在已取消冒号标记,请改用中文
标记 开头跳到 开头
: 转成小数运算 变量或函数前使用
: 返回小数值 返回(:4.5)返回(:结果)
# 表示浮点 浮点 值 = 45.63#;
\ 取文字编码 取单个文字(包括中文)的编码值
' 注释符号 符号后面一行内容为注释
// 注释符号 符号后面一行内容为注释
/* */ 多行注释 /*开始到*/之间的内容为注释
\undefinedD0A`​
0x 十六进制 数值 = 0x0D0A
0# 取文字编码 0#中国​ 取两个汉字的编码值
0$ 取文字编码 0$abcd​ 取四个英文的编码值
0@ 取日期数值 0@2019-4-5​ 取日期的整数型数值
0: 取字段数值 ip = 0:192.168.1.1
颜色 = 0:255.64.128
键值 = 0:70,2​ 即CTRL+F
( ) 小括号 如果(左 = 右);
相加(数, 值);
整数 组(10);
组(0) = 15;
数 = 组(1);
[ ] 数组或文本长度 文本 内容[16];
时间类 时间[5];
数 = 内容[2]
{ } 代码片段 用于条件判断或循环

运算符号

变量自加、自乘等,数 = 数 + 8​,数 = 数 * 10

也可以用+=​、-=​、*=​、/=​、|=​、&=​、%=​、^=​ 等等

也可以用更简单的a + 2​、a - 3​、a * b + 3​、a / 10​、a | b​、b & a​,即运算符号后面的等号可以不写。

一般运算符号

|符号|中文|释义和示例|
||||
||||
||||

+ 数值相加或者增加文字(数字变量自动转换为文本)。
中文写法:数 加 值​,内容 加 “文字”
数值相减或者增加文字(数字变量自动转换为十六进制文本)。
中文写法:数 减 值​,内容 减 数
* 数值相乘
中文写法:数 乘 值
/ 除法运算
中文写法:数 除 值
| 或运算。两个数值的比特位包含有1,则结果位就为1,否则为0。
中文写法:数 或 值
^ 异或运算。两个数值的比特位不相同,则结果位就为1,否则为0。
中文写法:数 异 值
& 运算表达式中 与运算:数 与 值
单独变量或函数前 取指针地址;
变量或数组后 取四字节内存值;
检索语句括号后 获取地址;
循环数组的数据变量后 每次读写四字节;
% 取两个数相除后的余数:数 余 值​,也可以在除法后单独使用:数 = 余​;
在变量或数组后面是取两字节内存值:数组(1)%​。
! 数值为0则为1,数值不是0则为0
中文写法:非 数
~ ~数,对每个二进制位进行反相,0变1,1变0
中文写法:反 数
= 右边变量或表达式的结果值,根据左边变量类型进行转换,然后保存到左边变量地址
++ 加一 数++;变量数增加1
中文写法:数 加一
-- 减一 数--;变量数减少1
中文写法:数 减一
= 等于 如果(数 = 值)​,比较两个变量数值是否相等。
中文写法:如果(数 等于 值)
!= <> 不等于 数 != 值​,比较判断数不等于值,也可以写作:数<>值
中文写法:如果(数 不等于 值)
< 小于 数 < 值​,左边数小于右边值
中文写法:数 小于 值
> 大于 数 > 值​,左边数大于右边值
中文写法:数 大于 值
>= 不小于 数 >= 值​ 左边数不小于右边值,即大于或等于
中文写法:数 不小于 值
<= 不大于 数 <= 值​,左边数不大于右边值,即小于或等于
中文写法:数 不大于 值
-> 写入 根据左边变量长度,向右边变量或表达式的地址处写入数据(字节字符1字节,整形短数正数2字节,小数整数4字节:数 写入 值+10
<- 读取 根据左边变量长度,从右边变量或表达式的地址处读取数据(字节字符1字节,整形短数正数2字节,小数整数4字节。
>> 右移 数 >> 值​,移位运算(支持小数)
中文写法:数 右移 值
<< 左移 数 << 值​,移位运算(支持小数)
中文写法:数 左移 值
~ 内容 ~ 文本框1​,读写控件内容。左边为文本变量读取右边控件; 左边为控件对象是把右边内容写入控件。详见控件内容操作
? 取上次赋值的结果,即一号寄存器的数值
?? 纳秒 取纳秒计数器的低32位结果,高32位再用%获取。数 = 纳秒值 = 余

浮点运算专用符号

表达式的小括号之后使用,用法:(a+b)余弦​;(c)正弦​;(a * a + b * b)根​;(数)平方根​;(n)绝对值​;

中文 简写 释义
绝对值 变量或表达式取绝对值(含整数);(数 - 值)绝对值
余弦 变量或表达式取余弦;(数 - 值)余弦
正弦 变量或表达式取正弦;(数 - 值)正弦
平方根 变量或表达式取平方根;(数 - 值)平方根
正切 变量或表达式取正切;(数 - 值)正切
反正切 变量或表达式取反正切;(数 - 值)反正切

标签:控件,语言,基础,整数,数组,文本,写法,变量
From: https://www.cnblogs.com/meowdream/p/18650298/polar-language-basis-zrfj4z

相关文章

  • 算法基础一
    认识时间复杂度常数时间的操作一个操作如果和样本的数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。时间复杂度为一个算法流程中,常数操作数量的一个指标。常用O(读作bigO)来表示。具体来说,先要对一个算法流程非常熟悉,然后去写出这个算法流程中,发生了多少常数操作,......
  • 电脑常用的28个基础操作
    电脑常用的28个基础操作1.快速打开资源管理器按Windows+E,可瞬间启动资源管理器。2.快速清理缓存电脑运行缓慢?按下Ctrl+Shift+R,可快速清除缓存3.快速关机、重启按下Ctrl+Alt+Del,选择任务管理器中的重启,长按Ctr系统会迅速重新启动,同理,选择【关机】可快速关机4.窗口最大化与......
  • Scala语言的函数实现
    Scala语言中的函数实现:优雅与高效并存的艺术在编程的世界里,函数是构建软件的基本单元之一,它不仅体现了代码的逻辑和结构,更是程序设计思想的具体体现。Scala,作为一种融合了面向对象和函数式编程特性的现代编程语言,其对函数的支持尤为丰富和强大。本文将深入探讨Scala语言中函数......
  • Stable Diffusion|图生图基础教程
    本教程旨在为广大对SD图生图技术感兴趣的学习者提供一个系统性的入门指南,帮助大家揭开这一前沿技术的神秘面纱,逐步掌握其应用方法。#01/如何使用图生图并不是单纯的直接由图片生成图片,原始图片只是做主体参考图,打个比喻,你要做一道经典的意大利肉酱面,这是“原图”,现在,你想......
  • STM32:OLED(显示屏)开发基础
      思路:了解OLED相关资料----配置参数(OLED底层驱动移植)---编写代码【含例题】---烧入开发板 一、了解OLED相关资料1.什么是OLED?全称:OrganicLight-EmittingDisplay(有机发光二极管),其作用能将电能直接转化为光能的半导体器件,属于电流型的有机发光器件。2.OLED的四个......
  • SQL基础应用
    MySQL内置的功能连接数据库-u-p-S-h-P-e<本地登录:mysql-uroot-p密码-S/tmp/mysql.sock远程登录:mysql-u用户名-p密码-hMySQLIP地址-P3306免交互执行sql语句:mysql-u用户名-p密码-e"showdatabases;"恢复数据:mysql-uroot-p123.com</root/world.sq......
  • 【基础篇重点】六、MySQL表的增删查改
    文章目录前言Ⅰ.创建新数据1、`insert`语句2、插入否则更新--替换3、替换--`replace`Ⅱ.检索数据1、`select`语句①全列查询②指定列查询③查询字段为表达式④为查询结果指定别名`as`⑤结果去重`distinct`2、`where`条件......
  • 【基础篇】七、MySQL内置函数
    文章目录Ⅰ.日期函数案例一案例二Ⅱ.字符串函数常见字符串函数使用案例1、显示对应的字符集--`charset`2、要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”--`concat`3、求学生表中学生姓名占用的字节数--`length`4、......
  • 2025如何在CTF比赛中取得名次?零基础必看
    在CTF(CaptureTheFlag)比赛中取得好名次,关键在于系统化的学习与实践。下面是提升CTF比赛能力的一些建议和策略:1.基础知识的扎实积累CTF学习路线&工具及题型解析等籽料我已经给大家整理好了,【点这里自取即可】在CTF比赛中,掌握相关基础知识至......
  • 2025如何在CTF比赛中取得名次?零基础必看
    在CTF(CaptureTheFlag)比赛中取得好名次,关键在于系统化的学习与实践。下面是提升CTF比赛能力的一些建议和策略:1.基础知识的扎实积累CTF学习路线&工具及题型解析等籽料我已经给大家整理好了,【点这里自取即可】在CTF比赛中,掌握相关基础知识至关......