矩陣輸出入
矩陣乘法
有理數系2
複數系統
矩陣乘法
有理數系2
複數系統
廢怯終於完結篇啦!!!!!
果然是"神"結局
是說我才放假一個禮拜為啥作業就變得這麼長阿~
然後微積分33分耶www以前當然考過更低分的~不過沒啥爭議
這次我還真是不服說~
去拜讀了一下"寫的不錯的"除了廢話很多以外我倒是看不出來不錯在哪
看這麼多字不會累嗎XD 都要用詳細描述來算數學那數學符號是發明來幹麼的
數學算式就是最好的解釋了啦~居然反而用語言這麼容易產生誤差的描述方式
越活越回去了喔
是說果然權力不能集中阿~班級全部包辦考題就變得好有書卷氣喔~我又不是一類的
至於不服身為學生也沒辦法算我倒楣囉、是說光從喜歡寫心得這點就跟我不合了嘛XD
蓋章確認~以後選課小心點
果然是"神"結局
是說我才放假一個禮拜為啥作業就變得這麼長阿~
然後微積分33分耶www以前當然考過更低分的~不過沒啥爭議
這次我還真是不服說~
去拜讀了一下"寫的不錯的"除了廢話很多以外我倒是看不出來不錯在哪
看這麼多字不會累嗎XD 都要用詳細描述來算數學那數學符號是發明來幹麼的
數學算式就是最好的解釋了啦~居然反而用語言這麼容易產生誤差的描述方式
越活越回去了喔
是說果然權力不能集中阿~班級全部包辦考題就變得好有書卷氣喔~我又不是一類的
至於不服身為學生也沒辦法算我倒楣囉、是說光從喜歡寫心得這點就跟我不合了嘛XD
蓋章確認~以後選課小心點
矩陣輸出入
#include<iostream>
using namespace std;
int main(){
int a[100],b[100],sum[100];
int a_r,a_c,b_r,b_c;
cout<<"ROWS="<<endl;
cin>>a_r;
cout<<"COLS="<<endl;
cin>>a_c;
for(int i=0;i<a_r;i++){
for(int j=0;j<a_c;j++){
cout<<"["<<i<<"]"<<"["<<j<<"]="<<endl;
cin>>a[i*a_c+j];
}
}
cout<<"Your matrix is:"<<endl;
for(int i=0;i<a_r;i++){
for(int j=0;j<a_c;j++){
cout<<" "<<a[i*a_c+j];
}
cout<<endl;
}
}
using namespace std;
int main(){
int a[100],b[100],sum[100];
int a_r,a_c,b_r,b_c;
cout<<"ROWS="<<endl;
cin>>a_r;
cout<<"COLS="<<endl;
cin>>a_c;
for(int i=0;i<a_r;i++){
for(int j=0;j<a_c;j++){
cout<<"["<<i<<"]"<<"["<<j<<"]="<<endl;
cin>>a[i*a_c+j];
}
}
cout<<"Your matrix is:"<<endl;
for(int i=0;i<a_r;i++){
for(int j=0;j<a_c;j++){
cout<<" "<<a[i*a_c+j];
}
cout<<endl;
}
}
矩陣乘法
#include<iostream>
using namespace std;
int main(){
int a[100],b[100],sum[100];
int a_r,a_c,b_r,b_c;
cout<<"ROWS="<<endl;
cin>>a_r;
cout<<"COLS="<<endl;
cin>>a_c;
for(int i=0;i<a_r;i++){
for(int j=0;j<a_c;j++){
cout<<"["<<i<<"]"<<"["<<j<<"]="<<endl;
cin>>a[i*a_c+j];
}
}
cout<<"ROWS="<<endl;
cin>>b_r;
cout<<"COLS="<<endl;
cin>>b_c;
for(int i=0;i<b_r;i++){
for(int j=0;j<b_c;j++){
cout<<"["<<i<<"]"<<"["<<j<<"]="<<endl;
cin>>b[i*b_c+j];
}
}
int z=0;
for(int i=0;i<a_r;i++){
for(int k=0;k<b_c;k++){
int tmp=0;
for(int j=0;j<a_c;j++){
tmp+=(a[i*a_c+j]*b[j*b_c+k]);
}
sum[z]=tmp;
z++;
}
}
//cout<<z<<endl;
z=0;
for(int i=0;i<a_r;i++){
for(int j=0;j<b_c;j++){
cout<</*" "<<z<<*/" "<<sum[z];
z++;
}
cout<<endl;
}
}
沒去上課~就直接用for解決XD
封2維陣列實在有夠難寫
using namespace std;
int main(){
int a[100],b[100],sum[100];
int a_r,a_c,b_r,b_c;
cout<<"ROWS="<<endl;
cin>>a_r;
cout<<"COLS="<<endl;
cin>>a_c;
for(int i=0;i<a_r;i++){
for(int j=0;j<a_c;j++){
cout<<"["<<i<<"]"<<"["<<j<<"]="<<endl;
cin>>a[i*a_c+j];
}
}
cout<<"ROWS="<<endl;
cin>>b_r;
cout<<"COLS="<<endl;
cin>>b_c;
for(int i=0;i<b_r;i++){
for(int j=0;j<b_c;j++){
cout<<"["<<i<<"]"<<"["<<j<<"]="<<endl;
cin>>b[i*b_c+j];
}
}
int z=0;
for(int i=0;i<a_r;i++){
for(int k=0;k<b_c;k++){
int tmp=0;
for(int j=0;j<a_c;j++){
tmp+=(a[i*a_c+j]*b[j*b_c+k]);
}
sum[z]=tmp;
z++;
}
}
//cout<<z<<endl;
z=0;
for(int i=0;i<a_r;i++){
for(int j=0;j<b_c;j++){
cout<</*" "<<z<<*/" "<<sum[z];
z++;
}
cout<<endl;
}
}
沒去上課~就直接用for解決XD
封2維陣列實在有夠難寫
有理數系2
class fraction{
public:
int u,d;
void r(){
int x,y;
x=u;
y=d;
while(x%=y)swap(x,y);
u/=y;
d/=y;
}
fraction(int x=0,int y=1){
u=x;
d=y;
r();
if(d<0){
u=-u;
d=-d;
}
}
fraction operator +(int y){
return fraction(y*d+u,d);
}
fraction operator -(int y){
return fraction(u-y*d,d);
}
fraction operator *(int y){
return fraction(y*u,d);
}
fraction operator /(int y){
return fraction(u,d*y);
}
};
istream& operator >>(istream &is,fraction&x){
char t;
cin>>t>>x.u>>t>>x.d>>t;
return is;
}
ostream& operator <<(ostream& os,fraction&x){
cout<<"("<<x.u<<"/"<<x.d<<")";
return os;
}
fraction max(fraction &x,int y){
if(x.u>=y*x.d)return x;
else return fraction(y,1);
}
fraction min(int y,fraction &x){
if(x.u<y*x.d)return x;
else return fraction(y,1);
}
跟一的差別在於是跟int 作運算
另外比大小又發生不可思議事件了~傳址會變得莫名其妙
public:
int u,d;
void r(){
int x,y;
x=u;
y=d;
while(x%=y)swap(x,y);
u/=y;
d/=y;
}
fraction(int x=0,int y=1){
u=x;
d=y;
r();
if(d<0){
u=-u;
d=-d;
}
}
fraction operator +(int y){
return fraction(y*d+u,d);
}
fraction operator -(int y){
return fraction(u-y*d,d);
}
fraction operator *(int y){
return fraction(y*u,d);
}
fraction operator /(int y){
return fraction(u,d*y);
}
};
istream& operator >>(istream &is,fraction&x){
char t;
cin>>t>>x.u>>t>>x.d>>t;
return is;
}
ostream& operator <<(ostream& os,fraction&x){
cout<<"("<<x.u<<"/"<<x.d<<")";
return os;
}
fraction max(fraction &x,int y){
if(x.u>=y*x.d)return x;
else return fraction(y,1);
}
fraction min(int y,fraction &x){
if(x.u<y*x.d)return x;
else return fraction(y,1);
}
跟一的差別在於是跟int 作運算
另外比大小又發生不可思議事件了~傳址會變得莫名其妙
複數系統
class complex{
public:
double a,b;
complex(double x=0,double y=0){
a=x;
b=y;
}
complex operator +(complex x){
return complex(a+x.a,b+x.b);
}
complex operator -(complex x){
return complex(a-x.a,b-x.b);
}
complex operator *(complex x){
return complex(a*x.a-b*x.b,a*x.b+x.a*b);
}
complex operator /(complex x){
return complex((a*x.a+b*x.b)/(x.a*x.a+x.b*x.b),(b*x.a-a*x.b)/(x.a*x.a+x.b*x.b));
}
};
ostream &operator <<(ostream &os,complex &x){
if(x.b>=0)
cout<<"("<<x.a<<"+"<<x.b<<"i)";
else cout<<"("<<x.a<<x.b<<"i)";
return os;
}
istream &operator >>(istream &is,complex &x){
char l,i,r;
cin>>l>>x.a>>i>>x.b>>r>>r;
if (i=='-')x.b=-x.b;
return is;
}
輸出入要處理~其他的算簡單
.....前提是你要知道除法是怎麼算的= =|||
(a+bi)/(c+di)
=(a+bi)*(c-di)/(c+di)*(c-di)
=(ac+bd+bci+adi)/(c*c+d*d)
public:
double a,b;
complex(double x=0,double y=0){
a=x;
b=y;
}
complex operator +(complex x){
return complex(a+x.a,b+x.b);
}
complex operator -(complex x){
return complex(a-x.a,b-x.b);
}
complex operator *(complex x){
return complex(a*x.a-b*x.b,a*x.b+x.a*b);
}
complex operator /(complex x){
return complex((a*x.a+b*x.b)/(x.a*x.a+x.b*x.b),(b*x.a-a*x.b)/(x.a*x.a+x.b*x.b));
}
};
ostream &operator <<(ostream &os,complex &x){
if(x.b>=0)
cout<<"("<<x.a<<"+"<<x.b<<"i)";
else cout<<"("<<x.a<<x.b<<"i)";
return os;
}
istream &operator >>(istream &is,complex &x){
char l,i,r;
cin>>l>>x.a>>i>>x.b>>r>>r;
if (i=='-')x.b=-x.b;
return is;
}
輸出入要處理~其他的算簡單
.....前提是你要知道除法是怎麼算的= =|||
(a+bi)/(c+di)
=(a+bi)*(c-di)/(c+di)*(c-di)
=(ac+bd+bci+adi)/(c*c+d*d)