小算盘三角函數運算不對是什麼原因 (科學小算盘)比如我直接輸入Sin30,答案卻是0.45……

小算盘三角函數運算不對是什麼原因 (科學小算盘)比如我直接輸入Sin30,答案卻是0.45……


角度的組織很多,中國用的是“度”,圓周角為360度,sin(30度Deg)=0.5.
歐洲國家用的是“哥”,圓周角為400哥,sin(30哥Gra)=0.4539904997.
還有就是弧度Rad,圓周角為2Pi,sin(30)= -0.9880316241
這裡肯定是組織設定錯了,在電腦上頻幕上方Deg簡寫為D,Gra簡寫為G,Rad簡寫為R.



科學小算盘三角函數的計算結果有誤,怎麼辦
科學小算盘三角函數的計算結果,與實際結果有差別,該怎麼辦?


科學小算盘不大可能犯錯誤的,可能是出了問題.如果是,就摔了它,看看它服不服.



c語言小算盘程式設計包含加減乘除簡單的函數運算


實用計算器之程式設計
[摘要]多用小算盘的構思及設計程式碼
[關鍵字]多用小算盘;設計
數值計算可以說是日常最頻繁的工作了,WIN98提供了“小算盘”軟件供用戶使用,該軟件可以處理一般的一步四則運算,例如:3+2、5/3等等,但在日常中用戶經常遇到多步四則運算問題,例如:3 +4*5-4/2,45*34/2+18*7等等,那麼該個小算盘就無法勝任了,作者製作了一個實用的小算盘,該小算盘新增不少功能:(程式介面如圖)
1.可以實現連續的四則運算
2.可以實現輸入式子的顯示
3.可以方便計算個人所得稅
4.滑鼠、鍵盤均可輸入數據
5.操作介面友好
6.擊鍵可發聲
構建該個小算盘所需研究及解决的覈心問題有如下幾個:1、連乘求值?2、字元顯示3、鍵盤輸入?4、擊鍵發聲?5、個人所得稅法規,為了使大家對程式有更一步認識,現將程式碼提供給讀者參考:
*定義數組及表單變數
Dim number2(0 To 50)As Double
Dim number(0 To 50)As Double
Dim z As Integer
Dim k As Integer,r As Integer
Dim j As Integer
Dim str As String
*調用名為“playsound”的API函數
Private Declare Function PlaySound Lib“winmm.dll“Alias”PlaySoundA“(ByVal lpszName As String,ByVal hModule As Long,ByVal dwFlags As Long)As Long
Private Const SND_FILENAME = &H20000?
Private Const SND_ASYNC = &H1?
Private Const SND_SYNC = &H0
*判斷通用過程
Sub pianduan(p As String)
r = 0
Dim i As Integer,l As Integer,h As Integer
h = 0
i = 1
If InStr(Trim$(p),“*”)0 Then
k = k + 1
End If
If InStr(Trim$(p),“/”)0 Then
r = r + 1
End If
End Sub
*連乘通用過程(略)
*各按鈕事件過程
Private sub Command1_Click(Index As Integer)
PlaySoundApp.Path&“\start.wav“,0,SND_SYNC
Text1.Text = Text1.Text + Command1(Index).Caption
Text2.Text = Text2.Text + Command1(Index).Caption
Text1.SetFocus
End Sub
rivate sub Command10_Click()
PlaySoundApp.Path&“\start.wav“,0,SND_SYNC
str = Text3.Text
End Sub
Private sub Command11_Click()
PlaySoundApp.Path&“\start.wav“,0,SND_SYNC
Text3.Text = str
End Sub
rivate sub Command2_Click()
PlaySoundApp.Path&“\start.wav“,0,SND_SYNC
Dim totle As Double
Dim n As Integer
Call pianduan(Text1.Text)
If k >= 1 Or r >= 1 Then
Call liancheng(totle)
number2(z)= totle
If Mid$(Trim$(Text1.Text),1,1)=“-”Then
number2(z)= -totle
End If
k = 0: r = 0
Else
number2(z)= Val(Text1.Text)
End If
Text1.Text =“”
Text2.Text = Text2 +“+”
z = z + 1
Text1.SetFocus
End Sub
rivate sub Command3_Click()
PlaySoundApp.Path&“\start.wav“,0,SND_SYNC
Dim totle As Double
Dim n As Integer
Call pianduan(Text1.Text)
If k >= 1 Or r >= 1 Then
Call liancheng(totle)
number2(z)= totle
If Mid$(Trim$(Text1.Text),1,1)=“-”Then
number2(z)= -totle
End If
k = 0: r = 0
Else
number2(z)= Val(Text1.Text)
End If
Text1.Text =“”
Text2.Text = Text2 +“-”
Text1.Text = Text1.Text &“-”
z = z + 1
Text1.SetFocus
End Sub
Private sub Command4_Click()
PlaySoundApp.Path&“\start.wav“,0,SND_SYNC
Text2.Text = Text2.Text +“*”
Text1.Text = Text1.Text +“*”
Text1.SetFocus
End Sub
rivate sub Command5_Click()
PlaySoundApp.Path&“\start.wav“,0,SND_SYNC
Text2.Text = Text2 +“/”
Text1.Text = Text1 +“/”
Text1.SetFocus
End Sub
Private sub Command6_Click()
PlaySoundApp.Path&“\sound.wav“,0,SND_SYNC
Dim totle As Double
Dim n As Integer
Call pianduan(Text1.Text)
If k >= 1 Or r >= 1 Then
Call liancheng(totle)
number2(z)= totle
If Mid$(Trim$(Text1.Text),1,1)=“-”Then
number2(z)= -totle
End If
k = 0: r = 0
Else
number2(z)= Val(Text1.Text)
End If
Text1.Text =“”
z = z + 1
Dim dengyu As Double
Dim v As Integer
For v = 0 To 50
dengyu = dengyu + number2(v)
Next v
If dengyu < 0 Then
Text3.ForeColor = &HFF&
Else
Text3.ForeColor = &HFF0000
End If
Text3.Text = dengyu
Text1.SetFocus
If Len(Text3.Text)>= 14 Then
calcresult.Show
End If
End Sub
rivate sub Command7_Click()
PlaySoundApp.Path&“\start.wav“,0,SND_SYNC
z = 0: k = 0: r = 0: j = 0
Dim i As Integer
For i = 0 To 50
number(i)= 0
number2(i)= 0
Next i
Text1.Text =“”
Text2.Text =“”
Text3.Text =“”
Text1.SetFocus
End Sub
rivate sub Command8_Click()
PlaySoundApp.Path&“\start.wav“,0,SND_SYNC
If Val(Text3.Text)= 0 Then
MsgBox“除數不能為0!”
Exit Sub
End If
Text3.Text = 1 / Val(Text3.Text)
End Sub
Private sub Command9_Click()
PlaySoundApp.Path&“\start.wav“,0,SND_SYNC
Text3.ForeColor = &HFF0000
Text3.Text = Val(Text3.Text)* Val(Text3.Text)
End Sub
rivate sub muninternet_Click()
Dim i
i = Shell(“C:\Program Files\InternetExplorer\iexplore.exe“,vbMaximizedFocus)
End Sub
rivate sub munmp3_Click()
Dim i
i = Shell(“C:\Program Files\Windows Media Player\mplayer2”,vbNormalNoFocus)
End Sub
Private sub munsm_Click()
Dialog.Show
End Sub
rivate sub muntax_Click()
tax.Show
End Sub
rivate sub munver_Click()
ver.Show
End Sub
rivate sub notepad_Click()
Dim i
i = Shell(“c:\windows\notepad”,vbNormalFocus)
End Sub
Private sub Text1_KeyPress(KeyAscii As Integer)
PlaySoundApp.Path&“\start.wav“,0,SND_SYNC
Dim num As Integer
num = Val(KeyAscii)
If num > 47 And num < 58 Then
Text1.Text = Text1.Text + CStr(num - 48)
Text2.Text = Text2.Text + CStr(num - 48)
End If
If num = 46 Then
Text1.Text = Text1.Text +“.”
Text2.Text = Text2.Text +“.”
End If
If KeyAscii = 43 Then
Dim totle As Double
Dim n As Integer
Call pianduan(Text1.Text)
If k >= 1 Or r >= 1 Then
Call liancheng(totle)
number2(z)= totle
If Mid$(Trim$(Text1.Text),1,1)=“-”Then
number2(z)= -totle
End If
k = 0: r = 0
Else
number2(z)= Val(Text1.Text)
End If
Text1.Text =“”
Text2.Text = Text2 +“+”
z = z + 1
End If
If KeyAscii = 45 Then
Call pianduan(Text1.Text)
If k >= 1 Or r >= 1 Then
Call liancheng(totle)
number2(z)= totle
If Mid$(Trim$(Text1.Text),1,1)=“-”Then
number2(z)= -totle
End If
k = 0: r = 0
Else
number2(z)= Val(Text1.Text)
End If
Text1.Text =“”
Text2.Text = Text2 +“-”
Text1.Text = Text1.Text &“-”
z = z + 1
End If
If KeyAscii = 42 Then
Text2.Text = Text2.Text +“*”
Text1.Text = Text1.Text +“*”
End If
If KeyAscii = 47 Then
Text2.Text = Text2.Text +“/”
Text1.Text = Text1.Text +“/”
End If
If KeyAscii = vbKeyReturn Then
PlaySoundApp.Path&“\sound.wav“,0,SND_SYNC
Call pianduan(Text1.Text)
If k >= 1 Or r >= 1 Then
Call liancheng(totle)
number2(z)= totle
If Mid$(Trim$(Text1.Text),1,1)=“-”Then
number2(z)= -totle
End If
k = 0: r = 0
Else
number2(z)= Val(Text1.Text)
End If
Text1.Text =“”
z = z + 1
Dim dengyu As Double
Dim v As Integer
For v = 0 To 50
dengyu = dengyu + number2(v)
Next v
If dengyu < 0 Then
Text3.ForeColor = &HFF&
Else
Text3.ForeColor = &HFF0000
End If
Text3.Text = dengyu
End If
If KeyAscii = vbKeyEscape Then
z = 0: k = 0: r = 0: j = 0
Dim i As Integer
For i = 0 To 50
number(i)= 0
number2(i)= 0
Next i
Text1.Text =“”
Text2.Text =“”
Text3.Text =“”
Text1.SetFocus
End If
If Len(Text3.Text)>= 14 Then
calcresult.Show
End If
End Sub
rivate sub Text3_Change()
tax2.Text1 = Text3.Text
End Sub



