本文最开始是在2016年的文章 Win10应用《纸书科学计算器》更新啦! 发表之后撰写的,当时那篇文章收到了不少人点赞,应用在国内市场的日下载量也突然上涨,让我感到受宠若惊,这里要感谢Wp-apps专栏和你们的支持,我们都是喜欢和关注UWP的粉丝!

然而有几个小Tips和彩蛋,帮助页面上没地方写(也不想让用户看到太多字),但不说又觉得缺点什么,还是整理出来单独发篇文章吧。本文会跟着《纸书》的更新而保持更新,这些小Tips则基于《纸书》的最新版本。

1.表达式输入

有三种输入表达式的方式:界面上的键盘、实际键盘、粘贴。除了用界面键盘,在某些情形下,用实际键盘输入也是很方便的。但是在输入复杂运算符时要注意表达式的格式,遇到不能解析的情况,可以先用相应的界面按钮输入,看看正确的格式是什么。

键盘上有以下几个特殊功能键:

  • 左方向键:光标左移(相当于界面上的“<”按钮)
  • 右方向键:光标右移(相当于界面上的“>”按钮)
  • 上方向键:光标移到第一位(相当于界面上的“«”按钮)
  • 下方向键:光标移到最后一位(相当于界面上的“»”按钮)
  • PageUp:转到上一条历史记录(相当于界面上的“⇐”按钮)
  • PageDown:转到下一条历史记录(相当于界面上的“⇒”按钮)
  • 回车:完整运算(相当于界面上的“=”按钮)

在《纸书》里,输入框的光标是以橙色字符显示的。而实际上真正的光标位于橙色字符的前方。

比如下图的状态,光标在第0位,新字符会在“1”的前面输入。

而下面这张图的状态,光标在最后一位,新字符会在“2”的后面输入(光标后面没有字符了,所以也没有字符变成橙色)。

除了界面和键盘上的方向键,用鼠标或手指点击输入框某处,也可以改变光标位置。同时,点击表达式显示区上的某数字,在表达式输入区也会自动定位:

另外需要注意的是,表达式显示区和输入框不一定是完全同步的。显示区只会根据你的输入,实时显示尽量合法化的表达式。

2.运算符优先级

按从高到低排列:

  1. 虽然需要括号,在输入时却省略掉括号的函数(如√、sin、ln、abs等函数后面直接跟数字的情况)
  2. 乘方(^)、开任意次方(yroot)
  3. 排列数(nPr)、组合数(nCr)
  4. 乘(*)、除(/)、取余(mod)
  5. 加(+)、减(-)
  6. 矩阵行内分隔(,)、矩阵换行(,,)

3.按键布局调整

汉堡按钮“≡”下有一个二级菜单“按键布局”,里面有许多设置项,可以根据自己需要灵活更改界面上的按键布局。

相对来讲,移动端使用这些设置的频率会更高一些。比如,为了使数字键面积更大以适应小屏设备,《纸书》在移动端是默认隐藏高级运算符的。初始界面是这样:

如果需要使用高级运算符,选中“显示高级运算符”菜单项即可。

此外,在移动端的横屏模式,默认的按键布局与PC端也有不同:

4.小彩蛋

由于用实际键盘可以输入任意字符,那么输入特定的单词并进行计算,会被当作特殊命令

比如“help”、“version”、“about”、“rate”、“review”这些命令的功能从字面上就能看懂,而“white”和“black”可以改变显示区色调。

那如果计算我的名字“Howard Zhang”会有什么效果呢?

答案是会召唤出来一只戴着礼帽和披风,象征着纸书科学计算器之魂的“Answer Man”(是有多中二)!快去试一下吧。这个Answer Man是用表达式画出来的,如果你掌握了表达式的规律就不难理解。其实它是这样一串表达式,在输入框里也可以找到:

(?/Abs(?,Ans,?)/((0,π,0)/Abs(Abs(1,,1,,1/0),Abs(11,0,11,,11,0,11,,11,0,11)/Abs(Abs(?,,?)),Abs(1,,1,,1/0))))/Abs(?,Abs(?),?,Abs(?),?,Abs(?),?)/?          [*** The answer man has been looking at you! ***]

可以看出,构图主要使用了矩阵、行列式和分数线,并有大量的“?”符号。“?”是占位符,是一个我并没有加入到界面键盘中的常量,大小为一个数字大,不会显示出来。而方括号代表注释,可以出现在任何地方,方括号括住的内容不会被解析。

其实召唤Answer Man有个更简单直观的办法,直接输入单独的常量Ans,点击等号即可召唤:

当然,如果Ans常量参与到其他运算中,还是会代表上一次运算结果的。

结语

这次整理的Tips就是这些,如果《纸书》更新后有需要介绍的新Tips,我会尽快更新本文。

欢迎大家到应用商店评论反馈,如果喜欢本应用,更欢迎大家捐赠一顿饭钱支持开发者(捐赠入口在关于界面,或者用特殊命令“donate”、“money”也可以)。

