易语言找出100以内的所有能组成直角三角形的数值,并显示出来。
在直角三角形中,两个直角边的平方和等于斜边的平方,也就是非常著名的"勾股定理",那么这100以内的数字中,就存在着这样的一些数,比如:3,4,5,3的平方加上4的平方等于5的平方,这三个数就可以组成一个直角三角形。
首先设法得到从3到100之间的数的两组合。利用二重循环可以达到这一目的。令外循环变量为A,A从1到99。令内循环的循环变量为B,B从A+1到100。然后在循环体内判断A和B是否满足等式(1)。
将满足等式的A和B及C打印出来。为了缩短机器运算时间,我们可以利用勾股数的奇偶特性。即在A和B中一个是奇数,另一个必定是偶数。那么可以让B从A+1开始,每次增加步长为2。因为A若是奇数,A+1就是偶数。以后步长是2,B总是为偶数。如果A是偶数,A+1就是奇数。以后步长是2,B总为奇数。我们用整形变量I、J、L分别代表A、B、C
执行
.版本 2 .支持库 iext .子程序 _计算图形按钮_被单击 .局部变量 循环变量1, 整数型, , , 代表直角边A .局部变量 循环变量2, 整数型, , , 代表直角边B .局部变量 平方根, 小数型, , , 存放平方根值 .局部变量 平方和, 小数型, , , 存放两个数的平方和 .局部变量 变量, 整数型, , , 存放平方根取整之后的数,也就是斜边 .局部变量 表项位置, 整数型, , , 存放插入的表项的位置 显示结果超级列表框.全部删除 () ' 设置初值为3,因为勾数从3开始 循环变量1 = 3 ' 这里的“循环变量1”为勾数,“循环变量2”为股数 .判断循环首 (循环变量1 ≤ 99) 循环变量2 = 循环变量1 + 1 .判断循环首 (循环变量2 ≤ 100) ' 求出勾数和股数两个数的平方之和 平方和 = 循环变量1 × 循环变量1 + 循环变量2 × 循环变量2 ' 求出勾数和股数两个数的平方之和的平方根 平方根 = 求平方根 (平方和) ' 对平方根取整,就是取出平方根的整数部分 变量 = 取整 (平方根) ' 判断取整后的平方根是否在100以内并且是否等于直接取出的平方根 .如果真 (变量 ≤ 100 且 变量 = 平方根) ' 如果符合上面的条件,就是要找的数,然后将它们显示出来 表项位置 = 显示结果超级列表框.插入表项 (, , , , , ) 显示结果超级列表框.置标题 (表项位置, 0, 到文本 (循环变量1)) 显示结果超级列表框.置标题 (表项位置, 1, 到文本 (循环变量2)) 显示结果超级列表框.置标题 (表项位置, 2, 到文本 (变量)) .如果真结束 循环变量2 = 循环变量2 + 2 .判断循环尾 () 循环变量1 = 循环变量1 + 1 .判断循环尾 ()
显示结果超级列表框
窗口放置一个用来显示的超级列表框。
.版本 2 .支持库 iext .子程序 _显示结果超级列表框_当前表项被改变, , , 当单击列表框中的一行数值后,在画板中画出相应的直角三角形 .局部变量 直角边A, 整数型 .局部变量 直角边B, 整数型 .局部变量 斜边C, 整数型 三角形画板.清除 (, , , ) ' 绘制选择的直角三角形 直角边A = 到数值 (显示结果超级列表框.取标题 (显示结果超级列表框.现行选中项, 0)) 直角边B = 到数值 (显示结果超级列表框.取标题 (显示结果超级列表框.现行选中项, 1)) 斜边C = 到数值 (显示结果超级列表框.取标题 (显示结果超级列表框.现行选中项, 2)) 三角形画板.画直线 (10, 10, 10, 10 + 直角边A) 三角形画板.画直线 (10, 10 + 直角边A, 10 + 直角边B, 10 + 直角边A) 三角形画板.画直线 (10 + 直角边B, 10 + 直角边A, 10, 10)