第二章實驗作業2-7題
7實驗作業
2.編寫程式輸入一個三角形的三條邊,計算其面積和周長;
#include<iostream> #include<math.h> using namespace std; int main() { float a,b,c,p,S,C; cout<<"請輸入三角形的三邊:"; cin>>a>>b>>c; C=a+b+c; p=C/2; S=sqrt(p*(p-a)*(p-b)*(p-c)); cout<<"三角形周長是:"<<C<<endl; cout<<"三角形面積是:"<<S<<endl; return 0; }
3.編寫程式計算並輸出課本本章習題3表示式的值並分析結果。
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int e=1,f=4,g=2;
float m=10.5,n=4.0,k;
k=(e+f)/g+sqrt((double)n)*1.2/g+m;
cout<<"k="<<k<<endl;
return 0;
}
結果為:k=13.7
#include<iostream> using namespace std; int main() { float x=2.5,y=4.7,b; int a=7; b=x+a%3*(int(x+y)%2)/4; cout<<"b="<<b<<endl; return 0; }
結果為:b=2.5
4.編寫一個程式,輸入一個一元二次方程的三個係數,並計算其方程的解,然後輸出。
#include<iostream> #include<math.h> using namespace std; int main() { double a,b,c,t,x1,x2; cout<<"請輸入二次項係數、一次項係數和常數項係數:"; cin>>a>>b>>c; t=b*b-4*a*c; if(t>=0) { x1=(-b+sqrt(t))/(2*a); x2=(-b-sqrt(t))/(2*a); cout<<"x1="<<x1<<endl; cout<<"x2="<<x2<<endl; } else cout<<"此方程無解"<<endl; return 0; }
5.編寫程式,自己確定一個加密演算法,將自己的音標姓名(英文)加密,並輸出加密後結果,請註釋你的加密演算法。
這道題好難,看了班裡一些高手的做法還是看讀懂,我的知識還是不夠,所以想等學到點上再補上這題,先空著好吧
6.在一個自動控制裝置中,控制字位數16位,控制裝置產生機械動作(如削,壓等)的是指令字的低8位,其中保護強制停機動作的控制命令是低8位是全為0,控制報警聲音是指令的高第1位,0為報警,1為不報警。請編寫程式,在緊急狀況啟動時,向控制器輸入控制指令。
這道題目也是不會,同上理由
7.積累除錯程式經驗,收集錯誤資訊原因(每個同學收集3-5條錯誤資訊原因,並輸入電腦形成文字)。
(1)在求三角形周長和麵積時,調劑出現
error C2065: 'C' : undeclared identifier
error C2065: 'p' : undeclared identifier
error C2065: 'S' : undeclared identifier
執行 cl.exe 時出錯.
三角形.obj - 1error(s), 0 warning(s)
原因分析:忘記定義周長C,中間變數p和麵積S的型別
(2)在求一元二次方程時,調劑出錯
一元二次方程.cpp
error C2059: syntax error : 'bad suffix onnumber'
error C2146: syntax error : missing ';'before identifier 'ac'
error C2065: 'ac' : undeclared identifier
執行 cl.exe 時出錯.
一元二次方程.obj - 1error(s), 0 warning(s)
原因:t=b*b-4ac;這個式子4ac之間的乘號不能省,應該改為t=b*b-4*a*c;
(3)求一元二次方程時出現
一元二次方程.cpp
error C2181: illegal else without matching if
執行 cl.exe 時出錯.
一元二次方程.obj - 1error(s), 0 warning(s)
原因分析:if條件沒有匹配好,應該適當加{}