本文的目的是介绍如何创建3个操作数计算器的详细情况,特别关注如何创建3个操作数计算器的函数的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解如何创建3个操作数计算器的机
本文的目的是介绍如何创建3个操作数计算器的详细情况,特别关注如何创建3个操作数计算器的函数的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解如何创建3个操作数计算器的机会,同时也不会遗漏关于android – 如何创建3个同样宽的TextView,它在屏幕上填充父级、c – SSE FP单元是否检测到0.0个操作数?、c – 操作符==的两个操作数的隐式转换、css – 创建3个完全相等的列,占据浏览器窗口宽度的100%的知识。
本文目录一览:- 如何创建3个操作数计算器(如何创建3个操作数计算器的函数)
- android – 如何创建3个同样宽的TextView,它在屏幕上填充父级
- c – SSE FP单元是否检测到0.0个操作数?
- c – 操作符==的两个操作数的隐式转换
- css – 创建3个完全相等的列,占据浏览器窗口宽度的100%
如何创建3个操作数计算器(如何创建3个操作数计算器的函数)
如何解决如何创建3个操作数计算器?
我正在做一个计算器项目,用2个操作数完成,但是努力编写代码并求解3个操作数calc。问题是当我这样做时,例如10 + 10 =(答案20)工作正常,但10 + 10 + 10 =(也答案20)。似乎忘记了第一个变量。
以下是我在vb2010上的代码,请告知我是否错过了什么。谢谢。
Dim first As Double
Dim second As Double
Dim third As Double
Dim answer As Double
Dim process As String
Private Sub Button15_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button15.Click
first = Val(TextBox1.Text)
TextBox1.Text = ""
formula.Text = first & "x"
process = "*"
End Sub
Private Sub Button14_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button14.Click
first = Val(TextBox1.Text)
TextBox1.Text = ""
formula.Text = first & "+"
process = "+"
End Sub
Private Sub Button12_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button12.Click
first = "0"
second = "0"
answer = "0"
formula.Text = ""
TextBox1.Text = ""
End Sub
Private Sub Button16_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button16.Click
If process = "+" Then
second = Val(TextBox1.Text)
formula.Text = first & "+" & second & "="
answer = first + second
TextBox1.Text = answer
End If
If process = "*" Then
second = Val(TextBox1.Text)
formula.Text = first & "x" & second & "="
answer = first * second
TextBox1.Text = answer
End If
If process = "/" Then
second = Val(TextBox1.Text)
formula.Text = first & "÷" & second & "="
answer = first / second
TextBox1.Text = answer
End If
If process = "-" Then
second = Val(TextBox1.Text)
formula.Text = first & "-" & second & "="
answer = first - second
TextBox1.Text = ""
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button2.Click
first = Val(TextBox1.Text)
TextBox1.Text = ""
formula.Text = first & "-"
process = "-"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click
first = Val(TextBox1.Text)
TextBox1.Text = ""
formula.Text = first & "÷"
process = "/"
End Sub
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
android – 如何创建3个同样宽的TextView,它在屏幕上填充父级
你能否告诉我如何在屏幕上创建3个同样宽的TextView来填充父级?我尝试这样做,但TextView的宽度是不同的:它是149,89,89.
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="*" android:shrinkColumns="*">
<TextView android:id="@+id/t1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="0"/> <TextView android:id="@+id/t2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="1"/> <TextView android:id="@+id/t3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="2"/>
解决方法
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:layout_height="wrap_content" android:layout_width="0dp" android:layout_weight="1" /> <TextView android:layout_height="wrap_content" android:layout_width="0dp" android:layout_weight="1" /> <TextView android:layout_height="wrap_content" android:layout_width="0dp" android:layout_weight="1" /> </LinearLayout>
c – SSE FP单元是否检测到0.0个操作数?
第一个分析仪运行100k样品.从文件(!)读取参数值:
b0 = 1.0 b1 = -1.480838022915731 b2 = 1.0
a0 = 1.0 a1 = -1.784147570544337 a2 = 0.854309980957510
第二个分析仪运行相同的100k样本.从文件(!)读取参数值:
b0 = 1.0 b1 = -1.480838022915731 b2 = 1.0
a0 = 1.0 a1 = -1.784147570544337 a2 = 0.0 <---只有a2不同! 在图中,左侧的数字(灰色背景)表示所需的cpu周期.因为参数a2 = 0.0的清晰可见的第二次运行要快得多. 我检查了调试和发布代码之间的区别.发布代码更快(正如预期的那样).修改参数a2时,调试和释放代码具有相同的奇怪行为. 然后我检查了ASM代码.我注意到使用了SSE指令.这是有效的,因为我用/ arch:SSE2编译.因此我禁用了SSE.生成的代码不再使用SSE,性能不再依赖于参数值a2(如预期的那样) 因此,我得出的结论是,当使用SSE并且SSE引擎检测到a2为0.0时,它们是某种性能优势,因此省略了过时的乘法和减法.我从来没有听说过这个,并试图找到信息,但没有成功. 那么有人对我的表现结果有解释吗? 为完整起见,这是发布版本的相关ASM代码:
00F43EC0 mov edx,dword ptr [ebx] 00F43EC2 movss xmm0,dword ptr [eax+edi*4] 00F43EC7 cmp edx,dword ptr [ebx+4] 00F43ECA je $LN419+193h (0F43F9Dh) 00F43ED0 mov esi,dword ptr [ebx+4] 00F43ED3 lea eax,[edx+68h] 00F43ED6 lea ecx,[eax-68h] 00F43ED9 cvtps2pd xmm0,xmm0 00F43EDC cmp ecx,esi 00F43EDE je $LN419+180h (0F43F8Ah) 00F43EE4 movss xmm1,dword ptr [eax+4] 00F43EE9 mov ecx,dword ptr [eax] 00F43EEB mov edx,dword ptr [eax-24h] 00F43EEE movss xmm3,dword ptr [edx+4] 00F43EF3 cvtps2pd xmm1,xmm1 00F43EF6 mulsd xmm1,xmm0 00F43EFA movss xmm0,dword ptr [ecx] 00F43EFE cvtps2pd xmm4,xmm0 00F43F01 cvtps2pd xmm3,xmm3 00F43F04 mulsd xmm3,xmm4 00F43F08 xorps xmm2,xmm2 00F43F0B cvtpd2ps xmm2,xmm1 00F43F0F movss xmm1,dword ptr [ecx+4] 00F43F14 cvtps2pd xmm4,xmm1 00F43F17 cvtps2pd xmm2,xmm2 00F43F1A subsd xmm2,xmm3 00F43F1E movss xmm3,dword ptr [edx+8] 00F43F23 mov edx,dword ptr [eax-48h] 00F43F26 cvtps2pd xmm3,xmm3 00F43F29 mulsd xmm3,xmm4 00F43F2D subsd xmm2,xmm3 00F43F31 movss xmm3,dword ptr [edx+4] 00F43F36 cvtps2pd xmm4,xmm0 00F43F39 cvtps2pd xmm3,xmm3 00F43F3C mulsd xmm3,xmm4 00F43F40 movss xmm4,dword ptr [edx] 00F43F44 cvtps2pd xmm4,xmm4 00F43F47 cvtpd2ps xmm2,xmm2 00F43F4B xorps xmm5,xmm5 00F43F4E cvtss2sd xmm5,xmm2 00F43F52 mulsd xmm4,xmm5 00F43F56 addsd xmm3,xmm4 00F43F5A movss xmm4,dword ptr [edx+8] 00F43F5F cvtps2pd xmm1,xmm1 00F43F62 movss dword ptr [ecx+4],xmm0 00F43F67 mov edx,dword ptr [eax] 00F43F69 cvtps2pd xmm4,xmm4 00F43F6C mulsd xmm4,xmm1 00F43F70 addsd xmm3,xmm4 00F43F74 xorps xmm1,xmm1 00F43F77 cvtpd2ps xmm1,xmm3 00F43F7B movss dword ptr [edx],xmm2 00F43F7F movaps xmm0,xmm1 00F43F82 add eax,70h 00F43F85 jmp $LN419+0CCh (0F43ED6h) 00F43F8A movss xmm1,dword ptr [ebx+10h] 00F43F8F cvtps2pd xmm1,xmm1 00F43F92 mulsd xmm1,xmm0 00F43F96 xorps xmm0,xmm0 00F43F99 cvtpd2ps xmm0,xmm1 00F43F9D mov eax,dword ptr [ebp-4Ch] 00F43FA0 movss dword ptr [eax+edi*4],xmm0 00F43FA5 mov ecx,dword ptr [ebp-38h] 00F43FA8 mov eax,dword ptr [ebp-3Ch] 00F43FAB sub ecx,eax 00F43FAD inc edi 00F43FAE sar ecx,2 00F43FB1 cmp edi,ecx 00F43FB3 jb $LN419+0B6h (0F43EC0h)
编辑:按发布代码替换调试ASM代码.
解决方法
那么为什么你会看到性能的变化呢?最可能的解释是由于输入或结果不正常而遇到失速;这与DSP滤波器和延迟非常相似,就像你拥有的那样.如果没有看到你的代码和输入数据,就不可能确定这是发生了什么,但它是迄今为止最可能的解释.如果是这样,您可以通过在MXCSR中设置DAZ和FTZ位来解决问题.
英特尔文档:
http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-optimization-manual.pdf(请参阅附录中的延迟表,注意mulss和mulsd有固定值.)
AMD 16h指令延迟(excel电子表格):
http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/AMD64_16h_InstrLatency_1.1.xlsx
Agner Fog的Intel和AMD指令延迟表:
http://www.agner.org/optimize/instruction_tables.pdf
c – 操作符==的两个操作数的隐式转换
class A {public: operator bool() const { return true; }};int main(){ A a,b; a == b; //why does this compile? return 0;}
对于一个== b而言内部发生的是对两个操作数都调用了运算符bool()const,然后将两个布尔值进行比较,以相等(这发生在我们的生产代码中,类A是智能指针类型,并在语义上给出可疑的结果).
我的问题是:C标准中的什么规则允许在这种情况下两个操作数的隐式转换?我可以理解,如果另一个操作数已经是一个bool,而不是两个操作数,一个操作数将被隐式转换为bool以进行相等的测试.
解决方法
I can understand that one operand would be implicitly converted …,but not both
然后你被误解了编辑:根据专家的评论,参数依赖查找似乎是一个你的假设是正确的情况.但你的不是ADL的例子.
What rule in the C++ standard allows for the implicit conversion of both operands
从标准草案:
[over.match] (2.9)
- Then the best viable function is selected based on the implicit conversion sequences (13.3.3.1) needed
to match each argument to the corresponding parameter of each viable function.
我强调“每个论据”.不是“单一论证”.
css – 创建3个完全相等的列,占据浏览器窗口宽度的100%
这可能是许多解决方案的问题,但我迄今为止所尝试的工作可靠。
解决方法
HTML
<div> <div> <img src="http://nssdc.gsfc.nasa.gov/planetary/image/neptune_voy2.jpg" /> </div> <div> <img src="http://nssdc.gsfc.nasa.gov/planetary/image/neptune_voy2.jpg" /> </div> <div> <img src="http://nssdc.gsfc.nasa.gov/planetary/image/neptune_voy2.jpg" /> </div> </div>
CSS
html,body { margin:0; padding:0; width:100%; height:100%; } .container { width:100%; } .column { width:33.33333333%; float:left; } .column img { width:100%; height:auto; }
演示
http://jsfiddle.net/andresilich/2p8uk/
单页演示
http://fiddle.jshell.net/andresilich/2p8uk/show/
CSS3演示
html,body { margin:0; padding:0; width:100%; height:100%; } .container { display:-moz-Box; display:-webkit-Box; display:Box; -moz-Box-orient:horizontal; -webkit-Box-orient:horizontal; Box-orient:horizontal; width:100%; } .column { -moz-Box-flex:1; -webkit-Box-flex:1; Box-flex:1; background-color:#ddd; } .column img { width:100%; height:auto; }
演示
http://jsfiddle.net/andresilich/2p8uk/2/
单页演示
http://fiddle.jshell.net/andresilich/2p8uk/2/show/
更新:(safari,sorta,fix)
Safari不像其他浏览器那样将33.33%等同于100%,您可以使用我的CSS3演示,通过CSS自动进行大小调整,或者您可以将所有内容都放在具有101%宽度的容器中,并且只能隐藏额外的1%溢出:隐藏;关闭第三个图像。尝试这个:
<div> <div> <div> <img src="http://nssdc.gsfc.nasa.gov/planetary/image/neptune_voy2.jpg" /> </div> <div> <img src="http://nssdc.gsfc.nasa.gov/planetary/image/neptune_voy2.jpg" /> </div> <div> <img src="http://nssdc.gsfc.nasa.gov/planetary/image/neptune_voy2.jpg" /> </div> </div> </div> html,body { margin:0; padding:0; width:100%; height:100%; } .container { width:100%; } .inner { width:101%; overflow:hidden; } .column { width:33.33333333%; float:left; } .column img { width:100%; height:auto; }
演示:http://fiddle.jshell.net/andresilich/2p8uk/4/
今天关于如何创建3个操作数计算器和如何创建3个操作数计算器的函数的分享就到这里,希望大家有所收获,若想了解更多关于android – 如何创建3个同样宽的TextView,它在屏幕上填充父级、c – SSE FP单元是否检测到0.0个操作数?、c – 操作符==的两个操作数的隐式转换、css – 创建3个完全相等的列,占据浏览器窗口宽度的100%等相关知识,可以在本站进行查询。
本文标签: