アルゴ道場
動かして学ぶ 基本情報アルゴリズム
ホーム応用・集計レシート集計(小計・消費税)FE頻出2次元配列集計

レシート集計(小計・消費税) 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合計 ← 0
4for (i を 1 から 行数(明細) まで 1 ずつ増やす)
5 明細[i, 3] ← 明細[i, 1] × 明細[i, 2]
6 合計 ← 合計 + 明細[i, 3]
7endfor
8消費税 ← 合計 × 10 ÷ 100
9税込 ← 合計 + 消費税
実行を開始します

配列の可視化

箱の番号(添字)は 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)
データが増えても一定(最速)

このサイトは、使い方を改善するためにアクセス解析(Google Analytics・Cookie)を利用します。