用C語言設計一個簡單小算盘程式,能根據鍵盤輸入的運算指令和數據,做簡單的加減乘除運算.
(1)基本要求
(a)題目解析及要求:
1.要能實現基本的加、减、乘、除運算.
2.程式應具有由用戶選擇是否繼續再進行算式計算,如選擇y,表示繼續進行算式計算,如選擇n,則表示退出程式.
3.輸入數據要求:先輸入第一個數據,然後輸入運算子,最後輸入第二個數據.例如輸入算式:2+6
4.當輸入的運算出錯時,應給出提示“運算子有誤!”,並再次重新輸入.
(b)提示:
程式最終由用戶選擇是否繼續進行下一次的運算時,由用戶輸入字元Y或N來决定,如果想不管用戶輸入大寫或小寫的字元Y,程式都能繼續運算,輸入大寫或小寫的N,程式都能退出.這時可以用到函數tolower或函數toupper.
其函數原型為
函數原型:int tolower(int ch);
函數功能:將ch字元轉換為小寫字母
函數返回:返回ch所代表的字元的小寫字母
函數原型:int toupper(int ch);
函數功能:將ch字元轉換成大寫字母
函數返回:與ch相應的大寫字母
由於程式設計時要用到這些函數,所以請在預編譯行添加下列指令:
# include
(c)測試數據:
第一次輸入:(底線為輸入內容,下同)
輸入第一個數:5
請選擇運算子(+,-,*,/):9
輸出:運算子有誤!
第二次輸入:
輸入第一個數:5.3
請選擇運算子(+,-,*,/):+
輸入第二個數:7.9
輸出:計算結果為:13.2
是否繼續?(y/n):(請輸入字元'y'或'n'進行選擇)
第三次輸入:
輸入第一個數:5.3
請選擇運算子(+,-,*,/):-
輸入第二個數:7.9
輸出:計算結果為:-2.6
是否繼續?(y/n):(請輸入字元'y'或'n'進行選擇)
第四次輸入:
輸入第一個數:5.3
請選擇運算子(+,-,*,/):*
輸入第二個數:7.9
輸出:計算結果為:41.87
是否繼續?(y/n):(請輸入字元'y'或'n'進行選擇)
第五次輸入:
輸入第一個數:5.3
請選擇運算子(+,-,*,/):/
輸入第二個數:7.9
輸出:計算結果為:0.670886
是否繼續?(y/n):(請輸