何かを尋ねようとする前に、できるだけ明確に物事を明確にしようとします。だから私は現在、プログラマーとして高校で勉強しています。最近、先生から、RAD Studio XE3 で VCL フォーム アプリケーションを作成するように依頼されました。これは、C プログラムのようなものですが、フォームなどのみを使用します。
行列 N*M (最終的には 2 次元の文字配列) を作成し、ラテン文字を格納する必要がありました。次に、挿入ソート方法でソートする必要がありました。これまでに行ったことは、配列を定義し、それらの文字が読み取られる StringGrid1 を作成したことです。私はそれらを 2 次元の char 配列に格納しましたが、私にとって最も難しいのは、これらの文字をアルファベット順にソートすることですが、すべてを一緒にソートする必要はありません。各行を個別にソートしてから、最終的な変更を表示しますStringGrid1 に戻ります (それは問題ではありません)。
前に言ったように、私はそのようなことを機能させるのに大きな困難を抱えています。私は 10 億の例を調べ、Google でソリッド AGE などを検索しました。整数値だったらどうでもいいのですが、C が String 値を嫌うのも我慢できません。
私のプログラム:
http://i.stack.imgur.com/Brx9X.jpg
これは、StringGrid1 文字から読み取り、配列 [i][j] に格納する方法です。mmax と nmax は、ユーザーが行と列のカウントを自分で選択できるため、読み取る範囲を示すために使用されます。
for(int i=0; i < mmax; i++) //Rindas (kolonnas)
{
for(int j=0; j < nmax; j++) //Kolonnas (rindas)
{
char * temp = (char*)(StringGrid1->Cells[i][j]).c_str(); //Nolasam no Edit lauka char elementu
array[i][j] = temp[0]; //Piešķiram masīvam šo elementu
ListBox1->Items->Add(array[i][j]); //Ierakstam ListBox1 masīva elementu
Button3->Enabled = False;
Button6->Enabled = True;
}
}
StringGrid1->Options = StringGrid1->Options >> goEditing; //Neatļauj lietotājam rediģēt StringGrid1 laukus
さて、ここでちょっと…どうすればいいですか?手がかりがありません。各行を個別に並べ替える必要があるように、2-D から文字を並べ替えるにはどうすればよいですか。たとえば、5 つの行があり、各行が 1 つずつ並べ替えられます。