プログラムの基本処理
要点と定義
プログラムは、データを受け取り、条件に応じて処理を選び、必要な処理を繰り返して結果を返します。選択処理は条件の真偽で実行する処理を分け、繰返し処理は指定した条件を満たす間、または決められた回数だけ処理を続けます。ループ条件は「もう一度続ける条件」なのか「終了する条件」なのかを区別し、境界の状態も含めて定めます。
変数は値を保持する名前です。配列は複数の値を添字で区別して扱う仕組みで、言語によって添字の開始位置が異なります。Cの文字列は終端文字までの文字列として扱い、ポインタ同士の差は要素数を表します。先頭位置と末尾位置の両方を含めた長さは、ポインタの差に1を足して求めます。
関数は処理をひとまとまりにし、引数で入力を受け取り、必要なら戻り値で結果を返します。文字列を調べる関数では、引数の意味や対象範囲を呼出し側と関数側でそろえます。たとえば「先頭からcount文字」を後ろ向きに調べるなら、添字count−1から0までを対象にします。
演算には、加減乗除などの算術演算、大小や一致を調べる比較演算、条件を組み合わせる論理演算があります。剰余は割り算の余りを求める演算で、値が一定の周期で繰り返す処理や、割り切れるかの判定に使えます。検査値の計算では、文字に対応する数値を合計し、基数での余りを利用して値を整えます。生成処理と検証処理では、どの位置の値を変換するかが異なることがあるため、末尾から数えた位置と初期条件を対応させます。
適用条件と例
空の場所を探して登録する処理を考えます。検索位置の値が空でなく、かつ目的の値とも一致しない間だけ次へ進みます。空の場所に到達したら新規登録し、一致する値を見つけたら既存データを更新します。この二つの終了条件は役割が違います。論理積で続行条件を作ると、空でも一致でもない場合だけ検索が続きます。
たとえば、一覧の各行を順に調べ、商品番号が既にあれば数量を1増やし、空行に着いたら商品番号と数量1を登録します。既存値の更新先と新規登録先を取り違えないよう、行番号と列の役割を確認します。行を下へ移す添字と、更新対象の数量列は別の位置を指します。
文字列中の回文候補を調べる場合、先頭側の候補文字と末尾側の候補文字を比較します。大小文字を同一視する仕様なら、比較前に両方を同じ規則で小文字化します。記号や空白を無視する仕様なら、左右からそれらを読み飛ばしてから比較します。不一致が一つでもあれば候補は回文ではありません。
この節の続き
- 誤りやすい点
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む