
解説クラスCopyClear(21)
解説クラスCopyClear(21)
【マルチ・ソーティング】系の関数の解説を行います!
この講義は解説『解説クラスCopyClear(20)』
の続きです!
2025年1月26初講(初稿)
(4-14-115)関数「int SortMult(int sw,
TypeArray* pkey,TypeArray* pa,
int n,int offset,int l)) {・・・}」
/************************************************************************/
/***** SORTコマンド:実行部:先頭配列をキーとして以降をそれに *****/
/***** 従って変更する場合 *****/
/***** SORT,sw,key_array{,array} *****/
/************************************************************************/
int CopyClear::SortMult(
int sw, // 0:昇順、1:降順
TypeArray *pkey, // 配列情報:キー
TypeArray *pa, // 配列情報:従属
int n, // 配列個数 1..100
int offset, // 先頭からのOffset
int l // 配列のサイズ
){
short *bufix; // 添字部バッファー
int a; // 配列のAdr
int w; // 配列の処理単位
int sti; // ステータス情報
bufix = (short*)malloc( // Bufferを確保
sizeof(short) * ( l + 10 ) ); //
if( bufix == 0 ){ // 確保失敗ならば
return( STI_MEM ); // 左記を返す
} //
a = pkey->adr; // Adrを取出し
w = pkey->w; // 処理単位を取出し
if( w == 1 ){ // BYTEDataの場合
sti = SortIndex( sw, // 左記でキー部Sort
(BYTE*)a + offset, bufix, l ); //
}else if( w == 2 ){ // 2BYTEDataの場合
sti = SortIndex( sw, // 左記でキー部Sort
(short*)a + offset, bufix, l ); //
}else if( w == 4 ){ // 4BYTEDataの場合
sti = SortIndex( sw, // 左記でキー部Sort
(long*)a + offset, bufix, l ); //
}else if( w == 101 ){ // 単精度実数の場合
sti = SortIndex( sw, // 左記でキー部Sort
(float*)a + offset, bufix, l ); //
}else{ // 倍精度実数の場合
sti = SortIndex( sw, // 左記でキー部Sort
(double*)a + offset, bufix, l ); //
} //
if( sti == END_STI ){ // 上記正常ならば
sti = SortCopy( pa, n, bufix, offset, l ); // 添字使用で並替え
} //
free( bufix ); // Bufixを解放し
return( sti ); // ステータスを返す
}
☆備考☆この関数はファイル「CopyClear100」に存在!
★注意★この関数は「public:」属性ですのでライブラリの
外から使用可能です!
(A)関数「SortMult()」の【関数名】
「Sort」は、勿論、英単語「sort」、カタカナ語ソート・
ソーティング、詰り並び替えです、
「Mult」は、カタカナ語「マルチ」、「多数」とかの意味で
です!キーデータ配列で並べ替えインデックス配列を作成し
そのインデックス配列で従属する配列を並び替える関数です
★備考★32767個数とサイズに制約が有る関数です!
制約が有るのは、通常使用するデータサイズとしては十分な
大きさなので処理速度を考えての制約です!そして
(4-14-116)関数「SortMultLarge()」とコノ制約
を外した関数≪但し、処理速度は遅く成る≫も用意していま
す!
(B)関数「int SortMult()」の【返値】
中で作業用のバッファ領域を動的に確保します!その確保が
成功したら、処理し、最後に正常終了として「END_STI」を
辺値として返し、メモリ確保に失敗したら
エラーコードとして「STI_MEM」を辺値として返します!
そして内部でサブルーチン関数「 SortIndex()」や
サブルーチン関数「 SortCopy()」でエラーが発生したら、
そのエラーコードを関数辺値とし返します!
(C)関数「SortMult()」の【仮引数】
int CopyClear::SortMult(
int sw, // 0:昇順、1:降順
TypeArray *pkey, // 配列情報:キー
TypeArray *pa, // 配列情報:従属
int n, // 配列個数 1..100
int offset, // 先頭からのOffset
int l // 配列のサイズ
){
「int sw,」は、「0:昇順、1:降順」と昇順/降順切り替え
「TypeArray* pkey,」は、キーデータ情報配列
「TypeArray* pa,」は、従属してソートされる配列群
「int n,」は、従属配列の個数
「int offset,」は、先頭からのオフセット
「int l」は、ソート配列自体のサイズ(長さ)
(D)関数「SortMult()」の【アルゴリズム】
){
short *bufix; // 添字部バッファー
int a; // 配列のAdr
int w; // 配列の処理単位
int sti; // ステータス情報
bufix = (short*)malloc( // Bufferを確保
sizeof(short) * ( l + 10 ) ); //
if( bufix == 0 ){ // 確保失敗ならば
return( STI_MEM ); // 左記を返す
} //
a = pkey->adr; // Adrを取出し
w = pkey->w; // 処理単位を取出し
if( w == 1 ){ // BYTEDataの場合
sti = SortIndex( sw, // 左記でキー部Sort
(BYTE*)a + offset, bufix, l ); //
}else if( w == 2 ){ // 2BYTEDataの場合
sti = SortIndex( sw, // 左記でキー部Sort
(short*)a + offset, bufix, l ); //
}else if( w == 4 ){ // 4BYTEDataの場合
sti = SortIndex( sw, // 左記でキー部Sort
(long*)a + offset, bufix, l ); //
}else if( w == 101 ){ // 単精度実数の場合
sti = SortIndex( sw, // 左記でキー部Sort
(float*)a + offset, bufix, l ); //
}else{ // 倍精度実数の場合
sti = SortIndex( sw, // 左記でキー部Sort
(double*)a + offset, bufix, l ); //
} //
if( sti == END_STI ){ // 上記正常ならば
sti = SortCopy( pa, n, bufix, offset, l ); // 添字使用で並替え
} //
free( bufix ); // Bufixを解放し
return( sti ); // ステータスを返す
}
(D-1)ローカル変数
){
short *bufix; // 添字部バッファー
int a; // 配列のAdr
int w; // 配列の処理単位
int sti; // ステータス情報
「short* bufix;」は、内部で確保するインデックス配列
「int a;」は、「TypeArray型」のアドレスを示すメンバー
変数を内部で使い易い様に取り出し使用する一時置き場
「int w;」は、同じくデータ型を示すメンバー変数を内部で
使い易い様に取り出し使用する一時置き場
「int sti;」は、ステータス情報(エラーコード等で
解説『エラーコード等各種単純定義』で説明)の一時置き場
(D-2)アルゴリズムコード
bufix = (short*)malloc( // Bufferを確保
sizeof(short) * ( l + 10 ) ); //
if( bufix == 0 ){ // 確保失敗ならば
return( STI_MEM ); // 左記を返す
} //
a = pkey->adr; // Adrを取出し
w = pkey->w; // 処理単位を取出し
if( w == 1 ){ // BYTEDataの場合
sti = SortIndex( sw, // 左記でキー部Sort
(BYTE*)a + offset, bufix, l ); //
}else if( w == 2 ){ // 2BYTEDataの場合
sti = SortIndex( sw, // 左記でキー部Sort
(short*)a + offset, bufix, l ); //
}else if( w == 4 ){ // 4BYTEDataの場合
sti = SortIndex( sw, // 左記でキー部Sort
(long*)a + offset, bufix, l ); //
}else if( w == 101 ){ // 単精度実数の場合
sti = SortIndex( sw, // 左記でキー部Sort
(float*)a + offset, bufix, l ); //
}else{ // 倍精度実数の場合
sti = SortIndex( sw, // 左記でキー部Sort
(double*)a + offset, bufix, l ); //
} //
if( sti == END_STI ){ // 上記正常ならば
sti = SortCopy( pa, n, bufix, offset, l ); // 添字使用で並替え
} //
free( bufix ); // Bufixを解放し
return( sti ); // ステータスを返す
}
「bufix=(short*)malloc(sizeof(short)(l+10));」は、
内部で動的に使用するインデックス配列のメモリ確保
「if(bufix==0){return(STI_MEM);}」は、メモリ確保失敗時
は、辺値「STI_MEM」を関数の値とし返し関数終了!
「a=pkey->adr;w=pkey->w;」は、「TypeArray型」のアドレ
スを示す及びデータ型を示すメンバー変数を内部で使い易い
様に取り出し使用する一時置き場にセット!
「if(w==1){sti=SortIndex(sw,(BYTE)a+offset,bufix,l);
}」は、データ型が1バイト(unsigned charと8ビット
符号無し)の処理でインデックス配列を作成!
「else if(w==2){sti=SortIndex(sw,(short*)a+offset,
bufix,l);}」は、データ型が2バイト(short型と16
ビット符号付き)の処理でインデックス配列を作成!
「else if(w==4){sti=SortIndex(sw,(long*)a+offset,
bufix,l);}」は、データ型が4バイト(long型と32
ビット符号付き)の処理でインデックス配列を作成!
「else if(w==101){sti=SortIndex(sw,(float*)a+offset,
bufix,l);}」は、データ型が単精度浮動小数(4バイト
実数型)の処理でインデックス配列を作成!
「else{sti=SortIndex(sw,(double*)a+offset,bufix,l);}
」は、データ型が倍精度浮動小数(8バイト実数型)の処理
でインデックス配列を作成!
「if(sti==END_STI){sti=SortCopy(pa,n,bufix,offset,l);
}」は、サブルーチン関数「SortIndex()」が正常に動作
した事≪詰り、bufixに並べ替えインデックス配列を作成で
≫を確認し、サブルーチン関数「SortCopy()」で連動する
仮引数「TypeArray* pa,」の配列を並べ替えます!
「free(bufix);」は、確保したメモリをシステムに返す!
「return(sti);」は、サブルーチン関数「SortCopy()」の
辺値を関数の辺値とし返し関数終了!
(4-14-116)関数「int SortMultLarge(int sw,
TypeArray* pkey,
TypeArray* pa,int n,int offset,
int l)) {・・・}」
/************************************************************************/
/***** SORTコマンド:実行部:先頭配列をキーとして以降をそれに *****/
/***** 従って変更する場合★添字部=32ビット★ *****/
/***** SORT,sw,key_array{,array} *****/
/************************************************************************/
int CopyClear::SortMultLarge(
int sw, // 0:昇順、1:降順
TypeArray *pkey, // 配列情報:キー
TypeArray *pa, // 配列情報:従属
int n, // 配列個数 1..100
int offset, // 先頭からのOffset
int l // 配列のサイズ
){
int *bufix; // 添字部バッファー
int a; // 配列のAdr
int w; // 配列の処理単位
int sti; // ステータス情報
bufix = (int*)malloc( sizeof(int) * ( l + 10 ) ); // Bufferを確保
if( bufix == 0 ){ // 確保失敗ならば
return( STI_MEM ); // 左記を返す
} //
a = pkey->adr; // Adrを取出し
w = pkey->w; // 処理単位を取出し
if( w == 1 ){ // BYTEDataの場合
sti = SortIndex( sw, (BYTE*)a + offset, bufix, l ); // 左記でキー部Sort
}else if( w == 2 ){ // 2BYTEDataの場合
sti = SortIndex( sw, (short*)a + offset, bufix, l ); // 左記でキー部Sort
}else if( w == 4 ){ // 4BYTEDataの場合
sti = SortIndex( sw, (long*)a + offset, bufix, l ); // 左記でキー部Sort
}else if( w == 101 ){ // 単精度実数の場合
sti = SortIndex( sw, (float*)a + offset, bufix, l ); // 左記でキー部Sort
}else{ // 倍精度実数の場合
sti = SortIndex( sw, (double*)a + offset, bufix, l ); // 左記でキー部Sort
} //
if( sti == END_STI ){ // 上記正常ならば
sti = SortCopy( pa, n, bufix, offset, l ); // 添字使用で並替え
} //
free( bufix ); // Bufixを解放し
return( sti ); // ステータスを返す
}
☆備考☆この関数はファイル「CopyClear120」に存在!
★注意★この関数は「public:」属性ですのでライブラリの
外から使用可能です!
(A)関数「SortMultLarge()」の【関数名】
「Sort」は、勿論、英単語「sort」、カタカナ語ソート・
ソーティング、詰り並び替えです、
「Mult」は、カタカナ語「マルチ」、「多数」とかの意味で
です!キーデータ配列で並べ替えインデックス配列を作成し
そのインデックス配列で従属する配列を並び替える関数です
「Large」は、広いとか大きいの意味でココでは、配列サイ
ズが大きい≪インデックス配列を作成するので直前に説明し
た(4-14-115)が≫が32767個数と制約が有る
がコノ関数は、処理時間は掛かるが制約が無い関数です!
(B)関数「int SortMultLarge()」の【返値】
中で作業用のバッファ領域を動的に確保します!その確保が
成功したら、処理し、最後に正常終了として「END_STI」を
辺値として返し、メモリ確保に失敗したら
エラーコードとして「STI_MEM」を辺値として返します!
そして内部でサブルーチン関数「 SortIndex()」や
サブルーチン関数「 SortCopy()」でエラーが発生したら、
そのエラーコードを関数辺値とし返します!
(C)関数「SortMultLarge()」の【仮引数】
int CopyClear::SortMultLarge(
int sw, // 0:昇順、1:降順
TypeArray *pkey, // 配列情報:キー
TypeArray *pa, // 配列情報:従属
int n, // 配列個数 1..100
int offset, // 先頭からのOffset
int l // 配列のサイズ
){
「int sw,」は、「0:昇順、1:降順」と昇順/降順切り替え
「TypeArray* pkey,」は、キーデータ情報配列
「TypeArray* pa,」は、従属してソートされる配列群
「int n,」は、従属配列の個数
「int offset,」は、先頭からのオフセット
「int l」は、ソート配列自体のサイズ(長さ)
(D)関数「SortMultLarge()」の【アルゴリズム】
){
int *bufix; // 添字部バッファー
int a; // 配列のAdr
int w; // 配列の処理単位
int sti; // ステータス情報
bufix = (int*)malloc( sizeof(int) * ( l + 10 ) ); // Bufferを確保
if( bufix == 0 ){ // 確保失敗ならば
return( STI_MEM ); // 左記を返す
} //
a = pkey->adr; // Adrを取出し
w = pkey->w; // 処理単位を取出し
if( w == 1 ){ // BYTEDataの場合
sti = SortIndex( sw, (BYTE*)a + offset, bufix, l ); // 左記でキー部Sort
}else if( w == 2 ){ // 2BYTEDataの場合
sti = SortIndex( sw, (short*)a + offset, bufix, l ); // 左記でキー部Sort
}else if( w == 4 ){ // 4BYTEDataの場合
sti = SortIndex( sw, (long*)a + offset, bufix, l ); // 左記でキー部Sort
}else if( w == 101 ){ // 単精度実数の場合
sti = SortIndex( sw, (float*)a + offset, bufix, l ); // 左記でキー部Sort
}else{ // 倍精度実数の場合
sti = SortIndex( sw, (double*)a + offset, bufix, l ); // 左記でキー部Sort
} //
if( sti == END_STI ){ // 上記正常ならば
sti = SortCopy( pa, n, bufix, offset, l ); // 添字使用で並替え
} //
free( bufix ); // Bufixを解放し
return( sti ); // ステータスを返す
}
(D-1)ローカル変数
){
int *bufix; // 添字部バッファー
int a; // 配列のAdr
int w; // 配列の処理単位
int sti; // ステータス情報
「int* bufix;」は、内部で確保するインデックス配列
「int a;」は、「TypeArray型」のアドレスを示すメンバー
変数を内部で使い易い様に取り出し使用する一時置き場
「int w;」は、同じくデータ型を示すメンバー変数を内部で
使い易い様に取り出し使用する一時置き場
「int sti;」は、ステータス情報(エラーコード等で
解説『エラーコード等各種単純定義』で説明)の一時置き場
(D-2)アルゴリズムコード
bufix = (int*)malloc( sizeof(int) * ( l + 10 ) ); // Bufferを確保
if( bufix == 0 ){ // 確保失敗ならば
return( STI_MEM ); // 左記を返す
} //
a = pkey->adr; // Adrを取出し
w = pkey->w; // 処理単位を取出し
if( w == 1 ){ // BYTEDataの場合
sti = SortIndex( sw, (BYTE*)a + offset, bufix, l ); // 左記でキー部Sort
}else if( w == 2 ){ // 2BYTEDataの場合
sti = SortIndex( sw, (short*)a + offset, bufix, l ); // 左記でキー部Sort
}else if( w == 4 ){ // 4BYTEDataの場合
sti = SortIndex( sw, (long*)a + offset, bufix, l ); // 左記でキー部Sort
}else if( w == 101 ){ // 単精度実数の場合
sti = SortIndex( sw, (float*)a + offset, bufix, l ); // 左記でキー部Sort
}else{ // 倍精度実数の場合
sti = SortIndex( sw, (double*)a + offset, bufix, l ); // 左記でキー部Sort
} //
if( sti == END_STI ){ // 上記正常ならば
sti = SortCopy( pa, n, bufix, offset, l ); // 添字使用で並替え
} //
free( bufix ); // Bufixを解放し
return( sti ); // ステータスを返す
}
「bufix=(int*)malloc(sizeof(int)(l+10));」は、
内部で動的に使用するインデックス配列のメモリ確保
「if(bufix==0){return(STI_MEM);}」は、メモリ確保失敗時
は、辺値「STI_MEM」を関数の値とし返し関数終了!
「a=pkey->adr;w=pkey->w;」は、「TypeArray型」のアドレ
スを示す及びデータ型を示すメンバー変数を内部で使い易い
様に取り出し使用する一時置き場にセット!
「if(w==1){sti=SortIndex(sw,(BYTE)a+offset,bufix,l);
}」は、データ型が1バイト(unsigned charと8ビット
符号無し)の処理でインデックス配列を作成!
「else if(w==2){sti=SortIndex(sw,(short*)a+offset,
bufix,l);}」は、データ型が2バイト(short型と16
ビット符号付き)の処理でインデックス配列を作成!
「else if(w==4){sti=SortIndex(sw,(long*)a+offset,
bufix,l);}」は、データ型が4バイト(long型と32
ビット符号付き)の処理でインデックス配列を作成!
「else if(w==101){sti=SortIndex(sw,(float*)a+offset,
bufix,l);}」は、データ型が単精度浮動小数(4バイト
実数型)の処理でインデックス配列を作成!
「else{sti=SortIndex(sw,(double*)a+offset,bufix,l);}
」は、データ型が倍精度浮動小数(8バイト実数型)の処理
でインデックス配列を作成!
「if(sti==END_STI){sti=SortCopy(pa,n,bufix,offset,l);
}」は、サブルーチン関数「SortIndex()」が正常に動作
した事≪詰り、bufixに並べ替えインデックス配列を作成で
≫を確認し、サブルーチン関数「SortCopy()」で連動する
仮引数「TypeArray* pa,」の配列を並べ替えます!
「free(bufix);」は、確保したメモリをシステムに返す!
「return(sti);」は、サブルーチン関数「SortCopy()」の
辺値を関数の辺値とし返し関数終了!
(4-14-117)関数「int MultSorting(BYTE* ptrsw,
TypeArray* pa,int n) {・・・}」
/************************************************************************/
/***** マルチSORTコマンド :実行部*****/
/***** MULT_SORT,swtbl,a1{,an} *****/
/************************************************************************/
int CopyClear::MultSorting(
BYTE *ptrsw, // 0:昇順、1:降順
TypeArray *pa, // 配列1~100の情報
int n // 配列の個数 1..100
){
int l; // 配列のサイズ
l = CheckArraySort( pa, n ); // 配列の検査
if( l < 0 ){ // Sizeが負ならErrSt
return( l ); // atusと見なしてそ
} // の値を返す
return( mult_sort( ptrsw, pa, n, 0, l ) ); // ソート基本部
}
☆備考☆この関数はファイル「CopyClear110」に存在!
★注意★この関数は「public:」属性ですのでライブラリの
外から使用可能です!
(A)関数「MultSorting()」の【関数名】
「Mult」は、カタカナ語「マルチ」、「多数」とかの意味で
です!
「Sorting」は、勿論、英単語「sort」、カタカナ語ソート・
ソーティング、詰り並び替えです、ワザワザ前で解説した
関数「SortMult()」と単語が似て別の関数にして居るかと
言うと意味が微妙に異なるからです!
関数「SortMult()」は、キー配列に従属して全ての配列が
並び替えますが、この関数「MultSorting()」は、
複合ソート≪最初のキー配列で同一データが続いた時に
次は、2番目の配列をキー配列としてソートと次から次へ
複合してデータを並び替えます≫
(B)関数「int MultSorting()」の【返値】
内部でサブルーチン関数「SortMult()」や
サブルーチン関数「 mult_sort()」でエラーが発生したら、
そのエラーコードを関数辺値とし返します!
(C)関数「MultSorting()」の【仮引数】
int CopyClear::MultSorting(
BYTE *ptrsw, // 0:昇順、1:降順
TypeArray *pa, // 配列1~100の情報
int n // 配列の個数 1..100
){
「BYTE* ptrsw,」は、「0:昇順、1:降順」と昇順/降順切り替
え情報の配列をポインタとして表現★備考★
次の「TypeArray pa,」個別に昇順/降順切り替え可能です
「TypeArray* pa,」は、ソートされる配列群
「int n」は、配列の個数
(D)関数「MultSorting()」の【アルゴリズム】
){
int l; // 配列のサイズ
l = CheckArraySort( pa, n ); // 配列の検査
if( l < 0 ){ // Sizeが負ならErrSt
return( l ); // atusと見なしてそ
} // の値を返す
return( mult_sort( ptrsw, pa, n, 0, l ) ); // ソート基本部
}
(D-1)ローカル変数
){
int l; // 配列のサイズ
「int l;」は、有効な配列のサイズ(長さ)
(D-2)アルゴリズムコード
l = CheckArraySort( pa, n ); // 配列の検査
if( l < 0 ){ // Sizeが負ならErrSt
return( l ); // atusと見なしてそ
} // の値を返す
return( mult_sort( ptrsw, pa, n, 0, l ) ); // ソート基本部
}
「l=CheckArraySort(pa,n);」は、サブルーチン
関数「CheckArraySort()」で複数の配列情報から有効な配列
サイズを算出!
「if(l<0){return(l);}」は、関数「CheckArraySort()」で
エラーコード≪不の数がエラーコードで0以上が正常に個数
算出≫が出たら、その値を関数の辺値とし返し関数終了!
「return(mult_sort(ptrsw,pa,n,0,l));」は、サブルーチン
関数「mult_sort()」で処理し、この関数の辺値を関数の
辺値とし返し関数終了!
(4-14-118)関数「int MultSortingShort(BYTE* ptrsw,
short** pa,int n) {・・・}」
/************************************************************************/
/***** マルチSORT:short単位配列群 :実行部*****/
/************************************************************************/
int CopyClear::MultSortingShort(
BYTE *ptrsw, // 0:昇順、1:降順
short **pa, // 配列1~100の情報
int n, // 配列の個数 1..100
int l // 配列のサイズ
){
return( mult_sort_short( ptrsw, pa, n, 0, l ) ); // 左記でソート基本部実行
}
☆備考☆この関数はファイル「CopyClear110」に存在!
★注意★この関数は「public:」属性ですのでライブラリの
外から使用可能です!
(A)関数「MultSortingShort()」の【関数名】
「Mult」は、カタカナ語「マルチ」、「多数」とかの意味で
です!
「Sorting」は、勿論、英単語「sort」、カタカナ語ソート・
ソーティング、詰り並び替えです、ワザワザ前で解説した
関数「SortMult()」と単語が似て別の関数にして居るかと
言うと意味が微妙に異なるからです!
関数「SortMult()」は、キー配列に従属して全ての配列が
並び替えますが、この関数「MultSortingShort()」は、
複合ソート≪最初のキー配列で同一データが続いた時に
次は、2番目の配列をキー配列としてソートと次から次へ
複合してデータを並び替えます≫
「Short」は、「short型」の配列に特化した関数です!
(B)関数「int MultSortingShort()」の【返値】
内部でサブルーチン関数「SortMult()」や
サブルーチン関数「 mult_sort_short()」でエラーが発生
したら、そのエラーコードを関数辺値とし返します!
(C)関数「MultSortingShort()」の【仮引数】
int CopyClear::MultSortingShort(
BYTE *ptrsw, // 0:昇順、1:降順
short **pa, // 配列1~100の情報
int n, // 配列の個数 1..100
int l // 配列のサイズ
){
「BYTE* ptrsw,」は、「0:昇順、1:降順」と昇順/降順切り替
え情報の配列をポインタとして表現★備考★
次の「short** pa,」個別に昇順/降順切り替え可能です!
「short** pa,」は、ソートされる配列群
「int n」は、配列の個数
「int l」は、有効な配列のサイズ(長さ)
(D)関数「MultSortingShort()」の【アルゴリズム】
){
return( mult_sort_short( ptrsw, pa, n, 0, l ) ); // 左記でソート基本部実行
}
「return(mult_sort_short(ptrsw,pa,n,0,l));」は、
サブルーチン関数「mult_sort_short()」で処理し、
この関数の辺値を関数の辺値とし返し関数終了!
本日(1月26)の講義はココまでとします!
流石に新しくと言うか大量の解説なので受講者の皆様が、
消化出来る為にココまでとします!
次から、【座標組データ操作】系の関数の解説に成るので
新しく新規解説『解説クラスCopyClear(22)』
として近々、始めますので宜しく、御贔屓の程、お願いしま
す!