レシート集計(小計・消費税) Receipt Total with Tax
明細[商品, 列] という2次元配列を使います(列1=単価, 列2=数量, 列3=金額)。各商品について 金額 = 単価 × 数量 を計算して列3に書き込み、その金額を合計に足していきます。
全商品を集計したら、合計に消費税率(ここでは10%)を掛けて消費税を求め、合計に加えて税込金額にします。下の表で金額の列が1行ずつ埋まり、合計が増えていく様子を見てください。
明細(単価・数量)
▶📖 記号の読み方(はじめての人はここを確認)
←代入(右の値を左の箱に入れる)。例: 合計 ← 0
=等しいか比べる(代入ではない)
≠等しくない(≠ は != と書いてもOK)
≤ / ≥以下 / 以上(<= / >= でもOK)
×かけ算(* でもOK)
÷わり算。答えの小数は捨てる(例: 7÷2=3)。/ でもOK
%わり算の余り(例: 7%2=1)
要素数(配列)配列の箱の数。2次元では 行数()・列数()
▲i / ▲j配列の下の三角は「いまコードが見ている位置」
algorithm.pseudo擬似言語 / IPA形式
1整数型の二次元配列: 明細2整数型: i, 合計, 消費税, 税込3合計 ← 04for (i を 1 から 行数(明細) まで 1 ずつ増やす)5 明細[i, 3] ← 明細[i, 1] × 明細[i, 2]6 合計 ← 合計 + 明細[i, 3]7endfor8消費税 ← 合計 × 10 ÷ 1009税込 ← 合計 + 消費税
▶ 実行を開始します
配列の可視化
箱の番号(添字)は 1 から始まります▶ 整数型の二次元配列: 明細
実行を開始します
明細(2次元配列)
単価
数量
金額
コーヒー
120
2
0
パン
80
3
0
ケーキ
200
1
0
サンド
150
2
0
いま見ているマス数字を書きかえたマス完了
くらべた回数
0
書きかえた回数
0
読んだ回数
0
変数の状態(いまの値)
i=—
行=商品
合計=—
金額の合計
消費税=—
消費税
税込=—
税込みの支払額
1 / 18
速度
理解度チェック
解答すると、そのアルゴリズムが実際に動く様子を再生して確認できます。
確認問題 1
上の明細(単価×数量: 120×2, 80×3, 200×1, 150×2)を集計したとき、税込(消費税10%)の支払金額はいくらか。
確認問題 2
このプログラムで、各商品の 金額(明細[i, 3])はどのように計算されているか。
▶📊 計算量(速さの目安)— くわしく知りたい人向け
「計算量」は、データが増えたときに手間(時間)がどれくらい増えるかの目安です。n はデータの個数。記号の意味は各カードの下に書いてあります。
最良(いちばん速い場合)
O(n)
データの数に比例して増える(ふつう)
平均(ふつう)
O(n)
データの数に比例して増える(ふつう)
最悪(いちばん遅い場合)
O(n)
データの数に比例して増える(ふつう)
使う追加メモリ(空間)
O(1)
データが増えても一定(最速)