找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 212|回复: 2

[图文教程] 零基础入门篇-016-简单的计算器

[复制链接]

63

主题

216

回帖

1010

积分

管理员

积分
1010
发表于 2024-7-17 15:50:20 | 显示全部楼层 |阅读模式
简单的计算器实例,实现 +, -, *, / 的运算
  1. {
  2.         控制台_置中文编码()
  3.         字符型 ap[256]
  4.         字符型 数值1[256]
  5.         字符型 数值2[256]
  6.         循环(真)
  7.         {
  8.                 控制台_标准输出("请输入第一个数字:", 控制台_输出流)
  9.                 控制台_标准输入(数值1, 256)//待用户输入
  10.                 控制台_标准输出("输入运算符:+ 、- 、* 、/ :", 控制台_输出流)
  11.                 控制台_标准输入(ap, 256)//待用户输入
  12.                 控制台_标准输出("请输入第二个数字:", 控制台_输出流)
  13.                 控制台_标准输入(数值2, 256)//待用户输入
  14.                 浮点型 结果
  15.                 整型 代码 = (int)*ap
  16.                 如果(代码 == 42 || 代码 == 43 || 代码 == 45 || 代码 == 47)
  17.                 {
  18.                         如果(ap == '+')
  19.                         {
  20.                                 结果 = 文本到浮点型(数值1) + 文本到浮点型(数值2)
  21.                                 控制台_格式输出("%s + %s = %f\n", 数值1, 数值2, 结果)
  22.                         }
  23.                         否则(ap == '-')
  24.                         {
  25.                                 结果 = 文本到浮点型(数值1) - 文本到浮点型(数值2)
  26.                                 控制台_格式输出("%s + %s = %f\n", 数值1, 数值2, 结果)
  27.                         }
  28.                         否则(ap == '*')
  29.                         {
  30.                                 结果 = 文本到浮点型(数值1) * 文本到浮点型(数值2)
  31.                                 控制台_格式输出("%s + %s = %f\n", 数值1, 数值2, 结果)
  32.                         }
  33.                         否则(ap == '/')
  34.                         {
  35.                                 如果(文本到浮点型(数值2) == 0)
  36.                                 {
  37.                                         控制台_标准输出("不能除以零", 控制台_输出流)
  38.                                 }
  39.                                 结果 = 文本到浮点型(数值1) / 文本到浮点型(数值2)
  40.                                 控制台_格式输出("%s + %s = %f\n", 数值1, 数值2, 结果)
  41.                         }
  42.                 }
  43.                 否则()
  44.                 {
  45.                         控制台_标准输出("你输入的运算符有误\n", 控制台_输出流)
  46.                 }
  47.         }
  48.         控制台_暂停()
  49. }
复制代码

以上使用循环来使程序可以一直重新输入后在进行计算结果,除非点击关闭按钮来结束程序
运行效果



快来试试吧,看看你有没有更好的方法。记得交作业

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

18

主题

43

回帖

254

积分

中级会员

积分
254
发表于 2024-8-25 20:49:47 | 显示全部楼层
  1. 函数 文本型 计算(文本型 计算式)
  2.         动态数组<文本型> 计算式数组
  3.         计次循环 (整型 i = 1; 255)
  4.                 分支判断 (计算式[i])
  5.                         分支 (整型)'+'
  6.                                 文本分割(计算式, "+", 计算式数组)
  7.                                 返回 (到文本(文本到浮点型(计算式数组.取成员(0))+ 文本到浮点型(计算式数组.取成员(1))))
  8.                         分支 (整型)'-'
  9.                                 文本分割(计算式, "-", 计算式数组)
  10.                                 返回 (到文本(文本到浮点型(计算式数组.取成员(0))-文本到浮点型(计算式数组.取成员(1))))
  11.                         分支 (整型)'*'
  12.                                 文本分割(计算式, "*", 计算式数组)
  13.                                 返回 (到文本(文本到浮点型(计算式数组.取成员(0))*文本到浮点型(计算式数组.取成员(1))))
  14.                         分支 (整型)'/'
  15.                                 文本分割(计算式, "/", 计算式数组)
  16.                                 返回 (到文本(文本到浮点型(计算式数组.取成员(0))/ 文本到浮点型(计算式数组.取成员(1))))
  17.                         其他
  18.                                 跳出
  19.         返回("计算式输入错误")

  20. 函数 整型 入口函数() //控制台程序入口函数, 程序启动优先进入此函数
  21.         控制台_置中文编码()
  22.         字符型 计算式[256]
  23.         循环 (真)
  24.                 控制台_标准输出("请输入计算式(+-*/表示加减乘除),输入Q退出程序:\n", 控制台_输出流)
  25.                 控制台_标准输入(计算式, 256)
  26.                 如果 (计算式 == "Q" || 计算式 == "q")
  27.                         跳出
  28.                 控制台_标准输出(计算(到文本(计算式)) + "\n", 控制台_输出流)
  29.         返回 0
复制代码

字符型文本型傻傻分不清楚
也不能等价直接使用
理论上来说算法应该没问题吧,计算精度也不对,不知道什么情况

9

主题

17

回帖

140

积分

注册会员

积分
140
QQ
发表于 2024-9-25 15:07:50 | 显示全部楼层
确实,我也发现源码 ap == '+' 等四个运算符用单引号会报错,改用双引号"就正常了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|炫语言 | 炫彩界面库 | 用户所需, 正是我所做! ( 鄂ICP备2023014763号-1 )

GMT+8, 2024-11-21 16:38 , Processed in 0.071431 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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