第6講 簡易電卓ソフト作りに挑戦しよう
第7話 改善の解説
各ボタンのプログラムの基本構造は、同じです。
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^
e) {
int i;
if(y2==1){
cn=cn+1;
for(i=0;i<cn;i++){
z=10*z;
}
}
if(y2==0)z=z*10;
z=z+7;
if(y2==1){
for(i=0;i<cn;i++){
z=z/10;
}
}
textBox1->Text=z.ToString();
}
改良した場所は、ピンクの部分です。
y2は、ボタン.押されたとき、
private: System::Void button17_Click(System::Object^ sender, System::EventArgs^ e) {
y2=1;
}
y2=1になるようにプログラムされています。ボタンが押される前は、プログラムの冒頭が
#pragma once
int y1;
int y2=0;
int cn=0;
double z=0;
double w;
となっていますので、y2は0です。
また、の青囲いどれかのボタンが押されたときも、
private: System::Void button11_Click(System::Object^ sender, System::EventArgs^ e) {
z=0;
cn=0;
w=0;
y1=0;
textBox1->Text=L"";
}
private: System::Void button12_Click(System::Object^ sender, System::EventArgs^ e) {
if(y1==3){
z=w+z;
textBox1->Text=z.ToString();
}
if(y1==1){
z=w*z;
textBox1->Text=z.ToString();
}
if(y1==4){
z=w-z;
textBox1->Text=z.ToString();
}
if(y1==2){
z=w/z;
textBox1->Text=z.ToString();
}
y1=1;
w=z;
z=0;
y2=0;
cn=0;
}
private: System::Void button13_Click(System::Object^ sender, System::EventArgs^ e) {
if(y1==3){
z=w+z;
textBox1->Text=z.ToString();
}
if(y1==1){
z=w*z;
textBox1->Text=z.ToString();
}
if(y1==4){
z=w-z;
textBox1->Text=z.ToString();
}
if(y1==2){
z=w/z;
textBox1->Text=z.ToString();
}
y1=2;
w=z;
z=0;
y2=0;
cn=0;
}
private: System::Void button14_Click(System::Object^ sender, System::EventArgs^ e) {
if(y1==3){
z=w+z;
textBox1->Text=z.ToString();
}
if(y1==1){
z=w*z;
textBox1->Text=z.ToString();
}
if(y1==4){
z=w-z;
textBox1->Text=z.ToString();
}
if(y1==2){
z=w/z;
textBox1->Text=z.ToString();
}
y1=3;
w=z;
z=0;
y2=0;
cn=0;
}
private: System::Void button15_Click(System::Object^ sender, System::EventArgs^ e) {
if(y1==3){
z=w+z;
textBox1->Text=z.ToString();
}
if(y1==1){
z=w*z;
textBox1->Text=z.ToString();
}
if(y1==4){
z=w-z;
textBox1->Text=z.ToString();
}
if(y1==2){
z=w/z;
textBox1->Text=z.ToString();
}
y1=4;
w=z;
z=0;
y2=0;
cn=0;
}
private: System::Void button16_Click(System::Object^ sender, System::EventArgs^ e) {
if(y1==3){
z=w+z;
textBox1->Text=z.ToString();
}
if(y1==1){
z=w*z;
textBox1->Text=z.ToString();
}
if(y1==4){
z=w-z;
textBox1->Text=z.ToString();
}
if(y1==2){
z=w/z;
textBox1->Text=z.ToString();
}
y1=0;
}
をご覧になればお分かりのように、y2は0となります。
つまり、ボタンが押された後で、のどれかのボタンが押される前までがy2=1となっています。
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
int i;
if(y2==1){
cn=cn+1;
for(i=0;i<cn;i++){
z=10*z;
}
}
if(y2==0)z=z*10;
z=z+7;
if(y2==1){
for(i=0;i<cn;i++){
z=z/10;
}
}
textBox1->Text=z.ToString();
}
y2=1のときに行われる
if(y2==1){
cn=cn+1;
for(i=0;i<cn;i++){
z=10*z;
}
}
と
if(y2==1){
for(i=0;i<cn;i++){
z=z/10;
}
}
では何が行われているのでしょうか。
初心者のためのjava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすい vb 入門 vba 入門 基礎から応用まで 第1部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