本文最开始是在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. 程序阅读:简单C++学生信息管理系统

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [程序阅读]阅读并执行以下的程序,找出当中出现 ...

  2. C#------引用System.Data.Entity后DbContext依然无法继承解决方法

    解决方法: 需要在“引用”->“管理NuGet程序包”里面添加->“EntityFramework.dll”文件即可

  3. 杭电 1280 前m大的数

    http://acm.hdu.edu.cn/showproblem.php?pid=1280 前m大的数 Time Limit: 2000/1000 MS (Java/Others)    Memor ...

  4. ios开发之 -- x-code删除描述文件

    描述文件所在的目录是:~/Library/MobileDevice/Provisioning\ Profiles/ 进入这个目录,删除所有描述文件.

  5. 开发VS2008 AddIn 入门Sample

    本文主要介绍的是VS2008插件开发 环境要求:VS2008:.Net3.5 目标:开发插件功能为“在VS中创建文本文档,并在文本开头输入//This code was created For Tes ...

  6. jsp导出到Excel

    jsp模板文件 <%@ page isELIgnored="false" contentType="application/x-msdownload; charse ...

  7. ajax请求加全局loading , 个别特殊请求不显示loading

    项目中,请求开始前加载loading遮罩层,请求结束关闭遮罩,一般都会加在全局中,但有个别请求不需要加全局loading 的话,这时候就需要对这些请求进行配置 全局加loading: ; functi ...

  8. Django--20170905--笔记

    一.django的安装 1.先安装python 2.再安装django:pip install django 3.使用虚拟环境:pip install virtualenv 二.项目的创建 1.可以先 ...

  9. Hibernate的多对多映射关系

    example: 老师(teacher)和学生(Student)就是一个多对多的关系吧?老师可以有多个学生,学生也可以由多个老师,那在Hibernate中多对多是怎样实现的呢?? 在Hibernate ...

  10. gdb常见命令(未完,待续)

    // 编译文件时,带参-g > gcc -g test.c // 进入gdb调试界面 > gdb a.out 或者 > gdb > file a.out // 查看文件内容 & ...