クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

手順に分けて考える(アルゴリズム)

このレッスンのあとで: 問題を手順に分け、その手順をトレース表で追うことができる。

50分のレッスンコマンド1件毎日使う Linux コマンドのラボ:エンジニアが暗記している30のコマンド

プログラムの前に、手順を作る

アルゴリズムとは、問題を解くための手順を、順番に書いたものです。プログラムを書く前に手順を作ると、途中で迷わなくなります。

大学の売店が、3日分の売上の平均を知りたいとします。レジの数字を見て暗算するときも、頭の中では手順を踏んでいます。

このレッスンのゴール

メモ

問題を手順に分け、その手順をトレース表で追うことができる。

キーワード

ことばいみれい
アルゴリズム問題を解く手順を、順番に書いたもの
分解大きな問題を、小さな手順に分けること
疑似コード人間が読むための、手順の書き方
変数値に名前をつけて、しまっておく箱total
トレース表1行ずつ実行して、変数の値を書きとめる表
バグプログラムの中の間違い

学生が入力するセルは、このプレビューでは空白です。

大きな問題は、小さな手順に分解する

分解とは、大きな問題を小さな手順に分けることです。小さな手順なら、1つずつ確かめられます。

平均の問題は、3つに分かれます。売上を用意する。合計を出す。個数で割る。

ラボの端末で、Python を1行動かす

このモジュールの課題は、ラボの Linux マシンで進めます。マシンには Python が入っています。

python3 -c の後ろに、引用符で囲んだ Python の文を書くと、その1行が実行されます。次の Run で、3日分の平均を計算します。

平均を計算する

コマンド
python3 -c "print((120 + 90 + 150) / 3)"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

疑似コードは人間が読む手順

疑似コードは、プログラミング言語の決まりを気にせず、手順を日本語で書いたものです。1行に1つのことだけ書きます。

手順が決まれば、Python に直すのは難しくありません。次のコードは、疑似コードの1行が、Python の1行になっています。

手順を Python に直す

コード: python
# 3日分の売上(円)の平均を、手順どおりに求めます。
day1 = 6000
day2 = 7500
day3 = 9000

total = day1 + day2 + day3
average = total / 3
print("合計:", total)
print("平均:", average)
# day3 を 12000 に変えて、もう一度実行しましょう。

トレース表で、変数の動きを追う

トレース表は、プログラムを1行ずつ実行して、変数の値を書きとめる表です。実行しなくても、結果が予想できます。

次の表は、さっきのプログラムを追ったものです。空欄は、まだ値が入っていないことを表します。

例: トレース表

実行した行day1day2day3totalaverage
day1 = 60006000
day2 = 750060007500
day3 = 9000600075009000
total = day1 + day2 + day360007500900022500
average = total / 3600075009000225007500.0

学生が入力するセルは、このプレビューでは空白です。

よくある間違い

注意

「コンピュータは、やりたいことを察してくれる」と考える人がいます。実際は、書いた手順をそのとおりに1行ずつ実行するだけです。手順が1つ抜ければ、抜けたまま動きます。トレース表で、1行ずつ確かめましょう。

このラボとソースについて: 毎日使う Linux コマンドのラボ:エンジニアが暗記している30のコマンド

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。