CSアンプラグド プログラミング(2)
CSアンプラグド プログラミングの体験の続きのページです。
最初のページはこちらになります。
このページでは、以下の3項目をCSアンプラグド プログラミングで学びます。
各項目のリンク先は、ニュージーランドカンタベリー大学のコンピュータサイエンス教育研究グループのCSアンプラグド プログラミングホームページです。
チェックデジットの考え方(Unlocking the secret in product codes)
動きの制御(Kidbots)
画像表現(Squeezing pictures into codes)
チェックデジットの考え方
コンピューターでは、お店の商品に製品コードをつけて管理しています。
日本では、製品コードを標準13桁(短縮の場合は8桁)の数字で表現したJANコードと呼んで管理しています。
JANコードは、間違いなく管理するためにチェックデジットと呼ばれる1桁の数字を含んでいます。
コンピューターはJANコードを使う場合、チェックデジットが正しいかを計算しています。
ここでは、コンピューターが行っているJANコードのチェックデジットを計算して求めてみます。
ここでは、コンピューター内部で行っているチェックを自分で計算することで、CSアンプラグド プログラミングを体験します。
JANコードの形式
標準13桁のJANコードは、以下の2つのパターンがあります。
会社コード(GS1事業者コード)9桁+商品アイテムコード3桁+チェックデジット1桁
会社コード(GS1事業者コード)7桁+商品アイテムコード5桁+チェックデジット1桁
どちらの場合もチェックデジットの計算方法は同じです。
下記は、家の中に置いてあったある商品に印刷してあったJANコードをチェックデジットを除いて書き出した図です。

*GS1事業者コードは、GS1 Japan(一般財団法人流通システム開発センター)が管理しています。
GS1 Japan(一般財団法人流通システム開発センター)では、チェックデジットを自動計算するページも提供しています。
*商品アイテムコードは、事業者が管理します。
チェックデジットを計算する
JANコードはモジュラス10(ウェイト3・1)という方法でチェックデジットを計算しています。
モジュラス10(ウェイト3・1)の計算手順
1.JANコードの右から順に桁番号をつけていきます。
(1桁目はチェックデジットです。)
2.偶数桁の数字を抜き出して合計し3倍します。
(9+3+2+9+3+7=33 33×3=99)
3.奇数桁の数字を抜き出して合計し1倍します。
(4+7+3+1+3+8=26 26×1=26)

4.上で計算した値を合計します。
(99+26=115)
5.合計した値を10で割り余りを求めます。
(115÷10=11あまり5 あまりが0の場合はチェックデジットを0とします。)
6.10から余りを引いた値をチェックデジットとします。
(10-5=5 チェックデジットは5となります。)

JANコードは、4973321933875となりました。
JANコードは、GEPIR(ゲピア) : GS1登録事業者情報検索サービスで検索できます。
時間があれば、どこの会社の商品か調べてみましょう。
動きの制御
実際のコンピューターは、コンピューターが理解できる命令を組み合わせた手順通りに動いていることを理解します。
この章では、ロボットがゴールまで到達する様に命令を組み合わせることで、CSアンプラグド プログラミングを体験します。
ロボットとゴールは、格子の中にあります。
ロボットは、前、左、右の3つの命令がわかります。

1.前は、前に1コマ進みます。
2.右は、その場で右に向いて1コマ進みます。
3.左は、その場で左に向いて1コマ進みます。
ロボットは、格子の中を命令に従って動きます。
前、左、右の3パターンの命令を組み合わせてロボットをゴールへ到達する手順を作ります。
ゴールまでの組み合わせ例1
前へ1コマを10回使い、途中で1回だけ「右を向いて、前へ1コマ進む」命令を使ってゴールまでいく手順。

ゴールまでの組み合わせ例2
前へ1コマを9回使い、途中で1回づつ「右を向いて、前へ1コマ進む」命令と「左を向いて、前へ1コマ進む」命令を使いゴールまでいく手順。

ロボットに対する3つの命令を色々なパターンで組み合わせることで、ゴールへ到着することが出来ます。
ロボット(コンピューター)に対する命令を組み合わせることをプログラミングと言います。
他のプログラミングが出来ないか考えてみましょう。
画像表現
コンピューターは、画像を「ピクセル」と呼ばれる点の集まりで表しています。
画面の大きさや細かさによってピクセルの数が違います。
コンピューターの中には、画面のピクセルに対応したエリア(ビデオメモリー)があります。
コンピューターは、このエリアに数値で表された色や明るさの情報を書き込むことで、画面表示を行っています。

この章では、数値で表された画像情報を、表示エリアに書き込むことで画像と認識されることを、CSアンプラグド プログラミングを体験します。
数値が画像になる
コンピューターの中で、数値を画像に変換するためのルールを決めます。
ルール
数値表が指定する位置(ピクセル)を黒く塗りつぶします。
数値は3つで一組です。
最初の数値は行数を表し、次の数値は列数を表します。
3つ目の数値は、最初の2つの数値で指定された位置(ピクセル)から連続して黒く塗りつぶすコマ数を表します。
簡単にするため色の情報は持っていません。
ロボットを表す数値
5,7,5
5,8,0
5,9,0
6,7,1
6,9,1
6,11,1
7,7,5
9,5,9
10,5,1
10,7,5
10,13,1
11,5,1
11,7,5
11,13,1
13,7,5
14,7,1
14,11,1
15,7,1
15,11,1
16,7,1
16,11,1
17,7,1
17,11,1
18,7,1
18,11,1
数値が画像に変換された状態


