JP6318327B1 - コード自動記述ソフトウェアを記録した記録媒体 - Google Patents
コード自動記述ソフトウェアを記録した記録媒体 Download PDFInfo
- Publication number
- JP6318327B1 JP6318327B1 JP2017181055A JP2017181055A JP6318327B1 JP 6318327 B1 JP6318327 B1 JP 6318327B1 JP 2017181055 A JP2017181055 A JP 2017181055A JP 2017181055 A JP2017181055 A JP 2017181055A JP 6318327 B1 JP6318327 B1 JP 6318327B1
- Authority
- JP
- Japan
- Prior art keywords
- variable
- array
- processing
- assigned
- character string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
奥村晴彦・山崎敏 著 LHAとZIP 圧縮アルゴリズム×プログラミング入門 ソフトバンク パブリッシング株式会社 2003/12/6 初版
以下に、「生成」と、「算出」と、「処理」は、同じ意味として使用する。また、関数とは、ある処理を行う処理工程の事を言い、ソフトウェアと同じ意味で使用する。また、ハッシュ関数とは、分類しようとするデーターを基にその分類しようとするデーターを代表する数値を生成する為の処理工程の事を言う事とする。また、このハッシュ関数から算出された数値の事をハッシュ値と呼んだり、符号と呼んだりする。また、分類しようとするデーターの事を分類対象データーと呼んだりする。また、分類しようとする文字列の事を分類対象文字列と呼んだりする。また、検索したい文字列の事を検索文字列と呼んだりする。また、データーベースに記録されている文字列やデーターの事を検索対象文字列と呼んだり、検索対象データーと呼んだりする。変数の名前の事を変数名と呼んだり、配列の名前の事を配列名と呼んだりする。
本発明のコード自動記述ソフトウェアを記録した記録媒体の事をコード自動記述ソフトウェアと略して呼ぶ事がある。
ハッシュ関数の事を簡単に言い換えると、ハッシュ関数とは、ハッシュ値を生成するソフトウェアの事であると言える。
この〔非特許文献1〕の文献では、113ページから114ページに、データーを基にハッシュ関数を使用してハッシュ値を生成して、生成したハッシュ値でデーターを分類して保存する事で検索処理を高速化する方法を簡単に説明している。
〔非特許文献1〕の242ページから246ページのハッシュ関数を使用して生成したハッシュ値とは違う処理として特殊な処理が記述されている。この特殊な処理は、分類対象文字列の先頭から二文字分が一致するデーターを分類すると言う方法の様であるが、全く、符号を生成しないで分類する方法だと考えられる。また、分類対象文字列の先頭から二文字分が一致するデーターを分類すると言う方法の場合は、2byte分の文字コードが一致するデーターを分類する方法と言い換える事が出来ると思われる。
コンパイラとは、ソフトウェアを制作する為に作られたソフトウエアの事を言う事とする。コンパイラは、人間が読み書き出来る簡略化された文字列で書いたプログラムをコンピューターが読み込んで実行する事が出来る機械語に変換処理する事でソフトウェアを制作するソフトウェアである。
また、エディターとは、人間がプログラムを記述する時に使用するもので、人間がプログラム言語を使ってコンピューターの処理工程を記述する為のソフトウェアの事を言う事とする。
文字列操作関数は、例えば、「ああ言えば、@こう言う」と言う文字列全体を検査して「@」が含まれているかどうかを検査するとか、「@」の位置は、先頭から何文字目なのかを検査するとか、「@」で文字列を分割して「ああ言えば、」と、「こう言う」の二つに分割するなどの処理が出来る様になっている関数の事を文字列操作関数と言う。文字列操作関数のリプレース関数と言う特殊な関数がある。任意の文字列の中の任意の文字列を探し出して、指定した任意の文字列に置換すると言う処理を行う関数である。任意の文字列の中に、任意の文字列が複数個あっても、指定した任意の文字列に複数個、全て置換すると言う特殊な処理をする関数である。このリプレース関数は、コンパイラ付属の関数である。文字列操作関数には、先頭から何文字取得すると言う処理や、文字列全体が何文字かを検査する処理など、多種多様な処理が出来る様になっている。
文字列の中に探したい文字列が有った場合は、探したい文字列の先頭の文字が先頭から何番目に有ると言う事を数値で答えを出す関数である。文字列の中に探したい文字が無い場合は、-1と言う数値を答えとして出す処理を行う関数である。文字列の中に探したい文字が無い場合は、-1と言う数値で答えを出す処理を行う様に作られているのは、この発明に使用したコンパイラに添付された文字列操作関数の仕様である。コンパイラに添付された文字列操作関数の仕様なので、文字列の中に探したい文字が無い場合に、-1という数値で答えを出さないコンパイラ付属の文字列操作関数もあるであろうと思われる。文字列の中に探したい文字が無い場合に、-1という数値で答えを出さないコンパイラ付属の文字列操作関数を使用した場合は、違う処理を行う事になる。
また、添付された文字列操作関数の使い勝手が良くないので、文字列操作関数を使用せずに、文字列の中から文字をサーチする処理工程を記述したとしても、本発明のレパートリーである事を明言する。本発明で使用していないコンパイラに付属された文字列操作関数を使用した為に、本発明の処理工程と違う処理工程になった場合でも、コンパイラ付属の文字列操作関数の仕様の問題なので、本発明の簡単なレパートリーであると明言する。また、本発明では、文字列操作関数を使用しているが、文字列操作関数と同じ処理に相当する処理を記述する事で文字列操作関数を使用しない処理に書き換えても、本発明のコード自動記述ソフトウェアを記録した記録媒体である事を明言する。
文字列操作関数で文字列の中に探したい文字列が有った場合に、探したい文字列の先頭の文字が何番目にあると言う答えを出させると言う処理を行わせる場合の説明を終わる。
String型の変数ではない、人間が読む事が出来ない数値を代入する事が出来る変数を作成する場合は、「何bitの変数を作成する」または、「何byteの変数を作成する」と言う表現で変数を作成する事とする。8bitの変数を作成すると言う表現で説明している場合の意味は、8bitの人間が読む事が出来ない数値のデーターを代入する事ができる変数を作成すると言う事である。
以下に、「人間が読む事が出来ない数値」を「数値」と略して表現する場合がある。また、「人間が読む事が出来る数値」を「数値」と略して表現する事がある。どちらの場合でも「数値」と言う表現で表現しているので、表現があいまいであるが、プログラムでは、「人間が読む事が出来ない数値」と「人間が読む事が出来る数値」は、変換するだけの問題なので大きな問題ではない。
String型とは、文字列を代入する事ができる変数の型を意味するものである。言い換えるとString型とは、文字列型と言う言い方が出来るものである。String型で変数を作成して、作成したString型の変数に文字列や文字を代入すると自動的に文字コードと言う数値から、人間が読む事ができる文字に変換されて変数に代入されるものである。
テキスト形式も、String型と同じで、テキスト形式と指定すると、文字列や文字を自動的に文字コードと言う数値から、人間が読む事ができる文字に変換される形式である。テキスト形式を指定する場合は、「テキスト形式で」と言う文言を使用して、「指定して」を略して表現したりする。従って、「テキスト形式で何byteずつデーターをファイルに記録して保存する」または、「テキスト形式でファイルを開いて何byteずつデーターを読み込む」という表現で説明する事とする。
バイナリー形式を指定すると、人間が読む事ができる文字から、自動的に文字コードと言う数値に変換される形式である。バイナリー形式を指定する場合は、「バイナリー形式で」と言う文言を使用して、「指定して」を略して表現したりする。従って、「バイナリー形式で、1byteずつデーターをファイルに保存する」または、「バイナリー形式でファイルを開いて、何byteずつデーターを読み込む」という表現で説明する事とする。
バイナリー形式の文字コードの状態の数値は、機械語である。この機械語をString型に代入すると人間が読める数値に変換される。例えば、アルファベットの「A」を例に説明する。アルファベットの「A」は、ASCIIコードの文字コードだと「41」である。アルファベットの「A」が記録されているファイルを「バイナリー形式でファイルを開いて、1byteずつデーターを読み込む」と、読み込まれたデーターは、「41」になる。読み込まれた「41」をString型に変換してString型の変数等に代入すると、「4」と「1」となる。「4」「1」は、説明の都合上「」で囲む事で一文字である事を表しているだけである。つまり、2byteの人間が読める数値として変数に代入されるものなである。
例えば、アルファベットの「A」を例に説明する。アルファベットの「A」は、ASCIIコードの文字コードだと「41」である。テスト変数と言う名称の変数に機械語の文字コードで1byteの「41」が代入されていると仮定する。テキスト形式でテスト変数のデーターをファイルに記録して保存すると、ファイルには、アルファベットの「A」として記録される。アルファベットの「A」がテキスト形式で記録されていファイルをテキスト形式でファイルを開くとアルファベットの「A」として読込まれる。アルファベットの「A」がテキスト形式で記録されていファイルをバイナリー形式でファイルを開くと「41」と読み込まれる。
以降、配列のインデックスを配列の添字または、配列番号と呼ぶ事がある。
配列のデーターを代入できる領域の各々のデーターを指定する為に通常、0番からデーターを代入できる最後の位置までに、コンパイラによって、連続番号が自動的に付けられる。この配列のデーターを代入できる領域の最初から最後までに付けられた連続番号をインデックスと言う。
言い換えると配列のインデックスとは、配列に代入されるデーターの位置を示す番号の事を言うという事になる。
1byteの変数を作成してこの作成した変数を仮変数と呼ぶ事として、仮変数に0を代入して初期化する。配列に代入されたデーターが全て1byteであると仮定して配列のインデックスを取得する処理工程の説明を行う事とする。配列の最初の位置に代入されているデーターから最後の位置までに代入されたデーターを1byteずつ読み込む度に仮変数に代入された数値に1を加算する事で回数をカウントするという処理を行うと、仮変数に代入された数値と配列のインデックスとが対応した数値になるので仮変数に代入された数値が配列のインデックスとなるので、仮変数に代入された数値を取得するのが配列のインデックスの取得方法である。
配列のインデックスの取得方法の説明を終わる。
また、配列のデーターを代入する事ができる領域の最初の位置という表現を配列の最初の位置という様に略した表現を行う場合がある。また、配列のデーターを代入する事ができる領域の最後の位置という表現を配列の最後の位置という様に略した表現を行う場合がある。
配列のサイズが10の配列の場合の様に、配列の最初の位置から最後の位置までに付けられた数値が配列のインデックスとなるのである。そのインデックスを配列のデーターから取得する方法は無い。インデックスを使用して配列からデーターを取得するには、最初の位置を0番として、0番から配列の最後の位置までの連続番号を作成して、その連続番号の中から1個ずつ順番に数値を取得する事でインデックスを取得して、取得したインデックスを使用して配列からデーターを取得するのである。配列の位置を指定する時に配列のインデックスを指定する事はできるが、その反対に配列に代入されたデーターからインデックスを取得する事は出来ない。配列に代入されたデーターの位置を0から1ずつ数値を積算する事で得た数値を、配列のデーターと同じ位置に有ったインデックスとして使用すると言う技術が、配列に代入されたデーターからインデックスを取得する方法である。
これで、配列のインデックスを取得する方法について例を示して説明する説明を終わる。
String型の配列の場合は、配列のデーターを代入する事が出来る領域のどこまでの位置にデーターが入力されているかを調べる事で、必要な配列の最初の位置から最後の位置までの配列のサイズを知る事が出来る。String型の配列の場合は、必要な配列のサイズを知る事が出来る事から、逆に必要のない配列の部分をカットして配列の要素数を減らすと言う配列のサイズの調整を行う事が出来る。他方、String型以外の配列の場合は、配列に空白が無く、配列を作成すると同時に最初から0が入力されているのでサイズ調整する事が出来ない。配列のサイズ調整は、常識的処理である。
配列のサイズ調整の説明を終了する。
配列や変数の初期化と配列や変数の作成の説明を行う。
配列の初期化とは、配列のデーターを代入できる領域に代入されたデーターを削除する事を配列の初期化と言う。変数の場合も変数に代入されたデーターを削除する事を初期化と言う。変数の初期化を行う処理プログラムは、変数を作成する処理プログラムと全く同じである。
一般的に使用されているJava(登録商標)と呼ばれるプログラム言語で説明する。プログラム言語は、コンパイラと言うソフトウェアで使用するプログラム言語の仕様なので、コンパイラによっては、大きく違うものである。
変数を作成する場合のプログラムは、以下の様に記述する。変数1個分の初期化をする記述例である。
String 変数名 = "";
変数を初期化する場合のプログラムは、以下の様に記述する。
String 変数名 = "";
変数の場合は、変数を作成する場合も初期化する場合も同じである。
配列の作成を行う処理を記述する場合は、プログラム言語で以下の様に記述する。配列の場合も、一般的に使用されているJava(登録商標)と呼ばれるプログラム言語で説明する。1個分の配列を作成するプログラムの例である。
String[] 配列名 = new String[個数];
配列の初期化を処理する場合は、以下の様に記述する。1個分の配列を初期化するプログラムの例である。
配列名 = new String[個数];
配列の場合は、配列の作成と初期化は違う記述内容である。
また、初期化する場合は、データーを削除すると言う処理を行う場合だけではない。人為的に任意の数値や任意の文字を初期値と指定している場合がある。人為的に任意の数値や任意の文字を初期値と指定している場合は、人為的に指定している初期値を代入する事が初期化すると言う処理となる。
配列や変数の初期化と配列や変数の作成の説明を終わる。
IF文による分岐処理とSwitch文による分岐処理も、Java(登録商標)と呼ばれるプログラム言語で説明する。
これらの処理は、コンパイラと呼ばれるソフトウェアの仕様によって違う。しかし、一般的に、このIF文による分岐処理とSwitch文による分岐処理の二種類の分岐処理技術を使って、分岐処理を行わせている。
IF文の処理は、変数や配列に代入されている数値によって処理を分岐する処理を行う処理の事である。
Java(登録商標)のIF文による分岐処理とSwitch文による分岐処理に相当する別の名称の分岐処理で本発明のコード自動記述ソフトウェアを記録した録媒体を実施した場合でも、簡単なレパートリーであるから、本発明のコード自動記述ソフトウェアを記録した録媒体である事を明言する。
以下に、IF文による分岐処理を行わせる処理とSwitch文による分岐処理を行わせる処理の説明を行う。
以下の「{」と「}」は、ここからここまでを処理すると言う意味で必ず記述しなければならない記号である。
if(条件式)
{
条件が真である場合の処理するプログラムを記述する
}
Java(登録商標)と言われるプログラム言語で、使われているIF文と呼ばれる分岐処理は、「if」から始まり「}」までが、1ブロックの処理であり、Java(登録商標)以外のプログラム言語でも、Java(登録商標)のIF文と同じ様な処理を行うプログラムの場合は、IF文と呼ぶ。
〔実施例1〕と、〔実施例2〕と、〔実施例3〕で、条件式を記述する場合「<」を使用しているので、「<」の意味を説明する。
例えば、変数が二つあると仮定する。各々の変数を数値1変数、数値2変数と呼ぶ。数値1変数に0を代入、数値2変数に1を代入する。
IF文の条件式に、if(数値1変数 < 数値2変数) と記述すると、数値1変数が数値2変数未満でる場合と言う意味となる。
「<」の意味を説明を終わる。
組合せ分岐の場合は、IF文を使用する。Switch文では、複数の変数や複数の配列に代入された数値の組合せで処理を分岐できないからである。組合せ分岐は、複数の変数や複数の配列に代入された数値の組合せで分岐する処理である。〔実施例1〕では、複数の変数に数値が代入されている事を想定して処理を記述させているので、ここでも、複数の変数に数値が代入されている事を想定して説明する。配列は使用しないが、配列でも同じである。配列の場合は、配列の数値を代入できる配列の位置をインデックスや、変数に代入した数値で指定しなければならないだけである。
組合せ分岐の場合のIF文による1ブロック分の処理を記述したプログラムは、以下の様なる。最初に変数が2個の場合の記述例を示して説明を行う。変数が2個の場合の組合せを2列の組合せと呼ぶ事にする。
if(変数 == 数値 && 変数 == 数値)
{
条件が真である場合の処理するプログラムを記述する
}
と言う記述をする。「if(条件式)」から、「}」までが、1ブロック分の処理を行うプログラムである。IF文の(条件式)の部分に、複数の変数や配列を使用して、代入されている数値の組合せで処理を分岐するのが、組合せ分岐である。
if(第一変数 == 0 && 第二変数 == 1)
{
条件が真である場合に処理するプログラムを記述する
}
IF文の条件の部分の説明を行う。IFの条件の部分に「第一変数 == 0 && 第二変数 == 1」と書かれている。「==」の左側と右側には、数値や文字や文字列や配列や変数や式といった多種多様のデーター等が記述される。「==」の左側を左項と呼び、「==」の右側を右項と呼ぶ事とする。「==」の意味は、左項と右項とが等しいと言う意味で使用される記号である。「==」の右側に変数、左側に数値を記述しているが、左右逆にして、「==」の左側に数値、右側に変数を記述しても良い。
「==」と同じように使われる記号が多数あり、「==」は、一例である。「!=」「<」「>」「<=」「>=」など多種ある。
また、「&&」は、英語のANDと言う意味で、第一変数に代入されている数値と、第二変数に代入されている数値の両方、と言う意味である。
また、第一変数と第二変数には、0から任意の最高値までの数値が代入される。変数に代入される数値を行数と呼ぶ事とする。幾つ変数が有っても、一つの変数に代入される数値は、0から最大値までである。
変数が2個の場合の記述例で説明すると、第一変数が0で第二変数が1の場合に処理を行うと言う意味である。
変数が2個の場合の記述例を示した説明を終わる。
第三変数と言う名前の変数があると言う事を仮定する。3列の場合の記述例を以下に記述する。
If(第一変数 == 0 && 第二変数 == 1 && 第三変数 == 0)
{
条件が真である場合に処理するプログラムを記述する
}
3列の場合の記述例の意味は、第一変数が0で第二変数が1で第三変数が0の場合に処理を行うと言う意味である。
変数が3個の場合の記述例を示した説明を終わる。
これで、組合せ分岐の場合のIF文による1ブロック分の処理を記述したプログラムの説明を終わる。
IF文による分岐処理を行わせる処理の記述の説明を終わる。
Switch文の分岐処理は、「case」の後に、条件式や、変数や、配列に代入されているデーターに該当する数値や、文字を記述して、記述した文字や、数値によって、処理を分岐させる処理技術である。
Switch文による分岐処理を行わせる処理は、一般的に下記の様に記述するものである。
「default:」は、記述せずに省略する事が出来る。「default:」は、その他の場合の処理を記述する為に用意されているものである。
下記のSwitch文は、条件のDat変数に代入されている数値によって、分岐するものである。
switch(条件式)
{
case 条件の答え:
処理するプログラムを記述する
break;
case 条件の答え:
処理するプログラムを記述する
break;
default:
}
条件に変数や文字列を指定する事が出来る。
数値型の8bitの変数を作成し、作成した変数をDat変数と呼ぶ事とする。
下記のSwitch文は、条件のDat変数に代入されている数値によって、分岐するものである。
switch(Dat)
{
case 0:
処理するプログラムを記述する
break;
case 1:
処理するプログラムを記述する
break;
default:
}
String型の100byteの変数を作成し、作成した変数をSDat変数と呼ぶ事とする。
下記のSwitch文は、条件のSDat変数に代入されている文字によって、分岐するものである。
switch(SDat)
{
case "自由主義者":
処理するプログラムを記述する
break;
case "社会主義者":
処理するプログラムを記述する
break;
default:
}
禁止文字とは、文字として使用する事を禁止されている文字の事である。
「"」は、「"」と「"」で文字列を囲む事で、人間が読む事が出来る文字列である事を明示する為の記号である。「"自由主義者"」や「"社会主義者"」は、文字列である事を明示しているのである。
「"0"」や「"1"」と記述した場合と「0」や「1」と記述した場合の違いは、「"0"」や「"1"」と記述した場合は、String型の人間が読める数値の0と1と言う意味となり、「0」や「1」と記述した場合は、機械語の0と1と言う意味となる。
「"」は、「"自由主義者"」の様に記述する場合は、コンパイラに付属されたエディターでも使用できる。使用できないのは、「"""」や「""""」と言う状態になる場合に「"」が使用できなくなるのである。「"""」は、String型の変数に「"」を文字として代入しようとする場合に記述しなければならなくなるプログラムであるが、コンパイラに付属のエディターは、禁止文字の使用としてエラーとみなすのである。
突然であが、変数の初期化の補足説明を行う。
初期化では、「"」と「"」をスペースを入れずに列挙しているが、文字無しの文字を代入すると言う意味で使用しているものである。スペースも文字なので、「" "」の様にスペースを「"」と「"」の間に入れて記述すると、スペースを変数に代入してしまう為、「"」と「"」の間にスペースを入れない記述をする事で変数を初期化するのが常識的な記述である。
変数の初期化の補足説明を終わる。
Switch文による分岐処理を行う処理の記述の説明を終わる。
配列名[インデックス] = 数値または、文字や文字列;
変数名 = 数値または、文字や文字列;
変数名 = 変数名;
「=」は、代入演算子と一般的に呼ばれているもので、代入する時に必ず記述しなければならない記号である。
「=」の左辺の配列や変数に「=」の右辺の数値または、文字や文字列を代入すると言う処理を行わせる記述である。
配列や変数にデーターを代入すると言う処理を行う処理の記述の説明を終わる。
String型の100byteの変数を二個作成する。各々の変数をSDat1変数とSDat2変数と呼ぶ。
SDat1変数に「天才は99%の努力と」と言う文字列を代入する。
SDat2変数に「1%の能力である」と言う文字列を代入する。
SDat1 = SDat1 + Sdat2;
と記述すると、SDat1変数には、「天才は99%の努力と1%の能力である」と言う文字列が代入される。
また、以下の様に記述すると、
SDat1 = SDat1 + Sdat2 + "と言うが本当かな?";
SDat1変数には、「天才は99%の努力と1%の能力であると言うが本当かな?」と言う文字列が代入される。
これで、文字列を連結させる場合の記述の説明を終わる。
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文の説明を終わる。
これで、プログラムの書き方について説明を終わる。
未だに配列に代入されたデーターが無い場合は、普通、配列の最初の位置にデーターを代入するものである。しかし、配列の最初の位置から代入する度に数byteずつ代入する位置をずらして、データーを数byteずつ代入する場合、配列の最初の位置にデーターを代入した後は、配列に代入されたデーターの最後の位置にあるデーターの次の位置に代入するという事になる。この場合、配列の最初の位置に既にデーターを代入した後の位置の指定を末尾と表現する事が出来る。未だに配列に代入されたデーターが無い状態で、配列の最初の位置から代入する度に数byteずつ代入する位置をずらして数byteずつデーターを配列に代入する場合、配列の最初の位置にデーターを代入する場合でも、配列の末尾にデーターを代入すると表現する事が出来ると考えられる。そこで、配列の最初の位置から代入する度に数byteずつ代入する位置をずらして、数byteずつデーターを配列に代入する場合は、配列の最初の位置に代入する場合であっても、配列の末尾に代入すると記述する場合がある。
また、本発明の明細書で、配列の最初の位置から代入する度に数byteずつ代入する位置をずらして、数byteずつデーターを配列に代入する場合に於いて、配列に代入するデーターの順番について断り書きが無い場合は、取得した元のデーター(作成したデーターや取得したデーターや読み込んだデーターや元の配列に代入されていたデーターなど)の順番通りに数byteずつ配列に代入するものとする。
実施例で使用しているコンパイラを使用した場合は、String型で変数を作成すると約20億個の文字コードで出来た文字を代入出来るサイズで変数が作成される。つまり、約20億byteの変数が作成される。作成された変数は代入される文字列の文字数によって、自動的にメモリーの使用量が変更されるようになっている。
人工知能とは、思考処理を行うソフトウェアの事である。思考処理とは、人間の様に物事を考えて処理するソフトウェアの処理工程の事を言う事とする。
また、変数や配列に代入された数値の組合せによる分岐処理を自動で記述させると言う処理の方法は、従来から、全く無かった。変数や配列に代入された数値の組合せによる分岐処理を自動で記述させると言う処理の方法が、全く無かったと言う問題も大きな問題である。人為的な入力処理で記述すると言う方法以外にないから、時間がかかり過ぎると言う大きな問題である。
図15の<コード自動記述ソフトウェアで配列を3個作成する処理を記述させた処理結果>と、図16の<コード自動記述ソフトウェアで3個の配列の初期化をする処理を記述させた処理結果>と、図17の<コード自動記述ソフトウェアでIF文による分岐処理を3個記述させた処理結果>と、図18の<コード自動記述ソフトウェアでSwitch文による分岐処理を3個記述させた処理結果>と、図19の<コード自動記述ソフトウェアで変数を3個作成する処理を記述させた処理結果>は、記述させようと思っているプログラムの例である。図15の<コード自動記述ソフトウェアで配列を3個作成する処理を記述させた処理結果>から、図19の<コード自動記述ソフトウェアで変数を3個作成する処理を記述させた処理結果>を比較図2と呼ぶ。
図20の<コンパイラの機能を使用して配列を128個作成する処理を記述させて変数に代入する場合のプログラム>の図中に記載しているNLは、変数である。NLには、キャリッジリターンとラインフィードが代入されている。変数Detaに次々に代入処理を行う処理なので、一行ずつ明確に区切って代入する必要があるからである。配列に一行ずつ代入する場合は、図21の<コンパイラの機能を使用して配列を128個作成する処理を記述させて配列に代入する場合のプログラム>には、NLを一切記述していない。配列に代入する場合は、図21の<コンパイラの機能を使用して配列を128個作成する処理を記述させて配列に代入する場合のプログラム>の様にNLを省略できる。配列の要素一個に一行ずつ代入するので一行ずつ明確に区切る必要が無いからである。
図22の<コンパイラの機能を使用してSwitch文を128個記述させて変数に代入する場合のプログラム>と図20の<コンパイラの機能を使用して配列を128個作成する処理を記述させて変数に代入する場合のプログラム>NLの説明を終わる。
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;
ところが、コンパイラの付属のエディターは、「"」を文字として使用する事を禁止しているので「"","""」は、エラーとなってしまう。その為、一旦、「 + , + 」と記述させて「 + "、" + 」となる様に「"」を人為的な入力処理で挿入しなければならなくなるのである。この様に、コンパイラに付属されたプログラムを記述するエディターを使用すると「"""」と「""""」が記述できない使用になっているのが普通である為、エラーとみなされるのである。
変数に代入された数値が幾つの場合と、変数に代入された数値が幾つの場合と、変数に代入された数値が幾つの場合の組合せで処理を分岐すると言うのが、図24の<コード自動記述ソフトウェアで2行3列で分岐する処理を記述させた処理結果>で示すIF文である。
いずれの場合も、行数が指定できるようになっているので少々複雑である。
一つ目の変数に代入された数値と、2つ目の変数に代入された数値との組合せが2列の組合せである。1個1個の変数に代入される数値が0から幾つまでの数値が代入されるのかと言うのが問題になるが、1個1個の変数に代入される数値が0から幾つまでの数値が代入されるのかを指定するのが行数に相当するもので、指定した行数を最大値として、変数の数で組合せを作成する。作成した数値の組合せを変数や、配列に代入された数値が幾つなのかを示す数値の部分に挿入する事で1ブロック分のプログラムを完成させて、組合せ総数分のブロック数分の分岐処理を記述させるのが、本発明のコード自動記述ソフトウェアを記録した記録媒体である。
回答指定名とは、組合せ分岐の1ブロック分の複数の変数や配列に代入された数値の組合せによる分岐処理で使用されている複数の変数や配列に代入されている数値を示す為の数値に、組合せの数値を作成して作成した組合せの数値を使用する為に、作成した組合せの数値に置換する位置を明示する為の目印として任意に指定した文字列の事である。
変数や配列に代入された数値の組合せによる分岐処理の場合、変数や、配列に代入される数値の最小値は、0であり、変数や、配列に代入される数値の最大値を行数と呼び、変数や、配列の個数を列と呼ぶ事とする。
図25の<3行2列の組合せ説明図>は、3行2列の数値の組合せを算出した結果を図にしたのが図25である。一つの変数に0から2までの数値が代入される場合なので、3行となり、変数の数は、2個であるから、2列となる。
図26の<2行4列の組合せ説明図>は、2行3列の数値の組合せを算出した結果を図にしたのが図26である。一つの変数に0から1までの数値が代入される場合なので、2行となり、変数の数は、4個であるから、4列となる。
この様な、変数に代入された数値の組合せで、処理を分岐させるIF文の1ブロック毎に違う変数に代入された数値の組合せとして、数値を記述させて、必要量のブロック分の処理を記述させる事が出来るソフトウェアが無かったので問題であった。問題になる理由は、非常に数多くの書き換えと、多種類の組合せがある為に、人為的な入力処理では、その労力も大きいし、組合せの記述間違いも多くなるからである。
第一の発明は、分岐処理の1ブロック分のプログラム毎に、違う名前の変数や配列を使いたい場合や、分岐処理の1ブロック分のプログラム毎に、違う人間が読める数値や機械語の数値を使いたい場合に、分岐処理の1ブロック分のプログラム毎に、違う名前の変数や配列にする為に、連続番号を変数や配列に連結する事で違う名前に作り替えて記述したり、分岐処理の1ブロック分のプログラムの中に、人間が読める数値や機械語の数値を使いたい箇所を連続番号に置換して記述したりする為に、連続番号に置換する位置に、任意の文字列を指定したプログラムを1ブロック分だけを人為的な入力作業で記述させる事で、任意の数のブロックの分岐処理を自動的に記述させるソフトウェアである。
第一の発明を少し詳しく説明する。
配列名や変数名に数値を使用して、各変数や各配列の名前の数値の部分を連続番号とし、多分岐処理のSwitch文の条件の答えの部分も連続番号の数値を使い、配列や変数の名前の数値と一致させる事で、処理を簡略化させると言う一定のルールを使用して、その変数や配列や条件の答えとなる数値の連続番号を作成して、変数や配列の名前に連続番号の数値を連結させたり、Switch文の条件の答えの部分に変数や配列の名前に使用した連続番号の数値を1ブロック毎に違う連続番号の数値を記述して、大量の分岐処理を記述させる技術である。
第一の発明を少し詳しい説明を終わる。
第二の発明は、複数の変数や配列に代入されている数値の組合せによる分岐処理を1ブロック分だけを人為的な入力作業で記述させる事で、組合せ数分の分岐処理を自動的に記述させるソフトウェアである。
第二の発明を少し詳しく説明する。
変数や配列に代入された数値の組合せとして、変数や配列に代入される数値の最小値を0として、変数や配列に代入される数値の最大数を行数と呼び、変数や配列の個数を列数と呼び、行数と列数の組合せを算出して、1ブロック分のIF文を例として記述させて、記述させた1ブロック分のIF文の条件の部分の数値を記述しなければならない部分に1ブロック毎に違う行数と列数によって算出される数値の組合せの数値を記述して、行数と列数によって算出される数値の組合せの総数分のブロック数のブロックを記述させる技術である。
第二の発明を少し詳しい説明を終わる。
また、回答指定名と、ブロック指定名は、分岐処理の1ブロック分のプログラムの中のどこの位置に記述するものであっても本発明のコード自動記述ソフトウェアを記録した記録媒体である。本発明のコード自動記述ソフトウェアを記録した記録媒体は、回答指定名とブロック指定名を、分岐処理の1ブロック分のプログラムの中のどこの位置であっても記述して、置換する位置を明示する文字列として使用する事が可能だからである。
〔実施例1〕では、分岐処理の1ブロック毎に名前を変えたい配列名や変数名を指定するのに、連続番号の数値以外の共通の名前の文字列の部分を人為的な入力処理で指定する事で特定する技術は、紹介していないが、現在の技術で可能な技術なので本発明のコード自動記述ソフトウェアを記録した記録媒体である事を明記する。
〔実施例3〕で、この「"」をテキストボックスに書き込んで、書き込んだテキストボックスの「"」文字を変数に代入して使用する処理を行っている。
〔実施例3〕では、図30の<実施例3の変数コード自動記述ソフトウェアの操作画面図>の図符号aの禁止文字指定テキストボックスに予め「"」を代入してある。図符号gの変数作成ボタンを図符号Dのマウスでクリックしてソフトウェアの処理を開始させた後の処理の実行中に、「"」を変数に代入して「"」をコンパイラ付属のエディターに記述されたプログラムで使用しているのである。〔実施例3〕では、独立したソフトウェアとして処理するプログラムであるから、コンパイラ付属のエディターは使用していない。〔実施例3〕は、プログラムを記述する際にコンパイラに付属されたエディターを使用して処理工程を記述する為、コンパイラに付属されたエディターに、変数を記述して、記述した変数に「"」を代入する処理を記述しなければならなくなった為に処理出来ないと言う状態になったソフトウェアである。その為、〔実施例3〕では、テキストボックスに、「"」を代入しているのである。しかし、テキストボックスに、「"」を代入しておいて処理工程でテスキトボックスに代入されている「"」をString型の変数に代入して使用する技術は、常識的な技術である。また、「"」に相当する機械語の数値を変数に代入して文字に変換して使用する技術もある。機械語の数値を変数に代入して文字に変換する技術も、常識的な技術である。
「名前の前方や後方や名前の任意の位置に」と記述して説明したが、本発明の実施例で使用したコンパイラでは、配列や変数の先頭の位置に相当する名前の前方に数値を付する事が出来ない使用になっている。本発明の実施例で使用したコンパイラ以外で変数や配列の名前の前方に数値を付けられる場合があるであろうと思われる為、念の為に、「名前の前方」を含む説明を行った事を明記する。
但し、case条件の答えの「条件の答え」の部分に、「"作成した連続番号の数値"」と言う様な記述をさせる技術も本発明の簡単なレパートリーである。case条件の答えの「条件の答え」の部分に、人間が読む事が出来る数値を記述しても問題なくSwitch文による分岐処理が可能である事は言うまでもなく常識であるが、コンパイラの仕様の部分であるのでコンパイラの仕様上、人間が読む事が出来る連続番号を作成して、作成した連続番号の数値をcase(条件の答え)の「条件の答え」の部分に、記述しても問題なくSwitch文による分岐処理が可能である場合のみ本発明の簡単なレパートリーであると明言する。
また、人間が読む事が出来る連続番号を作成して、case条件の答えの「条件の答え」の部分に、「"」で囲まずに作成した連続番号の数値を記述する事で、人間が読む事が出来ない数値として記述させた場合でも、問題なく処理が出来るかどうかは、コンパイラの仕様の問題であるから、Switch文による分岐処理が可能である場合のみ、本発明のコード自動記述ソフトウェアを記録した記録媒体であると明言する。
図6の<コード自動記述ソフトウェアで配列を3個作成する処理を記述させた場合の操作画面図>は、本発明のコード自動記述ソフトウェアを記録した記録媒体で、数値型の配列を3個作成する処理を記述させる操作画面図である。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「IF文やその他」に選択設定して、図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているのでそのまま入力せずに、図符号Hのブロック数指定画面を図符号Dのマウスを使用して図符号Iのブロック数指定ボタンをクリックして3に設定して、図符号Cのキーボードを使用して図6の<コード自動記述ソフトウェアで配列を3個作成する処理を記述させた場合の操作画面図>の様に図符号Jのコード記述テキストボックスに入力して、図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
変数や配列の場合は、名前の前後または、任意の位置にブロック指定名を使用して、「Switch文のcase条件の答え」の条件の答えの部分に必ず、ブロック指定名を使用して記述する事と、他のプログラムの部分に絶対にブロック指定名で使用している文字や文字列を使用しない事を条件として1ブロック分のプログラムを記述したり、IF文の場合は、変数や配列の名前の任意の位置にブロック指定名を使用して1ブロック分のプログラムを記述したりして、図符号Jのコード記述テキストボックスに記述して、図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させて、コード自動記述ソフトウェアの処理によって、ブロック指定名を図符号Jのコード記述テキストボックスに記述したプログラムの中から探し出して、作成された連続番号の数値に、探し出したブロック指定名を置換する事で完成されたプログラムを記述させる本発明のソフトウェアで使用する連続番号の数値に置換する為の目印である。
言い換えると、ブロック指定名とは、1ブロック毎に違う変数や配列の名前にしたい場合に、変数や配列の名前の一部分を1ブロック毎に違う連続番号に変更する事で1ブロック毎に違う変数や配列の名前に変更して使用する事を可能にする為に、変数や配列の名前の任意の位置に、ブロック指定名を目印として記述する事で、ブロック指定名が記述されている位置に、連続番号の数値を置換すると言う処理を行わせる為に目印として使用する文字列であり、「Switch文のcase条件の答え」の条件の答えの部分を1ブロック毎に違う連続番号に置換する目印として使用する文字列の事である。
もっと、簡単に言い換えると、ブロック指定名とは、1ブロック毎に違う名前の変数や、配列を使いたい場合に、連続番号を作成して、作成した連続番号を配列や、変数の名前の任意の位置に連結させて使用する為に、作成した連続番号と置換する位置を示す目印として使用する文字列の事である。
ブロック指定名の説明を終わる。
図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているので、この「J」が図符号Jのコード記述テキストボックスに、人為的な入力処理で記述された文字列の中から、コンピューターと本発明のコード自動記述ソフトウェアを記録した記録媒体が「J」を探し出して数値に変換する事で3個の配列を作成しろと言うプログラムを記述させたのである。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「IF文やその他」に選択設定して、図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているのでそのまま入力せずに、図符号Hのブロック数指定画面を図符号Dのマウスを使用して図符号Iのブロック数指定ボタンをクリックして3に設定して、図符号Cのキーボードを使用して図7の<コード自動記述ソフトウェアで3個の配列を初期化する処理を記述させた操作画面図>の様に、図符号Jのコード記述テキストボックスに入力して、図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているので、この「J」が図符号Jのコード記述テキストボックスに、人為的な入力処理で記述された文字列の中から、コンピューターと本発明のコード自動記述ソフトウェアを記録した記録媒体が「J」を探し出して、連続番号の数値に置換する事で3個の配列を作成しろと言うプログラムを記述させたのである。
ブロック指定名の様に文字や文字列を指定せずに、作成したい変数の名前や配列の名前を指定させて、指定させた変数の名前や配列の名前を探し出して、探し出した変数の名前や配列の名前の前後に連続番号の数値を連結したり、探し出した変数の名前や配列の名前の任意の位置に連続番号の数値を連結すると言う処理を行うソフトウェアを簡単な処理変更1と言う事とする。
〔実施例1〕では、「J」の文字を探し出す事が出来ているので、「J」の文字ではなくて、数個の文字から成る文字列を探し出す事も簡単な処理であるからである。〔実施例1〕の実施例では、単独の文字を探し出す処理を行っているが、実は、複数文字から成る文字列を探し出す事も可能なソフトウェアである事を明記する。また、〔実施例2〕や〔実施例3〕では、図符号Gのブロック指定名テキストボックスが無く、図符号Gのブロック指定名テキストボックスに特定の文字や文字列を入力する事が出来ない状態で、変数の名前や配列の名前の後方に連続番号の数値を連結する処理を行っており、特定の文字を使用しなくても変数の名前や配列の名前の後方に連続番号の数値を連結する処理が可能である事の実証である。これらの処理は、常識的な処理である。
簡単な処理変更1が、本発明の簡単なレパートリーであると言う説明を終わる。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「IF文やその他」に選択設定して、図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているのでそのまま入力せずに、図符号Hのブロック数指定画面を図符号Dのマウスを使用して図符号Iのブロック数指定ボタンをクリックして3に設定して、図符号Cのキーボードを使用して図8の<コード自動記述ソフトウェアでIF文による分岐を3個記述させた操作画面図>の様に、図符号Jのコード記述テキストボックスに、1ブロック分のIF文による分岐処理のプログラムをブロック指定名を必要な部分に使用して入力して、図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
ブロック指定名を「J」と指定していると想定して説明する。図符号Jのコード記述テキストボックスに、人為的な入力処理で記述された文字列の中からブロック指定名の「J」を探し出して、連続番号の数値に置換する事で3個のIF文による分岐処理を作成しろと言うプログラムを記述させたのである。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「Switch文」に選択設定して、図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているのでそのまま入力せずに、図符号Hのブロック数指定画面を図符号Dのマウスを使用して図符号Iのブロック数指定ボタンをクリックして3に設定して、図符号Cのキーボードを使用して図9の<コード自動記述ソフトウェアでSwitch文による分岐を3個記述させた操作画面図>の様に、図符号Jのコード記述テキストボックスに入力して、図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
Switch文では、多分岐処理の「case条件の答え」に続く、「処理するプログラムを記述する」と「break;」までの記述が1ブロックのプログラムであるが、必要な数の分岐処理を記述した後、Switch文を完成させるには、記述させた分岐処理のブロック数分のブロックの前方にSwitch(条件){と、後方にdefault:}を記述させる必要があるので、3個分のブロックを記述させたので、出来上がったSwitch文による分岐処理の3個分のブロックを記述させたcaseの部分の前方に「Switch(条件){」を連結させて、後方に、「break;」に連結して、Switch文を完成させる。
処理を実行し終わった結果が、図18の<コード自動記述ソフトウェアでSwitch文による分岐処理を3個記述させた処理結果>である。図18の<コード自動記述ソフトウェアでSwitch文による分岐処理を3個記述させた処理結果>に示す様に、Switch文による分岐処理を3個記述しろと言うプログラムの記述に成功している。
ブロック指定名を「J」と指定していると想定して説明する。図符号Jのコード記述テキストボックスに、人為的な入力処理で記述された文字列の中からブロック指定名の「J」を探し出して、連続番号の数値に置換する事で3個のSwitch文による分岐処理を作成しろと言うプログラムを記述させたのである。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Eのコード文の選択画面を図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「IF文やその他」を選択設定して、図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているのでそのまま入力せずに、図符号Hのブロック数指定画面を図符号Dのマウスを使用して図符号Iのブロック数指定ボタンをクリックして3に設定して、図符号Cのキーボードを使用して図10の<コード自動記述ソフトウェアで変数を3個作成する処理を記述させた操作画面図>の様に、図符号Jのコード記述テキストボックスに入力して、図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
ブロック指定名を「J」と指定していると想定して説明する。図符号Jのコード記述テキストボックスに、人為的な入力処理で記述された文字列の中からブロック指定名の「J」を探し出して、連続番号の数値に置換する事で変数を3個作成する処理を記述しろと言うプログラムを記述させたのである。
図12の<コード自動記述ソフトウェアで2行2列で分岐する処理を記述させた操作画面図>は、処理を終了した時点でのコード自動記述ソフトウェアの操作画面である。図符号Lのブロック数表示テキストボックスに、4と表示されている。組合せ総数が、4有ったと言う処理結果を示している。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「組合せ分岐」に選択設定する。図符号Eのコード文の選択画面を「組合せ分岐」に選択設定と、操作画面が、図5の<コード自動記述ソフトウェアの組合せ分岐の操作画面図>の様に変化する。図符号Eのコード文の選択画面を「IF文やその他」に選択設定した場合は、図3の<コード自動記述ソフトウェアのIF文やその他の操作画面図>の様な操作画面であり、図符号Eのコード文の選択画面を「Switch文」に選択設定した場合は、図4の<コード自動記述ソフトウェアのSwitch文の操作画面図>の様な操作画面で、「IF文やその他」と、「Switch文」に選択設定した場合は、全く操作画面は、変化しない。
ブロック指定名を「J」と指定していると仮定し、回答指定名を「d」と指定していると仮定して説明する。図符号Jのコード記述テキストボックスに、人為的な入力処理で記述された文字列の中からブロック指定名の「J」を探し出して、ブロック毎に違う連続番号の数値に置換して、組合せ数分の分岐処理を作成しろと言うプログラムを記述させ、更に、図符号Jのコード記述テキストボックスに人為的な入力処理で記述された文字列の中から、回答指定名の「d」を探し出して、ブロック毎に違う数値の組合せの数値に置換して組合せ総数分のブロックを記述させたのである。
〔実施例1〕の問題解決技術を図を使った簡単な説明を終わる。
〔実施例2〕は、図27の<実施例2の配列コード自動記述ソフトウェアの操作画面図>で示す様に〔実施例1〕や〔実施例3〕とは、別個に作成したソフトウェアである。但し、本発明のコード自動記述ソフトウェアを記録した記録媒体の簡単なレパートリーである。色々な入力ボックスを配置した操作画面で人為的な入力処理による入力の手間を極力少なくしたソフトウェアの例である。
以下に、配列サイズ数値指定処理の場合の配列コード自動記述ソフトウェアの説明を行う。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Dのマウスを使用して図符号Uの配列型名指定ボタンをクリックして図符号Tの配列型名指定画面を「int」に選択設定して、図28の<実施例2の配列コード自動記述ソフトウェアで配列を配列サイズ10で3個作成する処理と、配列を配列サイズ10で3個の配列を初期化する処理を記述させた操作画面図>で示す様に、図符号Cのキーボードを使用して、図符号Vの配列名指定テキストボックスに連続番号の数値と連結したい配列名を文字列で入力して、図符号Dのマウスを使用して図符号Xの配列作成個数指定ボタンをクリックする事で図符号Wの配列作成個数指定画面に、個数を3と指定して、図符号Yの配列サイズ指定テキストボックスに、図符号Cのキーボードを使用して配列サイズを数値で入力して、図符号Zの配列作成ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。実施例2では、図符号Cのキーボードを使用して図符号Yの配列サイズ指定テキストボックスに、「10」と言う配列サイズを数値で、入力した。
処理を実行し終わった結果が、図29の<実施例2の配列コード自動記述ソフトウェアで配列を配列サイズ10で3個作成する処理と、、配列を配列サイズ10で3個の配列を初期化する処理を記述させた処理結果>である。図29の<実施例2の配列コード自動記述ソフトウェアで配列を3個作成する処理と、3個の配列を初期化する処理を記述させた処理結果>に示す様に、配列サイズを10で数値型の配列を3個作成しろと言うプログラムと数値型の3個の配列を配列サイズを0で初期化しろと言うプログラムの記述に成功している。
これで、配列サイズ数値指定処理の場合の配列コード自動記述ソフトウェアの説明を終わる。
図符号Dのマウスを使用して図符号Uの配列型名指定ボタンをクリックして図符号Tの配列型名選択画面を「int」に選択設定して、図20の<実施例2の配列コード自動記述ソフトウェアで配列サイズを変数名を代入して配列を3個作成する処理と、3個の配列を配列サイズを変数名を代入して初期化する処理を記述させた操作画面図>で示す様に、図符号Cのキーボードを使用して、図符号Vの配列名指定テキストボックスに、連続番号の数値と連結したい配列名を文字列で入力して、図符号Dのマウスを使用して図符号Xの配列作成個数指定ボタンをクリックする事で図符号Wの配列作成個数指定画面に、個数を3と指定して、図符号Yの配列サイズ指定テキストボックスに、図符号Cのキーボードを使用して配列サイズを任意の変数名を文字列で入力して、図符号Zの配列作成ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。実施例では、図符号Cのキーボードを使用して図符号Yの配列サイズ指定テキストボックスに、配列サイズとしてアルファベットの「a」と言う変数名を入力した。
処理を実行し終わった結果が、図21の<実施例2の配列コード自動記述ソフトウェアで配列サイズを変数名を代入して配列を3個作成する処理と、3個の配列を配列サイズを変数名を代入して初期化する処理を記述させた処理結果>である。図21の<実施例2の配列コード自動記述ソフトウェアで配列サイズを変数名を代入して配列を3個作成する処理と、3個の配列を配列サイズを変数名を代入して初期化する処理を記述させた処理結果>に示す様に、配列サイズにアルファベットのaと言う変数名の変数を指定して数値型の配列を3個作成しろと言うプログラムと数値型の配列を配列サイズをアルファベットのaと言う変数名の変数で3個の配列を初期化しろと言うプログラムの記述に成功している。
これで、配列サイズ変数指定処理の場合の配列コード自動記述ソフトウェアの説明を終わる。
〔実施例2〕の問題解決技術を図を使った簡単な説明を終わる。
〔実施例3〕は、図32<実施例3の変数コード自動記述ソフトウェアの操作画面図>で示す様に〔実施例1〕や、〔実施例2〕とは、別個に作成したソフトウェアである。但し、本発明のコード自動記述ソフトウェアを記録した記録媒体の簡単なレパートリーである。色々な入力ボックスを配置した操作画面で人為的な入力処理による入力の手間を極力少なくしたソフトウェアの例である。
図符号Dのマウスを使用して図符号cの変数型名指定ボタンをクリックして図符号bの変数型名選択画面を「String」に選択設定して、図33の<実施例3の変数コード自動記述ソフトウェアで変数を3個作成する処理を記述させた操作画面>で示す様に、図符号Cのキーボードを使用して図符号dの変数名指定テキストボックスに、連続番号の数値と連結したい任意の変数の名前を文字列で入力して、図符号Dのマウスを使用して図符号fの変数作成個数指定ボタンをクリックする事で図符号eの変数作成個数指定画面に、個数を3個と指定して、図符号aの禁止文字指定テキストボックスには、予め「"」が入力されているので、入力作業をせずにそのままの状態で、図符号Cのキーボードを使用して、図符号gの変数作成ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
この後は、コンピューターと、本発明のコード自動記述ソフトウェアを記録した記録媒体の簡単なレパートリーの実施例3の変数コード自動記述ソフトウェアによる自動処理である。
処理を実行し終わった結果が、図34の<実施例3の変数コード自動記述ソフトウェアで変数を3個作成する処理を記述させた処理結果>である。図34<実施例3の変数コード自動記述ソフトウェアで変数を3個作成する処理を記述させた処理結果>に示す様に、3個のString型の変数を作成しろと言うプログラムの記述に成功している。
〔実施例3〕の問題解決技術を図を使った簡単な説明を終わる。
作成した連続番号の数値に関する補足説明を行う。
作成した連続番号の数値は、変数や配列の名前に連結するのであるが、作成する変数や配列の名前が、一つとして同じ名前が無い状態で作成されなければならないので、作成した連続番号の数値を連結して変数や配列を作成する事で一つとして同じ名前が無い状態で変数や配列を作成する事とした技術である。一つとして同じ名前が無い状態で変数や配列を作成する理由は、1ブロック毎に、違う変数や配列を使用する必要がある為である。
作成した連続番号の数値に関する補足説明を終わる。
本発明の〔実施例1〕と、、〔実施例2〕と、〔実施例3〕では、最初から最後までの処理工程を人間が読む事が出来る文字や、人間が読む事が出来る数値や、人間が読む事が出来ない数値を使用して処理を行っているが、処理工程の一部分を2進数による処理工程に変更したり、全ての処理工程を2進数による処理工程に変更しても、簡単な処理工程の変更程度の技術的な変更なので、本発明の簡単なレパートリーであるから、本発明のコード自動記述ソフトウェアを記録した記録媒体である事を明言する。
また、本発明の〔実施例1〕と、、〔実施例2〕と、〔実施例3〕では、全て、人間が読む事が出来る文字列として処理を行っている。基本的に処理の対象とする文字列を人間が読む事が出来ない機械語の文字コードとして扱う事で処理する事も出来る。本発明のコード自動記述ソフトウェアを記録した記録媒体の処理を基本的に処理の対象とする文字列を人間が読む事が出来ない機械語の文字コードとして扱う事で処理する処理工程に変更したとしても、本発明の簡単なレパートリーであるから、本発明のコード自動記述ソフトウェアを記録した記録媒体である事を明言する。
従って、本発明のコード自動記述ソフトウェアを記録した記録媒体が、ハードウェア資源を使用してどのような工程で処理されるのかを簡単な表現で説明すると、本発明のコード自動記述ソフトウェアを記録した記録媒体に書かれた命令文は、コンピューター本体のCPUによって処理されると表現して説明する事ができるものである。
図2から、図34は、実際とは、多少異なる事を明記する。
また、テキストボックスやリストボックスなどの画面に表示する処理工程は、常識的処理なので処理工程を説明していない。また、数値型の配列や変数に代入された数値をString型の変数や配列に代入する場合、数値を型変換処理しなければならない。しかし、常識的な処理なので型変換処理は、記述していない。また、変数や配列に既にデーターが代入されている状態の変数や配列にデーターを代入する場合は、何も断り書きをしていない場合は、全て、上書きで代入すると言う処理を行っている。変数や配列に既にデーターが代入されている状態の変数や配列にデーターを代入する場合は、初期化と言う処理をしない限り、上書きになるのが常識であるから上書きか否かを記述していない。また、配列や変数に代入できるデーター量をbyteやbitで記述しているが、大きなbyte数や小さなbyte数または、大きなbit数や小さなbit数に変更しても本発明の単純なレパートリーである事を明言する。
また、本発明のコード自動記述ソフトウェアを記録した記録媒体は、繰り返し処理の工程の中で繰り返し処理を行う処理を記述している。繰り返し処理の工程の中で繰り返し処理を行う処理を二重ループ処理と呼び、二重ループの中で繰り返し処理を行うのを三重ループと呼び、三重ループの中で繰り返し処理を行う処理を四重ループと呼び、単純に繰り返し処理を行う場合をシングルループと呼ぶ。
繰り返し処理の工程の中で繰り返し処理を行うと処理速度が低下すると言われており、繰り返し処理の中で繰り返し処理をしないで処理をする事が常識的な処理工程である。繰り返し処理の中で繰り返し処理をしないで処理をする技術は、既に知られている常識的処理工程である。
二重ループや、三重ループや、四重ループにしない様に、処理を分割する事で繰り返し処理の中で繰り返し処理をできるだけしないで処理をする処理工程に書き換える事が出来る。
また、出来るだけ配列を使用しない様にする為に、String型の変数に全てのデーターを代入して処理する事でも繰り返し処理の中で繰り返し処理をしないで済む処理工程に書き換える事が出来る。出来るだけ配列を使用しない様にする為に、String型の変数に全てのデーターを代入すると、処理を高速化する事が出来るのである。出来るだけ配列を使用しない様にする為に、String型の変数に全てのデーターを代入して処理する技術だと、二重ループは、シングルループになるし、三重ループは二重ループになり、四重ループは、三重ループになる。出来るだけ配列を使用しない様にする為に、String型の変数に全てのデーターを代入して処理する技術も、簡単なレパートリーであると明言する。
また、本発明では、繰り返し処理に、インデックスを使用する繰り返し処理を使用している。再帰処理と呼ばれる処理や、goto文と呼ばれる処理や、インデックスを使用しない繰り返し処理を使用しても、本発明の処理と同じ処理が出来ると考えられる。しかし、再帰処理と呼ばれる処理や、goto文と呼ばれる処理や、インデックスを使用しない繰り返し処理で本発明と同じ処理を行うと言う処理は、簡単なレパートリーであるから、全て本発明の符号符号分類検索ソフトウェアを記録した記録媒体である事を明言する。
CSV処理は、人間が読む事が出来ない数値を1byteずつ、String型の人間が読む事が出来る数値に変換して、変換した数値と数値の間に、任意の文字を区切りマークとして挿入する事でString型の変数に全てのデーターを代入すると言う技術である。
CSV処理を使用する事で、人間が読む事が出来ない数値を扱う場合でも、全てのデーターを変数に代入できるので、人間が読む事が出来ない数値でも、出来るだけ配列を使用しないで処理を行う事が出来る。
出来るだけ配列を使用しないで、String型の変数に全てのデーターを代入する事で繰り返し処理の中で繰り返し処理をしないで済む処理工程にする事で、処理を高速化すると言う技術は、既に知られている技術の利用であり、簡単なレパートリーであると言い得る技術である。従って、出来るだけ配列を使用せずに、String型の変数に全てのデーターを代入する事で、繰り返し処理の中で繰り返し処理をしないで済む処理工程に変更したとしても、本発明のコード自動記述ソフトウェアを記録した記録媒体である事を明言する。
図1の<コード自動記述ソフトウェアのフローチャート図>を参照の事。図符号Rの人為的な手動による操作または入力処理工程と図符号Sのコード自動記述ソフトウェアとコンピューターによる自動処理工程には、ステップ番号を右肩位置に付してあるが、その右肩位置に付したステップ番号順に説明する事とする。まず、本発明のコード自動記述ソフトウェアを記録した記録媒体を起動すると、図3の<コード自動記述ソフトウェアのIF文やその他の操作画面図>の様な操作画面が図符号Aのモニターに表示される。
また、図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているが、人為的な入力処理によって、任意の文字を指定する事が出来る。任意の文字にを指定する場合は、図符号Gのブロック指定名テキストボックスに、図符号Cのキーボードを使用して任意の文字を入力する事で任意の文字を指定する事が出来る。
図符号Dのマウスを使用して図符号Fのコード文の選択ボタンをクリックして図符号Eのコード文の選択画面を「IF文やその他」または、「Switch文」または、「組合せ分岐」のいずれかに選択設定する。図符号Eのコード文の選択画面を「IF文やその他」に選択設定すると、図3の<コード自動記述ソフトウェアのIF文やその他の操作画面図>の様な操作画面が図符号Aのモニターに表示される。図符号Eのコード文の選択画面を「Switch文」に選択設定すると、図4の<コード自動記述ソフトウェアのSwitch文の操作画面図>の様な操作画面が図符号Aのモニターに表示される。図符号Eのコード文の選択画面を「組合せ分岐」に選択設定すると、図5の<コード自動記述ソフトウェアの組合せ分岐の操作画面図>の様な操作画面が図符号Aのモニターに表示される。
図符号Eのコード文の選択画面を「IF文やその他」と、「Switch文」に選択設定した場合のステップ100で行う人為的な手動による操作または入力処理は、以下の様な処理を行う。
図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているが、図符号Gのブロック指定名テキストボックスの文字を変更したい場合は、任意の文字に指定変更する事が出来る様になっている。図符号Gのブロック指定名テキストボックスの文字列を変更したい場合は、図符号Cのキーボードを使用して、図符号Gのブロック指定名テキストボックスに任意の文字列を入力する。図符号Hのブロック数指定画面を図符号Dのマウスを使用して図符号Iのブロック数指定ボタンをクリックして任意の数値に設定する。図符号Hのブロック数指定画面に入力された数値をブロック数と呼ぶ。
図符号Eのコード文の選択画面を「Switch文」に選択設定した場合は、「Switch文による分岐処理の1ブロック分のプログラム」を記述する。「Switch文による分岐処理の1ブロック分のプログラム」を記述するには、「case条件の答え」の条件の答えの部分にブロック指定名を必ず記述して、「Switch文による分岐処理の1ブロック分のプログラム」の自動的に記述させたい処理を行うプログラムを図符号Jのコード記述テキストボックスに入力する。
図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
図符号Eのコード文の選択画面を「IF文やその他」と、「Switch文」に選択設定した場合のステップ100で行う人為的な手動による操作または入力処理の説明を終わる。
図符号Gのブロック指定名テキストボックスには、予め「J」が入力されているが、図符号Gのブロック指定名テキストボックスの文字を変更したい場合は、任意の文字に指定変更する事が出来る様になっている。図符号Gのブロック指定名テキストボックスの文字を変更したい場合は、図符号Cのキーボードを使用して、図符号Gのブロック指定名テキストボックスに任意の文字を入力する。図符号Nの行数指定ボタンを図符号Dのマウスでクリックして図符号Mの行数指定画面の行数を任意の数値に設定する。但し、図符号Mの行数指定画面の行数は、最低値が2である。図符号Pの列数指定ボタンを図符号Dのマウスでクリックして図符号Oの列数指定画面の列数を任意の数値に設定する。但し、図符号Oの列数指定画面の列数は、最低値が2である。図符号Qの回答指定名テキストボックスには、予め「d」が入力されているが、変更したい場合は、変更できるようになっている。図符号Qの回答指定名テキストボックスに入力されている文字列を、回答指定名と呼ぶ事とする。図符号Qの回答指定名テキストボックスに入力されている文字列を変更したい場合は、図符号Cのキーボードを使用して、任意の文字列に変更する。
「組合せ分岐の場合のIF文による1ブロック分の処理のプログラム」を記述する。「組合せ分岐の場合のIF文による1ブロック分の処理のプログラム」を記述するには、図符号Oの列数指定画面の列数と同じ数の複数個の変数や配列を記述して、記述した変数や配列の数と同じ数の変数や、配列に代入された数値を示す為の数値を記述する部分に、図符号Qの回答指定名テキストボックスで指定された回答指定名を記述して、変数や、配列と、回答指定名の中間の位置に、「==」などの記号を記述して、「条件が真である場合の処理するプログラムを記述する」部分に処理をするプログラムを記述し、IF文の必要な部分に必要に応じてブロック指定名を記述して、「}」までのIF文による1ブロック分の処理のプログラムを図符号Jのコード記述テキストボックスに入力する。
図符号Kの実行ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合のステップ100で行う人為的な手動による操作または入力処理の説明を終わる。
自動的に記述させたい処理を行うプログラムとは、変数や配列を作成するプログラムを記述させたい場合は、変数や配列を作成するプログラムの変数や配列の1個分の記述であり、配列の初期化をするプログラムを記述させたい場合は、配列を初期化するプログラムの配列の1個分の記述であり、IF文やSwitch文による分岐処理を行うプログラムを記述させたい場合は、IF文やSwitch文による分岐処理を行うプログラムの例としての1ブロック分の処理のプログラムを記述したプログラムであり、1ブロック毎に変えたい変数の名前や配列の名前には、必ず、ブロック指定名を使用して記述する事が必要であり、Switch文による分岐処理を行うプログラムの場合は、必ず、「case 条件の答え」の条件の答えの部分に必ず、ブロック指定名を使用して記述する事が必要であり、組合せ分岐のIF文の1ブロック分の処理のプログラムの場合は、複数個の変数の組合せによる分岐処理を記述したIF文の1ブロック分の処理のプログラムであり、IF文の条件式の部分に必ず、複数個の変数や配列と、変数や配列と同じ数の回答指定名が必要となるプログラムである。
組合せ分岐のIF文の1ブロック分の処理のプログラムの場合を言い換えると、複数個の変数や配列の組合せを回答指定名を使用して分岐処理の分岐条件として記述し、ブロック指定名を指定したい場合は、ブロック指定名を使用したい部分にブロック指定名を記述したプログラムを、例として1ブロック分だけ記述したプログラムである。この1ブロック分のプログラムを図符号Jのコード記述テキストボックスに人為的な入力処理で入力するのである。
また、ブロック指定名は、連続番号の数値に置換する必要のない部分には、絶対に使用してはならない文字列であると言う事を記述条件とする。
また、回答指定名も、作成した数値の組合せの数値に置換する必要のない部分には、絶対に使用してはならない文字列である事を条件とする。
また、「case 条件の答え」の条件の答えの部分に必ず、ブロック指定名を使用して記述する事が必要であると記述しているが、「case」の後には、必ず、連続番号の数値を入れる事になるので、コンピューターとソフトウェアによる自動処理で連続番号の数値を記述させる事も可能である。従って、自動で「case」の後に、連続番号の数値を記述させる場合は、人為的な入力処理でブロック指定名を使って指定する必要はない。この様なコンピューターとソフトウェアによる自動処理で「case」の後に、連続番号の数値を記述させる技術を使用しても、本発明の簡単なレパートリーである事を明記する。
自動的に記述させたい処理を行うプログラムの説明を終わる。
図符号Eのコード文の選択画面を「IF文やその他」に選択設定した場合は、自動的に記述させたいプログラムは、「配列の初期化を行う処理の変数や配列の1個分のプログラム」と「変数や配列を作成する処理の変数や配列の1個分のプログラム」と「IF文による分岐処理の1ブロック分のプログラム」の3種類が記述可能なプログラムである。
図符号Eのコード文の選択画面を「Switch文」に選択設定した場合は、自動的に記述させたいプログラムは、「Switch文による分岐処理の1ブロック分のプログラム」だけが記述可能なプログラムである。
図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合は、自動的に記述させたいプログラムは、「組合せ分岐の場合のIF文による1ブロック分の処理のプログラム」だけが記述可能なプログラムである。
図符号Eのコード文の選択画面の選択についての説明を終わる。
図符号Jのコード記述テキストボックスに入力された自動的に記述させたいプログラムを1byteずつ全て代入できるbyte数でString型の変数を作成する。この変数をコントロール変数と呼ぶ。コントロール変数に図符号Jのコード記述テキストボックスに入力された自動的に記述させたいプログラムの1ブロック分の処理を記述したプログラムを1byteずつ全て代入する。コントロール変数に代入力された文字列を全て1byteずつテキスト形式でファイルに記録して保存する。保存したファイルをコントロール1ファイルと呼ぶ。
コントロール1ファイルには、「組合せ分岐」の場合は、複数個の変数や配列の組合せを回答指定名を使用して分岐処理の分岐条件として記述し、ブロック指定名を指定したい場合は、ブロック指定名を使用したい部分にブロック指定名を記述したプログラムを、例として1ブロック分だけ記述したプログラムを記述したテキスト形式の文字列が記述されている。
また、コントロール1ファイルには、「Switch文」や、「IF文やその他」による分岐処理の場合は、数値を記述する位置にブロック指定名を記述していたり、変数や配列の名前の任意の位置にブロック指定名を使用していたりする分岐処理の1ブロック分のプログラムを例として記述されている。
また、配列や変数を作成したり、初期化する場合は、配列や変数の一個分の作成をしたり、配列や変数の一個分を初期化するプログラムをブロック指定名を変数や配列の名前の任意の位置に記述したプログラムが記述されている。
コントロール1ファイルに記述されている内容の説明を終わる。
16bitの変数を作成する。作成した変数を回数変数と呼ぶ。回数変数に、図符号Hのブロック数指定画面に入力されている任意の分岐の数に相当するブロック数の数値を代入する。String型の100byteの変数を作成する。作成した変数をブロック指定名変数と呼ぶ。ブロック指定名変数に図符号Gのブロック指定名テキストボックスに入力されている任意の文字列を代入する。100byteのString型の変数を作成する。作成した変数を設定変数と呼ぶ。設定変数には、図符号Eのコード文の選択画面で設定された文字列を図符号Eのコード文の選択画面から取得して代入する。図符号Eのコード文の選択画面で設定された文字列とは、「IF文やその他」と、「Switch文」と、「組合せ分岐」と言う設定された設定の文字列の事である。
以下に分岐処理を行う。この選択設定1分岐処理と呼ぶ。
選択設定1分岐で、図符号Eのコード文の選択画面を「IF文やその他」と、「Switch文」に選択設定した場合は、ステップ102に進む。
選択設定1分岐で、図符号Eのコード文の選択画面を「組合せ分岐」に選択設定した場合は、ステップ104に進む。
コントロールライン配列の配列サイズと同じ配列サイズでString型の200byteの配列を作成する。作成した配列を仮データ1配列と呼ぶ。コントロールライン配列の配列サイズを、回数変数に代入されている数値で乗算して算出された数値を配列サイズとして、String型の200byteの配列を作成する。作成した配列を記述文配列と呼ぶ。200byteのString型の変数を作成する。作成した変数を仮ダット1変数と呼ぶ。String型の100byteの変数を作成する。作成した変数を仮ダット2変数と呼ぶ。16bitの変数を作成する。作成した変数をインデックス1変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を作成する。作成した変数をカウント変数と呼ぶ。カウント変数に0を代入する。
プログラム記述繰り返し処理では、以下の処理を一回行う毎にカウント変数に1を加算すると言う処理を行って、カウント変数に代入された数値が回数変数に代入された数値になるまで処理を繰り返し行う。
以下に、繰り返し処理を行う。この繰り返し処理をサーチ繰り返し処理と呼ぶ。
サーチ繰り返し処理では、コントロールライン配列の最初の位置から最後の位置までに代入されている文字列に対して以下の処理を行う。コントロールライン配列のインデックスは、最初は、0である。コントロールライン配列のインデックスを使用してコントロールライン配列のデーターを取得して仮ダット1変数に代入する。
発見分岐処理では、文字列操作関数を使用して、仮ダット1変数に代入された文字列の中にブロック指定名変数に代入された文字列が有る場合と無い場合とに分岐する。
発見分岐処理で、文字列操作関数を使用して、仮ダット1変数に代入された文字列の中にブロック指定名変数に代入された文字列が有る場合は、以下の処理を行う。
カウント変数に代入された数値を仮ダット2変数に上書きで代入する。
文字列操作関数のリプレース関数を使用して、仮ダット1変数に代入されている文字列の中に、複数個のブロック指定名が有る場合は、複数個のブロック指定名を全て仮ダット2変数に代入されている数値に置換して、置換した文字列を仮ダット1変数に上書きで代入する。
発見分岐処理で、文字列操作関数を使用して、仮ダット1変数に代入された文字列の中にブロック指定名変数に代入された文字列が無い場合は、以下の処理を行う。
何も行わない。
発見分岐処理を終わる。
仮データー1配列のインデックスに、コントロールライン配列のインデックスを使用して、仮データー1配列に、仮ダット1変数に代入された文字列を代入する。
コントロールライン配列のインデックスに1を加算してサーチ繰り返し処理の最初に戻って処理を繰り返し行う。コントロールライン配列の全てのデーターに処理を行い終わったら、サーチ繰り返し処理を終わる。
回数記述繰り返し処理では、以下の処理を行う。
仮ダット1配列のインデックスは、最初は、0である。仮ダット1配列のインデックスを使用して、仮データー1配列の文字列を取得して、インデックス1変数に代入されている数値を記述文配列のインデックスとして使用して、取得した仮データー1配列の文字列を記述文配列に代入する。インデックス1変数に、1を加算する。
仮ダット1配列の最後の位置の文字列の処理が終わるまで、回数記述繰り返し処理を繰り返し処理を行い、仮ダット1配列の最後の位置の文字列の処理が終わったら、回数記述繰り返し処理を終わる。
カウント変数に1を加算する。
プログラム記述繰り返し処理の最初の処理に戻って、処理を繰り返して、カウント変数に代入された数値が、回数変数に代入された数値になるまで処理を繰り返して、カウント変数の数値が回数変数に代入された数値になったら、プログラム記述繰り返し処理を終わる。
コントロールライン配列の配列サイズを、記述文配列の配列サイズを取得して、記述文配列と同じ配列サイズに変更して、記述文配列の最初から最後までの位置に代入されている200byteずつの文字列を全て、コントロールライン配列の最初から最後の位置に、コピーする。
文字列操作関数のリプレース関数は、コンパイラに付属された関数である。本発明に使用したコンパイラ以外のコンパイラには、文字列操作関数のリプレース関数と同等の処理を行う文字列操作関数が付属していない場合がある。従って、文字列操作関数のリプレース関数を使用しない処理に書き換えても、コンパイラの仕様の為の違いであって、書き方の違い程度の変更であるから、簡単なレパートリーであると言える。独自に文字列の中から、任意の文字列を検索して、任意の文字列を挿入する処理を行わせても本発明のコード自動記述ソフトウェアを記録した記録媒体であると言う事を明記する。
また、文字列操作関数には、検索対象文字列の中から任意の文字列が有った場合に、任意の文字列の先頭の位置を調べると言う処理を行うインデックスオフ関数と言う関数がある。インデックスオフ関数を使用して文字列の先頭位置を探させて、もしも、検索対象文字列の中に、任意の文字列が無かった場合は、インデックスオフ関数は、-1と言う数値を答えとして返す様に作られている。また、文字列の任意の位置に任意の文字列を層に有すると言う処理を行うインサート関数と言う関数がある。また、文字列の任意の位置から何文字を削除すると言うリムーブ関数と言う関数がある。これらの、文字列操作関数のインデックスオフ関数と、リムーブ関数と、インサート関数を使用しても、リプレース関数を使用したのと同じ処理が出来る。文字列操作関数のインデックスオフ関数と、リムーブ関数と、インサート関数を使用した処理に書き換えても、本発明のコード自動記述ソフトウェアを記録した記録媒体であると言う事を明記する。
文字列操作関数のリプレース関数についての説明を終わる。
プログラム記述繰り返し処理では、プログラム記述繰り返し処理の中で、サーチ繰り返し処理を行い、サーチ繰り返し処理が終わってから、回数記述繰り返し処理を行っている。サーチ繰り返し処理と回数記述繰り返し処理が並列に並んだ処理で、全体としては、二重ループである。
この様に繰り返し処理の中で繰り返し処理を行うと言う様な処理は、繰り返し処理の中で繰り返し処理を行えば行う程、処理速度が著しく低下すると言う現象が確認されている。この処理速度の低下の問題は、繰り返し処理の中で繰り返し処理を行う事を極力行わない事で問題を回避する事が出来る。
繰り返し処理の中で繰り返し処理を行った結果を配列に記録して処理を終了して、再度、記録した配列を繰り返し処理で参照して処理を行う事で三重ループを二重ループに変更する事が出来る。この繰り返し処理の中で繰り返し処理を行った結果を配列に記録して処理を終了して、再度、記録した配列を繰り返し処理で参照して処理を行う事で三重ループを二重ループに変更する処理技術を処理分断回避処理工程と呼ぶ。
第一IF文ループ処理、第二IF文ループ処理と呼ぶ。
また、第一IF文ループ処理、第二IF文ループ処理などの処理技術は、特殊な例である。二重ループをシングルループに変更する為に、繰り返し処理の中で繰り返し処理のインデックスの数値をIF文で制御する事で繰り返し処理を減らす技術をIF文ループ回避処理工程と呼ぶ。IF文ループ回避処理工程は、二重ループをシングルループにする記述であるが、IF文ループ回避処理工程を使用して、三重ループの処理から、二重ループや、シングルループに変更する技術も、第一IF文ループ処理、第二IF文ループ処理を参考にすれば簡単に記述できる処理工程であると思われる。本発明のコード自動記述ソフトウェアを記録した記録媒体では、三重ループになっている箇所が二か所だけ有る。その三重ループになっていると言う二か所か所は、「組合せ分岐」のステップ104の組合せ分岐文作成繰り返し処理の部分と、「組合せ分岐」のステップ104の以降組合せ配列作成繰り返し処理の部分である。
しかし、「組合せ分岐」のステップ104の組合せ分岐文作成繰り返し処理の部分は、第一IF文ループ処理や、第二IF文ループ処理を参考に三重ループを二重ループや、シングルループに変更可能である。「組合せ分岐」のステップ104の組合せ分岐文作成繰り返し処理部分をIF文ループ回避処理工程を使用して二重ループや、シングルループに書き換えても、本発明の簡単なレパートリーであると言い得るので、本発明のコード自動記述ソフトウェアを記録した記録媒体である事を明記する。また、「組合せ分岐」のステップ104の組合せ分岐文作成繰り返し処理処理の部分を処理分断回避処理工程を使用する事で、三重ループを二重ループに変更したとしても、本発明の簡単なレパートリーと言い得る変更であるから、本発明のコード自動記述ソフトウェアを記録した記録媒体である事を明記する。
コントロールライン配列の配列サイズと同じ配列サイズでString型の200byteの配列を作成する。作成した配列を仮データ1配列と呼ぶ。コントロールライン配列の配列サイズを、回数変数に代入されている数値で乗算して算出された数値を配列サイズとして、String型の200byteの配列を作成する。作成した配列を記述文配列と呼ぶ。200byteのString型の変数を作成する。作成した変数を仮ダット1変数と呼ぶ。String型の100byteの変数を作成する。作成した変数を仮ダット2変数と呼ぶ。16bitの変数を作成する。作成した変数をインデックス1変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を作成する。作成した変数をカウント変数と呼ぶ。カウント変数に0を代入する。記述文配列の配列サイズと同じ配列サイズで、String型の200byteの配列を作成する。作成した配列を総ブロック配列と呼ぶ。
仮総ブロック作成繰り返し処理では、コントロールライン配列のインデックスとして、インデックス1変数を使用して、コントロールライン配列に代入されている文字列を、一行分の200byteずつ取得して、総ブロック配列のインデックスは、最初は、0であるとして、総ブロック配列のインデックスを使用して、取得したコントロールライン配列に代入されている一行分の200byteずつの文字列を総ブロック配列に代入する。インデックス1変数に1を加算する。
以下に分岐処理を行う。この分岐処理をブロック数分岐処理と呼ぶ。
ブロック数分岐処理では、以下の処理を行う。
ブロック数分岐処理で、インデックス1変数に代入されている数値が、コントロールライン配列の配列サイズと等しい場合は、インデックス1変数に0を代入する。
ブロック数分岐処理で、インデックス1変数に代入されている数値が、コントロールライン配列の配列サイズと等しくない場合は、何もしない。
ブロック数分岐処理を終わる。
総ブロック配列のインデックスに1を加算して、仮総ブロック作成繰り返し処理の最初に戻って、処理を繰り返し行う。仮ブロック作成繰り返し処理で、総ブロック配列の最初から最後までの位置に、文字列を代入し終わったら、仮総ブロック作成繰り返し処理を終了する。
以下に繰り返し処理を行う。この繰り返し処理を総ブロック指定名置換繰り返し処理と呼ぶ。
総ブロック指定名置換繰り返し処理では、総ブロック配列のインデックスが最初は、0であるとして、総ブロック配列のインデックスを使用して、総ブロック配列の文字列を取得して、取得した文字列を仮ダット1変数に代入する。
以下に分岐処理を行う。この分岐処理を各ブロック名置換分岐処理と呼ぶ。各ブロック名置換分岐処理では、以下の処理を行う。
各ブロック名置換分岐処理で、文字列操作関数を使用して、仮ダット1変数に代入されている文字列の中に、ブロック指定名変数に代入されているブロック指定名の文字列があるかどうかの検査を行った結果、仮ダット1変数に代入されている文字列の中に、ブロック指定名の文字列が有った場合は、以下の処理を行う。
仮ダット2変数に、カウント変数に代入されている数値を代入する。
文字列操作関数のリプレース関数を使用して、仮ダット1変数に代入されている文字列の中に、ブロック指定名が有ったら、複数個あるなら、複数個のブロック指定名を全てを仮ダット2変数に代入された数値に置換して、記述文配列のインデックスとして総ブロック配列のインデックスを使用して、置換し終わった文字列を記述文配列に代入する。
各ブロック名置換分岐処理で、文字列操作関数を使用して、仮ダット1変数に代入されている文字列の中に、ブロック指定名の文字列があるかどうかの検査を行った結果、仮ダット1変数に代入されている文字列の中に、ブロック指定名の文字列が無い場合は、以下の処理を行う。
記述文配列のインデックスとして総ブロック配列のインデックスを使用して、仮ダット1変数に代入されている文字列を記述文配列に代入する。
各ブロック名置換分岐処理を終了する。
以下に分岐処理を行う。この分岐処理をカウント分岐処理と呼ぶ。
カウント分岐処理では、インデックス1変数に代入された数値がコントロールライン配列の配列サイズと等しい場合は、インデックス1変数に0を代入して、カウント変数に、1を加算する。
カウント分岐処理では、インデックス1変数に代入された数値がコントロールライン配列の配列サイズと等しくない場合は、何もしない。
カウント分岐処理を終わる。
総ブロック配列のインデックスに1を加算する。
総ブロック指定名置換繰り返し処理の最初に戻って処理を繰り返し行う。総ブロック配列の最後のデーターの処理がおわったら、総ブロック指定名置換繰り返し処理を終了する。
第一IF文ループ処理の詳しい説明を終わる。
コントロールライン配列の配列サイズと同じ配列サイズでString型の200byteの配列を作成する。作成した配列を仮データ1配列と呼ぶ。コントロールライン配列の配列サイズを、回数変数に代入されている数値で乗算して算出された数値を配列サイズとして、String型の200byteの配列を作成する。作成した配列を記述文配列と呼ぶ。200byteのString型の変数を作成する。作成した変数を仮ダット1変数と呼ぶ。String型の100byteの変数を作成する。作成した変数を仮ダット2変数と呼ぶ。16bitの変数を作成する。作成した変数をインデックス1変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を作成する。作成した変数をカウント変数と呼ぶ。カウント変数に0を代入する。
記述文作成繰り返し処理では、記述文配列のインデックスの最初は、0であるとして、コントロール配列のインデックスとして、インデックス1変数に代入された数値を使用してコントロール配列の文字列を一行分の200byte分の文字列を取得して、仮ダット1変数に代入する。
以下に、分岐処理を行う。この分岐処理をブロック指定名検査分岐処理と呼ぶ。
ブロック指定名検査分岐処理では、以下の処理を行う。
ブロック指定名検査分岐処理で、仮ダット1変数に代入されている文字列の中に、ブロック指定名変数に代入されているブロック指定名の文字列が有る場合は、以下の処理を行う。
仮ダット2変数にカウント変数に代入されている数値を代入する。
文字列操作関数のリプレース関数を使用して、仮ダット1変数に代入されている文字列の中に、複数個のブロック指定名が有る場合は、複数個のブロック指定名を全て仮ダット2変数に代入されている数値に置換して、置換した文字列を仮ダット1変数に代入する。記述文配列のインデックスを使用して、記述文配列に、仮ダット1変数に代入された文字列を代入する。
ブロック指定名検査分岐処理で、仮ダット1変数に代入されている文字列の中に、ブロック指定名変数に代入されているブロック指定名の文字列が無い場合は、以下の処理を行う。
記述文配列のインデックスを使用して、記述文配列に、仮ダット1変数に代入された文字列を代入する。
ブロック指定名検査分岐処理を終わる。
以下に分岐処理を行う。この分岐処理をカウント2分岐処理と呼ぶ。
カウント2分岐処理では、以下の処理を行う。
カウント2分岐処理で、インデックス1変数に代入された数値が、コントロールライン配列の配列サイズと等しい場合は、インデックス1変数に0を代入して、カウント変数に1を加算する。
カウント2分岐処理で、インデックス1変数に代入された数値が、コントロールライン配列の配列サイズと等しくない場合は、何も行わない。
カウント2分岐処理を終わる。
記述文配列のインデックスに1を加算して、記述文作成繰り返し処理の最初に戻って処理を繰り返し行う。記述文配列の最後のデーターを代入し終わったら、記述文作成繰り返し処理を終了する。
第二IF文ループ処理の詳しい説明を終わる。
IF文ループ配列回避処理工程や、変数回避処理工程や、処理分断回避処理工程を使用して、本発明のコード自動記述ソフトウェアを記録した記録媒体のどこの処理であっても、二重の繰り返し処理や、三重の繰り返し処理である部分をシングルループや二重ループに回避した処理に変更したとしても、本発明の簡単なレパートリーであるので、本発明のコード自動記述ソフトウェアを記録した記録媒体であると明言する。
問題回避処理技術の変数回避処理工程と、IF文ループ配列回避処理工程と、処理分断回避処理工程は、本発明の一部分でのみ有効な処理技術ではなく、一般的に広く利用できる技術である事を明言する。
余談であるが、IF文ループ配列回避処理工程は、二重ループよりも、ほんの少し、処理スピードが遅い事を確認した事を記述する事にした。IF文ループ配列回避処理工程は、本発明の簡単なレパートリーとしての記述である。
コントロール変数と同じbyte数でString型の変数を作成する。作成した変数を仮ダット1変数と呼ぶ。コントロール変数と同じbyte数に、回数変数に代入されている数値で掛けたて算出された数値のbyte数でString型の変数を作成する。作成した変数を記述文変数と呼ぶ。仮ダット1変数と同じbyte数でString型の変数を作成する。作成した変数を仮ダット2変数と呼ぶ。16bitの変数を作成する。作成した変数をカウント変数と呼ぶ。カウント変数に0を代入する。
以下に、繰り返し処理を行う。この繰り返し処理をプログラム記述繰り返し処理と呼ぶ。
プログラム記述繰り返し処理では、以下の処理を一回行う毎にカウント変数に1を加算すると言う処理を行って、カウント変数に代入された数値が回数変数に代入された数値になるまで処理を繰り返し行う。
発見分岐処理では、文字列操作関数を使用して、コントロール変数に代入された文字列の中にブロック指定名変数に代入されたブロック指定名の文字列が有るかどうかを検査して、文字列が有る場合と無い場合とに分岐する。
発見分岐処理で、文字列操作関数を使用して、コントロール変数に代入された文字列の中にブロック指定名変数に代入されたブロック指定名の文字列が有るかどうかを検査して、文字列が有る場合は、以下の処理を行う。
仮ダット2変数にカウント変数に代入された数値を代入する。
文字列操作関数のリプレース関数を使用して、コントロール変数の中に、ブロック指定名変数に代入されたブロック指定名の文字列が、複数個あったら、複数個の全てを仮ダット2変数に代入された数値に置換して、仮ダット1変数に代入する。
発見分岐処理で、文字列操作関数を使用して、コントロール変数に代入された文字列の中にブロック指定名変数に代入されたブロック指定名の文字列が有るかどうかを検査して、文字列が無い場合は、何も処理しない。
発見分岐処理を終了する。
プログラム記述繰り返し処理の最初に戻って処理を繰り返して、カウント変数に代入された数値が回数変数に代入された数値になったら、プログラム記述繰り返し処理を終わる。
変数回避処理工程の詳しい処理工程の説明を終わる。
変数回避処理工程は、出来るだけ配列を使用しないで変数を使用する事で処理を高速化する事と、繰り返し処理の中で繰り返し処理をすると言う処理をできるだけ少なくする技術であり、一般的に知られている常識的な技術である。繰り返し処理の中で繰り返し処理をしなければならないような処理をしている場合に利用できる技術である。
また、処理分断回避処理工程も、一般的に知られている常識的技術である。繰り返し処理の中で繰り返し処理を行い、更に、繰り返し処理の中で繰り返し処理を行うと言う様な三重の繰り返し処理を繰り返し処理の中で繰り返し処理を行うと言う、二重の繰り返し処理程度に繰り返し処理を減らす技術である。
プログラム記述繰り返し処理の補足説明を終わる。
選択設定2分岐では、設定変数に代入された文字列が、「Switch文」の場合と「IF文やその他」に分岐する。
選択設定2分岐で、設定変数に代入された文字列が、「Switch文」の場合は、ステップ103の処理に進む。選択設定2分岐で、設定変数に代入された文字列が、「IF文やその他」の場合は、ステップ105に進む。
テップ103は、選択設定分岐で、図符号Eのコード文の選択画面を「Switch文」に選択設定した場合の処理工程である。
コントロールライン配列の配列サイズに4個を加算した数値を配列サイズとして、200byteのString型の配列を作成する。作成した配列をスイッチ配列と呼ぶ。スイッチ配列の最初の位置に「switch (n)」と言うSwitch文の最初の行に必要な文字列を代入する。スイッチ配列の末尾に「{」と言うSwitch文の二行目の行に必要な文字列を代入する。
以下に、繰り返し処理を行う。この繰り返し処理をケース代入繰り返し処理と呼ぶ。
ケース代入繰り返し処理では、コントロールライン配列の最初から最後までの位置に代入された一行分ずつの200byteずつの文字列を順番通りに取得して、スイッチ配列の末尾に一行分ずつの200byteずつ代入する。
ケース代入繰り返し処理を終了する。
ケース配列の末尾に、「default:」と言うSwitch文の最後から二行目の行に必要な文字列を代入する。
ケース配列の末尾に、「}」と言うSwitch文の最後の行に必要な文字列を代入する。
コントロールライン配列の配列サイズをスイッチ配列の配列サイズに変更する。スイッチ配列の最初から最後の位置に代入されている一行ずつの200byteずつの文字列を全て、コントロールライン配列の最初の位置から最後の位置までの位置に、コピーする。
次に、ステップ105に進む。
16bitの変数を作成する。作成した変数を行数指定変数と呼ぶ。
図符号Mの行数指定画面で指定された任意の行数に相当する任意の数値を取得して、取得した任意の数値を行数指定変数に代入する。16bitの変数を作成する。作成した変数を列数指定変数と呼ぶ。図符号Oの列数指定画面で指定された変数や配列の数に相当する列数の数値を取得して、取得した列数の数値を列数指定変数に代入する。100byteのString型の変数を作成する。作成した変数を回答指定名変数と呼ぶ。図符号Qの回答指定名テキストボックスに指定されている任意の文字列を取得して、回答指定名変数に代入する。String型の100byteの変数を作成する。作成した変数をブロック指定名変数と呼ぶ。ブロック指定名変数に図符号Gのブロック指定名テキストボックスに入力されている任意の文字列を代入する。16bitの変数を作成する。作成した変数を組合せ数1変数と呼ぶ。組合せ数1変数に0を代入する。16bitの変数を作成する。作成した変数を組合せ数2変数と呼ぶ。組合せ数2変数に0を代入する。200byteのString型の組合せ変数に代入されている数値を配列サイズとして、配列を作成する。作成した配列を、組合せ配列と呼ぶ。16bitの変数を作成する。作成した変数をインデックス1変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を2個作成する。作成した変数をそれぞれ、A数値変数、B数値変数と呼ぶ。
列数分岐処理では、以下の処理を行う。
列数分岐処理で、列数変数に代入された数値が2の場合は、以下の処理を行う。
行数指定変数に代入されている数値を二乗した数値を算出させて、組合せ変数に代入する。
String型の200byteの組合せ変数に代入された数値を配列サイズとして、配列を作成する。作成した配列を新組合せ1配列と呼ぶ。
2列組合せ配列作成繰り返し処理では、A数値変数に代入された数値が、行数指定変数に代入された数値になるまで、A数値変数に、1を加算して処理を繰り返し行う。
以下に繰り返し処理を行う。以下の繰り返し処理を行数繰り返し処理と呼ぶ。
行数繰り返し処理では、行数指定変数に代入された数値を行数繰り返し処理の繰り返し回数として処理を繰り返し行う。
任意の文字の一文字を記号として決めて、決めた記号を区切り記号と呼ぶ事とする。A数値変数に代入された数値に、区切り記号を連結して文字列を作成して、作成した文字列に、B数値変数に代入された数値を連結して文字列を作成して、作成した文字列を新組合せ1配列のインデックスに、インデックス1変数に代入された数値を使用して、新組合せ1配列に代入する。
B数値変数に、1を加算する。インデックス1変数に、1を加算する。
行数繰り返し処理の最初に戻って処理を繰り返し行う。
行数指定変数に代入されている数値まで行数繰り返し処理を行ったら、行数繰り返し処理を終了する。
B数値変数に、0を代入する。
2列組合せ配列作成繰り返し処理の最初に戻って、2列組合せ配列作成繰り返し処理を繰り返し行う。A数値変数に代入された数値が、行数指定変数に代入された数値になったら、2列組合せ配列作成繰り返し処理を終了する。
組合せ配列の配列サイズを新組合せ1配列の配列サイズと同じサイズに変更して、新組合せ1配列に代入されている200byteずつの全ての文字列を、組合せ配列の最初から最後までの位置に、コピーする。
区切り記号の説明を行う。
〔実施例1〕では、任意の文字を区切り記号とする場合、「,」を記号として使用した。
区切り記号の説明を終わる。
行数指定変数に代入されている数値を二乗して算出した数値を、組合せ変数に代入する。
組合せ変数に代入された数値に行数指定変数に代入された数値を乗算した数値を組合せ数2変数に代入する。
String型の200byteの組合せ2変数に代入された数値を配列サイズとして、配列を作成する。作成した配列を新組合せ2配列と呼ぶ。
新組合せ2配列の配列サイズと同じ配列サイズに、組合せ配列の配列サイズを変更して、新組合せ2配列の最初から最後の位置に代入されている200byteずつの文字列を、組合せ配列の最初から最後までの位置に、全て、コピーする。
以下に、繰り返し処理を行う。以下の繰り返し処理を、以降組合せ配列作成繰り返し処理と呼ぶ。
以降組合せ配列作成繰り返し処理では、列数指定変数に代入されている数値から2を減算した回数以下の処理を繰り返し行う。
以降組合せ配列作成2繰り返し処理では、組合せ数2変数に代入された数値を配列サイズとして、新組合せ2配列の配列サイズを変更する。A数値変数に、0を代入する。B数値変数に、0を代入する。インデックス1変数に、0を代入する。16bitの変数を作成して、作成した変数を旧組合せ数変数と呼ぶ。組合せ数配列の配列サイズを取得して、旧組合せ数変数に代入する。
以下に繰り返し処理を行う。以下の繰り返し処理を組合せ3繰り返し処理と呼ぶ。
組合せ3繰り返し処理では、A数値変数に代入された数値が、旧組合せ数変数に代入された数値になるまで処理を繰り返し行う。
以下に繰り返し処理を行う。以下の繰り返し処理を行数2繰り返し処理と呼ぶ。
行数2繰り返し処理では、行数指定変数に代入された数値を行数2繰り返し処理の繰り返し処理回数の上限値として処理を繰り返し行う。
行数2繰り返し処理では、A数値変数に代入された数値に、区切り記号を連結して文字列を作成して、作成した文字列に、B数値変数に代入された数値を連結して文字列を作成して、新組合せ2配列のインデックスに、インデックス1変数に代入された数値を使用して、新組合せ2配列に作成した文字列を代入する。
B数値変数に、1を加算する。インデックス1変数に、1を加算する。
行数2繰り返し処理の最初に戻って処理を繰り返し行う。
行数指定変数に代入されている数値を繰り返し処理回数上限値として使用して、繰り返し処理回数が行数指定変数に代入されている数値まで行数2繰り返し処理を行ったら、行数2繰り返し処理を終了する。
B数値変数に、0を代入する。
組合せ3繰り返し処理の最初に戻って処理を繰り返し行う。A数値変数に代入された数値が、旧組合せ数変数に代入された数値になるまで処理を繰り返し終わったら、組合せ3繰り返し処理を終わる。
新組合せ2配列の配列サイズを、組合せ配列の配列サイズを変更する。新組合せ2配列の最初から最後までの位置に代入された200byteずつの文字列を、全て、組合せ配列の最初から最後の位置までに、コピーする。
組合せ数2変数に、組合せ配列の配列サイズを取得して代入する。
組合せ数2変数に代入された数値を、行数指定変数に代入された数値で、乗算した数値を算出して、算出した数値を組合せ数2変数に代入する。
以降組合せ配列作成繰り返し処理を、列数指定変数に代入されている数値から2を減算した回数処理を繰り返し終わったら、以降組合せ配列作成繰り返し処理を終了する。
列数分岐処理を終了する。
図符号Lのブロック数表示テキストボックスに、組合せ数2変数に代入された数値を表示する。
200byteのString型の配列サイズが、コントロールライン配列の配列サイズと同じ配列サイズの配列を作成する。作成した配列を仮プログラム配列と呼ぶ。200byteのString型のコントロールライン配列の配列サイズの数値を、組合せ数2変数に代入された数値で乗算した数値を、配列サイズとして配列を作成する。作成した配列をプログラム配列と呼ぶ。String型の200byteの変数を2個作成する。作成した2個の変数をそれぞれ、仮データ1変数、仮データ2変数と呼ぶ。インデックス1変数に0を代入する。16bitの変数を作成する。作成した変数をカウント2変数と呼ぶ。16bitの変数を作成する。作成した変数をインデックス2変数と呼ぶ。
組合せ分岐文作成繰り返し処理では、カウント2変数に代入されている数値が、組合せ数2変数に代入されている数値になるまで、以下の処理を繰り返し行う。
以下に繰り返し処理を行う。以下の繰り返し処理をプログラム配列作成繰り返し処理と呼ぶ。
コントロールライン配列のインデックスが、最初は、0であるとして、コントロールライン配列のインデックスを使用して、コントロールライン配列の200byteの文字列を、仮データ1変数に代入する。
回答分岐処理で、仮データ1変数に代入された200byteの文字列の中に、回答指定名変数に代入された回答指定名に指定された文字列が有った場合は、以下の処理を行う。
16bitの変数を2個作成する。作成した2個の変数をそれぞれ、インデックス3変数、インデックス4変数と呼ぶ。インデックス3変数に、0を代入する。インデックス4変数に、0を代入する。8bitの変数を作成する。作成した変数をアンサー変数と呼ぶ。アンサー変数に、0を代入する。組合せ配列に代入されたデーターを区切り記号で分割したデーターを全て代入できる配列サイズでString型の4byteの配列を作成する。作成した配列を区切り分割配列と呼ぶ。文字列操作関数のスピリット関数と言う、任意の文字で文字列を分割する処理を行う関数を使用して、組合せ配列のインデックスとして、インデックス2変数に代入された数値を使用して、組合せ配列に代入された文字列を取得して、取得した文字列を区切り記号で分割して、分割した文字列を区切り分割配列に代入する。
16bitの変数を作成する。作成した変数を回答文字数変数と呼ぶ。回答指定名変数に代入された回答指定名に指定された文字列の文字数を取得して、回答文字数変数に代入する。
回答置換繰り返し処理では、アンサー変数に代入された数値が、0以外の数値になるまで処理を繰り返し行う。
文字列操作関数のインデックスオフ関数を使用して、仮データ1変数に代入されている文字列の中に有る、回答指定名変数に代入された回答指定名に指定された文字列の先頭位置を取得して、インデックス3変数に代入する。
以下に分岐処理を行う。この分岐処理を最終回答分岐処理と呼ぶ。
最終回答分岐処理で、インデックス3変数に代入された数値が0より大きい数値の場合は、以下の処理を行う。
文字列操作関数のリムーブ関数を使用して、インデックス3変数に代入された数値を仮データ1変数に代入されている文字列の先頭位置として使用して、回答文字数変数に代入された数値を文字数として使用して、文字数分の文字列を、仮データ1変数に代入された文字列から削除した文字列を作成して、作成した文字列を仮データ1変数に代入する。
インデックス4変数に、1を加算する。
以下に分岐処理を行う。この分岐処理をアンサー代入分岐と呼ぶ。
アンサー代入分岐で、インデックス3変数に代入された数値が-1と等しい場合は、アンサー変数に、1を代入する。
アンサー代入分岐で、インデックス3変数に代入された数値が-1と等しくない場合は、何も行わない。
アンサー代入分岐を終わる。
最終回答分岐処理を終了する。
回答置換繰り返し処理の最初に戻って、アンサー変数に代入された数値が、0以外の数値になるまで回答置換繰り返し処理を繰り返して、アンサー変数に代入された数値が-1になったら、回答置換繰り返し処理を終わる。
回答分岐処理で、仮データ1変数に代入された200byteの文字列の中に回答指定名変数に代入された回答指定名に指定された文字列が無かった場合は、何も処理を行なわない。
回答分岐処理を終了する。
ブロック分岐処理で、仮データ1変数に代入された文字列の中に、ブロック指定名変数に代入されたブロック指定名の文字列が有る場合は、以下の処理を行う。
カウント2変数に代入されている数値を仮データ2変数に代入する。
仮データ1変数に代入された文字列の中に有ったブロック指定名変数に代入されたブロック指定名の文字列をカウント2変数に代入された数値に置換した文字列を作成して、仮データ1変数に代入する。
ブロック分岐処理で、仮データ1変数に代入された文字列の中に、ブロック指定名変数に代入されたブロック指定名の文字列が無い場合は、何も行わない。
ブロック分岐処理を終了する。
仮ブロック配列のインデックスに、コントロールライン配列のインデックスを使用して、仮データ1変数に代入されている文字列を仮ブロック配列に代入する。
組合せ記述繰り返し処理で、仮プログラム配列のインデックスは、最初は、0であるとして、仮プログラム配列の文字列を取得して、プログラム配列のインデックスに、インデックス1変数に代入された数値を使用して、取得した文字列をプログラム配列に代入する。
インデックス1変数に、1を加算する。
仮プログラム配列のインデックスに、1を加算して、組合せ記述繰り返し処理の最初に戻って、処理を繰り返し行う。仮プログラム配列の最後の位置に代入された文字列まで、全ての処理が終わったら、組合せ記述繰り返し処理を終了する。
カウント2変数に、1を加算する。
カウント2変数に代入された数値が、組合せ2変数の数値になるまで、組合せ分岐文作成繰り返し処理を繰り返し行う。カウント2変数に代入された数値が、組合せ2変数の数値になったら、組合せ分岐文作成繰り返し処理を終わる。
コントロールライン配列の配列サイズをプログラム配列の配列サイズに変更する。
プログラム配列の最初から最後までの位置に代入されている文字列を一行分ずつの200byteずつ取得して、コントロールライン配列の最初の位置から最後の位置までにコピーする。
次にステップ105に進む。
コントロールライン配列の最初の位置から最後の位置に代入されている文字列を一行分ずつの200byteずつテキスト形式でファイルに保存する。
〔実施例1〕の詳しい処理工程の説明を終わる。
〔実施例2〕の詳しい処理工程の説明を行う。
人為的な入力処理によって、ソフトウェアの操作画面に以下の処理を行う。
図符号Tの配列型名選択画面は、図符号Uの配列型名指定ボタンを図符号Dのマウスを使用してクリックする事で、「int」と、「String」のどちらかを選択指定できる様になっている。また、図符号Rの作成個数指定ボタンを図符号Dのマウスを使用してクリックする事で図符号Qの作成個数指定画面に、個数を指定する事が出来る様になっている。
図符号Dのマウスを使用して図符号Uの配列型名指定ボタンをクリックして図符号Tの配列型名選択画面を「int」または、「String」に選択設定して、図符号Pの配列名指定テキストボックスに、図18の<実施例2の配列コード自動記述ソフトウェアで配列を3個作成する処理と、3個の配列を初期化する処理を記述させた操作画面図>で示す様に、図符号Cのキーボードを使用して入力して、図符号Dのマウスを使用して図符号Rの作成個数指定ボタンをクリックする事で図符号Qの作成個数指定画面に、個数を指定して、図符号Sの配列サイズ指定テキストボックスに、図符号Cのキーボードを使用して配列サイズを数値で入力して、図符号Tの配列作成ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
100byteのString型の変数を作成する。作成した変数を配列名前変数と呼ぶ。配列名前変数に、図符号Pの配列名指定テキストボックスに入力された文字列を代入する。6byteのString型の変数を作成する。作成した変数を型名変数と呼ぶ。型名変数に、図符号Tの配列型名選択画面で選択設定された文字列を代入する。16bitの変数を作成する。作成した変数を個数変数と呼ぶ。個数変数に図符号Qの作成個数指定画面で指定された個数を示す数値を代入する。100byteのString型の変数を作成する。作成した変数を配列名変数と呼ぶ。配列名変数に、図符号Pの配列名指定テキストボックスに入力された文字列を代入する。100byteのString型の変数を作成する。作成した変数を配列サイズ変数と呼ぶ。配列サイズ変数に図符号Sの配列サイズ指定テキストボックスに代入された数値または、文字や文字列を代入する。16bitの変数を作成する。作成した変数をサイズ変数と呼ぶ。サイズ変数に0を代入する。100byteの変数を作成する。作成した変数を文字数値変数と呼ぶ。図符号Sの配列サイズ指定テキストボックスに代入された数値または、文字や文字列を取得して、取得した文字を文字コードに変換して文字数値変数に代入する。
以下に、分岐処理を行う。この分岐処理を数配配列作成分岐と呼ぶ。
数配配列作成分岐では、文字数値変数に代入された文字コードが65未満か65以上かで分岐する。
ASCIIコードでは、64までが、数値とその他の文字コードで、65以上がアルファベットやその他の文字列となっているので、65を基準に分岐すれば数値とアルファベットのどちらが入力されているのかが判断できると言う事になるのである。
以下の数配配列初期化分岐でも、文字数値変数に代入された文字コードが65未満か65以上かで分岐する処理が行われるが、同じ様に、代入された文字コードが数値なのかアルファベットなのかを判断させる分岐処理である。
数配配列作成分岐の説明を終わる。
以下に、繰り返し処理を行う。この繰り返し処理を数値配列作成繰り返し処理と呼ぶ。
数値配列作成繰り返し処理では、以下の繰り返し処理を行う。
数値配列作成繰り返し処理では、型名変数に代入された文字列に「[]」の文字を連結して文字列を作成して、作成した文字列に、配列名変数に代入された文字列を連結して文字列を作成して、作成した文字列に、インデックス変数に代入された数値を連結して文字列を作成して、作成した文字列に、「 = new 」と言う文字列を連結して文字列を作成して、作成した文字列に、型名変数を連結して文字列を作成して、作成した文字列に、「[」を連結して文字列を作成して、作成した文字列に、配列サイズ変数に代入された数値を連結して文字列を作成して、作成した文字列に、「];」と言う文字列を連結して文字列を作成して、アレイ1配列のインデックスとしてインデックス変数に代入された数値を使用してアレイ1配列に作成した文字列を代入する。
インデックス変数に1を加算して、数値配列作成繰り返し処理の最初に戻って処理を繰り返し行う。インデックス変数に代入された数値が個数変数に代入された数値になったら、数値配列作成繰り返し処理を終了する。
以下に、繰り返し処理を行う。この繰り返し処理を変数配列作成繰り返し処理と呼ぶ。
変数配列作成繰り返し処理では、型名変数に代入された文字列に「[]」の文字を連結して文字列を作成して、作成した文字列に、配列名変数に代入された文字列を連結して文字列を作成して、作成した文字列に、インデックス変数に代入された数値を連結して文字列を作成して、作成した文字列に、「 = new 」と言う文字列を連結して文字列を作成して、作成した文字列に、型名変数を連結して文字列を作成して、作成した文字列に、「[」を連結して文字列を作成して、作成した文字列に、配列サイズ変数に代入された文字または、文字列を連結して文字列を作成して、作成した文字列に、「];」と言う文字列を連結して文字列を作成して、アレイ1配列のインデックスとしてインデックス変数に代入された数値を使用してアレイ1配列に作成した文字列を代入する。
インデックス変数に1を加算して、変数配列作成繰り返し処理の最初に戻って処理を繰り返し行う。インデックス変数に代入された数値が個数変数に代入された数値になったら、変数配列作成繰り返し処理を終了する。
数配配列作成分岐を終わる。
以下に、分岐処理を行う。この分岐処理を数配配列初期化分岐処理と呼ぶ。
数配配列初期化分岐では、文字数値変数に代入された文字コードが65未満か65以上かで分岐する。
数配配列初期化分岐では、文字数値変数に代入された文字コードが65未満の場合は、以下の処理を行う。
以下に、繰り返し処理を行う。この繰り返し処理を数値配列初期化繰り返し処理と呼ぶ。
数値配列初期化繰り返し処理では、以下の繰り返し処理を行う。
数値配列初期化繰り返し処理では、配列名変数に代入された文字列に、インデックス変数に代入された数値を連結して文字列を作成して、作成した文字列に、「 = new 」と言う文字列を連結して文字列を作成して、作成した文字列に、型名変数を連結して文字列を作成して、作成した文字列に、「[」を連結して文字列を作成して、作成した文字列に、サイズ変数に代入された数値を連結して文字列を作成して、作成した文字列に、「];」と言う文字列を連結して文字列を作成して、アレイ2配列のインデックスとしてインデックス変数に代入された数値を使用してアレイ2配列に作成した文字列を代入する。
インデックス変数に1を加算して、数値配列初期化繰り返し処理の最初に戻って処理を繰り返し行う。インデックス変数に代入された数値が個数変数に代入された数値になったら、数値配列初期化繰り返し処理を終了する。
以下に、繰り返し処理を行う。この繰り返し処理を変数配列初期化繰り返し処理と呼ぶ。
変数配列初期化繰り返し処理では、以下の繰り返し処理を行う。
変数配列初期化繰り返し処理では、配列名変数に代入された文字列に、インデックス変数に代入された数値を連結して文字列を作成して、作成した文字列に、「 = new 」と言う文字列を連結して文字列を作成して、作成した文字列に、型名変数を連結して文字列を作成して、作成した文字列に、「[」を連結して文字列を作成して、作成した文字列に、配列サイズ変数に代入された文字または、文字列を連結して文字列を作成して、作成した文字列に、「];」と言う文字列を連結して文字列を作成して、アレイ2配列のインデックスとしてインデックス変数に代入された数値を使用してアレイ2配列に作成した文字列を代入する。
インデックス変数に1を加算して、変数配列初期化繰り返し処理の最初に戻って処理を繰り返し行う。インデックス変数に代入された数値が個数変数に代入された数値になったら、変数配列初期化繰り返し処理を終了する。
数配配列初期化分岐処理を終わる。
文章1変数に、「配列作成」と言う文字列を代入する。文章2変数に、「配列初期化」と言う文字列を代入する。
ファイルを作成して、テキスト形式で文章1変数に代入された100byteの文字列を全て書き込む。
アレイ1配列の最初から最後の位置までに代入されている全ての文字列を一行分ずつの200byteずつ、テスキト形式でファイルの末尾に書き込む。テキスト形式で文章2変数に代入された100byteの文字列を全て書き込む。アレイ2配列の最初から最後の位置までに代入されている全ての文字列を一行分ずつの200byteずつ、テキスト形式でファイルの末尾に書き込む。
ファイルを保存して、処理を終了する。
サイズ変数の説明を行う。
サイズ変数に0を代入して使用しているが、配列サイズ変数に代入された数値を使用して文字列を作成しても、本発明のコード自動記述ソフトウェアを記録した記録媒体の簡単なレパートリーである事を明言する。
サイズ変数の説明を終わる。
〔実施例2〕の詳しい処理工程の説明を終わる。
〔実施例3〕の詳しい処理工程の説明を行う。
図符号Dのマウスを使用して図符号Wの型名指定ボタンをクリックして図符号Vの型名選択画面を「String」または、「int」に選択設定して、図23の<実施例3の変数コード自動記述ソフトウェアで変数を3個作成する処理を記述させた操作画面>で示す様に、図符号Cのキーボードを使用して図符号Xの変数名指定テキストボックスに、連続番号の数値と連結したい任意の変数の名前を文字列で入力して、図符号Dのマウスを使用して図符号Zの作成個数指定ボタンをクリックする事で図符号Yの作成個数指定画面に、個数を指定して、図符号Uの禁止文字指定テキストボックスには、予め「"」が入力されているが、図符号Uの禁止文字指定テキストボックスで、指定されている文字を別の文字に変更する場合は、図符号Cのキーボードを使用して図符号Uの禁止文字指定テキストボックスに文字を入力する事で、別の文字を禁止文字指定する。図符号Cのキーボードを使用して、図符号aの変数作成ボタンを図符号Dのマウスを使用してクリックして処理を開始させる。
100byteのString型の変数を作成する。作成した変数を型名変数と呼ぶ。型名変数に、図符号Vの型名指定画面に指定された文字列を代入する。100byteのString型の変数を作成する。作成した変数を変数名前変数と呼ぶ。16bitの変数を作成する。作成した変数を個数変数と呼ぶ。個数変数に、図符号Yの作成個数指定画面で指定された数値を代入する。1byteのString型で変数を作成する。作成した変数を禁止変数と呼ぶ。禁止変数に図符号Uの禁止文字指定テキストボックスで、指定されている文字を代入する。配列サイズが個数変数に代入された数値を配列サイズとして、200byteのString型の配列を作成する。作成した変数を作成変数配列と呼ぶ。
数配作成分岐処理では、以下の分岐処理を行う。
図符号Vの型名指定画面の指定が、「String」の場合と「int」の場合とで分岐処理を行う。
図符号Vの型名指定画面の指定が、「String」の場合は、繰り返し処理を行う。
この繰り返し処理を文字配列作成繰り返し処理と呼ぶ。
文字配列作成繰り返し処理では、型名変数に代入された文字列に、「 」の文字、すなわち、スペースの文字を連結した文字列を作成して、作成した文字列に変数名前変数に代入された文字列を連結して文字列を作成して、作成した文字列にインデックスの数値を連結した文字列を作成して、作成した文字列に「 = 0;」と言う文字列を連結して文字列を作成して、作成変数配列のインデックスを使用して、作成した文字列を作成変数配列に代入する。
作成変数配列のインデックスに1を加算して、文字配列作成繰り返し処理の最初に戻って処理を繰り返し行う。作成変数配列のインデックスが、個数変数に代入された数値になったら、文字配列作成繰り返し処理を終了する。
この繰り返し処理を数値配列作成繰り返し処理と呼ぶ。
数値配列作成繰り返し処理では、型名変数に代入された文字列に、「 」の文字、すなわち、スペースの文字を連結した文字列を作成して、作成した文字列に変数名前変数に代入された文字列を連結して文字列を作成して、作成した文字列にインデックスの数値を連結した文字列を作成して、作成した文字列に「 = 」と言う文字列を連結して文字列を作成して、作成した文字列に禁止変数に代入された文字を連結して文字列を作成して、作成した文字列に再度、禁止変数に代入された文字を連結して文字列を作成して、作成した文字列に「;」の文字を連結して文字列を作成して、作成変数配列のインデックスを使用して、作成した文字列を作成変数配列に代入する。
数配作成分岐処理を終了する。
作成変数配列に代入された全ての文字列を一行分ずつの200byteずつ、テキスト形式でファイルに書き込んで保存する。
〔実施例3〕の詳しい処理工程の説明を終わる。
B:コンピューター本体
C:キーボード
D:マウス
E:コード文の選択画面
F:コード文の選択ボタン
G:ブロック指定名テキストボックス
H:ブロック数指定画面
I:ブロック数指定ボタン
J:コード記述テキストボックス
K:実行ボタン
L:ブロック数表示テキストボックス
M:行数指定画面
N:行数指定ボタン
O:列数指定画面
P:列数指定ボタン
Q:回答指定名テキストボックス
R:人為的な手動による操作または入力処理工程
S:コード自動記述ソフトウェアとコンピューターによる自動処理工程
T:配列型名指定画面
U:配列型名指定ボタン
V:配列名指定テキストボックス
W:配列作成個数指定画面
X:配列作成個数指定ボタン
Y:配列サイズ指定テキストボックス
Z:配列作成ボタン
a:禁止文字指定テキストボックス
b:変数型名選択画面
c:変数型名指定ボタン
d:変数名指定テキストボックス
e:変数作成個数指定画面
f:変数作成個数指定ボタン
g:変数作成ボタン
Claims (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行分ずつ全て代入できる配列サイズでString型の200byteの配列を作成し、作成した配列をコントロールライン配列と呼ぶ事とし、コントロール1ファイルをテキスト形式で開いて、1行分ずつの200byteずつ、全てのデーターをコントロールライン配列の末尾に代入する事とし、16bitの変数を作成し、作成した変数を回数変数と呼ぶ事とし、回数変数に、任意の分岐の数に相当するブロック数の数値を代入する事とし、String型の100byteの変数を作成し、作成した変数をブロック指定名変数と呼ぶ事とし、ブロック指定名変数に任意の文字列を代入する事とし、100byteのString型の変数を作成し、コントロールライン配列の配列サイズと同じ配列サイズでString型の200byteの配列を作成し、作成した配列を仮データ1配列と呼ぶ事とし、コントロールライン配列の配列サイズを、回数変数に代入されている数値で乗算して算出された数値を配列サイズとして、String型の200byteの配列を作成し、作成した配列を記述文配列と呼ぶ事とし、200byteのString型の変数を作成し、作成した変数を仮ダット1変数と呼ぶ事とし、String型の100byteの変数を作成し、作成した変数を仮ダット2変数と呼ぶ事とし、16bitの変数を作成し、作成した変数をインデックス1変数と呼ぶ事とし、インデックス1変数に0を代入する事とし、16bitの変数を作成し、作成した変数をカウント変数と呼ぶ事とし、カウント変数に0を代入する事とし、
以下に、繰り返し処理を行う事とし、この繰り返し処理をプログラム記述繰り返し処理と呼ぶ事とし、プログラム記述繰り返し処理では、以下の処理を一回行う毎にカウント変数に1を加算すると言う処理を行って、カウント変数に代入された数値が回数変数に代入された数値になるまで処理を繰り返し行う事とし、以下に、繰り返し処理を行う。この繰り返し処理をサーチ繰り返し処理と呼ぶ事とし、サーチ繰り返し処理では、コントロールライン配列の最初の位置から最後の位置までに代入されている文字列に対して以下の処理を行う事とし、コントロールライン配列のインデックスは、最初は、0である事とし、コントロールライン配列のインデックスを使用してコントロールライン配列のデーターを取得して仮ダット1変数に代入する事とし、以下に、分岐処理を行う事とし、この分岐処理を発見分岐処理と呼ぶ事とし、発見分岐処理では、文字列操作関数を使用して、仮ダット1変数に代入された文字列の中にブロック指定名変数に代入された文字列が有る場合と無い場合とに分岐する事とし、発見分岐処理で、文字列操作関数を使用して、仮ダット1変数に代入された文字列の中にブロック指定名変数に代入された文字列が有る場合は、以下の処理を行う事とし、カウント変数に代入された数値を仮ダット2変数に上書きで代入する事とし、文字列操作関数のリプレース関数を使用して、仮ダット1変数に代入されている文字列の中に、複数個のブロック指定名が有る場合は、複数個のブロック指定名を全て仮ダット2変数に代入されている数値に置換して、置換した文字列を仮ダット1変数に上書きで代入する事とし、発見分岐処理で、文字列操作関数を使用して、仮ダット1変数に代入された文字列の中にブロック指定名変数に代入された文字列が無い場合は、何も行わない事とし、発見分岐処理を終わる事とし、仮データー1配列のインデックスに、コントロールライン配列のインデックスを使用して、仮データー1配列に、仮ダット1変数に代入された文字列を代入する事とし、コントロールライン配列のインデックスに1を加算してサーチ繰り返し処理の最初に戻って処理を繰り返し行う事とし、コントロールライン配列の全てのデーターに処理を行い終わったら、サーチ繰り返し処理を終わる事とし、以下に、繰り返し処理を行う事とし、この繰り返し処理を回数記述繰り返し処理と呼ぶ事とし、回数記述繰り返し処理では、以下の処理を行う事とし、仮ダット1配列のインデックスは、最初は、0である事とし、仮ダット1配列のインデックスを使用して、仮データー1配列の文字列を取得して、インデックス1変数に代入されている数値を記述文配列のインデックスとして使用して、取得した仮データー1配列の文字列を記述文配列に代入する事とし、インデックス1変数に、1を加算する事とし、仮ダット1配列の最後の位置の文字列の処理が終わるまで、回数記述繰り返し処理を繰り返し処理を行い、仮ダット1配列の最後の位置の文字列の処理が終わったら、回数記述繰り返し処理を終わる事とし、カウント変数に1を加算する事とし、プログラム記述繰り返し処理の最初の処理に戻って、処理を繰り返して、カウント変数に代入された数値が、回数変数に代入された数値になるまで処理を繰り返して、カウント変数の数値が回数変数に代入された数値になったら、プログラム記述繰り返し処理を終わる事とし、
コントロールライン配列の配列サイズを、記述文配列の配列サイズを取得して、記述文配列と同じ配列サイズに変更して、記述文配列の最初から最後までの位置に代入されている200byteずつの文字列を全て、コントロールライン配列の最初から最後の位置に、コピーし、コントロールライン配列の最初の位置から最後の位置に代入されている文字列を一行分ずつの200byteずつテキスト形式でファイルに保存すると言う処理を行う事で、プログラムを自動で記述させるソフトウェアを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017181055A JP6318327B1 (ja) | 2017-09-21 | 2017-09-21 | コード自動記述ソフトウェアを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017181055A JP6318327B1 (ja) | 2017-09-21 | 2017-09-21 | コード自動記述ソフトウェアを記録した記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6318327B1 true JP6318327B1 (ja) | 2018-04-25 |
JP2019057130A JP2019057130A (ja) | 2019-04-11 |
Family
ID=62069327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017181055A Active JP6318327B1 (ja) | 2017-09-21 | 2017-09-21 | コード自動記述ソフトウェアを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6318327B1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005025263A (ja) * | 2003-06-30 | 2005-01-27 | Toshiba Tec Corp | プログラミング支援装置及び方法並びにプログラミング支援プログラム |
JP2008059135A (ja) * | 2006-08-30 | 2008-03-13 | Nec Biglobe Ltd | ソフトウェア自動生成装置、ソフトウェア自動生成方法、およびプログラム |
-
2017
- 2017-09-21 JP JP2017181055A patent/JP6318327B1/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005025263A (ja) * | 2003-06-30 | 2005-01-27 | Toshiba Tec Corp | プログラミング支援装置及び方法並びにプログラミング支援プログラム |
JP2008059135A (ja) * | 2006-08-30 | 2008-03-13 | Nec Biglobe Ltd | ソフトウェア自動生成装置、ソフトウェア自動生成方法、およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2019057130A (ja) | 2019-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8473914B2 (en) | Semi-automated update of application test scripts | |
US8190613B2 (en) | System, method and program for creating index for database | |
US20050005239A1 (en) | System and method for automatic insertion of cross references in a document | |
JP3871832B2 (ja) | データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体 | |
JP6343081B1 (ja) | 符号符号分類検索ソフトウェアを記録した記録媒体 | |
JP6318327B1 (ja) | コード自動記述ソフトウェアを記録した記録媒体 | |
US11036478B2 (en) | Automated determination of transformation objects | |
JP6347023B1 (ja) | コード自動記述2ソフトウェアを記録した記録媒体 | |
JPH01191270A (ja) | 図形編集装置 | |
JPH0936747A (ja) | データ圧縮方法及びデータ圧縮装置 | |
McGrath | R for Data Analysis in easy steps: Covers R Programming essentials | |
CN111045991B (zh) | 一种基于命令行模式快速打开文件的实现方法 | |
CN114676155A (zh) | 代码提示信息的确定方法、数据集的确定方法及电子设备 | |
JPH0652222A (ja) | 情報検索処理装置 | |
JP6096970B1 (ja) | マルメ圧縮ソフトウェアを記録した記録媒体 | |
JPH11232149A (ja) | ファイル比較処理方法,装置およびファイルの比較処理プログラムを記憶した媒体 | |
Kalkhanda | Learning AWK Programming: A fast, and simple cutting-edge utility for text-processing on the Unix-like environment | |
JP2010020643A (ja) | データファイル操作システム、そのプログラム | |
US20230375999A1 (en) | Program creation assistance system and computer readable medium | |
WO2024014354A1 (ja) | 制御プログラム編集装置、編集方法、およびプログラム | |
JP2722684B2 (ja) | ファイルシステムの検索装置 | |
Rothwell et al. | Pattern Matching | |
JP5581894B2 (ja) | データ処理プログラム自動生成システム | |
JPH11161666A (ja) | ドキュメントデータ検索方法および装置、並びにドキュメント編集装置 | |
JP4944266B1 (ja) | 2分割文字検索ソフトウェア |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180302 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180302 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180309 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6318327 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |