発展課題 (r1:スプレッドシート)
注意点
このページは復習 (1)の発展課題を掲載しています。発展課題については「復習回の課題について」をよく読んでから取り掛かってください。
作業について
今回の課題は以下のパッケージに作成してください。
パッケージの名前 |
---|
j1.review01 |
作成するクラスの名前は問題ごとに指示があります。下記を参照してください
課題の提出方法については下記を参照してください。
また、別のコンピューター上に移動する際には、下記を参考にプログラムを持ち帰ってください。
新しい内容
行の入れ替え
今回は2つの行を入れ替える方法について紹介します。
package j1.review01; import gpjava.Spreadsheet; public class SwapLineS1 { public static void main(String[] args) { new SwapLineS1().start(); } void start() { Spreadsheet.show(); Spreadsheet.setString(0, 0, "1行目"); Spreadsheet.setString(1, 1, "2行目"); Spreadsheet.setString(2, 2, "3行目"); Spreadsheet.setString(3, 3, "4行目"); Spreadsheet.waitForSelect("行を選択(1)"); int first = Spreadsheet.getSelectedRow(); Spreadsheet.waitForSelect("行を選択(2)"); int second = Spreadsheet.getSelectedRow(); Spreadsheet.swapLine(first, second); } }
このプログラムは、2つのマスを選択して、それぞれのマスがある行の内容を入れ替えます。選択する前は、次のように斜めにそれぞれの文字列が並んでいます。
1行目 | ||||
2行目 | ||||
3行目 | ||||
4行目 |
ここから、「1行目」と書いたマスと「4行目」と書いたマスを続けてクリックすると、それぞれの行の内容が入れ替わります。
4行目 | ||||
2行目 | ||||
3行目 | ||||
1行目 |
このように、「Spreadsheet.swapLine」という命令で2つの行を入れ替えます。これは次のように書きます。
ほかの例として、2行目と3行目を続けてクリックすると、次のように入れ替わります。
1行目 | ||||
3行目 | ||||
2行目 | ||||
4行目 |
なお、同じ行を続けて2回クリックすると何も起こりません。
1行目 | ||||
2行目 | ||||
3行目 | ||||
4行目 |
今回の課題では、この「行を入れ替える」という命令を使ってプログラムを作成してもらいます。
問題
得点順に並び替えるプログラム
作成するクラスの名前 |
---|
SortS1 |
scorer1-1.txtの内容をスプレッドシート上に読みだして、合計5人を成績が高い順に並び替えるプログラムを作成してください。ただし、同じ得点の人がいたらどちらを先にしても構いません。
scorer1-1.txtの内容は次のとおりです。
名前 | 得点 | |||
Alice | 0 | |||
Bob | 98 | |||
Charley | 75 | |||
David | 59 | |||
Elvis | 64 |
これを読み出して並び替えると、次のようになります。
名前 | 得点 | |||
Bob | 98 | |||
Charley | 75 | |||
Elvis | 64 | |||
David | 59 | |||
Alice | 0 |
プログラムが完成したら、同じプログラムで別のファイルscorer1-2.txtの内容をスプレッドシート上に読みだして正しく動作するか確認してください。このファイルはそれぞれの得点が変わっているだけの内容です。
ヒント
まず最初に、5人の中で1番得点が高い人を2行目(最初の行)に移動してください。次に、残りの4人で1番得点が高い人を3行目(次の行)に移動してください。