我正在尝试创建一个简单的脚本来添加到我的HTML网站. 我需要它根据用户输入的数量来计算价格. 例如,1-1000的值将乘以1.50并显示,1001-5000乘以1.20并显示为5001-10000,乘以1乘以1并显示在上面的任何数字,并显示错误消息,例如"必须"低于10000". 我一直在尝试在PHP中做到这一点,但没有成功. 解决方案 您可以使用if检查金库和文凭计算值: if($input =
以下是关于 calculator 的编程技术问答
我试图根据日期计算1-21天的天数. homecontroller $Sql = ' SELECT DISTINCT a.property_id, a.date, a.minimum_stay, a.maximum_stay,a.quantity, a.arrival_allowed,a.departure_allowed, p.duration, p.persons, p.amount, p.extra_person_price, p.minimum_stay AS price_minimum_stay, p.maximum_stay AS price_maximum_stay, p.weekdays, p.period_till, p.period_from, datedif
我是Perl的新手,我正在尝试创建一个简单的计算程序程序,但是规则与普通数学不同.所有操作都具有相同的力量,并且必须从左到右解决数学问题. 这是一个示例: 123-10 + 4 * 10 =((123-10) + 4) * 10 = 1170 8 * 7/3 + 2 =((8 * 7)/3) + 2 = 20.666 因此,在第一种情况下,用户需要输入一个字符串:123-10 + 4 * 10. 我该如何处理此任务? 很抱歉,如果这是一个普遍的问题,但是我不确定如何开始.我需要柜台吗?像 - 字符串的每个第二个字符都是操作员,而侧面的两个是数字. 解决方案 我恐怕我是懒惰的,所以我会在解析时用正则和过程解析. #!/usr/bin/env perl #use Data::Dumper; use Params::Validate (':all'); use 5.01800; use warnings; my $string=q{123 - 10 + 4
这是Python中有效的计算器吗? def calculator(): print("\nBasic Calculator.\n") num_1 = input("Enter your first number: ") operation = input("Enter your operation: ") num_2 = input("Enter your second number: ") if operation == ("+"): sum = float(num_1) + float(num_2) print ("The answer is:",(sum)) elif operation == ("-"): sum = float(num_1) - float(num_2) print ("The answer is:",(sum)) elif o
我尝试使用JavaScript(一个百分比计算器)做一个非常简单的事情.这是代码: var num = prompt("What is the number?") var perc = prompt("What is the percentage of change?") var math = num / (perc + 100) * 100 var result = alert(eval(math)) 但是,出于某种原因,我可以总结: var num1 = 15 var num2 = 100 alert(num1 + num2) 它将显示115,但我无法使用类似的内容总结: var num1 = prompt("Input a number.") var num2 = 100 alert(num1 + num2) 如果我在num1中写15张,警报将显示15100.我尝试了一些事情,但是它们都没有起作用,所以我真的需要帮助. 解决方案 您的工作不起作
亲爱的, 我是新手使用stackoverflow&pysimplegui ...我想使用pysimplegui在项目中添加一个功能,因此,当我单击一个按钮时,它将在另一个文本字段中插入一个文本,这与创建类似的原则类似计算器,但是我也需要从键盘输入一些字母的唯一区别.为了使事情变得更加清楚,我有一些特殊的角色,这些字符无法从该文本字段中的钥匙板中插入,因此我使用Pysimplegui来帮助我: 解决方案 只需将带有新字符的Input元素的文本更新为Input元素. import PySimpleGUI as sg sg.theme('DarkBlue3') words = "This is a book".split(' ') layout = [ [sg.Input(key='-IN-')], [sg.Push()] + [sg.Button(word, size=4) for word in words], ] window = sg.Windo
上下文: 我将表达式3.24 * 10^10 + 1输入我制作的计算器中. 我的计算器解决此问题的方法是 - 它首先查找模式number_a^number_b,使用Double.parseDouble()方法将2个数字解析为double,然后执行Math.pow(number_a, number_b)并用结果代替表达式. 那么,计算器类似地寻找模式number_a * number_b并解析它.到目前为止,我们的表达变为3.24E10 + 1.现在是棘手的部分.当我对此计算器进行编程时,我会考虑到计算器应找到模式number_a + number_b并解析它.我的计算器确实可以做到这一点,并将结果返回,但出乎意料但合理的 - 3.24E11.0. 我正在寻找解决方法,以使我的计算器足够聪明,可以照顾这种表达方式. 重要信息 -regex example = ([\\d\\.]+)\\*([\\d\\.]+) 代码示例 - // here 'expres
在Java中,我试图找到线性方程的系数,以在我的计算器应用程序中找到线性方程的解决方案:例如: 3x +2*(6x-3) = 2 -4x 我渴望获得的是x的系数,形式为ax+b =0, 在此特定示例中 coefficient = 19 constant = -8 请建议一个广义的想法 解决方案 正如我的评论已经提出的那样:这可能是任意复杂的,具体取决于 恰好该解析器应支持.这里涉及几种可能非常复杂和具有挑战性的任务. 第一个是解析本身.尽管它很熟悉,并且有撰写解析器的支持工具,但这将是乏味的(并且涉及一些努力)为这些表达式编写可靠,可靠的解析器 . 第二个是简化表达式.虽然可以编写一个简单的解析器(或使用现有的解析器),但(乍一看)可能会认为有必要对生成的AST进行操作,以便找到实际的常数和系数 - 例如人们可以认为有必要应用分配定律,找到共同因素,将部分表达从方程式转移到另一侧,等等. 幸运的是,所有这些都不需要: - ) 您可以
我需要制作一个简单的计算器(带有infix运算符)解析器,该解析器处理操作员 +, - ,*,/和float and varible. 为此,我使用了javacc,然后我用jjtree做了 relm ="nor="nofollow"> .它有效,但不能确保最终树是我需要的二进制树. 我想要5*3+x-y的东西来生成以下树: * / \ 5 + / \ 3 - / \ x y 这样做是什么适当的语法,那不会是左派的? 解决方案 类似以下内容将为您提供所需的树. void sum(): {} { term() [ plus() sum() | minus() sum() | times() sum() | divide() sum() | modulo() sum() ] } void term() : {} { "(" su
我在数据结构类中有一个分配,在该类别中,我必须编程一个用4个基本操作和括号求解算术表达式的计算器,该输入是通过STDIN缓冲区完成的,并且在输出中相同. 一开始很容易,老师为我们提供了算法(如何将表达式从infix转换为后缀以及如何评估),唯一的目标是让我们实现自己的堆栈并使用它,但是计算器本身的运作不佳,我认为这是因为我的解析器. 这是algorithm数字,运算符和括号将它们放入数组中以以稍后更容易评估的方式存储表达式. // saida is an array of pairs of integers, the first value of the pair is the value of the info (the number itself or the ASCII value of the operator) // The second value is an indicator of whether it is a number or a operator f
如何解析和评估infix计算器语法中的表达式?我想到了两种方式. 第一个涉及使用两个堆栈.一个用于数字,另一个用于操作员,我将评估操作员的优先级和关联,以找出如何评估表达式. 第二种方法涉及将infix表达式转换为后缀,我不知道该怎么做.这只是一个主意.目前,我设置了我的程序,目的是使用第一方法. #include #include #include using namespace std; bool die(const string &msg); //stack class class Stack{ public: Stack(); void push(const double &val); void push(const string &oper); double popnum(); string popop(); double getopele();
我想学习计算器的工作原理.例如,假设我们在这样的插图符号中有输入: 1 + 2 x 10-2 解析器必须尊重数学中的共同规则.在上面的示例中,这意味着: 1 +(2 x 10)-2 = 19(而不是3 x 10-2 = 28) ,然后考虑以下内容: 1 + 2 x((2/9) + 7)-2 它涉及抽象语法树吗?一棵二进制树?操作顺序如何确保在数学上正确正确?我是否必须使用分流码算法将其转换为后缀符号?然后,我将如何用后缀符号解析?为什么首先转换? 是否有一个教程显示这些相对简单的计算器是如何构建的?还是有人可以解释? 解决方案 评估表达式的一种方法是递归下降解析器. 这是BNF形式的示例语法: http://en.wikipedia.org/wiki/wiki/backus-backus-naur_form Expr ::= Term ('+' Term | '-' Term)* Term ::= Factor ('*' Factor
设计数学解析器的最聪明方法是什么?我的意思是获得数学字符串(例如:" 2 + 3/2 +(2 * 5)")并返回计算值的函数?我确实是在VB6之前写过的,但最终还是blo肿而不是很便携(或对此很聪明...).一般想法,伪造代码或真实代码将受到赞赏. 解决方案 一种很好的方法将涉及两个步骤.第一步涉及将表达式从Infix转化为infix的第一步.通过 dijkstra的分流场)表示法.完成此操作后,写其他解决方案 我写了一些有关设计数学解析器的博客文章.有一个通用简介,关于 ://lukaszwrobel.pl/blog/math-parser-part-2-grammar" rel =" noreferrer"> grammars ,用ruby 编写的示例实现和a 测试套件.也许您会发现这些材料有用. 其他解决方案 您有几种方法.您可以生成动态代码并执行它以获取答案而无需编写很多代码.只需在.NET中对运行时生成的代码进行搜索,并且周围有很多示例. 另外,您可以创
我是Swift的新手.只是想知道如何将下面的代码转换为可选. var displayValue: Double { get { return NSNumberFormatter().numberFromString(display.text! as NSString)!.doubleValue } set { display.text = "\(newValue)" userIsInTheMiddleOfTypeingANumber = false } } 这是来自斯坦福计算器讲座系列.讲师没有显示如何使其可选.我的理解是,当DisplayValue中有一个无法转换为双重(例如"错误")的字符串时,应用程序会崩溃.问题是DisplayValue需要显示可以并且不能在不同时间转换为两倍的字符串. 我以前知道类似的问题,但我找不到明确的答案. 谢谢 解决方案 无需使其返回
例如,当我pres" 100"时,在文本框中输出" 001".我尝试在索引中使用-1,但仍然发生了同样的事情,然后我也尝试执行.insert(0.End,num),但会引发错误.如何在输出结束时始终输入数字.另外,这是使用TKINTER输出号码输出数字的最佳方法,还是如果有的话,还有其他方法吗? from tkinter import * import operator window = Tk() window.title('Calculator') def click(num): output.insert(0.0, num) #numbers not properly inputted (bug) #output for calculator output = Text(window, font = 'none 12 bold', height = 4, width = 25, wrap = 'word') output.grid(row = 0, column
我必须为一个可以运行计算器的操作系统编码,就像桌面计算器一样.为此,我正在阅读 brokenthorn操作开发系列我已经完成了 解决方案 如果您想使用高级BIOS键盘服务,而不是自己处理键盘,那么INT 16h是您想要的. INT 16h带有AH=00h或10h的 10h将阻止等待按键(返回ASCII结果AL);如果要避免阻止,请使用AH=01h或11h查询是否可用键盘(立即使用ZF返回ZF清除键是否可用,或设置(如果不是)).参见例如在这里.edu/〜lockwood/class/cs306/books/artofasm/artofasm/chapter_20/ch20-3.html" rel =" noreferrer">在这里(或google" int 16h"以获取更多). 其他解决方案 您可以处理IRQ 1(由X86控制器映射到中断9),然后读取端口60h的键. 参见 a>. 其他解决方案 最小的气体启动部门BIOS示例 当您输入角色时,它