- ベストアンサー
データーの並べ替えについて
中村さん100点 田中さん 30点 中川さん 80点 広瀬さん 60点 上記のデーターを得点の上位順に並べ替え テキストボックスに順位 名前 得点を表示させる 方法を教えてください 名前の配列 NAME(1)=中村 NAME(2)=田中 NAME(3)=中川 NAME(4)=広瀬 得点の配列 TOKUTEN(1)=100 TOKUTEN(2)=30 TOKUTEN(3)=80 TOKUTEN(4)=60 表示結果 1位中村100点 2位中川 80点 3位広瀬 60点 4位田中 30点
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VB2010として、何処がわからないのか?少しやってみたのか。 配列にデータが当初ある設定など、学習のためだけの問題で、あまり現実的ではない。学校の宿題か? ーー (1)配列にデータがあって、まず点数の大から小への並べ替え(ソートという)を行う、アルゴリズムを勉強せよ。 色々アルゴリズムがあるが http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/ バブルソートぐらいが初心者には適当か? (2)(ソートする時に配列の中身を移動させると思うが)名前と点数の配列のペアーを崩さ無いように(両方とも)移動すること。 (1)’ VB2010では配列のソートが出来る。本課題が何に付いての学習かによる。 Googleででも「VB2010 配列 ソート」で照会のこと。 (3)テキストボックスへの表示は名前+点数+改行コードを順位順に結合した文字列(例 s)をつくり、4行分くり返しが終わったら、TextBox1.Text=s にする。前もってTextBoxのプロパティでMultiLine をTRUEに設定しておく。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim s As String Dim a() = {"a", "b", "c", "d"} s = "" For i = 0 To a.Length - 1 s = s & a(i) & vbCrLf Next i MsgBox(s) TextBox1.Text = s End Sub のようなのをやってみよ..
その他の回答 (1)
- a987654
- ベストアンサー率26% (112/415)
お使いの(なりたい)ソフト名を記載してもらわないと答えようが ありません。 >テキストボックスに順位 名前 得点を表示させる これも意味が判りません。 例えばEXCELでA列に結果、B列に名前、C列に得点で1行目から 並んでいるとすれば A1に =TEXT(ROW(A1),"0位 ")&B1&TEXT(C1," 0点") として必要数だけオートフィル B,C列のデータ領域を選択してC列降順にてソートするだけ。
お礼
説明不足で申し訳ありませんでした 使用ソフトは、VB2010です。 よろしくお願いします。