最后,祝大家使用愉快!

整理一些《纸书科学计算器》的小Tips的更多相关文章

  1. Win10应用《纸书科学计算器》更新啦!

    <纸书科学计算器>在2016年8月拿了计算机设计大赛国家一等奖,现在仍记得我在答辩时还给评委们普及了一波UWP平台的知识.受此鼓励,这款应用也不会停下更新的脚步^_^.最近从1.9小幅升级 ...

  2. 想找个计算器当本命?来试试UWP应用《纸书科学计算器》

    久违了.上次在博客园发文还是4年前,正是高中参加NOIP的时候.这4年里发生了很多事,乃至再次看到过去的文章时,仿佛看到了自己也不熟悉的风景.最近很想把我的博客重新拾起来,慢慢灌溉,写一些微不足道的技 ...

  3. 数据结构之栈—强大的四则复杂运算计算器(超过windows自带的科学计算器)【中缀转后缀表达式】

    比windows自带计算器还强的四则复杂运算计算器! 实测随机打出两组复杂算式:-7.5 * 6 / ( -2 + ( -6.5 -  -5.22 ) )与7.5+-3*8/(7+2) windows ...

  4. JS编写的科学计算器

    最近半个月编写了一个JS+CSS+HTML的网页计算器,从最初的具有简陋界面的简单计算器改版到最终具有科学/标准计算器转换功能并且界面非常友好的计算器,收获良多!总的来说,代码简单,通俗易读,下面贴上 ...

  5. HTML meta锚点跳转 小tips

    小tips meta锚点跳转 http://www.zhangxinxu.com/wordpress/2015/03/meta-http-equiv-refresh-content/

  6. 科学计算器的Java实现

    简易的科学计算器的实现 ---Java版 import javax.swing.*;//新的窗口组件包 import java.awt.*; import java.awt.event.*; publ ...

  7. Windows7驱动调试小Tips

    v:* { } o:* { } w:* { } .shape { }p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-botto ...

  8. 你不知道的JavaScript--Item17 循环与prototype最后的几点小tips

    1.优先使用数组而不是Object类型来表示有顺序的集合 ECMAScript标准并没有规定对JavaScript的Object类型中的属性的存储顺序. 但是在使用for..in循环对Object中的 ...

  9. 小tips:JS之浅拷贝与深拷贝

    浅拷贝: function extendCopy(p) { var c = {}; for (var i in p) { c[i] = p[i]; } return c; } 深拷贝: functio ...

随机推荐

  1. 苹果发布【新开发语言】Swift

    Swift is a multi-tenant, highly scalable and durable object storage system that was designed to stor ...

  2. AndroidStudio gradle配置

    自2013年5月16日,在I/O大会上,谷歌推出新的Android开发环境——Android Studio,并对开发者控制台进行了改进,增加了五个新的功能, google就已经彻底放弃eclipse ...

  3. 《C++ Primer Plus》学习笔记 2.1.1 main()函数

    main()函数的基本结构如下: int main() { statements ; } 这几行代码构成了函数定义(function definition),该定义由两部分组成: 第一行int mai ...

  4. 从远程(包括ftp,http等协议)地址获取文件流信息

    URL url = new URL("ftp://172.18.251.155:8010/recordsImg/2019-01-28/000008_1548649813267.jpg&quo ...

  5. 1854: [Scoi2010]游戏[并查集]

    1854: [Scoi2010]游戏 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 4938  Solved: 1948[Submit][Status] ...

  6. List remove及ConcurrentModificationException异常

    参考:http://blog.csdn.net/androidboy365/article/details/50540202/ 解决方案 // 1 使用Iterator提供的remove方法,用于删除 ...

  7. 深入学习AngularJS中数据的双向绑定机制

    来自:http://www.jb51.net/article/80454.htm Angular JS (Angular.JS) 是一组用来开发Web页面的框架.模板以及数据绑定和丰富UI组件.它支持 ...

  8. 如何使文本溢出边界不换行强制在一行内显示?#test{width:150px;white-space:nowrap;}

    #test{width:150px;white-space:nowrap;}

  9. Elasticsearch提示low disk watermark [85%] exceeded on [UTyrLH40Q9uIzHzX-yMFXg][Sonofelice][/Users/baidu/Documents/work/soft/data/nodes/0] free: 15.2gb[13.4%], replicas will not be assigned to this node

    mac本地启动es之后发现运行一段时间一分钟就能打印好几条info日志: [--13T10::,][INFO ][o.e.c.r.a.DiskThresholdMonitor] [Sonofelice ...

  10. 深入浅出地,彻彻底底地理解python中的编码

    python处理文本的功能非常强大,但是如果是初学者,没有搞清楚python中的编码机制,也经常会遇到乱码或者decode error.本文的目的是简明扼要地说明python的编码机制,并给出一些建议 ...