Fibonacci数列源代码与流程图实现

5星 · 超过95%的资源 需积分: 48 16 下载量 124 浏览量 更新于2024-10-04 1 收藏 47KB DOC 举报
本资源提供了一个关于Fibonacci数的程序设计示例,包括源代码和流程图。程序的核心功能是计算并显示Fibonacci数列,这是一种经典的数学问题,其中每个数字(从第三个开始)都是前两个数字之和。以下是关键知识点的详细解读: 1. **数据段 DATASEGMENT**: - 定义了名为COUNT的变量,用于存储用户输入的整数,初始值设为20个空格(表示预留空间)。 - 使用STRING常量定义提示用户输入计数的字符串,例如“INPUT THE COUNT:”。 2. **代码段 CODESEGMENT**: - 主程序 `MAINPROC` 开始,设置代码段和数据段的段寄存器,然后显示提示信息。 - 调用 `DECIBIN` 子程序,将用户输入的十进制数转换为二进制形式,以便于后续处理。 3. **Fibonacci 数列计算**: - 使用循环 `ADDNEXT` 来计算Fibonacci数列,通过将前两个数相加并将结果存入FIB数组。 - 这个过程重复直到遍历完COUNT指定的次数。 4. **显示Fibonacci数**: - 另一个循环 `DISPNEXT` 用于取出FIB数组中的数字,并调用 `BINIDEC` 子程序将其转换回十进制,然后输出到屏幕上。 5. **辅助子程序**: - `DECIBINPROC`:接收用户输入的十进制数,通过除2取余法将其转换为二进制,然后返回转换后的二进制数。 - `BINIDECPROC`:这是一个递归函数,用于将二进制数转换回十进制。它通过一系列的除以10并向下取整操作来实现。 6. **程序流程控制**: - 使用条件跳转、循环结构(如LOOP和LOOPADDNEXT)、子程序调用(如CALL DECIBIN 和 CALL BINIDEC)以及中断处理(INT21H)来管理程序的执行流程。 7. **结束子程序和主程序**: - `DECIBINENDP` 和 `BINIDECENDP` 结束各自的子程序,`MAINENDP` 结束主程序,最后调用INT21H结束进程。 整个程序设计遵循结构化编程原则,通过清晰的模块化设计实现了Fibonacci数列的计算与显示。这不仅可以帮助学习者理解算法实现,也为今后编写类似的程序提供了参考模板。同时,这个实例还涉及到了基本的数据类型、内存操作和控制转移,是学习汇编语言编程的重要实践案例。
2011-06-01 上传
该程序允许用户比较摄氏和华氏温度的相等性。具体要求如下: 建立一个Temperature类,它有两个实例变量:一个是温度值(float);另一个是温度的计量单位(char),即取值 ’C’ 或 ’F’,C表示Celsius(摄氏温度)、F表示Fahrenheit(华氏温度)。这个类还应有2 个构造方法: 给每一个实例变量设置缺省值,即温度值为0、计量单位为C(摄氏); 通过两个参数分别给两个实例变量赋初值。 这个类应包括: 两个存取方法:一个返回用摄氏计量的温度、另一个返回华氏温度。摄氏和华氏温度的转换公式如下: degreesC = 5 * (degreesF - 32)/9 degreesF = (9* (degreesC)/5) + 32 三个改变对象属性的方法:一个设置温度值、一个设置计量单位(’F’或’C’)、另一个同时设置温度值和计量单位。 三个比较方法:一个用来是否两个温度相等;一个方法用来测试比较一个温度大于另一个温度;一个方法用来测试比较一个温度小于另一个温度。 最后写一个测试程序(main方法),测试Temperature类中的所有方法。要确保使用到所用的构造方法;要测试每一个比较方法,并确保至少有一个真(true)一个假(false)的结果。例如测试:0.0 degrees C = 32.0 degrees F -40.0 degrees C = - 40.0 degrees F -100.0 degrees C = 212.0 degrees F 请注意:必须保证输入的数据是有效的。所有非法的输入字符都应产生相应的错误信息并提示用户重新输入正确的数据。