特許第6347023号(P6347023)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 神山 義尚の特許一覧

特許6347023コード自動記述2ソフトウェアを記録した記録媒体
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6347023
(24)【登録日】2018年6月1日
(45)【発行日】2018年6月20日
(54)【発明の名称】コード自動記述2ソフトウェアを記録した記録媒体
(51)【国際特許分類】
   G06F 8/30 20180101AFI20180611BHJP
【FI】
   G06F8/30
【請求項の数】1
【全頁数】64
(21)【出願番号】特願2018-42546(P2018-42546)
(22)【出願日】2018年3月9日
【審査請求日】2018年3月9日
【早期審査対象出願】
(73)【特許権者】
【識別番号】502103209
【氏名又は名称】神山 義尚
(72)【発明者】
【氏名】神山 義尚
【審査官】 多賀 実
(56)【参考文献】
【文献】 特開2008−059135(JP,A)
【文献】 特開2005−025263(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/30−8/33
(57)【特許請求の範囲】
【請求項1】
「算出」と、「処理」は、同じ意味として使用する事とし、
関数とは、ある処理を行う処理工程の事を言い、ソフトウェアと同じ意味で使用する事とし、
変数や配列を作成すると記述しているが変数や配列が作成される場所は、コンピューター本体の内部にある本体メモリーに作成される事とし、
また、1byteは、8bitである事とし、
また、コンピューターで普通に使われているテキスト文字(日本国では、文字コード二文字以上で一文字を表す文字と文字コード一文字で表す半角英数字の文字の事)を、テキスト文字または、文字と略して呼んだり、テキスト文字とリンクされている数値を文字コードと言う事があるとし、文字コードとは、0〜255までの人間が読む事が出来ない機械語の数値であるとする事とし、
変数の型とは、人間が読む事が出来る文字列を代入する事ができる変数の型としてstring型と言う型と、人間が読む事が出来ない数値を代入する事が出来る型とがあり、変数を作成する場合に、string型の場合のみ「何bitのstring型で変数を作成する」または、「何byteのstring型で変数を作成する」と言う表現でstring型の変数を作成する事とし、string型の変数ではない、人間が読む事が出来ない数値を代入する事が出来る変数を作成する場合は、「何bitの変数を作成する」または、「何byteの変数を作成する」と言う表現で変数を作成する事とし、
人間が読み書き出来ない数値を代入できる配列を作成する場合は、「幾つの配列サイズで何bitまたは、何byteで配列を作成する」と言う表現をする事とし、人間が読み書き出来る文字列を代入できる配列を作成する場合は、「幾つのサイズで何bitまたは、何byteのString型の配列を作成する」という表現をする事とし、
ファイルを開いたり保存したりする形式には、テキスト形式という形式があり、テキスト形式と指定すると、文字列や文字を自動的に文字コードと言う数値から、人間が読む事ができる文字に変換される形式であり、テキスト形式で何byteずつデーターをファイルに記録して保存すると言う表現で説明する事とし、ファイルを開いたり保存したりする形式には、バイナリー形式と言う形式があり、バイナリー形式を指定すると、人間が読む事ができる文字から、自動的に文字コードと言う人間が読む事が出来ない機械語の数値に変換される形式であり、バイナリー形式でファイルを開いて、何byteずつデーターを読み込むと言う表現で説明する事とし、
人間が読む事が出来ない数値を数値と略して表現する場合がある事とし、
1ブロック分のプログラムとは、分岐処理の一つ分の処理の事を言う事とし、
文字列操作関数とは、文字列を操作する為のコンパイラ付属の関数であり、文字列操作関数には、多種多様な処理を行う関数があり、スピリット関数とは、指定した文字列で文字を分割処理すると言う関数の事であるとし、リプレース関数とは、任意の文字列の中の任意の文字列を探し出して、指定した任意の文字列に置換すると言う処理を行う関数であり、任意の文字列の中に、任意の文字列が複数個あっても、指定した任意の文字列に複数個、全て置換すると言う特殊な処理をする関数である事とし、このリプレース関数は、コンパイラ付属の関数の事であるとし、インデックスオフ関数は、検索したい文字列中から、指定した文字列を探し出して、探し出した先頭の位置を検索したい文字列の何番目から文字列が有ると言う具合に、数値として答える関数であるが、検索したい定文字列の中に指定した文字列が無かった場合は、-1を数値として答える関数であるとし、
ブロック指定名とは、1ブロック毎に違う名前の変数や、配列や、数値を使いたい場合に、連続番号を作成して、作成した連続番号を配列や、変数の名前の任意の位置に連結させて使用する為に、作成した連続番号と置換する位置を示す目印として使用する文字列の事であり、作成した連続番号を数値として使用する為に、作成した連続番号と置換する位置を示す目印として使用する文字列の事であるとし、
回答指定名とは、組合せ分岐の1ブロック分の複数の変数や配列に代入された数値の組合せによる分岐処理で使用されている複数の変数や配列に代入されている数値を示す為の数値に、組合せの数値を作成して作成した組合せの数値を使用する為に、作成した組合せの数値に置換する位置を明示する為の目印として任意に指定した文字列の事であるとし、
複数個の変数や配列の組合せを回答指定名を使用して分岐処理の分岐条件として記述し、ブロック指定名を指定したい場合は、ブロック指定名を使用したい部分にブロック指定名を記述したプログラムを、例として1ブロック分だけ記述したプログラムを記述したテキスト形式のファイルをコントロール1ファイルと呼ぶ事とし、
コントロール1ファイルに記述された文字列を1行分ずつ全て代入できる配列サイズでString型の200byteの配列を作成し、作成した配列をコントロールライン配列と呼ぶ事とし、コントロール1ファイルをテキスト形式で開いて、1行分ずつの200byteずつ、全てのデーターをコントロールライン配列の末尾に代入する事とし、16bitの変数を作成し、作成した変数を回数変数と呼ぶ事とし、回数変数に、任意の分岐の数に相当するブロック数の数値を代入する事とし、String型の100byteの変数を作成する事とし、作成した変数をブロック指定名変数と呼ぶ事とし、ブロック指定名変数に任意の文字列を代入する事とし、100byteのString型の変数を作成する事とし、作成した変数を設定変数と呼ぶ事とし、16bitの変数を作成する事とし、作成した変数を行数指定変数と呼ぶ事とし、行数に相当する任意の数値を行数指定変数に代入する事とし、16bitの変数を作成する事とし、作成した変数を列数指定変数と呼ぶ事とし、変数や配列の数に相当する列数の任意の数値を列数指定変数に代入する事とし、100byteのString型の変数を作成する事とし、作成した変数を回答指定名変数と呼ぶ事とし、任意の文字列を回答指定名変数に代入する事とし、String型の100byteの変数を作成する事とし、作成した変数をブロック指定名変数と呼ぶ事とし、ブロック指定名変数に回答指定名変数に代入されていない任意の文字列を代入する事とし、16bitの変数を作成する事とし、作成した変数を組合せ数1変数と呼ぶ事とし、組合せ数1変数に0を代入する事とし、16bitの変数を作成する事とし、作成した変数を組合せ数2変数と呼ぶ事とし、組合せ数2変数に0を代入する事とし、200byteのString型の組合せ変数に代入されている数値を配列サイズとして、String型の200byteの配列を作成する事とし、作成した配列を組合せ配列と呼ぶ事とし、16bitの変数を作成する事とし、作成した変数をインデックス1変数と呼ぶ事とし、インデックス1変数に0を代入する事とし、16bitの変数を2個作成する事とし、作成した変数をそれぞれ、A数値変数、B数値変数と呼ぶ事とし、
以下に分岐処理を行う事とし、この分岐処理を列数分岐処理と呼ぶ事とし、列数分岐処理では、以下の処理を行う事とし、
列数分岐処理で、列数変数に代入された数値が2の場合は、以下の処理を行う事とし、行数指定変数に代入されている数値を二乗した数値を算出させて、組合せ変数に代入する事とし、String型の200byteの組合せ変数に代入された数値を配列サイズとして、String型の200byteの配列を作成する事とし、作成した配列を新組合せ1配列と呼ぶ事とし、String型の200byteの組合せ変数に代入された数値を配列サイズとして、String型の200byteの配列を作成して、作成した配列を新組合せコピー配列と呼ぶ事とし、
以下に繰り返し処理を行う事とし、以下の繰り返し処理を2列組合せ配列作成繰り返し処理と呼ぶ事とし、2列組合せ配列作成繰り返し処理では、以下の処理を行う事とし、A数値変数に代入された数値が、行数指定変数に代入された数値になるまで、A数値変数に、1を加算して処理を繰り返し行う事とし、
以下に繰り返し処理を行う事とし、以下の繰り返し処理を行数繰り返し処理と呼ぶ事とし、行数繰り返し処理では、行数指定変数に代入された数値を行数繰り返し処理の繰り返し回数として処理を繰り返し行う事とし、任意の文字の一文字を記号として決めて、決めた記号を区切り記号と呼ぶ事とし、A数値変数に代入された数値に区切り記号を連結して文字列を作成して、作成した文字列に、B数値変数に代入された数値を連結して文字列を作成して、作成した文字列を新組合せコピー配列のインデックスとして、インデックス1変数に代入された数値を使用して、新組合せコピー配列に代入する事とし、B数値変数に、1を加算し、インデックス1変数に、1を加算し、行数繰り返し処理の最初に戻って処理を繰り返し行う事とし、行数指定変数に代入されている数値まで行数繰り返し処理を行ったら、行数繰り返し処理を終了する事とし、
A数値変数に、1を加算し、B数値変数に、0を代入する事とし、2列組合せ配列作成繰り返し処理の最初に戻って、2列組合せ配列作成繰り返し処理を繰り返し行う事とし、A数値変数に代入された数値が、行数指定変数に代入された数値になったら、2列組合せ配列作成繰り返し処理を終了する事とし、
新組合せコピー配列に代入されている全てのデーターを新組合せ1配列の最初の位置から最後の位置までに上書きで代入する事とし、組合せ配列の配列サイズを新組合せ1配列の配列サイズで、200byteの配列に変更して、新組合せ1配列に代入されている200byteずつの全ての文字列を、組合せ配列の最初から最後までの位置に上書きで代入する事とし、
列数分岐処理で、列数変数に代入された数値が3以上の場合は、以下の処理を行う事とし、行数指定変数に代入されている数値を二乗して算出した数値を、組合せ変数に代入する事とし、組合せ変数に代入された数値に行数指定変数に代入された数値を乗算した数値を組合せ数2変数に代入する事とし、String型の200byteの組合せ2変数に代入された数値を配列サイズとして、String型の200byteの配列を作成する事とし、作成した配列を新組合せ2配列と呼ぶ事とし、
2列組合せ配列作成繰り返し処理を行う事とし、2列組合せ配列作成繰り返し処理が終わったら、新組合せコピー配列に代入されている全てのデーターを新組合せ2配列の最初の位置から最後の位置までに上書きで代入する事とし、
組合せ配列の配列サイズを新組合せ2配列の配列サイズで200byteの配列に変更して、新組合せ2配列に代入されている200byteずつの全ての文字列を、組合せ配列の最初から最後までの位置に上書きで代入する事とし、
組合せ数2変数に、組合せ配列の配列サイズを取得して代入する事とし、組合せ数2変数に代入された数値を、行数指定変数に代入された数値で乗算した数値を算出して、算出した数値を組合せ数2変数に上書きで代入する事とし、
組合せ数2変数に代入された数値を配列サイズとしてString型の200byteの配列を作成する事とし、作成した配列を組合せコピー2配列と呼ぶ事とし、A数値変数に、0を代入し、B数値変数に、0を代入する事とし、インデックス1変数に0を代入する事とし、
以下に、繰り返し処理を行う事とし、この繰り返し処理を3列以上組合せ作成繰り返し処理と呼ぶ事とし、3列以上組合せ作成繰り返し処理を、列数指定変数に代入されている数値から2を減算した回数処理を繰り返し終わったら、3列以上組合せ作成繰り返し処理を終了する事とし、3列以上組合せ作成繰り返し処理では、
以下に繰り返し処理を行う事とし、この繰り返し処理を3列以上組合せ作成2繰り返し処理と呼ぶ事とし、3列以上組合せ作成2繰り返し処理では、組合せ数2変数に代入された数値とA数値変数に代入された数値が同じ数値になるまで、A数値変数に代入された数値に、1を加算して処理を繰り返す事とし、
以下に繰り返し処理を行う事とし、この繰り返し処理を3列以上組合せ作成3繰り返し処理と呼ぶ事とし、3列以上組合せ作成3繰り返し処理では、行数指定変数に代入された数値と、インデックス1変数に代入された数値が同じ数値になるまで、インデックス1変数に代入された数値に、1を加算して処理を繰り返す事とし、組合せ配列のインデックスとしてA数値変数に代入された数値を使用して組合せ配列に代入されている文字列を取得して、取得した文字列に、区切り記号と、B数値変数に代入された数値を連結して、連結して作成した文字列を組合せコピー2配列のインデックスとしてインデックス1変数に代入された数値を使用して、組合せコピー2配列に代入する事とし、インデックス1変数に1を加算し、B数値変数に1を加算し、3列以上組合せ作成3繰り返し処理の最初に戻って、処理を繰り返す事とし、行数指定変数に代入された数値と、インデックス1変数に代入された数値が同じ数値になったら、3列以上組合せ作成3繰り返し処理を終了する事とし、
A数値変数に1を加算し、B数値変数に、0を代入する事とし、組合せ数2変数に代入された数値とA数値変数に代入された数値が同じ数値になったら、3列以上組合せ作成2繰り返し処理を終了する事とし、
組合せ配列を組合せコピー2配列の配列サイズで200byteの配列に変更する事とし、組合せコピー2配列に代入された最初の位置から最後の位置までに代入された文字列を組合せ配列の最初の位置から最後の位置までに全て上書きで代入する事とし、
組合せ配列の配列サイズを取得して、組合せ数2変数に代入する事とし、組合せ数2変数に代入された数値を、行数指定変数に代入された数値で乗算した数値を算出して、算出した数値を組合せ数2変数に上書きで代入する事とし、
3列以上組合せ作成繰り返し処理の最初に戻って繰り返し処理を繰り返す事とし、3列以上組合せ作成繰り返し処理を、列数指定変数に代入されている数値から2を減算した回数処理を繰り返し終わったら、3列以上組合せ作成繰り返し処理を終了する事とし、
列数分岐処理を終了する事とし、
組合せ数2変数に、組合せ配列の配列サイズを取得して代入する事とし、配列サイズが、コントロールライン配列の配列サイズと同じ配列サイズのString型の200byteの配列を作成する事とし、作成した配列を仮プログラム配列と呼ぶ事とし、コントロールライン配列の配列サイズの数値を、組合せ数2変数に代入された数値で乗算した数値を、配列サイズとしてString型の200byteの配列を作成する事とし、作成した配列をプログラム配列と呼ぶ事とし、String型の200byteの変数を2個作成する事とし、作成した2個の変数をそれぞれ、仮データ1変数、仮データ2変数と呼ぶ事とし、インデックス1変数に0を代入し、16bitの変数を作成する事とし、作成した変数をカウント2変数と呼ぶ事とし、カウント2変数に0を代入する事とし、16bitの変数を作成する事とし、作成した変数をインデックス2変数と呼ぶ事とし、インデックス2変数に0を代入する事とし、
以下に繰り返し処理を行う事とし、この繰り返し処理を組合せ分岐文作成繰り返し処理と呼ぶ事とし、組合せ分岐文作成繰り返し処理では、カウント2変数に代入されている数値が、組合せ数2変数に代入されている数値になるまで、以下の処理を繰り返し行う事とし、
以下に繰り返し処理を行う事とし、以下の繰り返し処理をプログラム配列作成繰り返し処理と呼ぶ事とし、コントロールライン配列のインデックスが、最初は、0であるとして、コントロールライン配列のインデックスを使用して、コントロールライン配列の200byteの文字列を、仮データ1変数に代入する事とし、
以下に分岐処理を行う事とし、この分岐処理を回答分岐処理と呼ぶ事とし、回答分岐処理で、文字列操作関数のコンテインズ関数を使用して仮データ1変数に代入された200byteの文字列の中に、回答指定名変数に代入された回答指定名に指定された文字列が有るかどうかを検査して、有った場合は、以下の処理を行う事とし、
16bitの変数を2個作成する事とし、作成した2個の変数をそれぞれ、インデックス3変数、インデックス4変数と呼ぶ事とし、インデックス3変数に、0を代入し、インデックス4変数に、0を代入する事とし、8bitの変数を作成する事とし、作成した変数をアンサー変数と呼ぶ事とし、アンサー変数に、0を代入する事とし、組合せ配列に代入されたデーターを区切り記号で分割したデーターを全て代入できる配列サイズでString型の4byteの配列を作成する事とし、作成した配列を区切り分割配列と呼ぶ事とし、16bitの変数を作成する事とし、作成した変数を回答文字数変数と呼ぶ事とし、文字列操作関数のスピリット関数と言う任意の文字で文字列を分割する処理を行う関数を使用して、組合せ配列のインデックスとして、インデックス2変数に代入された数値を使用して、組合せ配列に代入された文字列を取得して、取得した文字列を区切り記号で分割して、分割した文字列を区切り分割配列に代入する事とし、回答指定名変数に代入された回答指定名に指定された文字列の文字数を取得して、回答文字数変数に代入する事とし、
以下に繰り返し処理を行う事とし、以下の繰り返し処理を回答置換繰り返し処理と呼ぶ事とし、回答置換繰り返し処理では、アンサー変数に代入された数値が、0以外の数値になるまで処理を繰り返し行う事とし、文字列操作関数のインデックスオフ関数を使用して、仮データ1変数に代入されている文字列の中に有る回答指定名変数に代入された回答指定名に指定された文字列の先頭位置を取得して、インデックス3変数に代入する事とし、
以下に分岐処理を行う事とし、この分岐処理を最終回答分岐処理と呼ぶ事とし、最終回答分岐処理で、インデックス3変数に代入された数値が0より大きい数値の場合は、以下の処理を行う事とし、
文字列操作関数のリムーブ関数を使用して、インデックス3変数に代入された数値を仮データ1変数に代入されている文字列の先頭位置として使用して、回答文字数変数に代入された数値を文字数として使用して、文字数分の文字列を、仮データ1変数に代入された文字列から削除した文字列を作成して、作成した文字列を仮データ1変数に代入する事とし、文字列操作関数のインサート関数を使用して、区切り分割配列のインデックスとして、インデックス4変数に代入された数値を使用して、区切り分割配列に代入された文字列を取得して、インデックス3変数に代入された数値を、仮データ1変数に代入された文字列の位置として使用して、仮データ1変数に代入された文字列の位置に、区切り分割配列から取得した文字列を挿入した文字列を作成して、仮データ1変数に代入する事とし、インデックス4変数に、1を加算する事とし、最終回答分岐処理で、インデックス3変数に代入された数値が-1の場合は、以下の処理を行う事とし、
アンサー変数に1を代入する事とし、最終回答分岐処理を終了する事とし、
回答置換繰り返し処理の最初に戻って、アンサー変数に代入された数値が、0以外の数値になるまで回答置換繰り返し処理を繰り返して、アンサー変数に代入された数値が1になったら、回答置換繰り返し処理を終わる事とし、
回答分岐処理で、文字列操作関数のコンテインズ関数を使用して仮データ1変数に代入された200byteの文字列の中に、回答指定名変数に代入された回答指定名に指定された文字列が有るかどうかを検査して、仮データ1変数に代入された200byteの文字列の中に回答指定名変数に代入された回答指定名に指定された文字列が無かった場合は、何も処理を行なわない事とし、
以下に分岐処理を行う事とし、この分岐処理をブロック分岐処理と呼ぶ事とし、ブロック分岐処理では、文字列操作関数のコンテインズ関数を使用して仮データ1変数に代入された文字列の中に、ブロック指定名変数に代入されたブロック指定名の文字列が有るかどうかを検査して、仮データ1変数に代入された文字列の中に、ブロック指定名変数に代入されたブロック指定名の文字列が有る場合と無い場合に分岐処理する事とし、仮データ1変数に代入された文字列の中に、ブロック指定名変数に代入されたブロック指定名の文字列が有る場合は、以下の処理を行う事とし、
カウント2変数に代入されている数値を仮データ2変数に代入する事とし、文字列操作関数のリプレース関数と言う関数を使用して、仮データ1変数に代入された文字列の中に有ったブロック指定名変数に代入されたブロック指定名の文字列をカウント2変数に代入された数値に置換した文字列を作成して、仮データ1変数に代入する事とし、
ブロック分岐処理で、仮データ1変数に代入された文字列の中に、ブロック指定名変数に代入されたブロック指定名の文字列が無い場合は、何も行わない事とし、
ブロック分岐処理を終了する事とし、
仮ブロック配列のインデックスに、コントロールライン配列のインデックスを使用して、仮データ1変数に代入されている文字列を仮ブロック配列に代入する事とし、プログラム配列作成繰り返し処理の最初に戻って、処理を繰り返す事とし、コントロールライン配列の最初の位置から最後の位置までに代入された文字列を全て処理し終わったら、プログラム配列作成繰り返し処理を終了する事とし、
以下に繰り返し処理を行う事とし、この繰り返し処理を組合せ記述繰り返し処理と呼ぶ事とし、組合せ記述繰り返し処理で、仮プログラム配列のインデックスは、最初は、0であるとして、仮プログラム配列の文字列を取得して、プログラム配列のインデックスに、インデックス1変数に代入された数値を使用して、取得した文字列をプログラム配列に代入する事とし、インデックス1変数に、1を加算する事とし、仮プログラム配列のインデックスに、1を加算して、組合せ記述繰り返し処理の最初に戻って、処理を繰り返し行う事とし、仮プログラム配列の最後の位置に代入された文字列まで、全ての処理が終わったら、組合せ記述繰り返し処理を終了する事とし、
カウント2変数に、1を加算する事とし、カウント2変数に代入された数値が、組合せ2変数の数値になるまで、組合せ分岐文作成繰り返し処理を繰り返し行う事とし、カウント2変数に代入された数値が、組合せ2変数の数値になったら、組合せ分岐文作成繰り返し処理を終わる事とし、
コントロールライン配列の配列サイズをプログラム配列の配列サイズに変更する事とし、プログラム配列の最初から最後までの位置に代入されている文字列を一行分ずつの200byteずつ取得して、コントロールライン配列の最初の位置から最後の位置までにコピーする事とし、
コントロールライン配列の最初の位置から最後の位置に代入されている文字列を一行分ずつの200byteずつテキスト形式でファイルに保存すると言う処理を行う事で、複数個の変数や複数個の配列に代入された数値の組合せ数分の分岐処理をプログラム言語を使用したプログラムを記述させるソフトウェアを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピューターで大量の分岐処理を行うプログラムを自動で記述する技術に関する
【背景技術】
【0002】
コンピューターで大量の分岐処理を行うプログラムを自動で記述する技術に関する文献は存在しない。圧縮技術に関する文献としては、〔非特許文献1〕がある。
【非特許文献1】奥村晴彦・山崎敏 著 LHAとZIP 圧縮アルゴリズム×プログラミング入門 ソフトバンク パブリッシング株式会社 2003/12/6 初版
【0003】
〔非特許文献1〕は、ZIP形式の圧縮技術とLZH形式の圧縮技術を説明した文献である。それとともに、今日までに開発された圧縮技術を紹介している文献である。
以下に、「生成」と、「算出」と、「処理」は、同じ意味として使用する。また、関数とは、ある処理を行う処理工程の事を言い、ソフトウェアと同じ意味で使用する。また、ハッシュ関数とは、分類しようとするデーターを基にその分類しようとするデーターを代表する数値を生成する為の処理工程の事を言う事とする。また、このハッシュ関数から算出された数値の事をハッシュ値と呼んだり、符号と呼んだりする。また、分類しようとするデーターの事を分類対象データーと呼んだりする。また、分類しようとする文字列の事を分類対象文字列と呼んだりする。また、検索したい文字列の事を検索文字列と呼んだりする。また、データーベースに記録されている文字列やデーターの事を検索対象文字列と呼んだり、検索対象データーと呼んだりする。変数の名前の事を変数名と呼んだり、配列の名前の事を配列名と呼んだりする。
本発明のコード自動記述2ソフトウェアを記録した記録媒体の事をコード自動記述2ソフトウェアと略して呼ぶ事がある。
ハッシュ関数の事を簡単に言い換えると、ハッシュ関数とは、ハッシュ値を生成するソフトウェアの事であると言える。
この〔非特許文献1〕の文献では、113ページから114ページに、データーを基にハッシュ関数を使用してハッシュ値を生成して、生成したハッシュ値でデーターを分類して保存する事で検索処理を高速化する方法を簡単に説明している。
【0004】
〔非特許文献1〕は、242ページから246ページに、ハッシュ関数を使用して生成したハッシュ値とは違う処理として特殊な処理が記述されている。記述されている特殊な処理の内容を「」内に記述する。「最初のValの計算はハッシュ関数の代わりでもあるのですが、ハッシュ関数とは違い最初の2文字を混ぜません。ですので、文字'AB'で始まるリンクリストには、'AB'で始まる文字列しか登録されないようになっています。この文字数を増やせばサーチ処理は早くなるのですが、その分テーブルの初期化処理や辞書のスライド処理に時間がかかるようになります。このあたりのバランスは実際に動かして時間を測ることで決定しました。」と記述している。最初の二文字を混ぜずに、そのままの状態の二文字で分類する方法を書いているように読み取れる。しかし、隠していて何を記述しているのかが良く理解できない説明である。「Val」についても何も記述されていないのでどんな計算式なのかが全く解らない説明である。
【0005】
〔非特許文献1〕の242ページから246ページに記述されている「ハッシュ関数とは違い最初の2文字を混ぜません。」と言う意味は、分類対象文字列の先頭二文字分が一致するデーターを分類したと言うものだと考えられる。分類対象文字列の先頭二文字として文字'AB'で始まる文字列の'AB'と言う二文字分は、ASCII文字コードだと2byteとなる。ハッシュ関数は、全ての文字列を混ぜて代表値を算出するものだと言う表現で説明しているものだと考えられる。「混ぜる」と言うあいまいな表現で説明している事について鑑みるに、殆どの部分で、この様な表現でこの書籍では説明していると考えられるので、以下に、文章の表現を解釈すると、ハッシュ関数とは違う数値による分類方法として記述しているものであるから、分類対象文字列の先頭から、二文字分が一致するデーターを分類するという分類方法であると解釈できる説明文であると思う。
〔非特許文献1〕の242ページから246ページのハッシュ関数を使用して生成したハッシュ値とは違う処理として特殊な処理が記述されている。この特殊な処理は、分類対象文字列の先頭から二文字分が一致するデーターを分類すると言う方法の様であるが、全く、符号を生成しないで分類する方法だと考えられる。また、分類対象文字列の先頭から二文字分が一致するデーターを分類すると言う方法の場合は、2byte分の文字コードが一致するデーターを分類する方法と言い換える事が出来ると思われる。
【0006】
〔非特許文献1〕には、分類するデーターを基にハッシュ関数を使用してハッシュ値を算出して、算出したハッシュ値でデーターを分類する方法と、文字または、文字コードで分類すると言う特殊な方法について記述している。ハッシュ値を使用しても、文字または、文字コードで分類すると言う特殊な方法で分類しても、分類数が多くなる事が予想されるし、分類数が多くなればなる程、検索処理が速くなる。その為、より多くの分類数で分類対象データーを分類した方が良い事になる。より多くの分類数で分類対象データーを分類した方が良い事になると言う事は、〔非特許文献1〕の113ページから114ページに、記述しています。しかし、分類する場合に必要になる分岐処理のプログラムの記述技術に関しては、一切書かれていない。また、分類する場合に必要になる分岐処理のプログラムが分類数を増やせば増やすだけ人為的な入力処理で記述しなければならない部分が増えると言う人為的な入力処理が多くなり大変な作業になるのであるが、〔非特許文献1〕には、分岐処理のプログラムを人為的な入力処理によらずにコンピューターとソフトウェアによって自動的に記述処理するソフトウェアに関する記述はない。
【0007】
コンピューターで普通に使われているテキスト文字(日本国では、文字コード二文字以上で一文字を表す文字と文字コード一文字で表す半角英数字の文字の事)を、テキスト文字または、文字と略して記述する事とする。また、テキスト文字とリンクされている数値を文字コードと言う事がある。文字コードは、人間が読む事が出来ない機械語で、0〜255までの数値である。また、一般的に使用されているASCII文字と言う規格がある。ASCII文字は、文字コード一文字で表す半角英数字の文字の事である。ASCII文字は、ASCIIコードと呼ばれる文字コードとリンクされている。ASCIIコードの文字コードは、0〜255までの数値である。日本国で一般的に使用されているテキスト文字の文字コード一文字で表す半角英数字の文字と文字コードは、ASCII文字であり、その文字コードは、ASCIIコードである。
【0008】
1byteとは、一文字分のbit数の事を言う。また、現在の一文字分のbit数は、8bitである。従って、1byteは、8bitである。bitとは、2進数で数値を表した時の2進数の桁数の事である。また、コンピューターで普通に使われている機械語を機械語と略して記述する事とする。コンピューターで普通に使われている機械語とは、コンピューターに搭載されているCPUと呼ばれる中央演算処理装置が処理を予定している命令文の事を言う。文字コードは、人間が読む事が出来ない0〜255までの数値で機械語である。〔実施例〕で1byteと記述している場合、1byteが何bitなのかを記述していない限り、1byteは、8bitである。
【0009】
コンピューターで普通に使われているテキスト文字にリンクしている文字コードの規格は、多種多様である。7bitを1byteとして文字コードを規定している規格もある。文字コードの前にどんな文字コードなのかを識別させる為に1byteから数byteの識別記号を挿入する文字コードの規格もある。
【0010】
ASCIIコードには、制御コードと呼ばれる文字コードがある。文字列の最後に使用されるASCIIコードの制御コードと呼ばれる文字コードがある。日本語の「。」に相当するキャリッジリターンと言う文字である。キャリッジリターンの文字コードの数値は、「13」である。また、ASCIIコードの制御コードと呼ばれる文字コードには、ラインフィードと言う文字がある。改行する為のコードである。ラインフィードの文字コードの数値は、「10」である。
【0011】
プログラム言語とは、コンピューターが読み込んでCPUが理解できる命令を人間が読み書きが出来る様に簡略化された文字列の事を言う。プログラム言語でコンピューターに行わせる処理を書かれたものをプログラムと言う。本文献では、プログラムの事をプログラムコードと呼んだり、コードと略して呼んだりする事がある。
コンパイラとは、ソフトウェアを制作する為に作られたソフトウエアの事を言う事とする。コンパイラは、人間が読み書き出来る簡略化された文字列で書いたプログラムをコンピューターが読み込んで実行する事が出来る機械語に変換処理する事でソフトウェアを制作するソフトウェアである。
また、エディターとは、人間がプログラムを記述する時に使用するもので、人間がプログラム言語を使ってコンピューターの処理工程を記述する為のソフトウェアの事を言う事とする。
【0012】
実施例では、Java(登録商標)と言われるプログラム言語で記述された処理のプログラムを記述するソフトウェアとして本発明のコード自動記述2ソフトウェアを記録した記録媒体を作成した。しかし、その他の処理のプログラムをプログラム言語で記述する事が出来る様に変更したとしても、本発明のコード自動記述2ソフトウェアを記録した記録媒体の簡単なレパートリーである事を明言する。プログラムを図符号Gのブロック指定名テキストボックスに入力された文字列をブロック指定名と呼ぶ事とする。また、普通のエデイターとしての機能と、本発明のコード自動記述2ソフトウェアを記録した記録媒体の機能を併せ持つソフトウェアに変更しても、本発明の簡単なレパートリーである事を明言する。本発明のコード自動記述2ソフトウェアを記録した記録媒体でも、図符号Eのコード文の選択画面を「IF文やその他」に設定して、図符号Hのブロック数指定画面を1に設定して、図符号Jのコード記述テキストボックスに、プログラムを図符号Gのブロック指定名テキストボックスに入力された、ブロック指定名を使用しないで記述すれば、普通のプログラムを記述する事が出来るエディターとして使用できるソフトウェアなのである。本発明のコード自動記述2ソフトウェアに、ブロック指定名を指定しないと言う設定を付け加えれば、本発明のコード自動記述2ソフトウェアよりも使い勝手が良い便利なソフトウェアになると言う簡単なレパートリーであるから、本発明のコード自動記述2ソフトウェアを記録した記録媒体である事を明記する。
【0013】
実施例では、文字列操作関数と言う関数を使用して処理している。文字列操作関数とは、文字列の状態で処理する関数の事を言う。文字列操作関数は、プログラムを作成する為のソフトウェアのコンパイラに標準的に添付されている関数である。コンパイラに標準的に添付された関数であるから、常識的な処理である。常識的な処理に関しては、詳しい処理工程を記述しない。
文字列操作関数のスピリット関数は、例えば、「ああ言えば、@こう言う」と言う文字列全体を検査して「@」が含まれているかどうかを検査するとか、「@」の位置は、先頭から何文字目なのかを検査するとか、「@」で文字列を分割して「ああ言えば、」と、「こう言う」の二つに分割するなどの処理が出来る様になっている関数である。スピリット関数の様な文字列に対する処理を行う関数の事を文字列操作関数と言う。文字列操作関数のリプレース関数と言う特殊な関数がある。任意の文字列の中の任意の文字列を探し出して、指定した任意の文字列に置換すると言う処理を行う関数である。任意の文字列の中に、任意の文字列が複数個あっても、指定した任意の文字列に複数個、全て置換すると言う特殊な処理をする関数である。
【0014】
文字列操作関数で文字列の中に探したい文字列が有った場合に、探したい文字列の先頭の文字が何番目にあるかと言う答えを出させる処理を行わせる関数のインデックスオフ関数の説明を行う。
文字列の中に探したい文字列が有った場合は、探したい文字列の先頭の文字が先頭から何番目に有ると言う事を数値で答えを出す関数である。文字列の中に探したい文字が無い場合は、-1と言う数値を答えとして出す処理を行う関数である。文字列の中に探したい文字が無い場合は、-1と言う数値で答えを出す処理を行う様に作られているのは、この発明に使用したコンパイラに添付された文字列操作関数の仕様である。コンパイラに添付された文字列操作関数の仕様なので、文字列の中に探したい文字が無い場合に、-1という数値で答えを出さないコンパイラ付属の文字列操作関数もあるであろうと思われる。文字列の中に探したい文字が無い場合に、-1という数値で答えを出さないコンパイラ付属の文字列操作関数を使用した場合は、違う処理を行う事になる。
また、添付された文字列操作関数の使い勝手が良くないので、文字列操作関数を使用せずに、文字列の中から文字をサーチする処理工程を記述したとしても、本発明のレパートリーである事を明言する。本発明で使用していないコンパイラに付属された文字列操作関数を使用した為に、本発明の処理工程と違う処理工程になった場合でも、コンパイラ付属の文字列操作関数の仕様の問題なので、本発明の簡単なレパートリーであると明言する。また、本発明では、文字列操作関数を使用しているが、文字列操作関数と同じ処理に相当する処理を記述する事で文字列操作関数を使用しない処理に書き換えても、本発明のコード自動記述2ソフトウェアを記録した記録媒体である事を明言する。
文字列操作関数で文字列の中に探したい文字列が有った場合に、探したい文字列の先頭の文字が何番目にあるかと言う答えを出させる処理を行わせる関数のインデックスオフ関数の説明を終わる。
【0015】
変数の型とは、変数を作成する場合に指定するものであり、作成する変数のデーターを代入する事ができる領域の全てに適用されるものである。前述の「領域の全てに適用されるものである」と言う意味は、変数のデーターを代入する事ができる領域に型の違うデーターを混在させる事が出来ないと言う意味である。人間が読む事が出来る文字列を代入する事ができる変数の型としてString型と言う型がある。人間が読む事が出来ない数値を代入する事が出来る型もある。
String型の変数ではない、人間が読む事が出来ない数値を代入する事が出来る変数を作成する場合は、「何bitの変数を作成する」または、「何byteの変数を作成する」と言う表現で変数を作成する事とする。8bitの変数を作成すると言う表現で説明している場合の意味は、8bitの人間が読む事が出来ない数値のデーターを代入する事ができる変数を作成すると言う事である。
以下に、「人間が読む事が出来ない数値」を「数値」と略して表現する場合がある。また、「人間が読む事が出来る数値」を「数値」と略して表現する事がある。どちらの場合でも「数値」と言う表現で表現しているので、表現があいまいであるが、プログラムでは、「人間が読む事が出来ない数値」と「人間が読む事が出来る数値」は、変換するだけの問題なので大きな問題ではない。
【0016】
変数を作成する場合、String型の場合は、「何bitのString型で変数を作成する」または、「何byteのString型で変数を作成する」と言う表現でString型の変数を作成する説明を行う事にする。
String型とは、文字列を代入する事ができる変数の型を意味するものである。言い換えるとString型とは、文字列型と言う言い方が出来るものである。String型で変数を作成して、作成したString型の変数に文字列や文字を代入すると自動的に文字コードと言う数値から、人間が読む事ができる文字に変換されて変数に代入されるものである。
【0017】
String型と同じものとしてテキスト形式と言う形式もある。テキスト形式とは、ファイルを開いたり保存したりする形式である。
テキスト形式も、String型と同じで、テキスト形式と指定すると、文字列や文字を自動的に文字コードと言う数値から、人間が読む事ができる文字に変換される形式である。テキスト形式を指定する場合は、「テキスト形式で」と言う文言を使用して、「指定して」を略して表現したりする。従って、「テキスト形式で何byteずつデーターをファイルに記録して保存する」または、「テキスト形式でファイルを開いて何byteずつデーターを読み込む」という表現で説明する事とする。
【0018】
バイナリー形式と言う形式もある。バイナリー形式とは、ファイルを開いたり保存したりする形式である。
バイナリー形式を指定すると、人間が読む事ができる文字から、自動的に文字コードと言う数値に変換される形式である。バイナリー形式を指定する場合は、「バイナリー形式で」と言う文言を使用して、「指定して」を略して表現したりする。従って、「バイナリー形式で、1byteずつデーターをファイルに保存する」または、「バイナリー形式でファイルを開いて、何byteずつデーターを読み込む」という表現で説明する事とする。
バイナリー形式の文字コードの状態の数値は、機械語である。この機械語をString型に代入すると人間が読める数値に変換される。例えば、アルファベットの「A」を例に説明する。アルファベットの「A」は、ASCIIコードの文字コードだと「41」である。アルファベットの「A」が記録されているファイルを「バイナリー形式でファイルを開いて、1byteずつデーターを読み込む」と、読み込まれたデーターは、「41」になる。読み込まれた「41」をString型に変換してString型の変数等に代入すると、「4」と「1」となる。「4」「1」は、説明の都合上「」で囲む事で一文字である事を表しているだけである。つまり、2byteの人間が読める数値として変数に代入されるものなである。
【0019】
テキスト形式でファイルに記録して保存する場合は、人間が読める文字として保存される為に、1byteから数byteずつとなる。テキスト形式の場合は、文字コードで一文字分ずつと言う指定となる為に、2byteで有ったり、3byteで有ったり、4byteである場合もある為である。これは、実施例で使用しているコンピューターが使用している文字コードが半角英数字の場合は、1byteずつの規格で作られており、漢字や平仮名などを表す際の規格は、2byte分、3byte分、4byte分の数値で、漢字や平仮名や全角カタカナを一文字として表示するように規格されている為に、データー量をはっきりと記述できないのである。実施例で使用したコンパイラの場合は、自動的に最初の1byte目の文字コードで一文字分の文字コードが何byteなのかをコンピューターに判断させて一文字分の文字コード分に相当する1byteから数byteずつを保存する事になっている。予め、何と言う文字を扱うのかが解らない為、メモリー使用サイズを一定にして記述できないものなのである。しかし、実施例の説明では、1byteずつ保存するという表現で説明する事にする。
例えば、アルファベットの「A」を例に説明する。アルファベットの「A」は、ASCIIコードの文字コードだと「41」である。テスト変数と言う名称の変数に機械語の文字コードで1byteの「41」が代入されていると仮定する。テキスト形式でテスト変数のデーターをファイルに記録して保存すると、ファイルには、アルファベットの「A」として記録される。アルファベットの「A」がテキスト形式で記録されていファイルをテキスト形式でファイルを開くとアルファベットの「A」として読込まれる。アルファベットの「A」がテキスト形式で記録されていファイルをバイナリー形式でファイルを開くと「41」と読み込まれる。
【0020】
配列とは、データーを1個から複数のデーターを代入する事が出来るものを言い、配列のサイズとは、配列に代入する事が出来るデーターの数の事を言う。配列のサイズの事を配列サイズと言ったりする事がある。配列にデーターを代入する事が出来る部分を配列要素または、配列の要素と呼び、配列要素または、配列の要素の合計数を配列要素数または、配列の要素数と呼ぶ事とする。配列要素数または、配列の要素数は、配列のサイズと同じ意味のものである。
【0021】
配列の型には、主に数値型とString型の二種類がある。数値型の場合は、代入できるデーターは、人間が読む事が出来ない数値のみである。数値型の事をint型とも呼ぶ。String型の場合は、人間が読む事がする事が出来る文字列の状態のデーターのみ代入できるものである。数値型とString型という二種類の型の特徴は、配列だけではなく、変数の場合も同じである。
【0022】
数値型とString型という二種類の型は、配列を作成する場合に指定するものであり、作成する配列のデーターを代入する事ができる領域の全てに適用されるものである。前述の「領域の全てに適用されるものである」という意味は、型の違うデーターを、配列のデーターを代入する事ができる領域に混在させることが出来ないという事である。実施例では、数値型の場合は、数値型の配列を作成すると断り書きをしない場合もある。数値型の配列を作成する場合に、「幾つの配列サイズで何bitまたは、何byteの数値型で配列を作成する」という表現ではなく、数値型を略して「幾つの配列サイズで何bitまたは、何byteで配列を作成する」という表現をしたりする事とする。これを10の配列サイズで8bitで配列を作成するという表現で説明している場合で意味を説明する。この場合は、配列の要素1個に8bitのデーターを1個代入できる様なものとして、配列要素数10個で配列を作成するという意味である。また、bitではなくて、byteで表現する事も有る。
【0023】
String型で配列を作成する場合は、以下の様に表現する。「幾つのサイズで何byteまたは、何bitのString型の配列を作成する」という表現をする事とする。例えば、10個のサイズで16bitのString型で配列を作成すると記述した場合で説明する。配列の1個のデーターを代入する事が出来る領域の1個のデーターが使用するメモリー量が2byteであるとし、10個のデーターを代入する事が出来る配列を作成するという事である。この10個のサイズで16bitのString型で配列を作成する場合のメモリーの総使用量は、16bit×10という計算が可能となり、答えは、160bit(または、20byte)となる。
【0024】
配列のインデックスとは、配列の添字または、配列番号などとも呼ばれる事があるものである。
以降、配列のインデックスを配列の添字または、配列番号と呼ぶ事がある。
配列のデーターを代入できる領域の各々のデーターを指定する為に通常、0番からデーターを代入できる最後の位置までに、コンパイラによって、連続番号が自動的に付けられる。この配列のデーターを代入できる領域の最初から最後までに付けられた連続番号をインデックスと言う。
言い換えると配列のインデックスとは、配列に代入されるデーターの位置を示す番号の事を言うという事になる。
【0025】
配列のインデックスを取得する場合の説明を行う。
1byteの変数を作成してこの作成した変数を仮変数と呼ぶ事として、仮変数に0を代入して初期化する。配列に代入されたデーターが全て1byteであると仮定して配列のインデックスを取得する処理工程の説明を行う事とする。配列の最初の位置に代入されているデーターから最後の位置までに代入されたデーターを1byteずつ読み込む度に仮変数に代入された数値に1を加算する事で回数をカウントするという処理を行うと、仮変数に代入された数値と配列のインデックスとが対応した数値になるので仮変数に代入された数値が配列のインデックスとなるので、仮変数に代入された数値を取得するのが配列のインデックスの取得方法である。
配列のインデックスの取得方法の説明を終わる。
また、配列のデーターを代入する事ができる領域の最初の位置という表現を配列の最初の位置という様に略した表現を行う場合がある。また、配列のデーターを代入する事ができる領域の最後の位置という表現を配列の最後の位置という様に略した表現を行う場合がある。
【0026】
配列のインデックスを取得する方法について例を示して説明する。配列のサイズが10の配列の場合で説明する事とする。配列の配列サイズが10の配列を作成するとインデックスは、0から9までの数値がコンパイラと呼ばれるプログラムを書く為に一般的に使われるソフトウェアによって自動的に付けられる。最初のインデックスは、必ず0から始まるものであり、配列の最後の位置まで番号が連続番号で付けられる。配列のサイズが10の配列の場合は、「0,1,2,3,4,5,6,7,8,9」という連続番号が配列のインデックスとなる。
配列のサイズが10の配列の場合の様に、配列の最初の位置から最後の位置までに付けられた数値が配列のインデックスとなるのである。そのインデックスを配列のデーターから取得する方法は無い。インデックスを使用して配列からデーターを取得するには、最初の位置を0番として、0番から配列の最後の位置までの連続番号を作成して、その連続番号の中から1個ずつ順番に数値を取得する事でインデックスを取得して、取得したインデックスを使用して配列からデーターを取得するのである。配列の位置を指定する時に配列のインデックスを指定する事はできるが、その反対に配列に代入されたデーターからインデックスを取得する事は出来ない。配列に代入されたデーターの位置を0から1ずつ数値を積算する事で得た数値を、配列のデーターと同じ位置に有ったインデックスとして使用すると言う技術が、配列に代入されたデーターからインデックスを取得する方法である。
これで、配列のインデックスを取得する方法について例を示して説明する説明を終わる。
【0027】
配列のサイズ調整の説明を行う。
String型の配列の場合は、配列のデーターを代入する事が出来る領域のどこまでの位置にデーターが入力されているかを調べる事で、必要な配列の最初の位置から最後の位置までの配列のサイズを知る事が出来る。String型の配列の場合は、必要な配列のサイズを知る事が出来る事から、逆に必要のない配列の部分をカットして配列の要素数を減らすと言う配列のサイズの調整を行う事が出来る。他方、String型以外の配列の場合は、配列に空白が無く、配列を作成すると同時に最初から0が入力されているのでサイズ調整する事が出来ない。配列のサイズ調整は、常識的処理である。しかし、配列サイズの調整が出来ないプログラム言語もある。配列サイズの調整が出来ないプログラム言語のコンパイラを使用している場合は、配列サイズの調整が出来ない。配列サイズの調整が出来ないプログラム言語のコンパイラを使用している場合は、予め、配列のサイズの調整を必要としない処理で記述する以外に方法は無い。
配列のサイズ調整の説明を終了する。
【0028】
以下に、本発明のコード自動記述2ソフトウェアを記録した記録媒体は、処理をプログラム言語で記述したプログラムを自動で記述するソフトウェアなので、コンパイラと呼ばれるソフトウェアを作成するソフトウェアで使われている人間が読み書きできるプログラムの書き方を説明しないと、どの様なプログラムを自動で作成するのかが解らないと思われるので、プログラムの書き方について説明を行う事とした。
配列や変数の初期化と配列や変数の作成の説明を行う。
配列の初期化とは、配列のデーターを代入できる領域に代入されたデーターを削除する事を配列の初期化と言う。変数の場合も変数に代入されたデーターを削除する事を初期化と言う。変数の初期化を行う処理プログラムは、変数を作成する処理プログラムと全く同じである。
一般的に使用されているJava(登録商標)と呼ばれるプログラム言語で説明する。プログラム言語は、コンパイラと言うソフトウェアで使用するプログラム言語の仕様なので、コンパイラによっては、大きく違うものである。
【0029】
プログラム言語の「;」と言う文字は、処理の最後に必ず記述すなければならない記号である。但し、「{」と「}」や処理の予約語の最後には、「;」は、記述しないのが普通である。
変数を作成する場合のプログラムは、以下の様に記述する。変数1個分の初期化をする記述例である。
String 変数名 = "";
変数を初期化する場合のプログラムは、以下の様に記述する。
String 変数名 = "";
変数の場合は、変数を作成する場合も初期化する場合も同じである。
配列の作成を行う処理を記述する場合は、プログラム言語で以下の様に記述する。配列の場合も、一般的に使用されているJava(登録商標)と呼ばれるプログラム言語で説明する。1個分の配列を作成するプログラムの例である。
String[] 配列名 = new String[個数];
配列の初期化を処理する場合は、以下の様に記述する。1個分の配列を初期化するプログラムの例である。
配列名 = new String[個数];
配列の場合は、配列の作成と初期化は違う記述内容である。
また、初期化する場合は、データーを削除すると言う処理を行う場合だけではない。人為的に任意の数値や任意の文字を初期値と指定している場合がある。人為的に任意の数値や任意の文字を初期値と指定している場合は、人為的に指定している初期値を代入する事が初期化すると言う処理となる。
配列や変数の初期化と配列や変数の作成の説明を終わる。
【0030】
分岐処理には、一般的に使用されている処理としてIF文による分岐処理とSwitch文による分岐処理がある。IF文の場合であっても、Switch文の場合であっても、1ブロック分のプログラムとは、分岐処理の一つ分の処理のプログラムの事を言う事とする。
IF文による分岐処理とSwitch文による分岐処理も、Java(登録商標)と呼ばれるプログラム言語で説明する。
これらの処理は、コンパイラと呼ばれるソフトウェアの仕様によって違う。しかし、一般的に、このIF文による分岐処理とSwitch文による分岐処理の二種類の分岐処理技術を使って、分岐処理を行わせている。
IF文の処理は、変数や配列に代入されている数値によって処理を分岐する処理を行う処理の事である。
Java(登録商標)のIF文による分岐処理とSwitch文による分岐処理に相当する別の名称の分岐処理で本発明のコード自動記述2ソフトウェアを記録した録媒体を実施した場合でも、簡単なレパートリーであるから、本発明のコード自動記述2ソフトウェアを記録した録媒体である事を明言する。
以下に、IF文による分岐処理を行わせる処理とSwitch文による分岐処理を行わせる処理の説明を行う。
以下の「{」と「}」は、ここからここまでを処理すると言う意味で必ず記述しなければならない記号である。
【0031】
IF文による分岐処理を行わせる処理は、一般的に下記の様に記述するものである。
if(条件式)
{
条件が真である場合の処理するプログラムを記述する
}
Java(登録商標)と言われるプログラム言語で、使われているIF文と呼ばれる分岐処理は、「if」から始まり「}」までが、1ブロックの処理であり、Java(登録商標)以外のプログラム言語でも、Java(登録商標)のIF文と同じ様な処理を行うプログラムの場合は、IF文と呼ぶ。
〔実施例1〕と、〔実施例2〕と、〔実施例3〕で、条件式を記述する場合「<」を使用しているので、「<」の意味を説明する。
例えば、変数が二つあると仮定する。各々の変数を数値1変数、数値2変数と呼ぶ。数値1変数に0を代入、数値2変数に1を代入する。
IF文の条件式に、if(数値1変数 < 数値2変数) と記述すると、数値1変数が数値2変数未満でる場合と言う意味となる。
「<」の意味を説明を終わる。
【0032】
〔実施例1〕で、組合せ分岐と言う設定でのプログラムの作成説明を行っているので、組合せ分岐の処理のプログラムの書き方の説明を行う。
組合せ分岐の場合は、IF文を使用する。Switch文では、複数の変数や複数の配列に代入された数値の組合せで処理を分岐できないからである。組合せ分岐は、複数の変数や複数の配列に代入された数値の組合せで分岐する処理である。〔実施例1〕では、複数の変数に数値が代入されている事を想定して処理を記述させているので、ここでも、複数の変数に数値が代入されている事を想定して説明する。配列は使用しないが、配列でも同じである。配列の場合は、配列の数値を代入できる配列の位置をインデックスや、変数に代入した数値で指定しなければならないだけである。
組合せ分岐の場合のIF文による1ブロック分の処理を記述したプログラムは、以下の様なる。最初に変数が2個の場合の記述例を示して説明を行う。変数が2個の場合の組合せを2列の組合せと呼ぶ事にする。
if(変数 == 数値 && 変数 == 数値)
{
条件が真である場合の処理するプログラムを記述する
}
と言う記述をする。「if(条件式)」から、「}」までが、1ブロック分の処理を行うプログラムである。IF文の(条件式)の部分に、複数の変数や配列を使用して、代入されている数値の組合せで処理を分岐するのが、組合せ分岐である。
【0033】
変数と記述している部分に仮の変数の名前を使用したり、数値と記述している部分に仮のデーターを示して、もう少し詳しく説明する。変数の名前を仮に、第一変数、第二変数と言う名前の変数があると仮定して説明する。
if(第一変数 == 0 && 第二変数 == 1)
{
条件が真である場合に処理するプログラムを記述する
}
IF文の条件の部分の説明を行う。IFの条件の部分に「第一変数 == 0 && 第二変数 == 1」と書かれている。「==」の左側と右側には、数値や文字や文字列や配列や変数や式といった多種多様のデーター等が記述される。「==」の左側を左項と呼び、「==」の右側を右項と呼ぶ事とする。「==」の意味は、左項と右項とが等しいと言う意味で使用される記号である。「==」の右側に変数、左側に数値を記述しているが、左右逆にして、「==」の左側に数値、右側に変数を記述しても良い。
「==」と同じように使われる記号が多数あり、「==」は、一例である。「!=」「<」「>」「<=」「>=」など多種ある。
また、「&&」は、英語のANDと言う意味で、第一変数に代入されている数値と、第二変数に代入されている数値の両方、と言う意味である。
また、第一変数と第二変数には、0から任意の最高値までの数値が代入される。変数に代入される数値を行数と呼ぶ事とする。幾つ変数が有っても、一つの変数に代入される数値は、0から最大値までである。
変数が2個の場合の記述例で説明すると、第一変数が0で第二変数が1の場合に処理を行うと言う意味である。
変数が2個の場合の記述例を示した説明を終わる。
【0034】
次に、変数が3個の場合の記述例を示して説明を行う。変数が3個の場合を3列の組合せと言う事とする。以降、変数の数が増えたら増えた分だけ数値を増やして、何列組合せと言う事とする。
第三変数と言う名前の変数があると言う事を仮定する。3列の場合の記述例を以下に記述する。
If(第一変数 == 0 && 第二変数 == 1 && 第三変数 == 0)
{
条件が真である場合に処理するプログラムを記述する
}
3列の場合の記述例の意味は、第一変数が0で第二変数が1で第三変数が0の場合に処理を行うと言う意味である。
変数が3個の場合の記述例を示した説明を終わる。
これで、組合せ分岐の場合のIF文による1ブロック分の処理を記述したプログラムの説明を終わる。
IF文による分岐処理を行わせる処理の記述の説明を終わる。
【0035】
Java(登録商標)と言われるプログラム言語で、使われているSwitch文と呼ばれる分岐処理は、「case」から始まり、「break;」までが、1ブロックの処理であり、Java(登録商標)以外のプログラム言語でも、Java(登録商標)のSwitch文と同じ様な処理を行うプログラムの場合は、Switch文と呼ぶ。
Switch文の分岐処理は、「case」の後に、条件式や、変数や、配列に代入されているデーターに該当する数値や、文字を記述して、記述した文字や、数値によって、処理を分岐させる処理技術である。
Switch文による分岐処理を行わせる処理は、一般的に下記の様に記述するものである。
「default:」は、記述せずに省略する事が出来る。「default:」は、その他の場合の処理を記述する為に用意されているものである。
下記のSwitch文は、条件のDat変数に代入されている数値によって、分岐するものである。
switch(条件式)
{
case 条件の答え:
処理するプログラムを記述する
break;
case 条件の答え:
処理するプログラムを記述する
break;
default:
}
条件に変数や文字列を指定する事が出来る。
【0036】
条件が数値型の変数の場合は以下の様に記述するものである。
数値型の8bitの変数を作成し、作成した変数をDat変数と呼ぶ事とする。
下記のSwitch文は、条件のDat変数に代入されている数値によって、分岐するものである。
switch(Dat)
{
case 0:
処理するプログラムを記述する
break;
case 1:
処理するプログラムを記述する
break;
default:
}
【0037】
条件式がString型の場合は、以下の様に記述するものである。
String型の100byteの変数を作成し、作成した変数をSDat変数と呼ぶ事とする。
下記のSwitch文は、条件のSDat変数に代入されている文字によって、分岐するものである。
switch(SDat)
{
case "自由主義者":
処理するプログラムを記述する
break;
case "社会主義者":
処理するプログラムを記述する
break;
default:
}
【0038】
文字や文字列を操作する場合に、機械語と人間が読める文字とを区別して処理する為の予約文字がある。予約文字として使用禁止文字に該当する文字は、「"」である。
禁止文字とは、文字として使用する事を禁止されている文字の事である。
「"」は、「"」と「"」で文字列を囲む事で、人間が読む事が出来る文字列である事を明示する為の記号である。「"自由主義者"」や「"社会主義者"」は、文字列である事を明示しているのである。
「"0"」や「"1"」と記述した場合と「0」や「1」と記述した場合の違いは、「"0"」や「"1"」と記述した場合は、String型の人間が読める数値の0と1と言う意味となり、「0」や「1」と記述した場合は、機械語の0と1と言う意味となる。
「"」は、「"自由主義者"」の様に記述する場合は、コンパイラに付属されたエディターでも使用できる。使用できないのは、「"""」や「""""」と言う状態になる場合に「"」が使用できなくなるのである。「"""」は、String型の変数に「"」を文字として代入しようとする場合に記述しなければならなくなるプログラムであるが、コンパイラに付属のエディターは、禁止文字の使用としてエラーとみなすのである。
突然であが、変数の初期化の補足説明を行う。
初期化では、「"」と「"」をスペースを入れずに列挙しているが、文字無しの文字を代入すると言う意味で使用しているものである。スペースも文字なので、「" "」の様にスペースを「"」と「"」の間に入れて記述すると、スペースを変数に代入してしまう為、「"」と「"」の間にスペースを入れない記述をする事で変数を初期化するのが常識的な記述である。
変数の初期化の補足説明を終わる。
Switch文による分岐処理を行う処理の記述の説明を終わる。
【0039】
配列や変数にデーターを代入すると言う処理を行う処理の記述は以下の通りである。
配列名[インデックス] = 数値または、文字や文字列;
変数名 = 数値または、文字や文字列;
変数名 = 変数名;
「=」は、代入演算子と一般的に呼ばれているもので、代入する時に必ず記述しなければならない記号である。
「=」の左辺の配列や変数に「=」の右辺の数値または、文字や文字列を代入すると言う処理を行わせる記述である。
配列や変数にデーターを代入すると言う処理を行う処理の記述の説明を終わる。
【0040】
文字列を連結させる場合には「+」を使用する。文字列を連結させる場合の記述は、以下の様になる。「+」を使用しない記述の仕方もあるが、実施例で使用していないので説明しない。
String型の100byteの変数を二個作成する。各々の変数をSDat1変数とSDat2変数と呼ぶ。
SDat1変数に「天才は99%の努力と」と言う文字列を代入する。
SDat2変数に「1%の能力である」と言う文字列を代入する。
SDat1 = SDat1 + Sdat2;
と記述すると、SDat1変数には、「天才は99%の努力と1%の能力である」と言う文字列が代入される。
また、以下の様に記述すると、
SDat1 = SDat1 + Sdat2 + "と言うが本当かな?";
SDat1変数には、「天才は99%の努力と1%の能力であると言うが本当かな?」と言う文字列が代入される。
これで、文字列を連結させる場合の記述の説明を終わる。
【0041】
繰り返し処理には、For文と言うものがある。For文以外にも幾つも繰り返し処理があるが、実施例1と実施例2と実施例3で記述させている繰り返し処理がFor文なのでFor文の説明だけを行う事とする。For文も、一般的に使用されているJava(登録商標)と呼ばれるプログラム言語で説明する。
For文は、以下の様に記述する。
for(int i = 0; i < 10; i++){
処理するプログラムを記述する
}
「i」と言う数値型の変数の値は、初期値が0であり、「i」と言う数値型の変数の値が、10未満の場合は、繰り返し処理を行えと言う処理である。「i++」の意味は、処理するプログラムを記述する部分に記述されている処理を一回処理する毎に「i」に「1」を加算すると言う意味である。
数値型の8bitの変数を作成してN変数と呼ぶ事とする。N変数に5を代入する。
for(int i = 0; i < N; i++){
処理するプログラムを記述する
}
この様に記述した場合「i」変数の初期値を0として、処理するプログラムを記述する部分に記述された処理を一回処理するたびに「i」に1を加算して「i」がN変数に代入されている数値の5になったら、繰り返し処理を終われと言う処理を行わせる記述である。「i」が一般的に言われているインデックスと言う数値が代入されている変数である。
For文の説明を終わる。
これで、プログラムの書き方について説明を終わる。
【0042】
以下に、配列の末尾にデーターを代入すると記述している場合がある。
未だに配列に代入されたデーターが無い場合は、普通、配列の最初の位置にデーターを代入するものである。しかし、配列の最初の位置から代入する度に数byteずつ代入する位置をずらして、データーを数byteずつ代入する場合、配列の最初の位置にデーターを代入した後は、配列に代入されたデーターの最後の位置にあるデーターの次の位置に代入するという事になる。この場合、配列の最初の位置に既にデーターを代入した後の位置の指定を末尾と表現する事が出来る。未だに配列に代入されたデーターが無い状態で、配列の最初の位置から代入する度に数byteずつ代入する位置をずらして数byteずつデーターを配列に代入する場合、配列の最初の位置にデーターを代入する場合でも、配列の末尾にデーターを代入すると表現する事が出来ると考えられる。そこで、配列の最初の位置から代入する度に数byteずつ代入する位置をずらして、数byteずつデーターを配列に代入する場合は、配列の最初の位置に代入する場合であっても、配列の末尾に代入すると記述する場合がある。
また、本発明の明細書で、配列の最初の位置から代入する度に数byteずつ代入する位置をずらして、数byteずつデーターを配列に代入する場合に於いて、配列に代入するデーターの順番について断り書きが無い場合は、取得した元のデーター(作成したデーターや取得したデーターや読み込んだデーターや元の配列に代入されていたデーターなど)の順番通りに数byteずつ配列に代入するものとする。
【0043】
テキスト形式とバイナリー形式は、ファイルを扱う場合のみ使用できる形式である。
実施例で使用しているコンパイラを使用した場合は、String型で変数を作成すると約20億個の文字コードで出来た文字を代入出来るサイズで変数が作成される。つまり、約20億byteの変数が作成される。作成された変数は代入される文字列の文字数によって、自動的にメモリーの使用量が変更されるようになっている。
【0044】
この様にString型で変数を作成するとメモリーの使用領域が自動的に代入されるデーターの量によって変化するものになっている。使用するコンパイラによっては、この様な自動的に代入される文字列の文字数によって変数のサイズを変更する機能が無い場合がある。そこで、本発明の明細書では、String型で変数を作成する場合、型として使用するメモリー使用量を指定する事とする。実施例で使用しているコンパイラを使用した場合、実際には、型として使用するメモリー使用量を指定して変数を作成する事はできない。
【0045】
プログラマーとは、ソフトウェアを作成する人間の事を言う事とする。但し、人工知能を使用してソフトウェアを自動的に作成する場合は、人工知能もプログラマーであるとする。
人工知能とは、思考処理を行うソフトウェアの事である。思考処理とは、人間の様に物事を考えて処理するソフトウェアの処理工程の事を言う事とする。
【発明の開示】
【発明が解決しようとする課題】
【0046】
従来、コンパイラに付属されたエディターと呼ばれるプログラムを記述するテキストボックスに人為的な入力処理によって、プログラムを書き込んで大量の分岐処理を記述してきた。その再、分類数の分だけ、分岐する必要があり、分類数分だけ配列や変数が必要になる。例えば、データーを分類する場合、分類対象データーを記録する為の配列や変数が分類毎に必要になるのである。配列や変数は、全て、違う名前で作成する必要がある。同じ名前で配列や、変数を作成して使用すると上書き処理になってしまう。上書き処理で配列や変数にデーターを代入すると、先に分類して代入したデーターを書き換えてしまう為、分類処理が出来ないと言う事態に陥るのである。また、同じ名前で変数を作成して使用する場合、先に分類して代入したデーターの後方に連結して代入すると言う技術を使う事になる。データーを分類して記録した配列や、変数とは、別の配列や変数を作成して、どこの位置からどこの位置までがどの分類に属するデーターなのかを示すデーターを記録する必要が出てきて異常に複雑な処理をしなければならなくなるのである。また、同じ名前で配列を作成して使用する場合、先に分類して代入したデーターの後方、つまり、配列の末尾に代入する事になる。この場合も、変数の場合と同じく、分類したデーターを記録する配列とは別の配列や変数を作成して、どこの位置からどこの位置までがどの分類に属するデーターなのかを示すデーターを代入する事で記録しておく必要が出てきて異常に複雑な処理をしなければならなくなる。
【0047】
分岐毎の処理は殆ど同じなので、コピーして貼り付ける事で、少し人為的な入力処理の労力を軽減する事が出来る。しかし、労力を少し減らす事が出来る程度でしかない。分岐毎の処理は、殆ど同じであるが違う場所、つまり、配列名や変数名は、全て書き換えなければならないと言う、途方もなく大変な作業をしなければならなかったのが従来の状況である。
【0048】
また、コンパイラの機能を利用して大量の分岐や配列や変数を記述すると言う方法もある。この方法は、コンパイラに付属されたエディターに繰り返し処理を記述してプログラムを大量に書かせると言う技術であるが、ソフトウェアと言う事が出来ない技術である。コンパイラの機能を利用しているので、コンパイラ無しでは処理できない方法である。また、コンパイラに付属されたエディターには、使用禁止文字があり、使用禁止文字が使用できない為に記述できない処理のプログラムがある。記述できない処理のプログラムを書かせるには、記述できない使用禁止文字を使用しない処理としてプログラムをコンパイラの機能を使用してコンパイラに記述させて、使用禁止文字を使用せずに出来上がった処理を記述したプログラムに、人為的な入力処理で使用禁止文字を挿入すると言う処理を行う必要がある。
また、複数個の変数や複数個の配列に代入された数値の組合せによる分岐処理をプログラム言語を使用して複数個の変数や複数個の配列に代入された数値の組合せ数分の分岐処理を自動で記述させると言う処理の方法は、従来から、全く無かった。複数個の変数や複数個の配列に代入された数値の組合せによる分岐処理をプログラム言語を使用して複数個の変数や複数個の配列に代入された数値の組合せ数分の分岐処理を自動で記述させると言う処理の方法が、全く無かったと言う問題も大きな問題である。人為的な入力処理で記述すると言う方法以外にないから、時間がかかり過ぎると言う大きな問題である。
【0049】
図20の<コンパイラの機能を使用して配列を128個作成する処理を記述させて変数に代入する場合のプログラム>と、図21の<コンパイラの機能を使用して配列を128個作成する処理を記述させて配列に代入する場合のプログラム>と、図22の<コンパイラの機能を使用してSwitch文を128個記述させて変数に代入する場合のプログラム>は、全て、コンパイラの機能を利用して大量の分岐や配列や変数を記述すると言う方法で処理しようとして記述したプログラムである。
【0050】
図20の<コンパイラの機能を使用して配列を128個作成する処理を記述させて変数に代入する場合のプログラム>から、図22の<コンパイラの機能を使用してSwitch文を128個記述させて変数に代入する場合のプログラム>を比較図1と呼ぶ。
図15の<コード自動記述2ソフトウェアで配列を3個作成する処理を記述させた処理結果>と、図16の<コード自動記述2ソフトウェアで3個の配列の初期化をする処理を記述させた処理結果>と、図17の<コード自動記述2ソフトウェアでIF文による分岐処理を3個記述させた処理結果>と、図18の<コード自動記述2ソフトウェアでSwitch文による分岐処理を3個記述させた処理結果>と、図19の<コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた処理結果>は、記述させようと思っているプログラムの例である。図15の<コード自動記述2ソフトウェアで配列を3個作成する処理を記述させた処理結果>から、図19の<コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた処理結果>を比較図2と呼ぶ。
【0051】
図6の<コード自動記述2ソフトウェアで配列を3個作成する処理を記述させた場合の操作画面>の図符号Jのコード記述テキストボックスに入力されたプログラムと、図7の<コード自動記述2ソフトウェアで3個の配列を初期化する処理を記述させた操作画面図>の図符号Jのコード記述テキストボックスに入力されたプログラムと、図8の<コード自動記述2ソフトウェアでIF文による分岐を3個記述させた操作画面図>の図符号Jのコード記述テキストボックスに入力されたプログラムと、図9の<コード自動記述2ソフトウェアでSwitch文による分岐を3個記述させた操作画面図>の図符号Jのコード記述テキストボックスに入力されたプログラムと、図10の<コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた操作画面図>の図符号Jのコード記述テキストボックスに入力されたプログラムと、図6の<コード自動記述2ソフトウェアで配列を3個作成する処理を記述させた場合の操作画面>から、図10の<コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた操作画面図>の図符号Jのコード記述テキストボックスに入力されたプログラムは、本発明のコード自動記述2ソフトウェアを記録した記録媒体で記述させようとしたプログラムの記述である。図6の<コード自動記述2ソフトウェアで配列を3個作成する処理を記述させた場合の操作画面>の図符号Jのコード記述テキストボックスに入力されたプログラムから、図10の<コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた操作画面図>の図符号Jのコード記述テキストボックスに入力されたプログラムを比較図3と呼ぶ。
【0052】
比較図1と、比較図2と、比較図3を比較すると、比較図3が比較図1に比べて物凄く簡略化されていて記述しやすくなっている。比較図2の図に記述されているプログラムにかなり近いプログラムになっているのが、比較図3である。比較図1は、大変複雑で記述しにくいプログラムである。比較図1の様な複雑なプログラムを書かなくて良い状態になり、比較図3の簡略化されたプログラムを書く事が可能になるのが、本発明が問題を解決した部分である。大変複雑で記述しにくいプログラムを簡略化できたのは、プログラムの書き方を変更する事が出来た事によって得られた利便性の高さである。但し、プログラムの書き方を変更する事が出来たと言う事は、文法を変更しただけで、技術ではないので、発明には相当しない。
【0053】
図22の<コンパイラの機能を使用してSwitch文を128個記述させて変数に代入する場合のプログラム>と図20の<コンパイラの機能を使用して配列を128個作成する処理を記述させて変数に代入する場合のプログラム>の図中に記載しているNLの説明を行う。
図20の<コンパイラの機能を使用して配列を128個作成する処理を記述させて変数に代入する場合のプログラム>の図中に記載しているNLは、変数である。NLには、キャリッジリターンとラインフィードが代入されている。変数Detaに次々に代入処理を行う処理なので、一行ずつ明確に区切って代入する必要があるからである。配列に一行ずつ代入する場合は、図21の<コンパイラの機能を使用して配列を128個作成する処理を記述させて配列に代入する場合のプログラム>には、NLを一切記述していない。配列に代入する場合は、図21の<コンパイラの機能を使用して配列を128個作成する処理を記述させて配列に代入する場合のプログラム>の様にNLを省略できる。配列の要素一個に一行ずつ代入するので一行ずつ明確に区切る必要が無いからである。
図22の<コンパイラの機能を使用してSwitch文を128個記述させて変数に代入する場合のプログラム>と図20の<コンパイラの機能を使用して配列を128個作成する処理を記述させて変数に代入する場合のプログラム>NLの説明を終わる。
【0054】
図22の<コンパイラの機能を使用してSwitch文を128個記述させて変数に代入する場合のプログラム>の5行目の
SDeta = SDeta + "FI_" + i + "[i] = FI_" + i + "[i] + , + KFIchi;" + NL;
の部分である。この記述は、コンパイラの機能を使用してSwitch文を128個書かせる処理を記述させる記述である。しかし、これを実行すると出来上がるプログラムは、以下の様になる。
SDeta = SDeta + FI_数値[i] = FI_数値[i] + , + KFIchi;
この様に「 + , + 」となってしまう。本当は、「,」が文字である事を明示する「"」で「,」を囲んだ「 + "、" + 」と記述させたいのである。完成したプログラムで、「 + "、" + 」と記述させるには、以下の様に記述する必要がある。
SDeta = SDeta + "FI_" + i + "[i] = FI_" + i + "[i] + " + "","" + " + KFIchi;" + NL;
ところが、コンパイラの付属のエディターは、「"」を文字として使用する事を禁止しているので「"","""」は、エラーとなってしまう。その為、一旦、「 + , + 」と記述させて「 + "、" + 」となる様に「"」を人為的な入力処理で挿入しなければならなくなるのである。この様に、コンパイラに付属されたプログラムを記述するエディターを使用すると「"""」と「""""」が記述できない使用になっているのが普通である為、エラーとみなされるのである。
【0055】
分岐処理をIF文で場合分けする場合は、少し複雑な処理が出来る。少し複雑な処理とは、IF文で変数や配列に代入されているデーターの組合せで処理を分岐させると言う処理である。従来は、コンピューターに、IF文で、複数の変数に代入された数値の組合せで分岐処理を行うと言う処理をコンピューターで自動的に記述させる技術が存在し無かった。コンパイラに付属されたプログラムを記述するエディターを使用しても、IF文で複数の変数や複数の配列に代入されているデーターの組合せで処理を分岐させると言う処理を記述させられない。その為、コンパイラに付属されたプログラムを記述するエディターに、1ブロック分のIF文による複数の変数や複数の配列に代入された数値の組合せの分岐処理を記述して、記述した1ブロック分のIF文による分岐処理をコピーして、そのコピーを貼り付けて、貼り付けた1ブロック分のIF文による分岐処理で、書き換えなければならない部分を人為的な処理で書き換えると言う処理をしなければならなかった。本発明によって、この様な人為的な入力処理を行わずに、IF文で複数の変数や複数の配列に代入されているデーターの組合せで処理を分岐させると言う処理を記述させられる様になる。
【0056】
IF文で複数の変数や複数の配列に代入されているデーターの組合せで処理を分岐させると言う処理とは、どの様なIF文なのかと言うと、図23の<コード自動記述2ソフトウェアで2行2列で分岐する処理を記述させた処理結果>と図24の<コード自動記述2ソフトウェアで2行3列で分岐する処理を記述させた処理結果>に示す様なIF文である。変数に代入された数値が幾つの場合と、変数に代入された数値が幾つの場合の組合せで処理を分岐すると言うのが、図23の<コード自動記述2ソフトウェアで2行2列で分岐する処理を記述させた処理結果>で示すIF文である。
変数に代入された数値が幾つの場合と、変数に代入された数値が幾つの場合と、変数に代入された数値が幾つの場合の組合せで処理を分岐すると言うのが、図24の<コード自動記述2ソフトウェアで2行3列で分岐する処理を記述させた処理結果>で示すIF文である。
いずれの場合も、行数が指定できるようになっているので少々複雑である。
一つ目の変数に代入された数値と、2つ目の変数に代入された数値との組合せが2列の組合せである。1個1個の変数に代入される数値が0から幾つまでの数値が代入されるのかと言うのが問題になるが、1個1個の変数に代入される数値が0から幾つまでの数値が代入されるのかを指定するのが行数に相当するもので、指定した行数を最大値として、変数の数で組合せを作成する。作成した数値の組合せを変数や、配列に代入された数値が幾つなのかを示す数値の部分に挿入する事で1ブロック分のプログラムを完成させて、組合せ総数分のブロック数分の分岐処理を記述させるのが、本発明のコード自動記述2ソフトウェアを記録した記録媒体である。
【0057】
もう少し、詳しく言い換えると、変数の数値の部分を明示する為に文字列を使用する。使用する文字列を指定するのであるが、指定するには、文字列を図符号Qの回答指定名に入力する事で指定する。組合せ分岐の1ブロック分のIF文による複数の変数や複数の配列に代入された数値の組合せの数値の部分を回答指定名で指定した文字列で記述した分岐処理を記述して、本発明のソフトウェアで処理させると、組合せ分岐の1ブロック分のIF文による複数の変数や複数の配列に代入された数値を示す数値を記述する部分を回答指定名で指定した文字列で記述した分岐処理の中から、ブロック毎に回答指定名を探し出して、ブロック毎に違う数値の組合せの数値に置換して、組合せ総数分のブロックを記述するのが、本発明のコード自動記述2ソフトウェアを記録した記録媒体である。
回答指定名とは、組合せ分岐の1ブロック分の複数の変数や配列に代入された数値の組合せによる分岐処理で使用されている複数の変数や配列に代入されている数値を示す為の数値に、組合せの数値を作成して作成した組合せの数値を使用する為に、作成した組合せの数値に置換する位置を明示する為の目印として任意に指定した文字列の事である。
変数や配列に代入された数値の組合せによる分岐処理の場合、変数や、配列に代入される数値の最小値は、0であり、変数や、配列に代入される数値の最大値を行数と呼び、変数や、配列の個数を列と呼ぶ事とする。
【0058】
図25の<3行2列の組合せ説明図>と、図26の<2行4列の組合せ説明図>で説明する。図25の<3行2列の組合せ説明図>と、図26の<2行4列の組合せ説明図>の図中の「,」は、数値を区切っている区切り記号である事を注意して参照する事。
図25の<3行2列の組合せ説明図>は、3行2列の数値の組合せを算出した結果を図にしたのが図25である。一つの変数に0から2までの数値が代入される場合なので、3行となり、変数の数は、2個であるから、2列となる。
図26の<2行4列の組合せ説明図>は、2行3列の数値の組合せを算出した結果を図にしたのが図26である。一つの変数に0から1までの数値が代入される場合なので、2行となり、変数の数は、4個であるから、4列となる。
この様な、変数に代入された数値の組合せで、処理を分岐させるIF文の1ブロック毎に違う変数に代入された数値の組合せとして、数値を記述させて、必要量のブロック分の処理を記述させる事が出来るソフトウェアが無かったので問題であった。問題になる理由は、非常に数多くの書き換えと、多種類の組合せがある為に、人為的な入力処理では、その労力も大きいし、組合せの記述間違いも多くなるからである。
【課題を解決するための手段】
【0059】
本発明のコード自動記述2ソフトウェアを記録した記録媒体の発明は、2つある。
第一の発明は、分岐処理の1ブロック分のプログラム毎に、違う名前の変数や配列を使いたい場合や、分岐処理の1ブロック分のプログラム毎に、違う人間が読める数値や機械語の数値を使いたい場合に、分岐処理の1ブロック分のプログラム毎に、違う名前の変数や配列にする為に、連続番号を変数や配列に連結する事で違う名前に作り替えて記述したり、分岐処理の1ブロック分のプログラムの中に、人間が読める数値や機械語の数値を使いたい箇所を連続番号に置換して記述したりする為に、連続番号に置換する位置に、任意の文字列を指定したプログラムを1ブロック分だけを人為的な入力作業で記述させる事で、任意の数のブロックの分岐処理を自動的に記述させるソフトウェアである。
第一の発明を少し詳しく説明する。
配列名や変数名に数値を使用して、各変数や各配列の名前の数値の部分を連続番号とし、多分岐処理のSwitch文の条件の答えの部分も連続番号の数値を使い、配列や変数の名前の数値と一致させる事で、処理を簡略化させると言う一定のルールを使用して、その変数や配列や条件の答えとなる数値の連続番号を作成して、変数や配列の名前に連続番号の数値を連結させたり、Switch文の条件の答えの部分に変数や配列の名前に使用した連続番号の数値を1ブロック毎に違う連続番号の数値を記述して、大量の分岐処理を記述させる技術である。
第一の発明を少し詳しい説明を終わる。
第二の発明は、複数の変数や配列に代入されている数値の組合せによる分岐処理を1ブロック分だけを人為的な入力作業で記述させる事で、組合せ数分の分岐処理を自動的に記述させるソフトウェアである。
第二の発明の少し詳しい説明を行う。
複数個の変数や複数個の配列に代入された数値の組合せとして、複数個の変数や複数個の配列に代入される数値の最小値を0として、複数個の変数や複数個の配列に代入される数値の最大数を行数と呼び、変数や配列の個数を列数と呼び、行数と列数の組合せを算出して、1ブロック分のIF文を例として人為的な入力処理等で記述させて、人為的な入力処理等で記述させた1ブロック分のIF文の条件の部分の数値を記述しなければならない部分に1ブロック毎に違う行数と列数によって算出される数値の組合せの数値をコンピューターによって算出し、算出した組合せの数値をコンピューターによって、自動的に記述して1ブロックの分岐処理を記述させて、行数と列数によって算出される数値の組合せの総数分のブロック数のブロックをコンピューターによって、自動的に記述させる技術である。
第二の発明の少し詳しい説明を終わる。
【0060】
第一の発明を違う言い方で表現すると、変数や配列を作成するプログラムや配列の初期化を行うプログラムの一個分のプログラムを例として記述するか、IF文やSwitch文の1ブロック分のプログラムを例として記述して、個数や分岐処理の数を指定するだけで、分岐処理の1ブロック毎に、名前が違う配列や変数を分岐処理に必要な分だけ自動で作成したり、分岐処理の分岐の分だけ書き換えなければならない部分を書き換えたプログラムを自動で記述する技術が、本発明のコード自動記述2ソフトウェアを記録した記録媒体であると表現できる。変数や配列を作成したり、初期化したりする場合のプログラムの一個分とは、変数や配列の一個分と言う意味である。
また、回答指定名と、ブロック指定名は、分岐処理の1ブロック分のプログラムの中のどこの位置に記述するものであっても本発明のコード自動記述2ソフトウェアを記録した記録媒体である。本発明のコード自動記述2ソフトウェアを記録した記録媒体は、回答指定名とブロック指定名を、分岐処理の1ブロック分のプログラムの中のどこの位置であっても記述して、置換する位置を明示する文字列として使用する事が可能だからである。
【0061】
分岐処理の分岐の分だけ書き換えなければならない部分とは、配列の名前や変数の名前と、Switch文の1ブロック分のプログラムに必ずある「case 条件の答え」の条件の答えの部分である。この分岐処理の1ブロック毎に書き換えたい変数や配列の名前の前後や名前の文字列の先頭から何文字目の位置に、連続番号の数値と置き換えて連結するのかを、人為的な入力処理でブロック指定名を入力する事で連続番号の数値と位置を指定するか、または、分岐処理の1ブロック毎に名前を変えたい配列名や変数名を指定するのに、配列名や変数名の連続番号の数値以外の共通の名前の文字列の部分を人為的な入力処理で指定する事で特定するのが、本発明のコード自動記述2ソフトウェアを記録した記録媒体である。
〔実施例1〕では、分岐処理の1ブロック毎に名前を変えたい配列名や変数名を指定するのに、連続番号の数値以外の共通の名前の文字列の部分を人為的な入力処理で指定する事で特定する技術は、紹介していないが、現在の技術で可能な技術なので本発明のコード自動記述2ソフトウェアを記録した記録媒体である事を明記する。
【0062】
第二の発明の行数と列数の組合せの例として、図25の<3行2列の組合せ説明図>と図26の<2行4列の組合せ説明図>がある。行数が0から最大値で列数が変数の個数であるから、変数に代入された各々の数値の組合せとなる。1個の変数に代入された数値だけでの組合せは無いので、図25の<3行2列の組合せ説明図>と図26の<2行4列の組合せ説明図>の様な組合せになる。
【0063】
コンパイラに付属されたプログラムを記述するエディターを使用すると「"」が記述できないと言う問題は、「"」をテキストボックスに書き込んで、書き込んだテキストボックスの「"」文字を変数に代入して使用する事で解決できるのである。
〔実施例3〕で、この「"」をテキストボックスに書き込んで、書き込んだテキストボックスの「"」文字を変数に代入して使用する処理を行っている。
〔実施例3〕では、図30の<実施例3の変数コード自動記述2ソフトウェアの操作画面図>の図符号aの禁止文字指定テキストボックスに予め「"」を代入してある。図符号gの変数作成ボタンを図符号Dのマウスでクリックしてソフトウェアの処理を開始させた後の処理の実行中に、「"」を変数に代入して「"」をコンパイラ付属のエディターに記述されたプログラムで使用しているのである。〔実施例3〕では、独立したソフトウェアとして処理するプログラムであるから、コンパイラ付属のエディターは使用していない。〔実施例3〕は、プログラムを記述する際にコンパイラに付属されたエディターを使用して処理工程を記述する為、コンパイラに付属されたエディターに、変数を記述して、記述した変数に「"」を代入する処理を記述しなければならなくなった為に処理出来ないと言う状態になったソフトウェアである。その為、〔実施例3〕では、テキストボックスに、「"」を代入しているのである。しかし、テキストボックスに、「"」を代入しておいて処理工程でテスキトボックスに代入されている「"」をString型の変数に代入して使用する技術は、常識的な技術である。また、「"」に相当する機械語の数値を変数に代入して文字に変換して使用する技術もある。機械語の数値を変数に代入して文字に変換する技術も、常識的な技術である。
【0064】
〔実施例1〕では、コンパイラに付属されたエディターでは、「"」を文字として使用できないと言う問題に対する解決策として、コンパイラに付属されたエディターでプログラムを記述する必要性が無い独立したソフトウェアでプログラムを記述させる事で問題を解決している。また、分岐処理を行う場合に必要になる配列や変数には、名前の前方や後方や名前の任意の位置に、人間が読む事が出来る数値を連続番号で作成して連結させた名前を使用する事を義務付ける事で問題を解決している。
「名前の前方や後方や名前の任意の位置に」と記述して説明したが、本発明の実施例で使用したコンパイラでは、配列や変数の先頭の位置に相当する名前の前方に数値を付する事が出来ない使用になっている。本発明の実施例で使用したコンパイラ以外で変数や配列の名前の前方に数値を付けられる場合があるであろうと思われる為、念の為に、「名前の前方」を含む説明を行った事を明記する。
【0065】
Switch文に於けるcase条件の答えの「条件の答え」の部分にも、変数の名前や配列の名前の様に、人間が読む事が出来ない数値を連続番号で作成して、作成した連続番号の数値を使用する事を義務付ける事で問題を解決している。case条件の答えの「条件の答え」の部分に、人間が読める数値を記述させても、コンパイラは、「"作成した連続番号の数値"」と記述されていない限り、人間が読む事が出来ない数値として扱う事になっているので問題なく記述させられる。作成した連続番号の数値とは、「"作成した連続番号の数値"」の作成した連続番号の数値が、例えば「1」の場合は、「"1"」と記述すると言う事である。
但し、case条件の答えの「条件の答え」の部分に、「"作成した連続番号の数値"」と言う様な記述をさせる技術も本発明の簡単なレパートリーである。case条件の答えの「条件の答え」の部分に、人間が読む事が出来る数値を記述しても問題なくSwitch文による分岐処理が可能である事は言うまでもなく常識であるが、コンパイラの仕様の部分であるのでコンパイラの仕様上、人間が読む事が出来る連続番号を作成して、作成した連続番号の数値をcase(条件の答え)の「条件の答え」の部分に、記述しても問題なくSwitch文による分岐処理が可能である場合のみ本発明の簡単なレパートリーであると明言する。
また、人間が読む事が出来る連続番号を作成して、case条件の答えの「条件の答え」の部分に、「"」で囲まずに作成した連続番号の数値を記述する事で、人間が読む事が出来ない数値として記述させた場合でも、問題なく処理が出来るかどうかは、コンパイラの仕様の問題であるから、Switch文による分岐処理が可能である場合のみ、本発明のコード自動記述2ソフトウェアを記録した記録媒体であると明言する。
【0066】
〔実施例1〕の問題解決技術を図を使った簡単な説明を行う。
図6の<コード自動記述2ソフトウェアで配列を3個作成する処理を記述させた場合の操作画面図>は、本発明のコード自動記述2ソフトウェアを記録した記録媒体で、数値型の配列を3個作成する処理を記述させる操作画面図である。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「IF文やその他」に選択設定して、図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているのでそのまま入力せずに、図符号Hのブロック数指定画面を図符号Dのマウスを使用して図符号Iのブロック数指定ボタンをクリックして3に設定して、図符号Cのキーボードを使用して図6の<コード自動記述2ソフトウェアで配列を3個作成する処理を記述させた場合の操作画面図>の様に図符号Jのコード記述テキストボックスに入力して、図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
【0067】
ブロック指定名の説明を行う。
変数や配列の場合は、名前の前後または、任意の位置にブロック指定名を使用して、「Switch文のcase条件の答え」の条件の答えの部分に必ず、ブロック指定名を使用して記述する事と、他のプログラムの部分に絶対にブロック指定名で使用している文字や文字列を使用しない事を条件として1ブロック分のプログラムを記述したり、IF文の場合は、変数や配列の名前の任意の位置にブロック指定名を使用して1ブロック分のプログラムを記述したりして、図符号Jのコード記述テキストボックスに記述して、図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させて、コード自動記述2ソフトウェアの処理によって、ブロック指定名を図符号Jのコード記述テキストボックスに記述したプログラムの中から探し出して、作成された連続番号の数値に、探し出したブロック指定名を置換する事で完成されたプログラムを記述させる本発明のソフトウェアで使用する連続番号の数値に置換する為の目印である。
言い換えると、ブロック指定名とは、1ブロック毎に違う変数や配列の名前にしたい場合に、変数や配列の名前の一部分を1ブロック毎に違う連続番号に変更する事で1ブロック毎に違う変数や配列の名前に変更して使用する事を可能にする為に、変数や配列の名前の任意の位置に、ブロック指定名を目印として記述する事で、ブロック指定名が記述されている位置に、連続番号の数値を置換すると言う処理を行わせる為に目印として使用する文字列であり、「Switch文のcase条件の答え」の条件の答えの部分を1ブロック毎に違う連続番号に置換する目印として使用する文字列の事である。
もっと、簡単に言い換えると、ブロック指定名とは、1ブロック毎に違う名前の変数や、配列や、数値を使いたい場合に、連続番号を作成して、作成した連続番号を配列や、変数の名前の任意の位置に連結させて使用する為に、作成した連続番号と置換する位置を示す目印として使用する文字列の事であり、作成した連続番号を数値として使用する為に、作成した連続番号と置換する位置を示す目印として使用する文字列の事である。
ブロック指定名の説明を終わる。
【0068】
この後は、コンピューターと、本発明のコード自動記述2ソフトウェアを記録した記録媒体が共同して処理を実行する。処理を実行し終わった結果が、図15の<コード自動記述2ソフトウェアで配列を3個作成する処理を記述させた処理結果>である。図15の<コード自動記述2ソフトウェアで配列を3個作成する処理を記述させた処理結果>に示す様に、3個の数値型の配列サイズを10個で作成しろと言うプログラムの記述に成功している。
図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているので、この「J」が図符号Jのコード記述テキストボックスに、人為的な入力処理で記述された文字列の中から、コンピューターと本発明のコード自動記述2ソフトウェアを記録した記録媒体が「J」を探し出して数値に変換する事で3個の配列を作成しろと言うプログラムを記述させたのである。
【0069】
図7の<コード自動記述2ソフトウェアで3個の配列を初期化する処理を記述させた操作画面図>は、本発明のコード自動記述2ソフトウェアを記録した記録媒体で、数値型の配列を3個初期化しろと言う処理を記述させる操作画面図である。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「IF文やその他」に選択設定して、図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているのでそのまま入力せずに、図符号Hのブロック数指定画面を図符号Dのマウスを使用して図符号Iのブロック数指定ボタンをクリックして3に設定して、図符号Cのキーボードを使用して図7の<コード自動記述2ソフトウェアで3個の配列を初期化する処理を記述させた操作画面図>の様に、図符号Jのコード記述テキストボックスに入力して、図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
【0070】
この後は、コンピューターと、本発明のコード自動記述2ソフトウェアを記録した記録媒体が共同して処理を実行する。処理を実行し終わった結果が、図16の<コード自動記述2ソフトウェアで3個の配列を初期化する処理を記述させた処理結果>である。図16の<コード自動記述2ソフトウェアで3個の配列を初期化する処理を記述させた処理結果>に示す様に、3個の数値型の配列を初期化しろと言うプログラムの記述に成功している。
図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているので、この「J」が図符号Jのコード記述テキストボックスに、人為的な入力処理で記述された文字列の中から、コンピューターと本発明のコード自動記述2ソフトウェアを記録した記録媒体が「J」を探し出して、連続番号の数値に置換する事で3個の配列を作成しろと言うプログラムを記述させたのである。
【0071】
〔実施例1〕では、図符号Gのブロック指定名テキストボックスに入力された文字の「J」の文字を探し出して数値に置換すると言う処理で問題を解決しているが、ブロック指定名の様に文字や文字列を指定せずに、作成したい変数の名前や配列の名前を指定させて、指定させた変数の名前や配列の名前を探し出して、探し出した変数の名前や配列の名前の前後に連続番号の数値を連結したり、探し出した変数の名前や配列の名前の任意の位置に連続番号の数値を連結すると言う処理を行うソフトウェアも、簡単に実現可能な技術である。本発明のレパートリーとして可能である事を主張し、本発明のコード自動記述2ソフトウェアを記録した記録媒体であると明言する。
ブロック指定名の様に文字や文字列を指定せずに、作成したい変数の名前や配列の名前を指定させて、指定させた変数の名前や配列の名前を探し出して、探し出した変数の名前や配列の名前の前後に連続番号の数値を連結したり、探し出した変数の名前や配列の名前の任意の位置に連続番号の数値を連結すると言う処理を行うソフトウェアを簡単な処理変更1と言う事とする。
【0072】
簡単な処理変更1が、本発明の簡単なレパートリーであると言う説明を行う。
〔実施例1〕では、「J」の文字を探し出す事が出来ているので、「J」の文字ではなくて、数個の文字から成る文字列を探し出す事も簡単な処理であるからである。〔実施例1〕の実施例では、単独の文字を探し出す処理を行っているが、実は、複数文字から成る文字列を探し出す事も可能なソフトウェアである事を明記する。また、〔実施例2〕や〔実施例3〕では、図符号Gのブロック指定名テキストボックスが無く、図符号Gのブロック指定名テキストボックスに特定の文字や文字列を入力する事が出来ない状態で、変数の名前や配列の名前の後方に連続番号の数値を連結する処理を行っており、特定の文字を使用しなくても変数の名前や配列の名前の後方に連続番号の数値を連結する処理が可能である事の実証である。これらの処理は、常識的な処理である。
簡単な処理変更1が、本発明の簡単なレパートリーであると言う説明を終わる。
【0073】
図8の<コード自動記述2ソフトウェアでIF文による分岐を3個記述させた操作画面図>は、本発明のコード自動記述2ソフトウェアを記録した記録媒体で、IF文による分岐を3個記述しろと言う処理を記述させる操作画面図である。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「IF文やその他」に選択設定して、図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているのでそのまま入力せずに、図符号Hのブロック数指定画面を図符号Dのマウスを使用して図符号Iのブロック数指定ボタンをクリックして3に設定して、図符号Cのキーボードを使用して図8の<コード自動記述2ソフトウェアでIF文による分岐を3個記述させた操作画面図>の様に、図符号Jのコード記述テキストボックスに、1ブロック分のIF文による分岐処理のプログラムをブロック指定名を必要な部分に使用して入力して、図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
【0074】
この後は、コンピューターと、本発明のコード自動記述2ソフトウェアを記録した記録媒体が共同して処理を実行する。処理を実行し終わった結果が、図17の<コード自動記述2ソフトウェアでIF文による分岐処理を3個記述させた処理結果>である。図17の<コード自動記述2ソフトウェアでIF文による分岐処理を3個記述させた処理結果>に示す様に、3個の数値型の配列を初期化しろと言うプログラムの記述に成功している。
ブロック指定名を「J」と指定していると想定して説明する。図符号Jのコード記述テキストボックスに、人為的な入力処理で記述された文字列の中からブロック指定名の「J」を探し出して、連続番号の数値に置換する事で3個のIF文による分岐処理を作成しろと言うプログラムを記述させたのである。
【0075】
図9の<コード自動記述2ソフトウェアでSwitch文による分岐を3個記述させた操作画面図>は、本発明のコード自動記述2ソフトウェアを記録した記録媒体で、Switch文による分岐を3個記述しろと言う処理を記述させる操作画面図である。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「Switch文」に選択設定して、図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているのでそのまま入力せずに、図符号Hのブロック数指定画面を図符号Dのマウスを使用して図符号Iのブロック数指定ボタンをクリックして3に設定して、図符号Cのキーボードを使用して図9の<コード自動記述2ソフトウェアでSwitch文による分岐を3個記述させた操作画面図>の様に、図符号Jのコード記述テキストボックスに入力して、図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
【0076】
この後は、コンピューターと、本発明のコード自動記述2ソフトウェアを記録した記録媒体が共同して処理を実行する。
Switch文では、多分岐処理の「case条件の答え」に続く、「処理するプログラムを記述する」と「break;」までの記述が1ブロックのプログラムであるが、必要な数の分岐処理を記述した後、Switch文を完成させるには、記述させた分岐処理のブロック数分のブロックの前方にSwitch(条件){と、後方にdefault:}を記述させる必要があるので、3個分のブロックを記述させたので、出来上がったSwitch文による分岐処理の3個分のブロックを記述させたcaseの部分の前方に「Switch(条件){」を連結させて、後方に、「break;」に連結して、Switch文を完成させる。
処理を実行し終わった結果が、図18の<コード自動記述2ソフトウェアでSwitch文による分岐処理を3個記述させた処理結果>である。図18の<コード自動記述2ソフトウェアでSwitch文による分岐処理を3個記述させた処理結果>に示す様に、Switch文による分岐処理を3個記述しろと言うプログラムの記述に成功している。
ブロック指定名を「J」と指定していると想定して説明する。図符号Jのコード記述テキストボックスに、人為的な入力処理で記述された文字列の中からブロック指定名の「J」を探し出して、連続番号の数値に置換する事で3個のSwitch文による分岐処理を作成しろと言うプログラムを記述させたのである。
【0077】
図10の<コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた操作画面図>は、本発明のコード自動記述2ソフトウェアを記録した記録媒体で、変数を3個作成する処理を記述しろと言う処理を記述させる操作画面図である。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Eのコード文の選択画面を図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「IF文やその他」を選択設定して、図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているのでそのまま入力せずに、図符号Hのブロック数指定画面を図符号Dのマウスを使用して図符号Iのブロック数指定ボタンをクリックして3に設定して、図符号Cのキーボードを使用して図10の<コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた操作画面図>の様に、図符号Jのコード記述テキストボックスに入力して、図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
【0078】
この後は、コンピューターと、本発明のコード自動記述2ソフトウェアを記録した記録媒体が共同して処理を実行する。処理を実行し終わった結果が、図19の<コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた処理結果>である。図19の<コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた処理結果>に示す様に、変数を3個作成する処理を記述しろと言うプログラムの記述に成功している。
ブロック指定名を「J」と指定していると想定して説明する。図符号Jのコード記述テキストボックスに、人為的な入力処理で記述された文字列の中からブロック指定名の「J」を探し出して、連続番号の数値に置換する事で変数を3個作成する処理を記述しろと言うプログラムを記述させたのである。
【0079】
図11の<コード自動記述2ソフトウェアで2行2列で分岐する処理を記述させる処理を行わせる為の人為的な手動による操作または入力処理後の操作画面図>は、本発明のコード自動記述2ソフトウェアを記録した記録媒体で、2行2列で数値の組合せを作成して、作成した数値の組合せの総数分のブロックを、ブロック毎に違う数値の組合せで変数の値を記述した分岐処理を記述させる為の人為的な入力処理を行い終わった状態のコード自動記述2ソフトウェアの操作画面である。
図12の<コード自動記述2ソフトウェアで2行2列で分岐する処理を記述させた操作画面図>は、処理を終了した時点でのコード自動記述2ソフトウェアの操作画面である。図符号Lのブロック数表示テキストボックスに、4と表示されている。組合せ総数が、4有ったと言う処理結果を示している。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「組合せ分岐」に選択設定する。図符号Eのコード文の選択画面を「組合せ分岐」に選択設定と、操作画面が、図5の<コード自動記述2ソフトウェアの組合せ分岐の操作画面図>の様に変化する。図符号Eのコード文の選択画面を「IF文やその他」に選択設定した場合は、図3の<コード自動記述2ソフトウェアのIF文やその他の操作画面図>の様な操作画面であり、図符号Eのコード文の選択画面を「Switch文」に選択設定した場合は、図4の<コード自動記述2ソフトウェアのSwitch文の操作画面図>の様な操作画面で、「IF文やその他」と、「Switch文」に選択設定した場合は、全く操作画面は、変化しない。
【0080】
図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているのでそのまま入力せずに、図符号Mの行数指定画面を図符号Dのマウスを使用して図符号Nの行数指定ボタンをクリックして2に設定して、図符号Oの列数指定画面を図符号Dのマウスを使用して図符号Pの列数指定ボタンをクリックして2に設定して、図符号Qの回答指定名には、予め「d」が入力されているので、変更したくない限り、そのままの状態で、図符号Cのキーボードを使用して図11の<コード自動記述2ソフトウェアで2行2列で分岐する処理を記述させる処理を行わせる為の人為的な手動による操作または入力処理後の操作画面図>の様に、図符号Jのコード記述テキストボックスに、1ブロック分のIF文による分岐処理のプログラムをブロック指定名を必要な部分に使用して入力し、回答指定名を2個の変数に代入された数値を示す為の数値を記述する部分に記述して、図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
【0081】
この後は、コンピューターと、本発明のコード自動記述2ソフトウェアを記録した記録媒体が共同して処理を実行する。処理を実行し終わった結果が、図23の<コード自動記述2ソフトウェアで2行2列で分岐する処理を記述させた処理結果>である。図23の<コード自動記述2ソフトウェアで2行2列で分岐する処理を記述させた処理結果>に示す様に、IF文による2行2列の数値の組合せの総数分のブロックを記述して、変数の数値の組合せによる分岐処理のプログラムを記述するのに成功している。
ブロック指定名を「J」と指定していると仮定し、回答指定名を「d」と指定していると仮定して説明する。図符号Jのコード記述テキストボックスに、人為的な入力処理で記述された文字列の中からブロック指定名の「J」を探し出して、ブロック毎に違う連続番号の数値に置換して、組合せ数分の分岐処理を作成しろと言うプログラムを記述させ、更に、図符号Jのコード記述テキストボックスに人為的な入力処理で記述された文字列の中から、回答指定名の「d」を探し出して、ブロック毎に違う数値の組合せの数値に置換して組合せ総数分のブロックを記述させたのである。
【0082】
図13の<コード自動記述2ソフトウェアで2行3列で分岐する処理を記述させる処理を行わせる為の人為的な手動による操作または入力処理後の操作画面図>は、2行3列の場合の人為的な入力処理後の操作画面図であり、図14の<コード自動記述2ソフトウェアで2行3列で分岐する処理を記述させた操作画面図>は、コード自動記述2ソフトウェアの処理が終了した状態での操作画面である。図符号Lのブロック数表示テキストボックスに、8と表示されている。組合せの総数が8有ったと言う処理結果を示している。図24の<コード自動記述2ソフトウェアで2行3列で分岐する処理を記述させた処理結果>が、処理を実行し終わった結果である。図24の<コード自動記述2ソフトウェアで2行3列で分岐する処理を記述させた処理結果>に示す様に、IF文による2行3列の数値の組合せの総数分のブロックを記述して、変数の数値の組合せによる分岐処理のプログラムを記述するのに成功している。
〔実施例1〕の問題解決技術を図を使った簡単な説明を終わる。
【0083】
〔実施例2〕の問題解決技術を図を使った簡単な説明を行う。
〔実施例2〕は、図27の<実施例2の配列コード自動記述2ソフトウェアの操作画面図>で示す様に〔実施例1〕や〔実施例3〕とは、別個に作成したソフトウェアである。但し、本発明のコード自動記述2ソフトウェアを記録した記録媒体の簡単なレパートリーである。色々な入力ボックスを配置した操作画面で人為的な入力処理による入力の手間を極力少なくしたソフトウェアの例である。
【0084】
〔実施例2〕は、二種類のプログラムの書き方に対応している。一種類目が、配列サイズを数値で指定する場合のプログラムの書き方である。この配列サイズを数値で指定する場合のプログラムの書き方を配列サイズ数値指定処理と呼ぶ。二種類目が、配列サイズを指定する数値を変数に代入して、数値を代入した変数で配列サイズを指定する場合のプログラムの書き方である。この配列サイズを指定する数値を変数に代入して、数値を代入した変数で配列サイズを指定する場合のプログラムの書き方を配列サイズ変数指定処理と呼ぶ。
以下に、配列サイズ数値指定処理の場合の配列コード自動記述2ソフトウェアの説明を行う。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Dのマウスを使用して図符号Uの配列型名指定ボタンをクリックして図符号Tの配列型名指定画面を「int」に選択設定して、図28の<実施例2の配列コード自動記述2ソフトウェアで配列を配列サイズ10で3個作成する処理と、配列を配列サイズ10で3個の配列を初期化する処理を記述させた操作画面図>で示す様に、図符号Cのキーボードを使用して、図符号Vの配列名指定テキストボックスに連続番号の数値と連結したい配列名を文字列で入力して、図符号Dのマウスを使用して図符号Xの配列作成個数指定ボタンをクリックする事で図符号Wの配列作成個数指定画面に、個数を3と指定して、図符号Yの配列サイズ指定テキストボックスに、図符号Cのキーボードを使用して配列サイズを数値で入力して、図符号Zの配列作成ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。実施例2では、図符号Cのキーボードを使用して図符号Yの配列サイズ指定テキストボックスに、「10」と言う配列サイズを数値で、入力した。
【0085】
この後は、コンピューターと、本発明のコード自動記述2ソフトウェアを記録した記録媒体の簡単なレパートリーの実施例2の配列コード自動記述2ソフトウェアによる自動処理である。
処理を実行し終わった結果が、図29の<実施例2の配列コード自動記述2ソフトウェアで配列を配列サイズ10で3個作成する処理と、、配列を配列サイズ10で3個の配列を初期化する処理を記述させた処理結果>である。図29の<実施例2の配列コード自動記述2ソフトウェアで配列を3個作成する処理と、3個の配列を初期化する処理を記述させた処理結果>に示す様に、配列サイズを10で数値型の配列を3個作成しろと言うプログラムと数値型の3個の配列を配列サイズを0で初期化しろと言うプログラムの記述に成功している。
これで、配列サイズ数値指定処理の場合の配列コード自動記述2ソフトウェアの説明を終わる。
【0086】
以下に、配列サイズ変数指定処理の場合の配列コード自動記述2ソフトウェアの説明を行う。
図符号Dのマウスを使用して図符号Uの配列型名指定ボタンをクリックして図符号Tの配列型名選択画面を「int」に選択設定して、図20の<実施例2の配列コード自動記述2ソフトウェアで配列サイズを変数名を代入して配列を3個作成する処理と、3個の配列を配列サイズを変数名を代入して初期化する処理を記述させた操作画面図>で示す様に、図符号Cのキーボードを使用して、図符号Vの配列名指定テキストボックスに、連続番号の数値と連結したい配列名を文字列で入力して、図符号Dのマウスを使用して図符号Xの配列作成個数指定ボタンをクリックする事で図符号Wの配列作成個数指定画面に、個数を3と指定して、図符号Yの配列サイズ指定テキストボックスに、図符号Cのキーボードを使用して配列サイズを任意の変数名を文字列で入力して、図符号Zの配列作成ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。実施例では、図符号Cのキーボードを使用して図符号Yの配列サイズ指定テキストボックスに、配列サイズとしてアルファベットの「a」と言う変数名を入力した。
【0087】
この後は、コンピューターと、本発明のコード自動記述2ソフトウェアを記録した記録媒体の簡単なレパートリーの実施例2の配列コード自動記述2ソフトウェアによる自動処理である。
処理を実行し終わった結果が、図21の<実施例2の配列コード自動記述2ソフトウェアで配列サイズを変数名を代入して配列を3個作成する処理と、3個の配列を配列サイズを変数名を代入して初期化する処理を記述させた処理結果>である。図21の<実施例2の配列コード自動記述2ソフトウェアで配列サイズを変数名を代入して配列を3個作成する処理と、3個の配列を配列サイズを変数名を代入して初期化する処理を記述させた処理結果>に示す様に、配列サイズにアルファベットのaと言う変数名の変数を指定して数値型の配列を3個作成しろと言うプログラムと数値型の配列を配列サイズをアルファベットのaと言う変数名の変数で3個の配列を初期化しろと言うプログラムの記述に成功している。
これで、配列サイズ変数指定処理の場合の配列コード自動記述2ソフトウェアの説明を終わる。
〔実施例2〕の問題解決技術を図を使った簡単な説明を終わる。
【0088】
〔実施例3〕の問題解決技術を図を使った簡単な説明を行う。
〔実施例3〕は、図32<実施例3の変数コード自動記述2ソフトウェアの操作画面図>で示す様に〔実施例1〕や、〔実施例2〕とは、別個に作成したソフトウェアである。但し、本発明のコード自動記述2ソフトウェアを記録した記録媒体の簡単なレパートリーである。色々な入力ボックスを配置した操作画面で人為的な入力処理による入力の手間を極力少なくしたソフトウェアの例である。
【0089】
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Dのマウスを使用して図符号cの変数型名指定ボタンをクリックして図符号bの変数型名選択画面を「String」に選択設定して、図33の<実施例3の変数コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた操作画面>で示す様に、図符号Cのキーボードを使用して図符号dの変数名指定テキストボックスに、連続番号の数値と連結したい任意の変数の名前を文字列で入力して、図符号Dのマウスを使用して図符号fの変数作成個数指定ボタンをクリックする事で図符号eの変数作成個数指定画面に、個数を3個と指定して、図符号aの禁止文字指定テキストボックスには、予め「"」が入力されているので、入力作業をせずにそのままの状態で、図符号Cのキーボードを使用して、図符号gの変数作成ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
この後は、コンピューターと、本発明のコード自動記述2ソフトウェアを記録した記録媒体の簡単なレパートリーの実施例3の変数コード自動記述2ソフトウェアによる自動処理である。
処理を実行し終わった結果が、図34の<実施例3の変数コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた処理結果>である。図34<実施例3の変数コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた処理結果>に示す様に、3個のString型の変数を作成しろと言うプログラムの記述に成功している。
〔実施例3〕の問題解決技術を図を使った簡単な説明を終わる。
【0090】
本発明のコード自動記述2ソフトウェアを記録した記録媒体は、分岐処理を行う場合に必要になる分岐処理の分岐数分の配列や変数と、分岐処理の分岐数分の「case 条件の答え」の条件の答えの部分に必要な連続番号の数値を作成して、分岐毎に作成した連続番号の数値を使用して「case 条件の答え」の条件の答えの部分に連続番号の数値を連結して分岐処理を行わせるプログラムを記述させる技術と、配列や、変数の名前に、作成した連続番号を連結させて分岐処理毎に違う名前の配列や、変数を使用した処理を分岐処理数分記述させる技術と、分岐処理で使用する分岐処理の分岐数分の配列の名前に、連続番号の数値を連結させた配列の名前を作成する事で、必要数分の違う名前の配列を初期化する処理を記述させる技術と、作成した連続番号の数値を配列や変数の名前の任意の位置に連結して変数や配列を作成する処理を記述させる技術である。
作成した連続番号の数値に関する補足説明を行う。
作成した連続番号の数値は、変数や配列の名前に連結するのであるが、作成する変数や配列の名前が、一つとして同じ名前が無い状態で作成されなければならないので、作成した連続番号の数値を変数や配列の名前に連結して変数や配列を作成する事で一つとして同じ名前が無い状態で変数や配列を作成する事とした技術である。一つとして同じ名前が無い状態で変数や配列を作成する理由は、1ブロック毎に、違う変数や配列を使用する必要がある為である。
作成した連続番号の数値に関する補足説明を終わる。
【0091】
本発明のコード自動記述2ソフトウェアを記録した記録媒体は、プログラムをコンピューターに記述させる技術であり、従来、存在しなかったソフトウェアである。
本発明の〔実施例1〕と、、〔実施例2〕と、〔実施例3〕では、最初から最後までの処理工程を人間が読む事が出来る文字や、人間が読む事が出来る数値や、人間が読む事が出来ない数値を使用して処理を行っているが、処理工程の一部分を2進数による処理工程に変更したり、全ての処理工程を2進数による処理工程に変更しても、簡単な処理工程の変更程度の技術的な変更なので、本発明の簡単なレパートリーであるから、本発明のコード自動記述2ソフトウェアを記録した記録媒体である事を明言する。
また、本発明の〔実施例1〕と、、〔実施例2〕と、〔実施例3〕では、全て、人間が読む事が出来る文字列として処理を行っている。基本的に処理の対象とする文字列を人間が読む事が出来ない機械語の文字コードとして扱う事で処理する事も出来る。本発明のコード自動記述2ソフトウェアを記録した記録媒体の処理を基本的に処理の対象とする文字列を人間が読む事が出来ない機械語の文字コードとして扱う事で処理する処理工程に変更したとしても、本発明の簡単なレパートリーであるから、本発明のコード自動記述2ソフトウェアを記録した記録媒体である事を明言する。
【発明の効果】
【0092】
多分岐処理のプログラムを短時間で記述できる様になり、人件費の削減効果が大きく期待できる。また、コンパイラに添付した場合は、利便性の高い評価を得られるのでコンパイラの販売に貢献できると考えられる。
また、データーベースを作成する際にもデーターを分類して保存する事で検索処理スピードを大幅に早くする事が出来るので、本発明のコード自動記述2ソフトウェアを使用するメリットが大きいと考えられる。
また、人工知能の多分岐処理を記述する際にも有効に使用できるソフトウェアであると考えている。
また、ファイルの保存時に、分岐処理毎に違うファイル名のファイルに保存する等の処理にも使える技術である。つまり、ファイル名の末尾やファイル名の中間の位置に連続番号を挿入する事で、分岐処理毎に違うファイル名を作成して、ファイル保存すると言う処理に使える技術である。
また、複数個の配列や複数個の変数の数値の組合せに対して、数値が一定の数値である場合に処理を行うとする処理を自動的に記述させて、組合せ数分の分岐数の多分岐処理を自動的に記述させると言う技術に、本発明のブロック指定名や回答指定名の文字列を探し出して数値に置換すると言う技術を拡張する事で、利用できるであろうと考えている。拡張するとは、本発明のブロック指定名や回答指定名の文字列に類似した文字列を指定して、類似した文字列を探し出して、探し出した類似した文字列を、プログラム言語で書かれた一定の処理を行うプログラムに置換して、自動的に分岐数分の多分岐処理を記述させると言う技術的な拡張である。例えば、複数個の配列や複数個の変数の数値の組合せに対して、数値が一定の数値である場合に処理を行うとする処理を自動的に記述させて、組合せ数分の分岐数の多分岐処理を自動的に記述させると言う技術は、C#(登録商標)と呼ばれるプログラム言語で使用されているファイルやフォルダーの属性の設定等を行う事が出来るソフトウェアに、使用する事が出来る技術だと考えているのである。
複数個の配列や複数個の変数の数値の組合せに対して、数値が一定の数値である場合に処理を行うとする処理を自動的に記述させて、組合せ数分の分岐数の多分岐処理を自動的に記述させると言う技術の「数値が一定の数値である場合に処理を行うとする処理」とは、行数に相当する数値が1の時に処理を行うとするとして、行数に相当する数値が0の時には、処理を行わないとするとか、行数に相当する数値が2の時には、行数に相当する数値が1の時に行う処理とは違う処理を行うとするといった具合に変化させると言う意味である。
【0093】
人工知能を使用して、プログラムを作成すると言う処理が、本発明のコード自動記述2ソフトウェアを記録した記録媒体によって、容易に行える様になると考えられる。人工知能に、本発明のコード自動記述2ソフトウェアを記録した記録媒体が最初に必要としている人為的な入力処理を代行させる事で人工知能にプログラムを記述させて、更に、人工知能に、記述させたプログラムをコピーしてコンパイラに添付されたエディターの入力テキストボックスに貼り付けて、機械語に変換させると言う、一連の処理を人工知能に処理させる事が出来る様になると考えられる。
【図面の簡単な説明】
【0094】
図1】コード自動記述2ソフトウェアのフローチャート図
図2】コード自動記述2ソフトウェアで使用した機材の説明図
図3】コード自動記述2ソフトウェアのIF文やその他の操作画面図
図4】コード自動記述2ソフトウェアのSwitch文の操作画面図
図5】コード自動記述2ソフトウェアの組合せ分岐の操作画面図
図6】コード自動記述2ソフトウェアで配列を3個作成する処理を記述させた場合の操作画面図
図7】コード自動記述2ソフトウェアで3個の配列を初期化する処理を記述させた操作画面図
図8】コード自動記述2ソフトウェアでIF文による分岐を3個記述させた操作画面図
図9】コード自動記述2ソフトウェアでSwitch文による分岐を3個記述させた操作画面図
図10】コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた操作画面図
図11】コード自動記述2ソフトウェアで2行2列で分岐する処理を記述させる処理を行わせる為の人為的な手動による操作または入力処理後の操作画面図
図12】コード自動記述2ソフトウェアで2行2列で分岐する処理を記述させた操作画面図
図13】コード自動記述2ソフトウェアで2行3列で分岐する処理を記述させる処理を行わせる為の人為的な手動による操作または入力処理後の操作画面図
図14】コード自動記述2ソフトウェアで2行3列で分岐する処理を記述させた操作画面図
図15】コード自動記述2ソフトウェアで配列を3個作成する処理を記述させた処理結果
図16】コード自動記述2ソフトウェアで3個の配列の初期化をする処理を記述させた処理結果
図17】コード自動記述2ソフトウェアでIF文による分岐処理を3個記述させた処理結果
図18】コード自動記述2ソフトウェアでSwitch文による分岐処理を3ブロック記述させた処理結果
図19】コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた処理結果
図20】コンパイラの機能を使用して配列を128個作成する処理を記述させて変数に代入する場合のプログラム
図21】コンパイラの機能を使用して配列を128個作成する処理を記述させて配列に代入する場合のプログラム
図22】コンパイラの機能を使用してSwitch文を128個記述させて変数に代入する場合のプログラム
図23】コード自動記述2ソフトウェアで2行2列で分岐する処理を記述させた処理結果
図24】コード自動記述2ソフトウェアで2行3列で分岐する処理を記述させた処理結果
図25】3行2列の組合せ説明図
図26】2行4列の組合せ説明図
図27】実施例2の配列コード自動記述2ソフトウェアの操作画面図
図28】実施例2の配列コード自動記述2ソフトウェアで配列を配列サイズ10で3個作成する処理と、配列を配列サイズ10で3個の配列を初期化する処理を記述させた操作画面図
図29】実施例2の配列コード自動記述2ソフトウェアで配列を配列サイズ10で3個作成する処理と、、配列を配列サイズ10で3個の配列を初期化する処理を記述させた処理結果
図30】実施例2の配列コード自動記述2ソフトウェアで配列サイズに変数名aを記述して配列を3個作成する処理と、配列サイズを変数名aを記述して初期化する処理を記述させた操作画面図
図31】実施例2の配列コード自動記述2ソフトウェアで配列サイズに変数名aを記述して配列を3個作成する処理と、配列サイズを変数名aを記述して初期化する処理を記述させた処理結果
図32】実施例3の変数コード自動記述2ソフトウェアの操作画面図
図33】実施例3の変数コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた操作画面
図34】実施例3の変数コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた処理結果
【発明を実施するための形態】
【0095】
コード自動記述2ソフトウェアを記録した記録媒体は、図2の<コード自動記述2ソフトウェアで使用した機材の説明図>に示した様なハードウェア資源で動作するプログラムである。図2の<コード自動記述2ソフトウェアで使用した機材の説明図>に示した様なハードウェア資源は、図符号Bのコンピューター本体と図符号Aのモニターと図符号Cのキーボードと図符号Dのマウスの合計4個のパーツで構成された機材であるが、これらの合計4個のパーツで構成された機材を一般的にコンピューターと呼んでいる。図符号Bのコンピューター本体は、パーソナルコンピューターと一般的に呼ばれているコンピューターである。図符号Bのコンピューター本体には、ハードディスクドライブなどの記録媒体やCPUや本体メモリーなどと呼ばれる装置が内蔵されており、本発明のコード自動記述2ソフトウェアを記録した記録媒体は、図符号Bのコンピューター本体内部に在るハードディスクドライブなどの記録媒体にインストールされているものとする。図符号Bのコンピューター本体に接続された外部に在るハードディスクドライブなどの記録媒体に本発明のコード自動記述2ソフトウェアを記録した記録媒体がインストールされていて、図符号Bのコンピューター本体から本発明のコード自動記述2ソフトウェアを記録した記録媒体を起動する事が出来る場合は、図符号Bのコンピューター本体に接続された外部に在るハードディスクドライブなどの記録媒体に本発明のコード自動記述2ソフトウェアを記録した記録媒体がインストールされているものとする。
【0096】
本発明のコード自動記述2ソフトウェアを記録した記録媒体がインストールされている図符号Bのコンピューター本体内部に在るハードディスクドライブなどの記録媒体または、図符号Bのコンピューター本体に接続された外部に在るハードディスクドライブなどの記録媒体にインストールされている本発明のコード自動記述2ソフトウェアを記録した記録媒体を起動すると本発明のコード自動記述2ソフトウェアを記録した記録媒体は、図符号Bのコンピューター本体に内蔵された本体メモリーに適時に必要量読み込まれる。図符号Bのコンピューター本体に内蔵された本体メモリーに適時に必要量読み込まれた本発明のコード自動記述2ソフトウェアを記録した記録媒体に書かれたCPUが処理を予定している命令文が必要な時に必要量CPUに読み込まれ、そのCPUに読み込まれた命令文がCPUによって実行される事によってコンピューターによって本発明のコード自動記述2ソフトウェアを記録した記録媒体が動作する。
従って、本発明のコード自動記述2ソフトウェアを記録した記録媒体が、ハードウェア資源を使用してどのような工程で処理されるのかを簡単な表現で説明すると、本発明のコード自動記述2ソフトウェアを記録した記録媒体に書かれた命令文は、コンピューター本体のCPUによって処理されると表現して説明する事ができるものである。
【0097】
図2の<コード自動記述2ソフトウェアで使用した機材の説明図>に示した様なハードウェア資源で動作するソフトウェアが、コード自動記述2ソフトウェアを記録した記録媒体である事を段落〔0095〕と段落〔0096〕にて説明したが、コンピューターの形状は、図2の<コード自動記述2ソフトウェアで使用した機材の説明図>に示した様なハードウェア資源に限定できるものではなく、図符号Aのモニター、図符号Bのコンピューター本体、図符号Cのキーボード、図符号Dのマウスが一体化したものや、図符号Dのマウスが存在しない構成のものや、図符号Aのモニター、図符号Bのコンピューター本体の二つを一体化した構成のもの等いろいろある。今後、もっと多くのいろいろな形状のコンピューターが開発されていくであろうと考えられる。図2の<コード自動記述2ソフトウェアで使用した機材の説明図>に示した様なハードウェア資源でなくても、類似と言い得る、いわゆるコンピューターを使用して本発明のコード自動記述2ソフトウェアを記録した記録媒体を動作させている場合も本発明のコード自動記述2ソフトウェアを記録した記録媒体である事を明言する。
【実施例1】
【0098】
この段落〔0098〕から段落〔0102〕までは、〔実施例1〕と、〔実施例2〕と、〔実施例3〕の3種類の実施例で共通である。
図2から、図34は、実際とは、多少異なる事を明記する。
また、テキストボックスやリストボックスなどの画面に表示する処理工程は、常識的処理なので処理工程を説明していない。また、数値型の配列や変数に代入された数値をString型の変数や配列に代入する場合、数値を型変換処理しなければならない。しかし、常識的な処理なので型変換処理は、記述していない。また、変数や配列に既にデーターが代入されている状態の変数や配列にデーターを代入する場合は、何も断り書きをしていない場合は、全て、上書きで代入すると言う処理を行っている。変数や配列に既にデーターが代入されている状態の変数や配列にデーターを代入する場合は、初期化と言う処理をしない限り、上書きになるのが常識であるから上書きか否かを記述していない。また、配列や変数に代入できるデーター量をbyteやbitで記述しているが、大きなbyte数や小さなbyte数または、大きなbit数や小さなbit数に変更しても本発明の単純なレパートリーである事を明言する。
【0099】
本発明の明細書には、変数を作成すると記述しているが変数が作成される場所は、図符号Bのコンピューター本体の内部にある本体メモリーに作成される。但し、OSと呼ばれるソフトウェアによって仮想メモリー領域に作成される場合もある。仮想メモリー領域とは、図符号Bのコンピューター本体の内部に在るハードディスクドライブなどの記録媒体の一部分を仮想的に本体メモリーとして使用する場合に使用する図符号Bのコンピューター本体の内部に在るハードディスクドライブなどの記録媒体の一部分の事を言う。この図符号Bのコンピューター本体の内部にある本体メモリーまたは、図符号Bのコンピューター本体の内部にあるハードディスクドライブなどの記録媒体の一部分を仮想的に本体メモリーとして使用する場合に使用する図符号Bのコンピューター本体の内部に在るハードディスクドライブなどの記録媒体の一部分の事をコンピューター内部のメモリー装置と呼ぶ事とする。従って、変数を作成すると記述している場合の変数が作成される場所を端的な表現をして説明するならば、コンピューター内部のメモリー装置内に作成されると言う表現になる。
【0100】
本発明の明細書では、全て変数や一次元配列を使用してプログラムを作成しているが、多次元配列を使用したり、ジャグ配列やその他の種類の配列を使用したり、ファイルを使用したりする事でも同じ処理が出来ると考えられる。また、変数と、一次元配列と、多次元配列と、ジャグ配列と、その他の種類の配列と、ファイルの組み合わせによっても、同じ処理が出来ると考えられる。これらはプログラムの書き方の違いであって、全て本発明の符号符号分類検索ソフトウェアを記録した記録媒体の単純なレパートリーでしかないと言う事を明言する。
また、本発明のコード自動記述2ソフトウェアを記録した記録媒体は、繰り返し処理の工程の中で繰り返し処理を行う処理を記述している。繰り返し処理の工程の中で繰り返し処理を行う処理を二重ループ処理と呼び、二重ループの中で繰り返し処理を行うのを三重ループと呼び、三重ループの中で繰り返し処理を行う処理を四重ループと呼び、単純に繰り返し処理を行う場合をシングルループと呼ぶ。
繰り返し処理の工程の中で繰り返し処理を行うと処理速度が低下すると言われており、繰り返し処理の中で繰り返し処理をしないで処理をする事が常識的な処理工程である。繰り返し処理の中で繰り返し処理をしないで処理をする技術は、既に知られている常識的処理工程である。
二重ループや、三重ループや、四重ループにしない様に、処理を分割する事で繰り返し処理の中で繰り返し処理をできるだけしないで処理をする処理工程に書き換える事が出来る。
【0101】
三重ループや、四重ループにしない様に、処理を分割する事で繰り返し処理の中で繰り返し処理をできるだけしないで処理をする処理工程に書き換える技術は、簡単なレパートリーであるから、本発明のコード自動記述2ソフトウェアを記録した記録媒体である事を明言する。処理を分割する事で繰り返し処理の中で繰り返し処理をできるだけしないで処理をする処理工程とは、三重ループになってしまう場合を例にして説明すると、二重ループの段階で処理の結果を記録して処理を終了して、再度、記録したデーターを使用して、記録したデーターをループしながら、最後の別のデーターをループして処理を行う事で、三重ループになってしまう処理を、二重ループを二回行わせると言う処理である。処理を分割する事で繰り返し処理の中で繰り返し処理をできるだけしないで処理をする処理工程も、簡単なレパートリーである事を明言する。
また、出来るだけ配列を使用しないで、String型の変数に全てのデーターを代入して処理する事でも繰り返し処理の中で繰り返し処理をしないで済む処理工程に書き換える事が出来る。出来るだけ配列を使用しないで、String型の変数に全てのデーターを代入すると、処理を高速化する事が出来るのである。出来るだけ配列を使用しないで、String型の変数に全てのデーターを代入して処理する技術だと、二重ループは、シングルループになるし、三重ループは二重ループになり、四重ループは、三重ループになる。出来るだけ配列を使用しないで、String型の変数に全てのデーターを代入して処理する技術も、簡単なレパートリーであると明言する。
また、本発明では、繰返し処理に、インデックスを使用する繰り返し処理を使用している。再帰処理と呼ばれる処理や、goto文と呼ばれる処理や、インデックスを使用しない繰り返し処理を使用しても、本発明の処理と同じ処理が出来ると考えられる。しかし、再帰処理と呼ばれる処理や、goto文と呼ばれる処理や、インデックスを使用しない繰り返し処理で同じ処理を行うと言う処理は、簡単なレパートリーであるから、全て本発明の符号符号分類検索ソフトウェアを記録した記録媒体である事を明言する。
【0102】
人間が読む事が出来ない数値のデーターを配列に代入するには、普通は、全てのデーターを1byteずつ代入できるサイズで、人間が読む事が出来ない数値のデーターを代入できる配列を作成して、作成した配列に1byteずつ代入する。しかし、String型の人間が読む事が出来る文字列を代入できる変数に、人間が読む事が出来ない数値のデーターを代入する技術がある。このString型の人間が読む事が出来る文字列を代入できる変数に、人間が読む事が出来ない数値のデーターを代入する技術をCSV処理と呼ぶ事とする。
CSV処理は、人間が読む事が出来ない数値を1byteずつ、String型の人間が読む事が出来る数値に変換して、変換した数値と数値の間に、任意の文字を区切りマークとして挿入する事でString型の変数に全てのデーターを代入すると言う技術である。
CSV処理を使用する事で、人間が読む事が出来ない数値を扱う場合でも、全てのデーターを変数に代入できるので、人間が読む事が出来ない数値でも、出来るだけ配列を使用しないで処理を行う事が出来る。
出来るだけ配列を使用しないで、String型の変数に全てのデーターを代入する事で繰り返し処理の中で繰り返し処理をしないで済む処理工程にする事で、処理を高速化すると言う技術は、既に知られている技術の利用であり、簡単なレパートリーであると言い得る技術である。従って、出来るだけ配列を使用せずに、String型の変数に全てのデーターを代入する事で、繰り返し処理の中で繰り返し処理をしないで済む処理工程に変更したとしても、本発明のコード自動記述2ソフトウェアを記録した記録媒体である事を明言する。
【0103】
〔実施例1〕の詳しい処理工程の説明を行う。
図1の<コード自動記述2ソフトウェアのフローチャート図>を参照の事。図符号Rの人為的な手動による操作または入力処理工程と図符号Sのコード自動記述2ソフトウェアとコンピューターによる自動処理工程には、ステップ番号を右肩位置に付してある。その右肩位置に付したステップ番号順に説明する事とする。まず、本発明のコード自動記述2ソフトウェアを記録した記録媒体を起動すると、図3の<コード自動記述2ソフトウェアのIF文やその他の操作画面図>の様な操作画面が図符号Aのモニターに表示される。
【0104】
図符号Fのコード文の選択ボタンを図符号Dのマウスなどでクリックすると図符号Eのコード文の選択画面に「IF文やその他」と、「Switch文」と、「組合せ分岐」のいずれかを選択できる様になっている。
また、図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているが、人為的な入力処理によって、任意の文字を指定する事が出来る。任意の文字にを指定する場合は、図符号Gのブロック指定名テキストボックスに、図符号Cのキーボードを使用して任意の文字を入力する事で任意の文字を指定する事が出来る。
【0105】
ステップ100の「図符号Cのキーボードを使用して図符号Jのコード記述テキストボックスに自動的に記述させたいプログラムを入力して図符号Kの実行ボタンを図符号Dのマウスでクリックする」処理工程を行う。ステップ100の処理は、人為的な手動による操作または入力処理工程である。
図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「IF文やその他」または、「Switch文」または、「組合せ分岐」のいずれかに選択設定する。図符号Eのコード文の選択画面を「IF文やその他」に選択設定すると、図3の<コード自動記述2ソフトウェアのIF文やその他の操作画面図>の様な操作画面が図符号Aのモニターに表示される。図符号Eのコード文の選択画面を「Switch文」に選択設定すると、図4の<コード自動記述2ソフトウェアのSwitch文の操作画面図>の様な操作画面が図符号Aのモニターに表示される。図符号Eのコード文の選択画面を「組合せ分岐」に選択設定すると、図5の<コード自動記述2ソフトウェアの組合せ分岐の操作画面図>の様な操作画面が図符号Aのモニターに表示される。
【0106】
図符号Eのコード文の選択画面を「IF文やその他」と、「Switch文」に選択設定した場合と、図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合とでは、操作画面が違う為、ステップ100で行う人為的な手動による操作または入力処理が違ってくる。図符号Eのコード文の選択画面を「IF文やその他」と、「Switch文」に選択設定した場合と、図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合の二つに分けて説明する。
図符号Eのコード文の選択画面を「IF文やその他」と、「Switch文」に選択設定した場合のステップ100で行う人為的な手動による操作または入力処理は、以下の様な処理を行う。
図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているが、図符号Gのブロック指定名テキストボックスの文字を変更したい場合は、任意の文字に指定変更する事が出来る様になっている。図符号Gのブロック指定名テキストボックスの文字列を変更したい場合は、図符号Cのキーボードを使用して、図符号Gのブロック指定名テキストボックスに任意の文字列を入力する。図符号Hのブロック数指定画面を図符号Dのマウスを使用して図符号Iのブロック数指定ボタンをクリックして任意の数値に設定する。図符号Hのブロック数指定画面に入力された数値をブロック数と呼ぶ。
【0107】
図符号Eのコード文の選択画面を「IF文やその他」に設定した場合は、図符号Cのキーボードを使用して、図符号Gのブロック指定名テキストボックスに、図符号Gのブロック指定名テキストボックスに入力されたブロック指定名を、プログラムで使用する変数や配列の名前の前後のどちらかの位置または、変数や配列の名前の中間の位置に相当する任意の位置に使用して「配列の初期化を行う処理の変数や配列の1個分のプログラム」や、「配列や変数を作成する処理の変数や配列の1個分のプログラム」や、「IF文による分岐処理の1ブロック分のプログラム」などの自動的に記述させたい処理を行うプログラムを、図符号Jのコード記述テキストボックスに入力する。
図符号Eのコード文の選択画面を「Switch文」に選択設定した場合は、「Switch文による分岐処理の1ブロック分のプログラム」を記述する。「Switch文による分岐処理の1ブロック分のプログラム」を記述するには、「case条件の答え」の条件の答えの部分にブロック指定名を必ず記述して、「Switch文による分岐処理の1ブロック分のプログラム」の自動的に記述させたい処理を行うプログラムを図符号Jのコード記述テキストボックスに入力する。
図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
図符号Eのコード文の選択画面を「IF文やその他」と、「Switch文」に選択設定した場合のステップ100で行う人為的な手動による操作または入力処理の説明を終わる。
【0108】
図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合のステップ100で行う人為的な手動による操作または入力処理は、以下の様な処理を行う。
図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているが、図符号Gのブロック指定名テキストボックスの文字を変更したい場合は、任意の文字に指定変更する事が出来る様になっている。図符号Gのブロック指定名テキストボックスの文字を変更したい場合は、図符号Cのキーボードを使用して、図符号Gのブロック指定名テキストボックスに任意の文字を入力する。図符号Nの行数指定ボタンを図符号Dのマウスでクリックして図符号Mの行数指定画面の行数を任意の数値に設定する。但し、図符号Mの行数指定画面の行数は、最低値が2である。図符号Pの列数指定ボタンを図符号Dのマウスでクリックして図符号Oの列数指定画面の列数を任意の数値に設定する。
以下に、図符号Oの列数指定画面の列数の説明をする。
図符号Oの列数指定画面の列数は、最低値が2である。しかし、図符号Oの列数指定画面の列数は、最低値を1に変更しても本発明のレパートリーである事を明言する。
図符号Oの列数指定画面の列数の説明を終わる。
図符号Qの回答指定名テキストボックスには、予め「d」が入力されているが、変更したい場合は、変更できるようになっている。図符号Qの回答指定名テキストボックスに入力されている文字列を、回答指定名と呼ぶ事とする。図符号Qの回答指定名テキストボックスに入力されている文字列を変更したい場合は、図符号Cのキーボードを使用して、任意の文字列に変更する。
図符号Qの回答指定名テキストボックスと、図符号Gのブロック指定名テキストボックスに入力する文字列の説明を行う。
図符号Qの回答指定名テキストボックスと、図符号Gのブロック指定名テキストボックスに入力する文字列は、両方が同じ文字列であってはならない。図符号Qの回答指定名テキストボックスと、図符号Gのブロック指定名テキストボックスに入力する文字列は、別個の文字列を任意に決定して入力する。図符号Qの回答指定名テキストボックスと、図符号Gのブロック指定名テキストボックスに入力する文字は、実施例では、1文字を使用しているが、複数個の文字を入力できるので、文字列と記述している。
図符号Qの回答指定名テキストボックスと、図符号Gのブロック指定名テキストボックスに入力する文字列の説明を終わる。
「組合せ分岐の場合のIF文による1ブロック分の処理のプログラム」を記述する。「組合せ分岐の場合のIF文による1ブロック分の処理のプログラム」を記述するには、図符号Oの列数指定画面の列数と同じ数の複数個の変数や配列を記述して、記述した変数や配列の数と同じ数の変数や、配列に代入された数値を示す為の数値を記述する部分に、図符号Qの回答指定名テキストボックスで指定された回答指定名を記述して、変数や、配列と、回答指定名の中間の位置に、「==」などの記号を記述して、「条件が真である場合の処理するプログラムを記述する」部分に処理をするプログラムを記述し、IF文の必要な部分に必要に応じてブロック指定名を記述して、「}」までのIF文による1ブロック分の処理のプログラムを図符号Jのコード記述テキストボックスに入力する。
図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合のステップ100で行う人為的な手動による操作または入力処理の説明を終わる。
【0109】
自動的に記述させたい処理を行うプログラムの説明を行う。
自動的に記述させたい処理を行うプログラムとは、変数や配列を作成するプログラムを記述させたい場合は、変数や配列を作成するプログラムの変数や配列の1個分の記述であり、配列の初期化をするプログラムを記述させたい場合は、配列を初期化するプログラムの配列の1個分の記述であり、IF文やSwitch文による分岐処理を行うプログラムを記述させたい場合は、IF文やSwitch文による分岐処理を行うプログラムの例としての1ブロック分の処理のプログラムを記述したプログラムであり、1ブロック毎に変えたい変数の名前や配列の名前には、必ず、ブロック指定名を使用して記述する事が必要であり、Switch文による分岐処理を行うプログラムの場合は、必ず、「case 条件の答え」の条件の答えの部分に必ず、ブロック指定名を使用して記述する事が必要であり、組合せ分岐のIF文の1ブロック分の処理のプログラムの場合は、複数個の変数や複数個の配列の組合せによる分岐処理を記述したIF文の1ブロック分の処理のプログラムであり、IF文の条件式の部分に必ず、複数個の変数や配列と、変数や配列と同じ数の回答指定名が必要となるプログラムである。
変数や配列を作成するプログラムを記述させたい場合と、配列の初期化をするプログラムを記述させたい場合と、IF文による多分岐処理を行うプログラムを記述させたい場合と、Switch文による分岐処理を行うプログラムを記述させたい場合と、複数個の変数や複数個の配列の組合せ分岐のIF文による多分岐処理のプログラムを記述させたい場合がある。
変数や配列を作成するプログラムを記述させたい場合と、配列の初期化をするプログラムを記述させたい場合は、IF文による多分岐処理を行うプログラムを記述させたい場合の処理技術をそのまま使用する技術である。
Switch文による分岐処理を行うプログラムを記述させたい場合は、特有のSwitch文の文法があるので違う処理となるが、連続番号を作成して、作成した連続番号をブロック指定名と置換すると言う処理の部分は、IF文による多分岐処理を行うプログラムを記述させたい場合の処理技術と同じである。従って、Switch文による分岐処理を行うプログラムを記述させたい場合は、IF文による多分岐処理を行うプログラムを記述させたい場合の処理技術をそのまま使用する技術であり、簡単なレパートリーである。
複数個の変数や複数個の配列の組合せ分岐のIF文による多分岐処理のプログラムを記述させたい場合は、全く違う処理工程となる。
組合せ分岐のIF文の1ブロック分の処理のプログラムの場合を言い換えると、複数個の変数や複数個の配列の組合せを回答指定名を使用して分岐処理の分岐条件として記述し、ブロック指定名を指定したい場合は、ブロック指定名を使用したい部分にブロック指定名を記述したプログラムを、例として1ブロック分だけ記述したプログラムである。この1ブロック分のプログラムを図符号Jのコード記述テキストボックスに人為的な入力処理で入力するのである。
また、ブロック指定名は、連続番号の数値に置換する必要のない部分には、絶対に使用してはならない文字列であると言う事を記述条件とする。
また、回答指定名も、作成した数値の組合せの数値に置換する必要のない部分には、絶対に使用してはならない文字列である事を条件とする。
また、「case 条件の答え」の条件の答えの部分に必ず、ブロック指定名を使用して記述する事が必要であると記述しているが、「case」の後には、必ず、連続番号の数値を入れる事になるので、コンピューターとソフトウェアによる自動処理で連続番号の数値を記述させる事も可能である。従って、自動で「case」の後に、連続番号の数値を記述させる場合は、人為的な入力処理でブロック指定名を使って指定する必要はない。この様なコンピューターとソフトウェアによる自動処理で「case」の後に、連続番号の数値を記述させる技術を使用しても、本発明の簡単なレパートリーである事を明記する。
自動的に記述させたい処理を行うプログラムの説明を終わる。
【0110】
図符号Eのコード文の選択画面の選択についての説明を行う。
図符号Eのコード文の選択画面を「IF文やその他」に選択設定した場合は、自動的に記述させたいプログラムは、「配列の初期化を行う処理の変数や配列の1個分のプログラム」と「変数や配列を作成する処理の変数や配列の1個分のプログラム」と「IF文による分岐処理の1ブロック分のプログラム」の3種類が記述可能なプログラムである。
図符号Eのコード文の選択画面を「Switch文」に選択設定した場合は、自動的に記述させたいプログラムは、「Switch文による分岐処理の1ブロック分のプログラム」だけが記述可能なプログラムである。
図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合は、自動的に記述させたいプログラムは、「組合せ分岐の場合のIF文による1ブロック分の処理のプログラム」だけが記述可能なプログラムである。
図符号Eのコード文の選択画面の選択についての説明を終わる。
【0111】
次に、ステップ101の「図符号Jのコードをファイルに保存して、保存したファイルから一行ずつ配列に読み込む」処理工程の処理を行う。ステップ101は、コード自動記述2ソフトウェアとコンピューターによる自動処理工程である。
図符号Jのコード記述テキストボックスに入力された自動的に記述させたいプログラムを1byteずつ全て代入できるbyte数でString型の変数を作成する。この変数をコントロール変数と呼ぶ。コントロール変数に図符号Jのコード記述テキストボックスに入力された自動的に記述させたいプログラムの1ブロック分の処理を記述したプログラムを1byteずつ全て代入する。コントロール変数に代入力された文字列を全て1byteずつテキスト形式でファイルに記録して保存する。保存したファイルをコントロール1ファイルと呼ぶ。
【0112】
コントロール1ファイルに記述されている内容の説明を行う。
コントロール1ファイルには、「組合せ分岐」の場合は、複数個の変数や複数個の配列の組合せを回答指定名を使用して分岐処理の分岐条件として記述し、ブロック指定名を指定したい場合は、ブロック指定名を使用したい部分にブロック指定名を記述したプログラムを、例として1ブロック分だけ記述したプログラムを記述したテキスト形式の文字列が記述されている。
また、コントロール1ファイルには、「Switch文」や、「IF文やその他」による分岐処理の場合は、数値を記述する位置にブロック指定名を記述していたり、変数や配列の名前の任意の位置にブロック指定名を使用していたりする分岐処理の1ブロック分のプログラムを例として記述されている。
また、配列や変数を作成したり、初期化する場合は、配列や変数の一個分の作成をしたり、配列や変数の一個分を初期化するプログラムをブロック指定名を変数や配列の名前の任意の位置に記述したプログラムが記述されている。
コントロール1ファイルに記述されている内容の説明を終わる。
【0113】
コントロール1ファイルに記述されている文字列を1行分ずつ全て代入できる配列サイズでString型の200byteの配列を作成する。作成した配列をコントロールライン配列と呼ぶ。コントロール1ファイルをテキスト形式で開いて、1行分ずつの200byteずつ、全てのデーターをコントロールライン配列の末尾に代入する。
16bitの変数を作成する。作成した変数を回数変数と呼ぶ。回数変数に、図符号Hのブロック数指定画面に入力されている任意の分岐の数に相当するブロック数の数値を代入する。String型の100byteの変数を作成する。作成した変数をブロック指定名変数と呼ぶ。ブロック指定名変数に図符号Gのブロック指定名テキストボックスに入力されている任意の文字列を代入する。100byteのString型の変数を作成する。作成した変数を設定変数と呼ぶ。設定変数には、図符号Eのコード文の選択画面で設定された文字列を図符号Eのコード文の選択画面から取得して代入する。図符号Eのコード文の選択画面で設定された文字列とは、「IF文やその他」と、「Switch文」と、「組合せ分岐」と言う設定された設定の文字列の事である。
以下に分岐処理を行う。この選択設定1分岐処理と呼ぶ。
選択設定1分岐で、図符号Eのコード文の選択画面を「IF文やその他」と、「Switch文」に選択設定した場合は、ステップ102に進む。
選択設定1分岐で、図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合は、ステップ104に進み、その次に、ステップ105に進む。
選択設定1分岐処理を終わる。
【0114】
次に、ステップ102の「図符号Gの文字列を探してカウント変数に置換して図符号Eの設定によって分岐する」処理工程の処理を行う。ステップ102は、コード自動記述2ソフトウェアとコンピューターによる自動処理工程である。
コントロールライン配列の配列サイズと同じ配列サイズでString型の200byteの配列を作成する。作成した配列を仮データ1配列と呼ぶ。コントロールライン配列の配列サイズを、回数変数に代入されている数値で乗算して算出された数値を配列サイズとして、String型の200byteの配列を作成する。作成した配列を記述文配列と呼ぶ。200byteのString型の変数を作成する。作成した変数を仮ダット1変数と呼ぶ。String型の100byteの変数を作成する。作成した変数を仮ダット2変数と呼ぶ。16bitの変数を作成する。作成した変数をインデックス1変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を作成する。作成した変数をカウント変数と呼ぶ。カウント変数に0を代入する。
【0115】
以下に、繰り返し処理を行う。この繰り返し処理をプログラム記述繰り返し処理と呼ぶ。
プログラム記述繰り返し処理では、以下の処理を一回行う毎にカウント変数に1を加算すると言う処理を行って、カウント変数に代入された数値が回数変数に代入された数値になるまで処理を繰り返し行う。
以下に、繰り返し処理を行う。この繰り返し処理をサーチ繰り返し処理と呼ぶ。
サーチ繰り返し処理では、コントロールライン配列の最初の位置から最後の位置までに代入されている文字列に対して以下の処理を行う。コントロールライン配列のインデックスは、最初は、0である。コントロールライン配列のインデックスを使用してコントロールライン配列のデーターを取得して仮ダット1変数に代入する。
【0116】
以下に、分岐処理を行う。この分岐処理を発見分岐処理と呼ぶ。
発見分岐処理では、文字列操作関数を使用して、仮ダット1変数に代入された文字列の中にブロック指定名変数に代入された文字列が有るかどうかを検査して、仮ダット1変数に代入された文字列の中にブロック指定名変数に代入された文字列が有る場合と無い場合とに分岐する。
発見分岐処理で、文字列操作関数を使用して、仮ダット1変数に代入された文字列の中にブロック指定名変数に代入された文字列が有る場合は、以下の処理を行う。
カウント変数に代入された数値を仮ダット2変数に上書きで代入する。
文字列操作関数のリプレース関数を使用して、仮ダット1変数に代入されている文字列の中に、複数個のブロック指定名が有る場合は、複数個のブロック指定名を全て仮ダット2変数に代入されている数値に置換して、置換した文字列を仮ダット1変数に上書きで代入する。
発見分岐処理で、文字列操作関数を使用して、仮ダット1変数に代入された文字列の中にブロック指定名変数に代入された文字列が無い場合は、以下の処理を行う。
何も行わない。
発見分岐処理を終わる。
仮データー1配列のインデックスに、コントロールライン配列のインデックスを使用して、仮データー1配列に、仮ダット1変数に代入された文字列を代入する。
コントロールライン配列のインデックスに1を加算してサーチ繰り返し処理の最初に戻って処理を繰り返し行う。コントロールライン配列の全てのデーターに処理を行い終わったら、サーチ繰り返し処理を終わる。
【0117】
以下に、繰り返し処理を行う。この繰り返し処理を回数記述繰り返し処理と呼ぶ。
回数記述繰り返し処理では、以下の処理を行う。
仮ダット1配列のインデックスは、最初は、0である。仮ダット1配列のインデックスを使用して、仮データー1配列の文字列を取得して、インデックス1変数に代入されている数値を記述文配列のインデックスとして使用して、取得した仮データー1配列の文字列を記述文配列に代入する。インデックス1変数に、1を加算する。
仮ダット1配列の最後の位置の文字列の処理が終わるまで、回数記述繰り返し処理を繰り返し処理を行い、仮ダット1配列の最後の位置の文字列の処理が終わったら、回数記述繰り返し処理を終わる。
カウント変数に1を加算する。
プログラム記述繰り返し処理の最初の処理に戻って、処理を繰り返して、カウント変数に代入された数値が、回数変数に代入された数値になるまで処理を繰り返して、カウント変数の数値が回数変数に代入された数値になったら、プログラム記述繰り返し処理を終わる。
コントロールライン配列の配列サイズを、記述文配列の配列サイズを取得して、記述文配列と同じ配列サイズに変更して、記述文配列の最初から最後までの位置に代入されている200byteずつの文字列を全て、コントロールライン配列の最初から最後の位置に、コピーする。
【0118】
文字列操作関数についての説明を行う。
文字列操作関数とは、文字列を操作する為のコンパイラ付属の関数である。文字列操作関数には、多種多様な処理を行う関数がある。以下に簡単に説明する。
本発明に使用したコンパイラ以外のコンパイラには、文字列操作関数と同等の処理を行う文字列操作関数が付属していない場合がある。従って、文字列操作関数のリプレース関数を使用しない処理に書き換えたり、スピリット関数を使わない処理に書き換えても、インサート関数を使用しない処理に書き換えても、リムーブ関数を使用しない処理に書き換えても、インデックスオフ関数を使用しない処理に書き換えても、コンパイラの仕様の為の違いであって、書き方の違い程度の変更であるから、本発明の簡単なレパートリーであると明言する。
リプレース関数とは、任意の文字列の中の任意の文字列を探し出して、指定した任意の文字列に置換すると言う処理を行う関数である。任意の文字列の中に、任意の文字列が複数個あっても、指定した任意の文字列に複数個、全て置換すると言う特殊な処理をする関数である。このリプレース関数は、コンパイラ付属の関数である。
また、文字列操作関数には、検索したい文字列の中から任意の指定の文字列が有った場合に、任意の指定の文字列の先頭の位置を調べると言う処理を行うインデックスオフ関数と言う関数がある。インデックスオフ関数を使用して任意の指定の文字列の先頭位置を探させて、もしも、検索したい文字列の中に、任意の指定の文字列が無かった場合は、インデックスオフ関数は、-1と言う数値を答えとして返す様に作られている。
また、文字列の任意の位置に任意の文字列を挿入すると言う処理を行うインサート関数と言う関数がある。
また、文字列の任意の位置から何文字を削除すると言うリムーブ関数と言う関数がある。
スピリット関数と言う関数が有る。スピリット関数とは、指定した文字列で文字を分割処理すると言う関数である。
また、文字列操作関数には、指定した文字列が、検索したい文字列の中に有るかどうかを検査すると言う処理を行う関数が有る。この関数をコンテインズ関数と言う。
また、文字列操作関数そのものを全て作成して処理しても、本発明のレパートリーで有る事を明言する。
文字列操作関数についての説明を終わる。
【0119】
プログラム記述繰り返し処理の補足説明。
プログラム記述繰り返し処理では、プログラム記述繰り返し処理の中で、サーチ繰り返し処理を行い、サーチ繰り返し処理が終わってから、回数記述繰り返し処理を行っている。サーチ繰り返し処理と回数記述繰り返し処理が並列に並んだ処理で、全体としては、二重ループである。
この様に繰り返し処理の中で繰り返し処理を行うと言う様な処理は、繰り返し処理の中で繰り返し処理を行えば行う程、処理速度が著しく低下すると言う現象が確認されている。この処理速度の低下の問題は、繰り返し処理の中で繰り返し処理を行う事を極力行わない事で問題を回避する事が出来る。
繰り返し処理の中で繰り返し処理を行った結果を配列に記録して処理を終了して、再度、記録した配列を繰り返し処理で参照して処理を行う事で三重ループを二重ループに変更する事が出来る。この繰り返し処理の中で繰り返し処理を行った結果を配列に記録して処理を終了して、再度、記録した配列を繰り返し処理で参照して処理を行う事で三重ループを二重ループに変更する処理技術を処理分断回避処理工程と呼ぶ。
【0120】
プログラム記述繰り返し処理で行っている処理を処理分断技術を使って、処理を分断して二重ループをシングルループに変更する事ができない処理である。しかし、違う処理技術を使ってシングルに変更できたので、詳しく説明する。
第一IF文ループ処理、第二IF文ループ処理と呼ぶ。
また、第一IF文ループ処理、第二IF文ループ処理などの処理技術は、特殊な例である。二重ループをシングルループに変更する為に、繰り返し処理の中で繰り返し処理のインデックスの数値をIF文で制御する事で繰り返し処理を減らす技術をIF文ループ回避処理工程と呼ぶ。IF文ループ回避処理工程は、二重ループをシングルループにする記述であるが、IF文ループ回避処理工程を使用して、三重ループの処理から、二重ループや、シングルループに変更する技術も、第一IF文ループ処理、第二IF文ループ処理を参考にすれば簡単に記述できる処理工程であると思われる。本発明のコード自動記述2ソフトウェアを記録した記録媒体では、三重ループになっている箇所が二か所だけ有る。その三重ループになっていると言う二か所か所は、「組合せ分岐」のステップ104の組合せ分岐文作成繰り返し処理の部分と、「組合せ分岐」のステップ104の3列以上組合せ作成繰り返し処理の部分である。
【0121】
3列以上組合せ作成繰り返し処理の部分は、2列組合せ配列作成繰り返し処理を行った後で、3列目以降の組合せを作成する処理を行うと言う処理を行っている部分である。2列組合せ配列作成繰り返し処理を行なわずに、最初から全ての繰り返し処理を繰り返し処理の中で行おうとすると、四重ループになるところを分割処理して三重ループで処理している部分である。3列以上組合せ作成繰り返し処理の部分は、これ以上、処理分断回避処理工程を使用して、返し処理の中で繰り返し処理をできるだけしないで処理を行う処理工程にする事が出来ないであろうから記述しない。
しかし、「組合せ分岐」のステップ104の組合せ分岐文作成繰り返し処理の部分は、第一IF文ループ処理や、第二IF文ループ処理を参考に三重ループを二重ループや、シングルループに変更可能である。「組合せ分岐」のステップ104の組合せ分岐文作成繰り返し処理部分をIF文ループ回避処理工程を使用して二重ループや、シングルループに書き換えても、本発明の簡単なレパートリーであると言い得るので、本発明のコード自動記述2ソフトウェアを記録した記録媒体である事を明記する。また、「組合せ分岐」のステップ104の組合せ分岐文作成繰り返し処理の部分を処理分断回避処理工程を使用する事で、三重ループを二重ループに変更したとしても、本発明の簡単なレパートリーと言い得る変更であるから、本発明のコード自動記述2ソフトウェアを記録した記録媒体である事を明記する。
【0122】
第一IF文ループ処理の詳しい説明を行う。
コントロールライン配列の配列サイズと同じ配列サイズでString型の200byteの配列を作成する。作成した配列を仮データ1配列と呼ぶ。コントロールライン配列の配列サイズを、回数変数に代入されている数値で乗算して算出された数値を配列サイズとして、String型の200byteの配列を作成する。作成した配列を記述文配列と呼ぶ。200byteのString型の変数を作成する。作成した変数を仮ダット1変数と呼ぶ。String型の100byteの変数を作成する。作成した変数を仮ダット2変数と呼ぶ。16bitの変数を作成する。作成した変数をインデックス1変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を作成する。作成した変数をカウント変数と呼ぶ。カウント変数に0を代入する。記述文配列の配列サイズと同じ配列サイズで、String型の200byteの配列を作成する。作成した配列を総ブロック配列と呼ぶ。
【0123】
以下に繰り返し処理を行う。この繰り返し処理を仮総ブロック作成繰り返し処理と呼ぶ。
仮総ブロック作成繰り返し処理では、コントロールライン配列のインデックスとして、インデックス1変数を使用して、コントロールライン配列に代入されている文字列を、一行分の200byteずつ取得して、総ブロック配列のインデックスは、最初は、0であるとして、総ブロック配列のインデックスを使用して、取得したコントロールライン配列に代入されている一行分の200byteずつの文字列を総ブロック配列に代入する。インデックス1変数に1を加算する。
以下に分岐処理を行う。この分岐処理をブロック数分岐処理と呼ぶ。
ブロック数分岐処理では、以下の処理を行う。
ブロック数分岐処理で、インデックス1変数に代入されている数値が、コントロールライン配列の配列サイズと等しい場合は、インデックス1変数に0を代入する。
ブロック数分岐処理で、インデックス1変数に代入されている数値が、コントロールライン配列の配列サイズと等しくない場合は、何もしない。
ブロック数分岐処理を終わる。
総ブロック配列のインデックスに1を加算して、仮総ブロック作成繰り返し処理の最初に戻って、処理を繰り返し行う。仮ブロック作成繰り返し処理で、総ブロック配列の最初から最後までの位置に、文字列を代入し終わったら、仮総ブロック作成繰り返し処理を終了する。
【0124】
インデックス1変数に0を代入する。
以下に繰り返し処理を行う。この繰り返し処理を総ブロック指定名置換繰り返し処理と呼ぶ。
総ブロック指定名置換繰り返し処理では、総ブロック配列のインデックスが最初は、0であるとして、総ブロック配列のインデックスを使用して、総ブロック配列の文字列を取得して、取得した文字列を仮ダット1変数に代入する。
以下に分岐処理を行う。この分岐処理を各ブロック名置換分岐処理と呼ぶ。各ブロック名置換分岐処理では、以下の処理を行う。
各ブロック名置換分岐処理で、文字列操作関数を使用して、仮ダット1変数に代入されている文字列の中に、ブロック指定名変数に代入されているブロック指定名の文字列があるかどうかの検査を行った結果、仮ダット1変数に代入されている文字列の中に、ブロック指定名の文字列が有った場合は、以下の処理を行う。
仮ダット2変数に、カウント変数に代入されている数値を代入する。
文字列操作関数のリプレース関数を使用して、仮ダット1変数に代入されている文字列の中に、ブロック指定名が有ったら、複数個あるなら、複数個のブロック指定名を全てを仮ダット2変数に代入された数値に置換して、記述文配列のインデックスとして総ブロック配列のインデックスを使用して、置換し終わった文字列を記述文配列に代入する。
各ブロック名置換分岐処理で、文字列操作関数を使用して、仮ダット1変数に代入されている文字列の中に、ブロック指定名の文字列があるかどうかの検査を行った結果、仮ダット1変数に代入されている文字列の中に、ブロック指定名の文字列が無い場合は、以下の処理を行う。
記述文配列のインデックスとして総ブロック配列のインデックスを使用して、仮ダット1変数に代入されている文字列を記述文配列に代入する。
各ブロック名置換分岐処理を終了する。
【0125】
インデックス1変数に1を加算する。
以下に分岐処理を行う。この分岐処理をカウント分岐処理と呼ぶ。
カウント分岐処理では、インデックス1変数に代入された数値がコントロールライン配列の配列サイズと等しい場合は、インデックス1変数に0を代入して、カウント変数に、1を加算する。
カウント分岐処理では、インデックス1変数に代入された数値がコントロールライン配列の配列サイズと等しくない場合は、何もしない。
カウント分岐処理を終わる。
総ブロック配列のインデックスに1を加算する。
総ブロック指定名置換繰り返し処理の最初に戻って処理を繰り返し行う。総ブロック配列の最後のデーターの処理がおわったら、総ブロック指定名置換繰り返し処理を終了する。
第一IF文ループ処理の詳しい説明を終わる。
【0126】
第二IF文ループ処理の詳しい説明を行う。
コントロールライン配列の配列サイズと同じ配列サイズでString型の200byteの配列を作成する。作成した配列を仮データ1配列と呼ぶ。コントロールライン配列の配列サイズを、回数変数に代入されている数値で乗算して算出された数値を配列サイズとして、String型の200byteの配列を作成する。作成した配列を記述文配列と呼ぶ。200byteのString型の変数を作成する。作成した変数を仮ダット1変数と呼ぶ。String型の100byteの変数を作成する。作成した変数を仮ダット2変数と呼ぶ。16bitの変数を作成する。作成した変数をインデックス1変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を作成する。作成した変数をカウント変数と呼ぶ。カウント変数に0を代入する。
【0127】
以下に繰り返し処理を行う。この繰り返し処理を記述文作成繰り返し処理と呼ぶ。
記述文作成繰り返し処理では、記述文配列のインデックスの最初は、0であるとして、コントロール配列のインデックスとして、インデックス1変数に代入された数値を使用してコントロール配列の文字列を一行分の200byte分の文字列を取得して、仮ダット1変数に代入する。
以下に、分岐処理を行う。この分岐処理をブロック指定名検査分岐処理と呼ぶ。
ブロック指定名検査分岐処理では、以下の処理を行う。
ブロック指定名検査分岐処理で、仮ダット1変数に代入されている文字列の中に、ブロック指定名変数に代入されているブロック指定名の文字列が有る場合は、以下の処理を行う。
仮ダット2変数にカウント変数に代入されている数値を代入する。
文字列操作関数のリプレース関数を使用して、仮ダット1変数に代入されている文字列の中に、複数個のブロック指定名が有る場合は、複数個のブロック指定名を全て仮ダット2変数に代入されている数値に置換して、置換した文字列を仮ダット1変数に代入する。記述文配列のインデックスを使用して、記述文配列に、仮ダット1変数に代入された文字列を代入する。
ブロック指定名検査分岐処理で、仮ダット1変数に代入されている文字列の中に、ブロック指定名変数に代入されているブロック指定名の文字列が無い場合は、以下の処理を行う。
記述文配列のインデックスを使用して、記述文配列に、仮ダット1変数に代入された文字列を代入する。
ブロック指定名検査分岐処理を終わる。
【0128】
インデックス1変数に1を加算する。
以下に分岐処理を行う。この分岐処理をカウント2分岐処理と呼ぶ。
カウント2分岐処理では、以下の処理を行う。
カウント2分岐処理で、インデックス1変数に代入された数値が、コントロールライン配列の配列サイズと等しい場合は、インデックス1変数に0を代入して、カウント変数に1を加算する。
カウント2分岐処理で、インデックス1変数に代入された数値が、コントロールライン配列の配列サイズと等しくない場合は、何も行わない。
カウント2分岐処理を終わる。
記述文配列のインデックスに1を加算して、記述文作成繰り返し処理の最初に戻って処理を繰り返し行う。記述文配列の最後のデーターを代入し終わったら、記述文作成繰り返し処理を終了する。
第二IF文ループ処理の詳しい説明を終わる。
【0129】
また、サーチ繰り返し処理では、コントロールライン配列の最初の位置から最後の位置までに代入されている一行分の200byte分の文字列に対して繰り返し処理を行うと言う処理になっている。コントロールライン配列に代入されているデーターが一行ずつ配列の要素に代入されているのが原因でコントロールライン配列の最初から最後の位置に代入されている文字列を繰り返し処理で処理しなければならなくなっているのである。コントロールライン配列を使用しせずに、コントロール変数に代入された文字列を対象に、発見分岐処理や、回数記述繰り返し処理を行う処理工程に変更すれば、サーチ繰り返し処理を何度も繰り返して処理を行う必要がなくなるのである。結果、処理工程は、プログラム記述繰り返し処理の中で、発見分岐処理を行い、回数記述繰り返し処理を行って、プログラム記述繰り返し処理を終わる処理工程となる。繰返し処理する処理回数が大きく減る処理工程になるのである。この様な、基本的に処理対象とする文字列を変数に代入して処理する問題回避処理技術を変数回避処理工程と呼ぶ。
この様なIF文ループ配列回避処理工程や、変数回避処理工程や、処理分断回避処理工程を使用して、本発明のコード自動記述2ソフトウェアを記録した記録媒体のどこの処理であっても、二重の繰り返し処理や、三重の繰り返し処理である部分をシングルループや二重ループに回避した処理に変更したとしても、本発明の簡単なレパートリーであるので、本発明のコード自動記述2ソフトウェアを記録した記録媒体であると明言する。
また、プログラム記述繰り返し処理の補足説明の説明で、説明している問題回避処理技術の変数回避処理工程と、IF文ループ配列回避処理工程と、処理分断回避処理工程は、本発明の一部分でのみ有効な処理技術ではなく、一般的に広く利用できる技術である事を明言する。
IF文ループ配列回避処理工程は、本発明の簡単なレパートリーとしての記述である。
余談であるが、IF文ループ配列回避処理工程は、二重ループよりも、ほんの少し、処理スピードが遅い事を確認した事を記述する事にした。
【0130】
変数回避処理工程の詳しい処理工程のを説明行う。
コントロール変数と同じbyte数でString型の変数を作成する。作成した変数を仮ダット1変数と呼ぶ。コントロール変数と同じbyte数に、回数変数に代入されている数値で掛けて算出された数値のbyte数でString型の変数を作成する。作成した変数を記述文変数と呼ぶ。仮ダット1変数と同じbyte数でString型の変数を作成する。作成した変数を仮ダット2変数と呼ぶ。16bitの変数を作成する。作成した変数をカウント変数と呼ぶ。カウント変数に0を代入する。
以下に、繰り返し処理を行う。この繰り返し処理をプログラム記述繰り返し処理と呼ぶ。
プログラム記述繰り返し処理では、以下の処理を一回行う毎にカウント変数に1を加算すると言う処理を行って、カウント変数に代入された数値が回数変数に代入された数値になるまで処理を繰り返し行う。
【0131】
以下に、分岐処理を行う。この分岐処理を発見分岐処理と呼ぶ。
発見分岐処理では、文字列操作関数のコンテインズ関数を使用して、コントロール変数に代入された文字列の中にブロック指定名変数に代入されたブロック指定名の文字列が有るかどうかを検査して、文字列が有る場合と無い場合とに分岐する。
発見分岐処理で、文字列操作関数のコンテインズ関数を使用して、コントロール変数に代入された文字列の中にブロック指定名変数に代入されたブロック指定名の文字列が有るかどうかを検査して、文字列が有る場合は、以下の処理を行う。
仮ダット2変数にカウント変数に代入された数値を代入する。
文字列操作関数のリプレース関数を使用して、コントロール変数の中に、ブロック指定名変数に代入されたブロック指定名の文字列が、複数個あったら、複数個の全てを仮ダット2変数に代入された数値に置換して、仮ダット1変数に代入する。
発見分岐処理で、文字列操作関数を使用して、コントロール変数に代入された文字列の中にブロック指定名変数に代入されたブロック指定名の文字列が有るかどうかを検査して、文字列が無い場合は、何も処理しない。
発見分岐処理を終了する。
【0132】
記述文変数に代入されている文字列と仮ダット1変数に代入されている文字列を記述文変数に代入されている文字列の後方に連結して文字列を作成して、作成した文字列を記述文変数に代入する。カウント変数に1を加算する。
プログラム記述繰り返し処理の最初に戻って処理を繰り返して、カウント変数に代入された数値が回数変数に代入された数値になったら、プログラム記述繰り返し処理を終わる。
変数回避処理工程の詳しい処理工程の説明を終わる。
変数回避処理工程は、出来るだけ配列を使用しないで変数を使用する事で処理を高速化する事と、繰り返し処理の中で繰り返し処理をすると言う処理をできるだけ少なくする技術であり、一般的に知られている常識的な技術である。繰り返し処理の中で繰り返し処理をしなければならないような処理をしている場合に利用できる技術である。
また、処理分断回避処理工程も、一般的に知られている常識的技術である。繰り返し処理の中で繰り返し処理を行い、更に、繰り返し処理の中で繰り返し処理を行うと言う様な三重の繰り返し処理を繰り返し処理の中で繰り返し処理を行うと言う、二重の繰り返し処理程度に繰り返し処理を減らす技術である。
プログラム記述繰り返し処理の補足説明を終わる。
【0133】
以下に、分岐処理を行う。この分岐処理を選択設定2分岐と呼ぶ。
選択設定2分岐では、設定変数に代入された文字列が、「Switch文」の場合と「IF文やその他」に分岐する。
選択設定2分岐で、設定変数に代入された文字列が、「Switch文」の場合は、ステップ103の処理に進み、ステップ103の次にステップ105に進む。選択設定2分岐で、設定変数に代入された文字列が、「IF文やその他」の場合は、ステップ105に進む。
選択設定2分岐を終了する。
【0134】
ステップ103の「Case文の前後の文を付加してSwitch文を完成させる」処理工程の処理を行う。ステップ103は、コード自動記述2ソフトウェアとコンピューターによる自動処理工程である。
テップ103は、選択設定分岐で、図符号Eのコード文の選択画面を「Switch文」に選択設定した場合の処理工程である。
コントロールライン配列の配列サイズに4個を加算した数値を配列サイズとして、200byteのString型の配列を作成する。作成した配列をスイッチ配列と呼ぶ。スイッチ配列の最初の位置に「switch (n)」と言うSwitch文の最初の行に必要な文字列を代入する。スイッチ配列の末尾に「{」と言うSwitch文の二行目の行に必要な文字列を代入する。
以下に、繰り返し処理を行う。この繰り返し処理をケース代入繰り返し処理と呼ぶ。
ケース代入繰り返し処理では、コントロールライン配列の最初から最後までの位置に代入された一行分ずつの200byteずつの文字列を順番通りに取得して、スイッチ配列の末尾に一行分ずつの200byteずつ代入する。
ケース代入繰り返し処理を終了する。
ケース配列の末尾に、「default:」と言うSwitch文の最後から二行目の行に必要な文字列を代入する。
ケース配列の末尾に、「}」と言うSwitch文の最後の行に必要な文字列を代入する。
コントロールライン配列の配列サイズをスイッチ配列の配列サイズに変更する。スイッチ配列の最初から最後の位置に代入されている一行ずつの200byteずつの文字列を全て、コントロールライン配列の最初の位置から最後の位置までの位置に、コピーする。
次に、ステップ105に進む。
【0135】
ステップ104の「図符号Gの文字列と図符号Qの文字列を探して組合せの数値に置換する」処理工程の処理を行う。104は、コード自動記述2ソフトウェアとコンピューターによる自動処理工程である。
16bitの変数を作成する。作成した変数を行数指定変数と呼ぶ。
図符号Mの行数指定画面で指定された任意の行数に相当する任意の数値を取得して、取得した任意の数値を行数指定変数に代入する。16bitの変数を作成する。作成した変数を列数指定変数と呼ぶ。図符号Oの列数指定画面で指定された変数や配列の数に相当する列数の任意の数値を取得して、取得した列数の数値を列数指定変数に代入する。100byteのString型の変数を作成する。作成した変数を回答指定名変数と呼ぶ。図符号Qの回答指定名テキストボックスに指定されている任意の文字列を取得して、回答指定名変数に代入する。String型の100byteの変数を作成する。作成した変数をブロック指定名変数と呼ぶ。ブロック指定名変数に図符号Gのブロック指定名テキストボックスに入力されている回答指定名変数に代入されていない任意の文字列を代入する。16bitの変数を作成する。作成した変数を組合せ数1変数と呼ぶ。組合せ数1変数に0を代入する。16bitの変数を作成する。作成した変数を組合せ数2変数と呼ぶ。組合せ数2変数に0を代入する。200byteのString型の組合せ変数に代入されている数値を配列サイズとして、String型の200byteの配列を作成する。作成した配列を、組合せ配列と呼ぶ。16bitの変数を作成する。作成した変数をインデックス1変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を2個作成する。作成した変数をそれぞれ、A数値変数、B数値変数と呼ぶ。
【0136】
以下に分岐処理を行う。この分岐処理を列数分岐処理と呼ぶ。
列数分岐処理では、以下の処理を行う。
列数分岐処理で、列数変数に代入された数値が2の場合は、以下の処理を行う。
行数指定変数に代入されている数値を二乗した数値を算出させて、組合せ変数に代入する。
String型の200byteの組合せ変数に代入された数値を配列サイズとして、String型の200byteの配列を作成する。作成した配列を新組合せ1配列と呼ぶ。
【0137】
String型の200byteの組合せ変数に代入された数値を配列サイズとして、String型の200byteの配列を作成して、作成した配列を新組合せコピー配列と呼ぶ。
以下に繰り返し処理を行う。以下の繰り返し処理を2列組合せ配列作成繰り返し処理と呼ぶ。
2列組合せ配列作成繰り返し処理では、以下の処理を行う。A数値変数に代入された数値が、行数指定変数に代入された数値になるまで、A数値変数に、1を加算して処理を繰り返し行う。
以下に繰り返し処理を行う。以下の繰り返し処理を行数繰り返し処理と呼ぶ。
行数繰り返し処理では、行数指定変数に代入された数値を行数繰り返し処理の繰り返し回数として処理を繰り返し行う。
任意の文字の一文字を記号として決めて、決めた記号を区切り記号と呼ぶ事とする。A数値変数に代入された数値に、区切り記号を連結して文字列を作成して、作成した文字列に、B数値変数に代入された数値を連結して文字列を作成して、作成した文字列を新組合せコピー配列のインデックスとして、インデックス1変数に代入された数値を使用して、新組合せコピー配列に代入する。
B数値変数に、1を加算する。インデックス1変数に、1を加算する。
行数繰り返し処理の最初に戻って処理を繰り返し行う。
行数指定変数に代入されている数値まで行数繰り返し処理を行ったら、行数繰り返し処理を終了する。
A数値変数に、1を加算する。
B数値変数に、0を代入する。
2列組合せ配列作成繰り返し処理の最初に戻って、2列組合せ配列作成繰り返し処理を繰り返し行う。A数値変数に代入された数値が、行数指定変数に代入された数値になったら、2列組合せ配列作成繰り返し処理を終了する。
【0138】
新組合せコピー配列に代入されている全てのデーターを新組合せ1配列の最初の位置から最後の位置までに上書きで代入する。
組合せ配列の配列サイズを新組合せ1配列の配列サイズで、200byteの配列に変更して、新組合せ1配列に代入されている200byteずつの全ての文字列を、組合せ配列の最初から最後までの位置に上書きで代入する。
区切り記号の説明を行う。
〔実施例1〕では、任意の文字を区切り記号とする場合、「,」を記号として使用した。
区切り記号の説明を終わる。
【0139】
列数分岐処理で、列数変数に代入された数値が3以上の場合は、以下の処理を行う。
行数指定変数に代入されている数値を二乗して算出した数値を、組合せ変数に代入する。
組合せ変数に代入された数値に行数指定変数に代入された数値を乗算した数値を組合せ数2変数に代入する。
String型の200byteの組合せ2変数に代入された数値を配列サイズとして、String型の200byteの配列を作成する。作成した配列を新組合せ2配列と呼ぶ。
【0140】
段落〔0137〕の2列組合せ配列作成繰り返し処理を行う。段落〔0137〕の2列組合せ配列作成繰り返し処理が終わったら、新組合せコピー配列に代入されている全てのデーターを新組合せ2配列の最初の位置から最後の位置までに上書きで代入する。
組合せ配列の配列サイズを新組合せ2配列の配列サイズで200byteの配列に変更して、新組合せ2配列に代入されている200byteずつの全ての文字列を、組合せ配列の最初から最後までの位置に上書きで代入する。
組合せ数2変数に、組合せ配列の配列サイズを取得して代入する。
組合せ数2変数に代入された数値を、行数指定変数に代入された数値で乗算した数値を算出して、算出した数値を組合せ数2変数に上書きで代入する。
【0141】
組合せ数2変数に代入された数値を配列サイズとしてString型の200byteの配列を作成する。作成した配列を組合せコピー2配列と呼ぶ。A数値変数に、0を代入し、B数値変数に、0を代入する。インデックス1変数に0を代入する。
以下に、繰り返し処理を行う。この繰り返し処理を3列以上組合せ作成繰り返し処理と呼ぶ。3列以上組合せ作成繰り返し処理を、列数指定変数に代入されている数値から2を減算した回数処理を繰り返し終わったら、3列以上組合せ作成繰り返し処理を終了する。
3列以上組合せ作成繰り返し処理では、以下に繰り返し処理を行う。この繰り返し処理を3列以上組合せ作成2繰り返し処理と呼ぶ。
3列以上組合せ作成2繰り返し処理では、組合せ数2変数に代入された数値とA数値変数に代入された数値が同じ数値になるまで、A数値変数に代入された数値に、1を加算して処理を繰り返す。以下に繰り返し処理を行う。この繰り返し処理を3列以上組合せ作成3繰り返し処理と呼ぶ。
3列以上組合せ作成3繰り返し処理では、行数指定変数に代入された数値と、インデックス1変数に代入された数値が同じ数値になるまで、インデックス1変数に代入された数値に、1を加算して処理を繰り返す。組合せ配列のインデックスとしてA数値変数に代入された数値を使用して組合せ配列に代入されている文字列を取得して、取得した文字列に、区切り記号と、B数値変数に代入された数値を連結して、連結して作成した文字列を組合せコピー2配列のインデックスとしてインデックス1変数に代入された数値を使用して、組合せコピー2配列に代入する。インデックス1変数に1を加算する。B数値変数に1を加算する。3列以上組合せ作成3繰り返し処理の最初に戻って、処理を繰り返す。行数指定変数に代入された数値と、インデックス1変数に代入された数値が同じ数値になったら、3列以上組合せ作成3繰り返し処理を終了する。
【0142】
A数値変数に1を加算する。B数値変数に、0を代入する。
組合せ数2変数に代入された数値とA数値変数に代入された数値が同じ数値になったら、3列以上組合せ作成2繰り返し処理を終了する。
組合せ配列を組合せコピー2配列の配列サイズで200byteの配列に変更する。
組合せコピー2配列に代入された最初の位置から最後の位置までに代入された文字列を組合せ配列の最初の位置から最後の位置までに全て上書きで代入する。
組合せ配列の配列サイズを取得して、組合せ数2変数に代入する。組合せ数2変数に代入された数値を、行数指定変数に代入された数値で乗算した数値を算出して、算出した数値を組合せ数2変数に上書きで代入する。
3列以上組合せ作成繰り返し処理の最初に戻って繰り返し処理を繰り返す。3列以上組合せ作成繰り返し処理を、列数指定変数に代入されている数値から2を減算した回数処理を繰り返し終わったら、3列以上組合せ作成繰り返し処理を終了する。
これで、列数分岐処理を終了する。
【0143】
組合せ数2変数に、組合せ配列の配列サイズを取得して代入する。
図符号Lのブロック数表示テキストボックスに、組合せ数2変数に代入された数値を表示する。
配列サイズが、コントロールライン配列の配列サイズと同じ配列サイズのString型の200byteの配列を作成する。作成した配列を仮プログラム配列と呼ぶ。コントロールライン配列の配列サイズの数値を、組合せ数2変数に代入された数値で乗算した数値を、配列サイズとしてString型の200byteの配列を作成する。作成した配列をプログラム配列と呼ぶ。String型の200byteの変数を2個作成する。作成した2個の変数をそれぞれ、仮データ1変数、仮データ2変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を作成する。作成した変数をカウント2変数と呼ぶ。カウント2変数に0を代入する。16bitの変数を作成する。作成した変数をインデックス2変数と呼ぶ。インデックス2変数に0を代入する。
【0144】
以下に繰り返し処理を行う。この繰り返し処理を組合せ分岐文作成繰り返し処理と呼ぶ。
組合せ分岐文作成繰り返し処理では、カウント2変数に代入されている数値が、組合せ数2変数に代入されている数値になるまで、以下の処理を繰り返し行う。
以下に繰り返し処理を行う。以下の繰り返し処理をプログラム配列作成繰り返し処理と呼ぶ。
コントロールライン配列のインデックスが、最初は、0であるとして、コントロールライン配列のインデックスを使用して、コントロールライン配列の200byteの文字列を、仮データ1変数に代入する。
【0145】
以下に分岐処理を行う。この分岐処理を回答分岐処理と呼ぶ。
回答分岐処理で、文字列操作関数のコンテインズ関数を使用して仮データ1変数に代入された200byteの文字列の中に、回答指定名変数に代入された回答指定名に指定された文字列が有るかどうかを検査して、有った場合は、以下の処理を行う。
16bitの変数を2個作成する。作成した2個の変数をそれぞれ、インデックス3変数、インデックス4変数と呼ぶ。インデックス3変数に、0を代入する。インデックス4変数に、0を代入する。8bitの変数を作成する。作成した変数をアンサー変数と呼ぶ。アンサー変数に、0を代入する。組合せ配列に代入されたデーターを区切り記号で分割したデーターを全て代入できる配列サイズでString型の4byteの配列を作成する。作成した配列を区切り分割配列と呼ぶ。16bitの変数を作成する。作成した変数を回答文字数変数と呼ぶ。文字列操作関数のスピリット関数と言う、任意の文字で文字列を分割する処理を行う関数を使用して、組合せ配列のインデックスとして、インデックス2変数に代入された数値を使用して、組合せ配列に代入された文字列を取得して、取得した文字列を区切り記号で分割して、分割した文字列を区切り分割配列に代入する。
回答指定名変数に代入された回答指定名に指定された文字列の文字数を取得して、回答文字数変数に代入する。
【0146】
以下に繰り返し処理を行う。以下の繰り返し処理を回答置換繰り返し処理と呼ぶ。
回答置換繰り返し処理では、アンサー変数に代入された数値が、0以外の数値になるまで処理を繰り返し行う。
文字列操作関数のインデックスオフ関数を使用して、仮データ1変数に代入されている文字列の中に有る、回答指定名変数に代入された回答指定名に指定された文字列の先頭位置を取得して、インデックス3変数に代入する。
文字列操作関数のインデックスオフ関数の説明を行う。
検索したい文字列中から、指定した文字列を探し出して、探し出した先頭の位置を検索したい文字列の何番目から文字列が有ると言う具合に、数値として答える関数である。検索したい文字列の中に指定した文字列が無かった場合は、-1を数値として答える関数である。コンパイラ付属の関数なので、使用するコンパイラによっては、この関数が無い場合もある。同じ処理が出来る処理を作成しても、本発明のレパートリーである事を明言する。
文字列操作関数のインデックスオフ関数の説明を終わる。
以下に分岐処理を行う。この分岐処理を最終回答分岐処理と呼ぶ。
最終回答分岐処理で、インデックス3変数に代入された数値が0より大きい数値の場合は、以下の処理を行う。
文字列操作関数のリムーブ関数を使用して、インデックス3変数に代入された数値を仮データ1変数に代入されている文字列の先頭位置として使用して、回答文字数変数に代入された数値を文字数として使用して、文字数分の文字列を、仮データ1変数に代入された文字列から削除した文字列を作成して、作成した文字列を仮データ1変数に代入する。
【0147】
文字列操作関数のインサート関数を使用して、区切り分割配列のインデックスとして、インデックス4変数に代入された数値を使用して、区切り分割配列に代入された文字列を取得して、インデックス3変数に代入された数値を、仮データ1変数に代入された文字列の位置として使用して、仮データ1変数に代入された文字列の位置に、区切り分割配列から取得した文字列を挿入した文字列を作成して、仮データ1変数に代入する。
インデックス4変数に、1を加算する。
最終回答分岐処理で、インデックス3変数に代入された数値が-1の場合は、以下の処理を行う。
アンサー変数に1を代入する。
最終回答分岐処理を終了する。
回答置換繰り返し処理の最初に戻って、アンサー変数に代入された数値が、0以外の数値になるまで回答置換繰り返し処理を繰り返して、アンサー変数に代入された数値が1になったら、回答置換繰り返し処理を終わる。
回答分岐処理で、文字列操作関数のコンテインズ関数を使用して仮データ1変数に代入された200byteの文字列の中に、回答指定名変数に代入された回答指定名に指定された文字列が有るかどうかを検査して、仮データ1変数に代入された200byteの文字列の中に回答指定名変数に代入された回答指定名に指定された文字列が無かった場合は、何も処理を行なわない。
【0148】
以下に分岐処理を行う。この分岐処理をブロック分岐処理と呼ぶ。
ブロック分岐処理では、文字列操作関数のコンテインズ関数を使用して仮データ1変数に代入された文字列の中に、ブロック指定名変数に代入されたブロック指定名の文字列が有るかどうかを検査して、仮データ1変数に代入された文字列の中に、ブロック指定名変数に代入されたブロック指定名の文字列が有る場合と無い場合に分岐処理する。仮データ1変数に代入された文字列の中に、ブロック指定名変数に代入されたブロック指定名の文字列が有る場合は、以下の処理を行う。
カウント2変数に代入されている数値を仮データ2変数に代入する。
文字列操作関数のリプレース関数と言う関数を使用して、仮データ1変数に代入された文字列の中に有ったブロック指定名変数に代入されたブロック指定名の文字列をカウント2変数に代入された数値に置換した文字列を作成して、仮データ1変数に代入する。
ブロック分岐処理で、仮データ1変数に代入された文字列の中に、ブロック指定名変数に代入されたブロック指定名の文字列が無い場合は、何も行わない。
ブロック分岐処理を終了する。
仮ブロック配列のインデックスに、コントロールライン配列のインデックスを使用して、仮データ1変数に代入されている文字列を仮ブロック配列に代入する。
プログラム配列作成繰り返し処理の最初に戻って、処理を繰り返す。コントロールライン配列の最初の位置から最後の位置までに代入された文字列を全て処理し終わったら、プログラム配列作成繰り返し処理を終了する。
【0149】
以下に繰り返し処理を行う。この繰り返し処理を組合せ記述繰り返し処理と呼ぶ。
組合せ記述繰り返し処理で、仮プログラム配列のインデックスは、最初は、0であるとして、仮プログラム配列の文字列を取得して、プログラム配列のインデックスに、インデックス1変数に代入された数値を使用して、取得した文字列をプログラム配列に代入する。
インデックス1変数に、1を加算する。
仮プログラム配列のインデックスに、1を加算して、組合せ記述繰り返し処理の最初に戻って、処理を繰り返し行う。仮プログラム配列の最後の位置に代入された文字列まで、全ての処理が終わったら、組合せ記述繰り返し処理を終了する。
カウント2変数に、1を加算する。
カウント2変数に代入された数値が、組合せ2変数の数値になるまで、組合せ分岐文作成繰り返し処理を繰り返し行う。カウント2変数に代入された数値が、組合せ2変数の数値になったら、組合せ分岐文作成繰り返し処理を終わる。
コントロールライン配列の配列サイズをプログラム配列の配列サイズに変更する。
プログラム配列の最初から最後までの位置に代入されている文字列を一行分ずつの200byteずつ取得して、コントロールライン配列の最初の位置から最後の位置までにコピーする。
次にステップ105に進む。
【0150】
次に、ステップ105の「自動記述したプログラムコードをファイルに保存する」処理工程の処理を行う。ステップ105は、コード自動記述2ソフトウェアとコンピューターによる自動処理工程である。
コントロールライン配列の最初の位置から最後の位置に代入されている文字列を一行分ずつの200byteずつテキスト形式でファイルに保存する。
〔実施例1〕の詳しい処理工程の説明を終わる。
【実施例2】
【0151】
〔実施例2〕は、本発明のコード自動記述2ソフトウェアを記録した記録媒体の簡単なレパートリーとして記述したものである。その為、〔実施例2〕のフローチャート図は無い。
〔実施例2〕の詳しい処理工程の説明を行う。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Tの配列型名選択画面は、図符号Uの配列型名指定ボタンを図符号Dのマウスを使用してクリックする事で、「int」と、「String」のどちらかを選択指定できる様になっている。また、図符号Rの作成個数指定ボタンを図符号Dのマウスを使用してクリックする事で図符号Qの作成個数指定画面に、個数を指定する事が出来る様になっている。
図符号Dのマウスを使用して図符号Uの配列型名指定ボタンをクリックして図符号Tの配列型名選択画面を「int」または、「String」に選択設定して、図符号Pの配列名指定テキストボックスに、図18の<実施例2の配列コード自動記述2ソフトウェアで配列を3個作成する処理と、3個の配列を初期化する処理を記述させた操作画面図>で示す様に、図符号Cのキーボードを使用して入力して、図符号Dのマウスを使用して図符号Rの作成個数指定ボタンをクリックする事で図符号Qの作成個数指定画面に、個数を指定して、図符号Sの配列サイズ指定テキストボックスに、図符号Cのキーボードを使用して配列サイズを数値で入力して、図符号Tの配列作成ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
【0152】
この後は、コンピューターと、本発明のコード自動記述2ソフトウェアを記録した記録媒体の簡単なレパートリーの実施例2の配列コード自動記述2ソフトウェアによる自動処理である。
100byteのString型の変数を作成する。作成した変数を配列名前変数と呼ぶ。配列名前変数に、図符号Pの配列名指定テキストボックスに入力された文字列を代入する。6byteのString型の変数を作成する。作成した変数を型名変数と呼ぶ。型名変数に、図符号Tの配列型名選択画面で選択設定された文字列を代入する。16bitの変数を作成する。作成した変数を個数変数と呼ぶ。個数変数に図符号Qの作成個数指定画面で指定された個数を示す数値を代入する。100byteのString型の変数を作成する。作成した変数を配列名変数と呼ぶ。配列名変数に、図符号Pの配列名指定テキストボックスに入力された文字列を代入する。100byteのString型の変数を作成する。作成した変数を配列サイズ変数と呼ぶ。配列サイズ変数に図符号Sの配列サイズ指定テキストボックスに代入された数値または、文字や文字列を代入する。16bitの変数を作成する。作成した変数をサイズ変数と呼ぶ。サイズ変数に0を代入する。100byteの変数を作成する。作成した変数を文字数値変数と呼ぶ。図符号Sの配列サイズ指定テキストボックスに代入された数値または、文字や文字列を取得して、取得した文字を文字コードに変換して文字数値変数に代入する。
【0153】
個数変数の配列サイズで200byteのString型の配列を作成する。作成した配列をアレイ1配列と呼ぶ。16bitの変数を作成する。作成した変数をインデックス変数と呼ぶ。インデックス変数に0を代入する。
以下に、分岐処理を行う。この分岐処理を数配配列作成分岐と呼ぶ。
数配配列作成分岐では、文字数値変数に代入された文字コードが65未満か65以上かで分岐する。
【0154】
数配配列作成分岐の説明を行う。
ASCIIコードでは、64までが、数値とその他の文字コードで、65以上がアルファベットやその他の文字列となっているので、65を基準に分岐すれば数値とアルファベットのどちらが入力されているのかが判断できると言う事になるのである。
以下の数配配列初期化分岐でも、文字数値変数に代入された文字コードが65未満か65以上かで分岐する処理が行われるが、同じ様に、代入された文字コードが数値なのかアルファベットなのかを判断させる分岐処理である。
数配配列作成分岐の説明を終わる。
【0155】
数配配列作成分岐で、文字数値変数に代入された文字コードが65未満の場合は、以下の処理を行う。
以下に、繰り返し処理を行う。この繰り返し処理を数値配列作成繰り返し処理と呼ぶ。
数値配列作成繰り返し処理では、以下の繰り返し処理を行う。
数値配列作成繰り返し処理では、型名変数に代入された文字列に「[]」の文字を連結して文字列を作成して、作成した文字列に、配列名変数に代入された文字列を連結して文字列を作成して、作成した文字列に、インデックス変数に代入された数値を連結して文字列を作成して、作成した文字列に、「 = new 」と言う文字列を連結して文字列を作成して、作成した文字列に、型名変数を連結して文字列を作成して、作成した文字列に、「[」を連結して文字列を作成して、作成した文字列に、配列サイズ変数に代入された数値を連結して文字列を作成して、作成した文字列に、「];」と言う文字列を連結して文字列を作成して、アレイ1配列のインデックスとしてインデックス変数に代入された数値を使用してアレイ1配列に作成した文字列を代入する。
インデックス変数に1を加算して、数値配列作成繰り返し処理の最初に戻って処理を繰り返し行う。インデックス変数に代入された数値が個数変数に代入された数値になったら、数値配列作成繰り返し処理を終了する。
【0156】
数配配列作成分岐で、文字数値変数に代入された文字コードが65以上の場合は、以下の処理を行う。
以下に、繰り返し処理を行う。この繰り返し処理を変数配列作成繰り返し処理と呼ぶ。
変数配列作成繰り返し処理では、型名変数に代入された文字列に「[]」の文字を連結して文字列を作成して、作成した文字列に、配列名変数に代入された文字列を連結して文字列を作成して、作成した文字列に、インデックス変数に代入された数値を連結して文字列を作成して、作成した文字列に、「 = new 」と言う文字列を連結して文字列を作成して、作成した文字列に、型名変数を連結して文字列を作成して、作成した文字列に、「[」を連結して文字列を作成して、作成した文字列に、配列サイズ変数に代入された文字または、文字列を連結して文字列を作成して、作成した文字列に、「];」と言う文字列を連結して文字列を作成して、アレイ1配列のインデックスとしてインデックス変数に代入された数値を使用してアレイ1配列に作成した文字列を代入する。
インデックス変数に1を加算して、変数配列作成繰り返し処理の最初に戻って処理を繰り返し行う。インデックス変数に代入された数値が個数変数に代入された数値になったら、変数配列作成繰り返し処理を終了する。
数配配列作成分岐を終わる。
【0157】
個数変数に代入された数値を配列サイズとして、200byteのString型の配列を作成する。作成した配列をアレイ2配列と呼ぶ。
以下に、分岐処理を行う。この分岐処理を数配配列初期化分岐処理と呼ぶ。
数配配列初期化分岐では、文字数値変数に代入された文字コードが65未満か65以上かで分岐する。
数配配列初期化分岐では、文字数値変数に代入された文字コードが65未満の場合は、以下の処理を行う。
以下に、繰り返し処理を行う。この繰り返し処理を数値配列初期化繰り返し処理と呼ぶ。
数値配列初期化繰り返し処理では、以下の繰り返し処理を行う。
数値配列初期化繰り返し処理では、配列名変数に代入された文字列に、インデックス変数に代入された数値を連結して文字列を作成して、作成した文字列に、「 = new 」と言う文字列を連結して文字列を作成して、作成した文字列に、型名変数を連結して文字列を作成して、作成した文字列に、「[」を連結して文字列を作成して、作成した文字列に、サイズ変数に代入された数値を連結して文字列を作成して、作成した文字列に、「];」と言う文字列を連結して文字列を作成して、アレイ2配列のインデックスとしてインデックス変数に代入された数値を使用してアレイ2配列に作成した文字列を代入する。
インデックス変数に1を加算して、数値配列初期化繰り返し処理の最初に戻って処理を繰り返し行う。インデックス変数に代入された数値が個数変数に代入された数値になったら、数値配列初期化繰り返し処理を終了する。
【0158】
数配配列初期化分岐では、文字数値変数に代入された文字コードが65以上の場合は、以下の処理を行う。
以下に、繰り返し処理を行う。この繰り返し処理を変数配列初期化繰り返し処理と呼ぶ。
変数配列初期化繰り返し処理では、以下の繰り返し処理を行う。
変数配列初期化繰り返し処理では、配列名変数に代入された文字列に、インデックス変数に代入された数値を連結して文字列を作成して、作成した文字列に、「 = new 」と言う文字列を連結して文字列を作成して、作成した文字列に、型名変数を連結して文字列を作成して、作成した文字列に、「[」を連結して文字列を作成して、作成した文字列に、配列サイズ変数に代入された文字または、文字列を連結して文字列を作成して、作成した文字列に、「];」と言う文字列を連結して文字列を作成して、アレイ2配列のインデックスとしてインデックス変数に代入された数値を使用してアレイ2配列に作成した文字列を代入する。
インデックス変数に1を加算して、変数配列初期化繰り返し処理の最初に戻って処理を繰り返し行う。インデックス変数に代入された数値が個数変数に代入された数値になったら、変数配列初期化繰り返し処理を終了する。
数配配列初期化分岐処理を終わる。
【0159】
100byteのString型の変数を2個作成する。作成した変数を各々、文章1変数と文章2変数と呼ぶ。
文章1変数に、「配列作成」と言う文字列を代入する。文章2変数に、「配列初期化」と言う文字列を代入する。
ファイルを作成して、テキスト形式で文章1変数に代入された100byteの文字列を全て書き込む。
アレイ1配列の最初から最後の位置までに代入されている全ての文字列を一行分ずつの200byteずつ、テスキト形式でファイルの末尾に書き込む。テキスト形式で文章2変数に代入された100byteの文字列を全て書き込む。アレイ2配列の最初から最後の位置までに代入されている全ての文字列を一行分ずつの200byteずつ、テキスト形式でファイルの末尾に書き込む。
ファイルを保存して、処理を終了する。
サイズ変数の説明を行う。
サイズ変数に0を代入して使用しているが、配列サイズ変数に代入された数値を使用して文字列を作成しても、本発明のコード自動記述2ソフトウェアを記録した記録媒体の簡単なレパートリーである事を明言する。
サイズ変数の説明を終わる。
〔実施例2〕の詳しい処理工程の説明を終わる。
【実施例3】
【0160】
〔実施例3〕は、本発明のコード自動記述2ソフトウェアを記録した記録媒体の簡単なレパートリーとして記述したものである。その為、〔実施例3〕フローチャート図は無い。
〔実施例3〕の詳しい処理工程の説明を行う。
【0161】
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Dのマウスを使用して図符号Wの型名指定ボタンをクリックして図符号Vの型名選択画面を「String」または、「int」に選択設定して、図23の<実施例3の変数コード自動記述2ソフトウェアで変数を3個作成する処理を記述させた操作画面>で示す様に、図符号Cのキーボードを使用して図符号Xの変数名指定テキストボックスに、連続番号の数値と連結したい任意の変数の名前を文字列で入力して、図符号Dのマウスを使用して図符号Zの作成個数指定ボタンをクリックする事で図符号Yの作成個数指定画面に、個数を指定して、図符号Uの禁止文字指定テキストボックスには、予め「"」が入力されているが、図符号Uの禁止文字指定テキストボックスで、指定されている文字を別の文字に変更する場合は、図符号Cのキーボードを使用して図符号Uの禁止文字指定テキストボックスに文字を入力する事で、別の文字を禁止文字指定する。図符号Cのキーボードを使用して、図符号aの変数作成ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
【0162】
この後は、コンピューターと、本発明の変数コード自動記述2ソフトウェアを記録した記録媒体の簡単なレパートリーの実施例3の変数コード自動記述2ソフトウェアによる自動処理である。
100byteのString型の変数を作成する。作成した変数を型名変数と呼ぶ。型名変数に、図符号Vの型名指定画面に指定された文字列を代入する。100byteのString型の変数を作成する。作成した変数を変数名前変数と呼ぶ。16bitの変数を作成する。作成した変数を個数変数と呼ぶ。個数変数に、図符号Yの作成個数指定画面で指定された数値を代入する。1byteのString型で変数を作成する。作成した変数を禁止変数と呼ぶ。禁止変数に図符号Uの禁止文字指定テキストボックスで、指定されている文字を代入する。配列サイズが個数変数に代入された数値を配列サイズとして、200byteのString型の配列を作成する。作成した変数を作成変数配列と呼ぶ。
【0163】
以下に、分岐処理を行う。この分岐処理を数配作成分岐と呼ぶ。
数配作成分岐処理では、以下の分岐処理を行う。
図符号Vの型名指定画面の指定が、「String」の場合と「int」の場合とで分岐処理を行う。
図符号Vの型名指定画面の指定が、「String」の場合は、繰り返し処理を行う。
この繰り返し処理を文字配列作成繰り返し処理と呼ぶ。
文字配列作成繰り返し処理では、型名変数に代入された文字列に、「 」の文字、すなわち、スペースの文字を連結した文字列を作成して、作成した文字列に変数名前変数に代入された文字列を連結して文字列を作成して、作成した文字列にインデックスの数値を連結した文字列を作成して、作成した文字列に「 = 0;」と言う文字列を連結して文字列を作成して、作成変数配列のインデックスを使用して、作成した文字列を作成変数配列に代入する。
作成変数配列のインデックスに1を加算して、文字配列作成繰り返し処理の最初に戻って処理を繰り返し行う。作成変数配列のインデックスが、個数変数に代入された数値になったら、文字配列作成繰り返し処理を終了する。
【0164】
図符号Vの型名指定画面の指定が、「int」の場合は、繰り返し処理を行う。
この繰り返し処理を数値配列作成繰り返し処理と呼ぶ。
数値配列作成繰り返し処理では、型名変数に代入された文字列に、「 」の文字、すなわち、スペースの文字を連結した文字列を作成して、作成した文字列に変数名前変数に代入された文字列を連結して文字列を作成して、作成した文字列にインデックスの数値を連結した文字列を作成して、作成した文字列に「 = 」と言う文字列を連結して文字列を作成して、作成した文字列に禁止変数に代入された文字を連結して文字列を作成して、作成した文字列に再度、禁止変数に代入された文字を連結して文字列を作成して、作成した文字列に「;」の文字を連結して文字列を作成して、作成変数配列のインデックスを使用して、作成した文字列を作成変数配列に代入する。
【0165】
作成変数配列のインデックスに1を加算して、数値配列作成繰り返し処理の最初に戻って処理を繰り返し行う。数値変数配列のインデックスが、個数変数に代入された数値になったら、数値配列作成繰り返し処理を終了する。
数配作成分岐処理を終了する。
作成変数配列に代入された全ての文字列を一行分ずつの200byteずつ、テキスト形式でファイルに書き込んで保存する。
〔実施例3〕の詳しい処理工程の説明を終わる。
【符号の説明】
【0166】
A:モニター
B:コンピューター本体
C:キーボード
D:マウス
E:コード文の選択画面
F:コード文の選択ボタン
G:ブロック指定名テキストボックス
H:ブロック数指定画面
I:ブロック数指定ボタン
J:コード記述テキストボックス
K:実行ボタン
L:ブロック数表示テキストボックス
M:行数指定画面
N:行数指定ボタン
O:列数指定画面
P:列数指定ボタン
Q:回答指定名テキストボックス
R:人為的な手動による操作または入力処理工程
S:コード自動記述2ソフトウェアとコンピューターによる自動処理工程
T:配列型名指定画面
U:配列型名指定ボタン
V:配列名指定テキストボックス
W:配列作成個数指定画面
X:配列作成個数指定ボタン
Y:配列サイズ指定テキストボックス
Z:配列作成ボタン
a:禁止文字指定テキストボックス
b:変数型名選択画面
c:変数型名指定ボタン
d:変数名指定テキストボックス
e:変数作成個数指定画面
f:変数作成個数指定ボタン
g:変数作成ボタン
【要約】
【課題】
コンピューターで分岐処理の数が多数ある場合に、人為的な入力作業等でコピーペーストして記述すると1つ分の分岐毎に違う部分を書き換えなければならないと言う非常に手間暇がかかる作業があった。コンパイラ付属のエディターを使用すると使用禁止文字があり、後で使用禁止文字を書き加えると言う手間が必要だった。コンパイラ付属のエディターを使用しても全く記述させる事が出来ない変数や配列による組合せによる分岐処理があると言う問題があった。
【解決手段】
複数個の変数や複数個の配列に代入された数値の組合せによる分岐処理を行うプログラムを人為的にプログラム言語で記述させて、記述させた1ブロック分の分岐処理のプログラムを基に組合せ数分のブロック数分の分岐処理のプログラムを自動で記述させるソフトウェアを開した。
【選択図】 図1
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34