在Visual Basic中,与程序段:a = a + bb = a - ba = a - b功能相同的程序段是A. a = b  b = aB. a = a + b  a = a - b  b = a - bC. t = a  a = b  b = tD. IF a > b THEN   a = b  ELSE  b = a  END IF麻

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 11:11:47
在Visual Basic中,与程序段:a = a + bb = a - ba = a - b功能相同的程序段是A. a = b  b = aB. a = a + b  a = a - b  b = a - bC. t = a  a = b  b = tD. IF a > b THEN   a = b  ELSE  b = a  END IF麻

在Visual Basic中,与程序段:a = a + bb = a - ba = a - b功能相同的程序段是A. a = b  b = aB. a = a + b  a = a - b  b = a - bC. t = a  a = b  b = tD. IF a > b THEN   a = b  ELSE  b = a  END IF麻
在Visual Basic中,与程序段:
a = a + b
b = a - b
a = a - b
功能相同的程序段是
A. a = b
  b = a
B. a = a + b
  a = a - b
  b = a - b
C. t = a
  a = b
  b = t
D. IF a > b THEN
  a = b
  ELSE
  b = a
  END IF
麻烦说详细一点(一道会考题)

在Visual Basic中,与程序段:a = a + bb = a - ba = a - b功能相同的程序段是A. a = b  b = aB. a = a + b  a = a - b  b = a - bC. t = a  a = b  b = tD. IF a > b THEN   a = b  ELSE  b = a  END IF麻
这个是学习算法的课程里,常见的题目,其实际就是,把两个变量里保存的信息数据,互相交换一下:
例如:交换前:a = 2,b = 3,那么交换后,就是:a = 3,b = 2了.
做这一类题目的方法,就是,先假设变量a,b里分别保存了某一个数字(数字简单点,便于计算).
那么,首先,按照程序段计算:
a = a + b
b = a - b
a = a - b
结果,可以得到,a与b保存的数据交换了.
然后分别,计算选择的A,B,C,D四组程序段,看看哪一组的结果是交换了.
关于变量值的交换,有一个小故事:
最先,交换变量的值,我们都会想到生活中的例子,假设有一杯牛奶和一杯豆浆,要交换两个杯子里的物质,你会毫不犹豫的想到,使用另一个空杯子来完成.而在程序中,程序员使用的就是类似的方法,使用第3个变量,作为过渡.
Temp = a
a = b
b = Temp
这里的temp就是过渡用的变量.
但是,当计算机刚进入实用阶段的时候,内存空间有限,多一个变量就多消耗一部分内存,于是工程师(程序员)们就寻找能否不用第3个变量,就能实现这种交换的.于是,就依赖于数学头脑了,就出现了本题:
a = a + b ‘尽管a的值被覆盖了,但是现在a里保存了a+b的值,而b还在,所以a间接的还存在
b = a - b ’根据上面的分析,b得到了原来的a,现在a还保存了a+b的值,所以b间接的还存在
a = a - b '现在a里保存的就是原来的b了
还是数学头脑起了作用,有人看到这个方法,马上想加法减法互为逆运算,那么乘法与除法一定也可以吧!于是有了第3种交换两个变量的方法:
a = a * b
b = a / b
a = a / b
继续依照数学的分析与理解,很容易从方法2得到4:
a = a - b
b = a + b
a = b - a
继续依照数学的分析与理解,很容易从方法3得到5:
a = a / b
b = a * b
a = b / a
方法4与5就留给你自己分析了!