以下算法用于计算二次方程根,但编译它会产生编译错误.我从教程中复制了它.
2 roota.hs:5:20: parse error on input `='
roots (a,b,c) =
if d < 0 then error "sorry" else (x1, x2)
where x1 = e + sqrt d / (2 * a)
x2 = e - sqrt d / (2 * a)
d = b * b - 4 * a * c
e = - b / (2 *a)
Run Code Online (Sandbox Code Playgroud)
谢谢你的回答.
MOV EAX,0XB504F333
MOV ECX,0XB504F333
;EAX = B504F333
;ECX = B504F333
IMUL ECX ;RESULT=
------------------------------
;EDX = 15F61998 ;it is incorrect the correct value is 7FFFFFFF
;EAX = 9EA1DC29 ;it is correct
;Carry flag = 1
;Overflow flag = 1
;Sign flag = 0
Run Code Online (Sandbox Code Playgroud)
它没有办法溢出因为:
7FFFFFFFFFFFFFFF = 9223372036854775807 => sqrt(9223372036854775807) = 3037000499 = 0xB504F333
0xB504F333 * 0xB504F333 < 7FFFFFFFFFFFFFFF (EDX:EAX)
Run Code Online (Sandbox Code Playgroud)
为何溢出?
谢谢你的回复.
我附上代码,缩进,任何人都知道问题出在哪里?
错误代码:
zo.hs:7:9: parse error (possibly incorrect indentation)
Run Code Online (Sandbox Code Playgroud) 我正在寻找想法,而不是 shell(linux) 中下一个问题的完整解决方案。最好的解决方案是什么?(awk、while 循环、sed ....)
我有两个具有相同行结构的文件:key-value-value
. 我想合并这两个文件。如果该值不存在,脚本将插入一个新行。如果存在,脚本会更新这些值(通过将它们相加)。
Example:
File 1:
john-15-40
doo-10-91
mary-14-19
foo-11-0
File 2:
foo-110-10
john-22-11
ghost-1000-1000
Result:
foo-121-10
john-37-51
ghost-1000-1000
doo-10-91
mary-14-19
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
有没有办法扩大规模QPainterPath
?
在示例中,我的问题是我有一个包含许多行的QPainterPath
大小,400,400
我想将其缩放到800,800
任何其他大小,并通过向其他坐标添加偏移来移动整个事物.
编辑:
问题的根源是我想在一个小部件和后期阶段绘制一些内容我想通过将其缩放到适当的大小来在另一个小部件上显示绘图.这就是为什么我在考虑缩放QPainterPath
.