こんにちは。ECF代表のヒガです。
本記事では初心者向けアルゴリズムの演習問題を紹介しています。日頃のプログラミング学習にご活用ください。
はじめに
アルゴリズムとは、コンピューターに行わせる計算手順のことです。自在にプログラムを作るには、プログラム言語の文法の知識とともにアルゴリズムの考え方を身につけることが必要になります。
アルゴリズム技法習得の肝は「繰り返し」の活用です。この連載では、簡単な題材で繰り返しを使うアルゴリズムの基本パターンを練習していきます。
演習問題の一覧や勉強スタイルについてのアドバイスはこちらからどうぞ。
Q020 1から指定の数までカンマ区切りで表示(最後のカンマ無し)
1から指定の数までの数字をカンマ(,)区切りで表示してください。ただし、最後の数はプログラムの先頭で変数に代入することで指定してください。
「7」を指定した場合の実行例は次のとおりです。
Q019と違い、最後に余計な「,」がついていません。
ヒント
当然Q019がベースとなりますが、あるタイミングではカンマを表示させない、という判断が必要になります。
解答例と解説
考え方
まず最初に「何を繰り返す」かを考えます。今回の場合、基本的には
- 数とカンマを表示する(改行無し)
を繰り返すことになります。数とカンマを続けて表示させるのがポイントです。しかし、一番最後の数(指定の数)の表示のタイミングではカンマは表示させません。つまり、そういう条件分岐が必要になります。
箇条書きでまとめると、
- 最後の数を指定する(変数に代入する)
- 次の動作を1から指定の数まで繰り返す
- カウンタ変数の値を表示する
- カウンタ変数の値が最後の数(指定の数)か判断する
- 最後の数でない場合、カンマを表示する
という流れになります。
フローチャート例
Javaでの実装例
public class Q020 { public static void main(String[] args) { int n = 7; // 表示の最大値 for (int i = 1; i <= n; i++) { System.out.print(i); // 改行無し if (i != n) { // 最後の表示でないか System.out.print(','); // カンマを表示 } } } }
上のフローチャートとの対応からプログラム実装例の流れを確認しましょう。Q019とは違い、2つのprintをまとめることはできません。
おわりに
繰り返しと条件分岐の組み合わせのパターンでした。カウンタ変数を使った条件式となりましたが、うまく自身で考えることができたでしょうか。この繰り返しと条件分岐の組み合わせパターンは応用範囲が非常に広いです。しっかりと自身でアルゴリズムを構築できるように理解していきましょう。
次回はこちらです。
合同会社イー・シー・エフでは、子ども向けプログラミングなどの教育講座を実施しています。プログラミング教室の案内や教育教材の情報、また関連するご相談・問い合わせにつきましては下記よりご確認ください。