APP下载

三维设计软件XRmaker(7)

2023-04-11孙学进王德贵

电脑报 2023年13期
关键词:嵌套素数表达式

孙学进 王德贵

我们继续学习XRmaker的条件控制与循环控制,并制作输出素数的案例。近期XRmaker的版本更新了,我们这期的版本与之前的6篇在资源上有些差异,但程序代码没有变化。

一、程序设计的三种基本结构

1.顺序结构

顺序结构是最简单的程序结构,程序中的操作是按照它们在源代码中的排列顺序,自上而下依次执行。

2.分支结构

也称为选择结构,用于判断给定的条件,进而控制程序的流程。它会根据某个特定的条件进行判断后,选择其中一支执行。

(1)单分支:判断条件表达式的值,如果值为真就执行语句块,否则执行后面的语句。

(2)双分支:判断条件表达式的值,如果值为真就执行语句块1,否则执行语句块2。

(3)多分支:判断条件表达式1的值,如果值为真就执行语句块1,否则判断条件表达式2的值,如果值为真,执行语句块2,如果条件表达式2的值为假,则执行语句块3,这是三分支的典型流程图。

(4)嵌套

嵌套即是分支語句中还有分支语句,可以多重嵌套。

3.循环结构

(1)定义

循环结构是指在程序中需要反复执行某个或某些操作,直到条件为假或为真时才停止循环的一种程序结构。

(2)三要素:循环变量初始化、循环体和循环终止条件。

每个循环变量初始化后,要控制变量的变化,再确定终止条件,确定循环的次数,最后就是要反复执行的语句,称为循环体。

(3)流程图

循环结构在程序框图中是利用判断框来表示,两个出口分别对应着条件成立和条件不成立时所执行的不同指令,条件成立则指向循环体,条件不成立则退出循环。

(4)嵌套

在循环体中还有循环结构,可以多重嵌套。嵌套层数越多,复杂度越高,如果数据量大,则运行缓慢。

二、条件控制

在XRmaker中,条件控制没有双分支,只有两个单分支结构“如果…那么”“如果不…那么”的积木块,即判断条件表达式的值是否为真(假),如果为真(假),则执行结构内积木,否则跳出循环执行后面的积木。

这两个分支结构放在一起,如果条件表达式一样,其实就类似一个双分支结构,程序设计时可以灵活运用这个特点。

1.如果…那么

这是分支语句的基本构成,条件成立,即条件表达式的值为真才执行。例如,如果一个数除以2的余数为0,那么它就是偶数。

2.如果不…那么

这是否定的分支语句,即条件表达式的值为假时,才会执行。例如,如果不是一个数除以2的余数为0,那么它就是奇数。或者描述为:如果一个数除以2的余数不为0,那么它就是奇数。这两种形式的运行结果是一样的。

三、循环控制

在XRmaker中,循环控制有4个积木,它们的使用稍有不同。

1.重复执行n次

一般用于有确定次数或是在一定范围内的循环结构中,不需要判断条件表达式。需要注意的是,次数不能使用变量。因为没有整形(int)数据,即使取整运算,也不能正常运行。这是软件当前版本的bug,我已经提交反馈,以后会修正。

我们前面讲过的摄像机运动,就是前进100次,每次0.2米,那么运动的距离就是20米。

2.循环

循环积木块,需要满足条件表达式(条件表达式的值为真)才会执行。

3.重复执行直到

重复执行一个程序段,直到条件表达式的值为真才结束循环。

4.重复执行

这是无条件循环,即程序会一直循环下去,如果没有终止条件,则相当于一个死循环,因此设计时要根据情况谨慎使用。

四、其他控制

1.等待N秒:在执行程序时,需要暂停运行,等待一定时间,可以是整数,也可以是浮点数。

2.在…之前一直等待:在条件表达式为真时,才执行下一条语句,而在此之前一直等待。

3.停止所有脚本:即停止运行所有程序。

五、案例输出素数

这个案例主要是应用所学知识,输出一定范围内的素数。

1.资源列表

输出素数的算法,采用最基本,也最容易理解的方法。就是从2开始检验,是不是能被小于它的数整除,如果不能被任何数整除则为素数,通过模型显示出来。

比如,输出50以内的素数,输出方法列举以下三种,均为双重循环,内循环均采用“重复执行-直到”型,当然还有多种方法,不多述。

(1)重复N次-重复执行直到

外循环用“重复执行N次”,因为从2开始递增,所以重复49次,即可输出50以内素数。

(2)重复执行-重复执行直到

外循环用“重复执行”,从2开始递增,输出素数,由于重复执行没有终止条件,是无条件循环,因此需要判断大于50时,则停止所有脚本,结束程序。

(3)循环-重复执行直到

外循环用“循环”,从2开始递增,要满足条件“小于50”,即可输出50以后素数。

2.小结

本节内容主要是学习“控制”模块中常用的条件控制和循环控制,其他控制在后面章节学习。

本案例主要是利用条件、循环、变量、运算等所学知识点进行基本程序设计,而程序没有进行优化。

输出素数的程序实现方法很多,各位朋友可以自行研究。

猜你喜欢

嵌套素数表达式
两个素数平方、四个素数立方和2的整数幂
基于嵌套Logit模型的竞争性选址问题研究
有关殆素数的二元丢番图不等式
一个混合核Hilbert型积分不等式及其算子范数表达式
表达式转换及求值探析
关于两个素数和一个素数κ次幂的丢番图不等式
关于素数简化剩余系构造的几个问题
浅析C语言运算符及表达式的教学误区
一种基于区分服务的嵌套队列调度算法
无背景实验到有背景实验的多重嵌套在电气专业应用研究