arduino怎么进行ln计算

arduino怎么进行ln计算,第1张

arduino怎么进行ln计算
第一步:44键盘的功能实现
在此项目中,44键盘只需要实现输入数据的功能,因此,只需要当按键按下后将按键所对应的数字以字符串的方式显示出来即可,以方便之后的数据切割工作。
键盘可通过添加keypad库使之后的代码编写更加方便。具体程序如下所示
#include <Keyh>
#include <Keypadh>
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1', '2', '3', '+'},
{'4', '5', '6', '-'},
{'7', '8', '9', 'C'},
{'', '0', '#', '/'}
}; //生成数组keys
byte rowPins[ROWS] = {2, 3, 4, 5};
byte colPins[COLS] = {6, 7, 8, 9}; //定义引脚号
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //设置初始化
void setup() {
Serialbegin(9600);
}
void loop() {
char key = keypadgetKey(); //由键盘输入键值
if (key != NO_KEY) { //当键盘输入不为空时
input = input + String(key);
}
Serialprint(input);
}
登录后复制

此段程序最后输出的input就是一串完整的输入而不是每次输入的单个元素。当然keys可根据你自身的需求或将其扩展或改变其中的元素等。
第二步:数据的处理
在这一步中,我们需要让arduino知道我们输入的是加减法抑或是乘除法,以及第一个数是什么,第二个数是什么,因此,在此步骤中,我们需要做的是数据的分割。具体代码如下所示:
length = String(input)length();
for (int i = (1); i <= (length); i = i + (1))
{
a = String(input)charAt(i);
if (a == '+' || a == '-' || a == '' || a == '/') {
Serialprint("the input is:");
Serialprintln(input);
Serialprint("the symbol is:");
Serialprintln(a);
sp = i + 1;
Serialprint("the position of symbol:");
Serialprintln(sp);
frontn = String(input)substring(0, i);
//Serialprintln(frontn);
x = String(frontn)toInt();
Serialprint("the first number is:");
Serialprintln(x);
aftn = String(input)substring(i + 1, length);
y = String(aftn)toInt();
Serialprint("the second number is:");
Serialprintln(y);
}
}
登录后复制

如代码所示,我们需要先知道此次输入有多少位,当我们获得此数据后,我们就能依据长度,从第一位开始查找他的符号,来确定此算式的属性。确定完符号后,符号位置也将显示出来,因此数据的分割将以符号的位置为依据进行切割。
第三步:加减法,乘除法功能的实现
到现在为止,数据已经划分完毕,符号也已经确定,因此,我们只需要将他们依据符号进行相应的计算即可,此处采用switch…case…语句进行判断。具体代码如下所示:
switch (a) {
case '+':
answer = x + y;
Serialprint("the answer is:");
Serialprintln(answer);
break;
case '-':
answer = x - y;
Serialprint("the answer is:");
Serialprintln(answer);
break;
case '':
answer = x y;
Serialprint("the answer is:");
Serialprintln(answer);
break;
case '/':
answer = x / y;
Serialprint("the answer is:");
Serialprintln(answer);
break;
}
登录后复制

第四步:数据的清除
当我们计算完一个式子后,相应的变量中依旧保留着此次的结果,这是我们所不期望的,因为当下一次计算时,可能会导致输出值依旧为上一个式子的值,因此,在此,我将C设置为清除,来抹去所有变量的值。具体代码如下所示:
if (key == 'C') {
Serialprintln();
input = "";
String frontn = "";
String aftn = "";
int x = 0;
int y = 0;
int answer = 0;
int sp = 0;
}
登录后复制

最后将上述所有的代码片段组合在一起后就能得到一个能进行简单计算的arduino计算器了,其运行结果将如下所示,其中#为判断结束的符号,每计算完一个算式后需要按下C清除数据。

这个是有公式可以直接用的:log a底b × log b底a = 1(a>0,且a≠1,b>0)
这条公式可以由换底公式推出来:
log a底b = (log b底b) ÷ (log b底a) = 1 / (log b底a) (a>0,且a≠1,b>0)
即 log a底b × log b底a = 1(a>0,且a≠1,b>0)
这道题如果不用公式算,也可以从其他角度入手:
设 log 2底3 = m,log 3底2=n,得:
2^m=3,(1)
3^n=2,(2)
将(1)式代入(2)式中(或将(2)式代入(1)式中),得;
3^n=(2^m)^n=2^(m×n)=2
即 m×n = 1
因此 log 2底3 × log 3底2 = 1

以内
Python是一种面向对象的编程语言,它的语法简单,易于学习,功能强大,可以用来开发各种应用程序。Python的主要特点是它的语法简洁,易于理解,可读性强,可以用来编写简洁的代码,以及它的强大的类库,可以让开发者快速实现功能。Python还提供了许多标准库,可以让开发者快速实现常见的功能,比如字符串处理,网络编程,数据处理等。Python还支持多种编程范式,比如面向对象编程,函数式编程等,可以让开发者更加灵活的实现功能。

先打开电脑,然后查看ln函数、查看log函数计算ln函数值。
在matlab命令行窗口中输入helpln,回车显示错误,说明无ln函数。在命令行窗口中继续输入helplog,回车显示是自然对数函数,说明ln用log表示。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,高效的数值计算功能。目前其他编程语言以及其他类似的数学软件无可替代。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13333984.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存