cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 21082|回复: 22

[fx-4800P/5800P系列] [fx-5800P系列]5800P绘制函数图像的程序

[复制链接]
发表于 2010-1-10 16:21:59 | 显示全部楼层 |阅读模式
计算器程序
程序名称: 函数图像绘制程序
平台: fx-5800系列 
系统/软件要求: 子程序:function
版本号: 1
类型: 图像 
作者: zasdfgbnm
大小(K): 99999
更新日期: 2010-01-10
描述: 绘制函数图像
已知缺陷: 绘制速度慢,分辨率低
源代码: 开源/部分开源
首先将函数以赋值语句的形式存储在程序FUNCTIΟN中,例如要绘制f(x)=cos(x)
就将程序FUNCTIΟN写成cos(X)→Y,然后运行PLOT程序
效果图:
100110163268c0a9cc2f0b0e2b.jpg
PLOT程序代码如下
  1. 0→DimZ
  2. 6→DimZ
  3. ClrStat
  4. -1×10^99→Z[3]
  5. 1×10^99→Z[4]
  6. "START"?→Z[1]
  7. "END"?→Z[2]
  8. Cls
  9. "LOADING"
  10. "----------------"  注:16个减号
  11. (Z[2]-Z[1])÷15→Z[6]
  12. For 1→I To 16
  13. Locate I,2,"+"
  14. Z[1]+(I-1)×Z[6]→X
  15. X→List X[I]
  16. Prog "FUNCTIΟN"
  17. Y→List Y[I]
  18. If Y>Z[3]
  19. Then Y→Z[3]
  20. IfEnd
  21. If Y<Z[4]
  22. Then Y→Z[4]
  23. IfEnd
  24. Next
  25. "DONE"
  26. Cls
  27. (Z[3]-Z[4])÷12→Z[5]
  28. 1→I
  29. Lbl 1
  30. List Y[I]→Y
  31. If Y<Z[4]+6Z[5]:Then
  32. If Y<Z[4]+3Z[5]:Then
  33. If Y<Z[4]+Z[5]
  34. Then Locate 1,4,"."   注:引号中为小数点
  35. Goto 2
  36. IfEnd
  37. If Y≥Z[4]+Z[5] And Y<Z[4]+2Z[5]
  38. Then Locate I,4,"-"   注:引号中为负号
  39. Goto 2
  40. Else
  41. Locate I,4,"°"           注:引号中为度(sin左面那个键)
  42. Goto 2
  43. IfEnd
  44. Else
  45. If Y<Z[4]+4Z[5]
  46. Then Locate I,3,"."    注:引号中为小数点
  47. Goto 2
  48. IfEnd
  49. If Y≥Z[4]+4Z[5] And Y<Z[4]+5Z[5]
  50. Then Locate I,3,"-"   注:引号中为负号
  51. Goto 2
  52. Else
  53. Locate I,3,"°"           注:引号中为度(sin左面那个键)
  54. Goto 2
  55. IfEnd
  56. IfEnd
  57. Else
  58. If Y<Z[4]+9Z[5]:Then
  59. If Y<Z[4]+7Z[5]
  60. Then Locate I,2,"."    注:引号中为小数点
  61. Goto 2
  62. IfEnd
  63. If Y≥Z[4]+7Z[5] And Y<Z[4]+8Z[5]
  64. Then Locate I,2,"-"   注:引号中为负号
  65. Goto 2
  66. Else
  67. Locate I,2,"°"           注:引号中为度(sin左面那个键)
  68. Goto 2
  69. IfEnd
  70. Else
  71. If Y<Z[4]+10Z[5]
  72. Then Locate I,1,"."    注:引号中为小数点
  73. Goto 2
  74. IfEnd
  75. If Y≥Z[4]+10Z[5] And Y<Z[4]+11Z[5]
  76. Then Locate I,1,"-"   注:引号中为负号
  77. Goto 2
  78. Else
  79. Locate I,1,"°"           注:引号中为度(sin左面那个键)
  80. IfEnd
  81. IfEnd
  82. IfEnd
  83. Lbl 2
  84. If I<16
  85. Then I+1→I
  86. Goto 1
复制代码

评分

参与人数 1金钱 +10 专家 +1 贡献 +1 收起 理由
imath + 10 + 1 + 1 很好

查看全部评分

发表于 2010-1-10 16:25:52 | 显示全部楼层
太好了,你很厉害呀
 楼主| 发表于 2010-1-10 16:29:37 | 显示全部楼层
由于5800P不是图形计算器,绘制的效果有点差
这是cos(x)在-π到π上的图像:
图片 001.jpg
 楼主| 发表于 2010-1-10 16:50:15 | 显示全部楼层
2# ∫(Revolve)
就是在屏幕上点点而已,没有什么技术含量
从Lbl 1开始那一大堆if语句全是点点用的
发表于 2010-1-10 18:17:11 | 显示全部楼层
你有我的风格
 楼主| 发表于 2010-1-10 18:31:54 | 显示全部楼层
你的风格?
 楼主| 发表于 2010-1-10 20:39:45 | 显示全部楼层
我算法学的不咋地,包容一下吧(或者帮我改改)
发表于 2010-1-10 21:03:31 | 显示全部楼层
画点点。。。
发表于 2010-1-15 17:27:39 | 显示全部楼层
好像有点长
发表于 2010-1-15 17:28:01 | 显示全部楼层
就按这个代码输进去就行了么?
发表于 2010-1-15 19:27:50 | 显示全部楼层
有点囧,还是挺有意思的。
 楼主| 发表于 2010-1-18 11:02:32 | 显示全部楼层
就按这个代码输进去就行了么?
Boeing 617 发表于 2010-1-15 17:28
当然行了
发表于 2010-1-29 13:20:55 | 显示全部楼层
强!!!

寒假里我要看本书《算法设计与数据结构》
 楼主| 发表于 2010-1-30 20:13:27 | 显示全部楼层
我也要看一本书:Cormen,Introduction to Algorithms,MIT
发表于 2010-2-5 16:32:58 | 显示全部楼层
强,我也有5800p 屏幕分辨率太低的说
发表于 2010-5-29 14:38:10 | 显示全部楼层
不错
发表于 2010-6-5 18:33:36 | 显示全部楼层
好像,将函数带入Y后,只能画一条直线
 楼主| 发表于 2010-6-5 19:36:35 | 显示全部楼层
那可能是取值范围的问题,例如sin(x)在10-5~10^5之间画出来就是一条直线,因为sin(x)~x当x→0,
发表于 2010-9-4 19:59:52 | 显示全部楼层
新人报到,进入学习中。
发表于 2011-12-24 23:36:13 | 显示全部楼层
每次怎么都在16步出问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-11-22 03:56 , Processed in 0.072300 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表