こんにちは。ECF代表のヒガです。
本記事では初心者向けアルゴリズムの演習問題を紹介しています。日頃のプログラミング学習にご活用ください。
はじめに
アルゴリズムとは、コンピューターに行わせる計算手順のことです。自在にプログラムを作るには、プログラム言語の文法の知識とともにアルゴリズムの考え方を身につけることが必要になります。
アルゴリズム技法習得の肝は「繰り返し」の活用です。この連載では、簡単な題材で繰り返しを使うアルゴリズムの基本パターンを練習していきます。
演習問題の一覧や勉強スタイルについてのアドバイスはこちらからどうぞ。
Q019 1から指定の数までカンマ区切りで表示
1から指定の数までの数字をカンマ(,)区切りで表示してください。ただし、最後の数はプログラムの先頭で変数に代入することで指定してください。
「7」を指定した場合の実行例は次のとおりです。
最後に余計な「,」がついていますが、これは気にしなくても大丈夫です。(次回Q020で解決させます。)
ヒント
Q014とほぼ同じです。改行がカンマに変更になったということです。
解答例と解説
考え方
まず最初に「何を繰り返す」かを考えます。今回の場合は
- 数とカンマを表示する(改行無し)
を繰り返すことになります。数とカンマを続けて表示させるのがポイントです。
表示対象の数は繰り返しのカウンタ変数の値がそのまま使えます。箇条書きでまとめると、
- 最後の数を指定する(変数に代入する)
- 次の動作を1から指定の数まで繰り返す
- カウンタ変数の値を表示する
- カンマを表示する
という流れになります。
フローチャート例
Javaでの実装例
public class Q019 { public static void main(String[] args) { int n = 7; // 表示の最大値 for (int i = 1; i <= n; i++) { System.out.print(i); // 改行無し System.out.print(','); // カンマを表示 } } }
上のフローチャートとの対応からプログラム実装例の流れを確認しましょう。
Javaでは、6, 7行目で書かれている2つのprintは1つにまとめて
System.out.print(i + ","); // iとカンマを結合して表示
とも書けます。文字列結合演算子「+」を使い、カウンタ変数の値と文字列","(文字','でないことに注意。ダブルクォーテーションです)を結合した上で表示させています。
おわりに
カンマ区切りのデータはCSV(Comma Separated Values)と呼ばれ、コンピューターシステムではよく利用されるデータ形式です。今回やったように、特に難しいアルゴリズムを考えなくてもデータの集まりを作成できるので、気軽に使えるんですね。(なお、実践ではファイル入出力のプログラムと組み合わせることになります。)
気軽とはいえ、最後の余計な「,」の存在は気になるところです。次回、もうひと手間かけて解決してみましょう。
次回はこちらです。
合同会社イー・シー・エフでは、子ども向けプログラミングなどの教育講座を実施しています。プログラミング教室の案内や教育教材の情報、また関連するご相談・問い合わせにつきましては下記よりご確認ください。