第35講 10進数をn進数に翻訳する△
第5話 35進数まで翻訳できるようにn進数翻訳ソフトを改良する
コード例
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^
e) {
int a,n;
a=int::Parse(textBox1->Text);
n=int::Parse(textBox2->Text);
textBox3->Text=f(a,n);
}
String^ f(int a,int n){
int r;
String^ w=L"";
r=a%n;
String^ v;
r=a%n;
if(r==10)v=L"A";
if(r==11)v=L"B";
if(r==12)v=L"C";
if(r==13)v=L"D";
if(r==14)v=L"E";
if(r==15)v=L"F";
if(r==16)v=L"G";
if(r==17)v=L"H";
if(r==18)v=L"I";
if(r==19)v=L"J";
if(r==20)v=L"K";
if(r==21)v=L"L";
if(r==22)v=L"M";
if(r==23)v=L"N";
if(r==24)v=L"O";
if(r==25)v=L"P";
if(r==26)v=L"Q";
if(r==27)v=L"R";
if(r==28)v=L"S";
if(r==29)v=L"T";
if(r==30)v=L"U";
if(r==31)v=L"W";
if(r==32)v=L"V";
if(r==33)v=L"X";
if(r==34)v=L"Y";
if(r==35)v=L"Z";
if(r<10)v=r.ToString();
a=a/n;
if(a>0){
w+=f(a,n);
}
else{
return(v);
}
return(w+=v);
}
};
}
実行例
if(r==10)v=L"A";
if(r==11)v=L"B";
if(r==12)v=L"C";
if(r==13)v=L"D";
・
・
は少し芸がありませんね。
皆さんは、ポインタなど使ってもう少しエレガントなものを考えてください。
では、本講最後の課題です。
Form1を大きくして、n進数を逆に10進数に翻訳できるように変更してください。
ただし、あまり複雑にならないようにこちらの場合のnは9以下としましょう。
VC++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual
Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)