広告
  サイト内検索:
<Let's create a game!> Introduction of programming for absolute beginners English
 

番外編 その33
固定長と可変長 つづき
  可変長、固定長のまとめ

じゃあ、
固定長と可変長まとめ。


この固定長、可変長は
プログラムのデータの持ち方に
いろいろ関係してくる。
プログラムの設計に重要だ。

もちろんゲームにもね。

まあ、慌てずゆっくり行こう。
ゲームにも
関係あるんだ。

はいっ、ゆっくり
理解します。
用途に応じて
使い分けね。  
了解!
 
 
固定長のイメージ
 
 
名前 年齢(3桁)
Aさん   3 5
Bさん 1 0 3
Cさん     4
Dさん   8 8
 
固定長の場合、
データの桁は最初に決めた桁数で固定。
常に一定の桁幅になる。
 
例の「年齢」データの場合、桁は常に3桁。
値が1桁、2桁の場合も3桁分予約している。
 
 
 
固定長のメリット
 
 
桁数が分かっている
 
管理・整理しやすい
桁が揃っているので、見やすく管理しやすい。
システム間でデータを共通の体系に揃えやすい。
電話番号
0 9 0 - 9 × × × - 5 5 7 7
0 8 0 - 7 × × × - 2 2 1 1
0 9 0 - 3 × × × - 8 8 9 9
0 7 0 - 5 × × × - 1 1 6 6
 
 
チェックしやすい
桁数が分かっているので特定の桁のチェックがしやすい。
【例:年齢のチェック】
先頭の番号が「1」の人を数えて100歳以上の人が何人いるか調査する。
名前 年齢(3桁)
Aさん 0 3 5
Bさん 1 0 3
Cさん 0 0 4
Dさん 0 8 8
 
 
加工しやすい
桁数が分かっているので特定の桁のチェックがしやすい。
【例:商品番号のチェックと加工】
先頭から4桁目の番号が「1」の商品は、不人気の商品。
先頭から5桁目の削除フラグ番号を「1」にして削除済みにする。
商品番号(5桁) 商品名
1 0 5 0 0 かわいこちゃん人形
2 8 2 1 0 ことちゃん人形
6 9 8 7 0 なぽちゃん人形
8 0 1 1 0 ビッグことちゃん人形

上記は説明のための例です。実用的ではありません。
一般的に商品番号に削除フラグなどは入れません。
 
 
例では、データの型(整数型や文字列型など)を考慮しない。
 
 
固定長のデメリット
 
 
最大桁数の変更がしにくい
 
桁数が足りなくなる
想定より値が大きくなった場合、桁不足でシステムが破綻する。
【例:商品番号の不足】
3桁固定の商品番号の場合、商品が999個より多くなった場合、桁が足りなくなりシステムが破綻する。
  商品番号(3桁) 商品名
  ・・ ・・ ・・ ・・・
  9 9 8 コロコロ飴ちゃん
  9 9 9 フトメンテうどん
1 0 0 0 ×
 
 
桁数の無駄が出る
必要以上に桁数が多すぎても管理しづらくなり、使わない桁で無駄なリソースを消費する。
【例:住所の登録】
住所の長さは、地名や番地によって長さが大きく異なる。そのため固定長では予め大きめにとっておく必要あり、無駄が発生しやすい。
(例では文字列を左詰め。)
名前 住所(最大12桁(12文字))
Aさん            
Bさん    
Cさん              
・・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・
 
ゆとりのある、無駄のない設計が必要になる
 
 
 
 
可変長のイメージ
 
 
名前 年齢(最大3桁)
Aさん   3 5
Bさん 1 0 3
Cさん     4
Dさん   8 8
 
可変長の場合、データの桁は最大桁数の間で可変。
桁は値の桁数に合わせて変わる。
 
例の「年齢」データの場合、値の大きさに合わせて
桁が1~3桁の間で変動する。
データ内の桁数は統一されず、バラバラになる。
 
 
 
可変長のメリット
 
効率がいい
 
未使用の領域が減る
使わない領域が減るので効率が良くなる。
【例:住所の登録】
住所の長さは、地名や番地によって大きく異なり、可変長に向いている。
固定長では無駄が発生しやすい。
名前 住所(最大12桁(12文字))
Aさん            
Bさん  
Cさん              
・・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・
 
例では、データの型(整数型や文字列型など)を考慮しない。
 
 
可変長のデメリット
 
桁数がバラバラになる
 
チェックする桁が異なる
可変長のデータは、値によって桁の長さがそれぞれ違う。
そのため、先頭や末尾から数えた桁数が全てのデータで同一とは限らない。
【例:年齢のチェック】
先頭の桁をチェックして100歳が何人いるのか調査しようとした。
しかし、固定長のように先頭の桁が100の桁とは限らないため、先頭の桁ではチェックできない。
名前 年齢(最大3桁)  
Aさん 3 5 先頭は10の桁
Bさん 1 0 3 先頭は100の桁
Cさん   4 先頭は1の桁
Dさん 8 8 先頭は10の桁
 
例では、データの型(整数型や文字列型など)を考慮しない。


ちなみに、この知識も
次回のセッションに
関係してくるからね。
よろしく。
いきなり
次のセッション!?

ゆっくりじゃないよー
いえーい

なんとなくで
大丈夫だって。
がんばるー

 
 

広告
home もくじ 前のページを読む 次のページを読む
  サイト内検索:
広告
お勧めの姉妹サイト
leafdays - リーフデイズ 超初心者のための園芸入門 - 楽しい趣味のガーデニング -
広告