« 数学関数 | トップページ | 数値計算の精度(浮動小数点の計算誤差) »

2007年4月30日 (月)

データ項目(データ型)

データ長
 COBOLのデータは文字データも数値データも固定長が一般的で、数値は二進化十進数 (BCD、Binary-coded decimal )を使います。
 これに対してVB.NETは可変長が一般的です。

数値
 VB.NETではDecimal型データでCOBOLの二進化十進数と同等の精度が得られます。

文字
 COBOL
   固定長です。文字が定義長未満だと末尾に空白が充填されます。
 VB.NET
  可変長です。
   Unicodeが標準です。
   Null(Nothing)が有ります。

注)
 COBOL:浮動小数点(COMP-1,COMP-2)のような可変長数値を使うことも稀にあります。
 VB.NET:固定長ファイルを扱うとき固定長の文字列を使います。

VB.NETのデータ定義
使い捨てデータ定義ができる。
 COBOLではDATA DIVISIONで定義し、プログラム内で共通してデータを使いますが、VB.NETではプロシジャ内・ブラック内でのみ使える使い捨てのデータ定義が使えます。大きなソースプログラムを作成するときなどデータ定義を追加や確認したりせずにその場限りのデータ名を使えるので便利です。

プログラム内共通データ定義
 COBOLのデータ項目と同じようにソースの冒頭に配置し、プログラム内で共通して使えます。。
Dim A As String
Private B As String '.....................冒頭のみ可
Private Read Only C As String = "123" '...同上、固定値
Public D As String '......................同上、親プログラムから参照変更
Protect E As String '.....................同上、親プログラムから参照
Friend F As String '......................同上、プロジェクト内
'以上はプログラム内で参照変更が可能
Main
     Dim X As String
     'Main...End Sub間で有効
End Sub
使い捨てデータ定義
 COBOLには同等の機能は有りません。
 同じ変数名が複数プログラム内に有ってもかまいません。
 プロシジャ内
Private Sub P1()
    Dim A as String
    'Sub...End Sub間のみ有効   
End Sub
 ブロック内
If...Then
    Dim A as String
    'If...Else間のみ有効
Else
    Dim A as String
    'Else...End If間のみ有効
End If
For i As Integer = 1 To 5
    Dim A As String
    'For...Next間のみ有効
Next

COBOL
型(タイプ) 分類 内容 内容 備考
COMP-1 数値 単精度浮動小数点  
COMP-2 倍精度浮動小数点  
PIC S9(18) COMP-3 十進数値(BCD) 18桁
PIC 9(4) COMP-4 整数    
PIC 9(9) COMP-5 整数    
PIC X. 文字      
VB.NETのデータ型
型 (タイプ) 分類 内容 備考
Byte 数値 整数 符号なし 1 バイト 0 ~ 255
Short 符号あり 2 バイト -32768 ~ 32767
Integer 符号あり 4 バイト -231 ~ 231-1
Long 符号あり 8 バイト -263 ~ 263-1
Single 浮動小数点 IEEE754 準拠 4 バイト ±1.5-45 ~ ±3.438
Double IEEE754 準拠 8 バイト ±5.0-324 ~ ±1.7308
Decimal 10 進数データ型 ±1.0-28 ~ ±7.928
Char 文字 Unicode文字(1 文字、2 バイト) 常に 1 文字
String Unicode 文字列 0 文字以上の可変長
Boolean その他 論理型 値は True か False
Date 8 バイト長の日付/時間データ 西暦 1 年 ~ 9999 年
Object 汎用データ型  

お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

|

« 数学関数 | トップページ | 数値計算の精度(浮動小数点の計算誤差) »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 数学関数 | トップページ | 数値計算の精度(浮動小数点の計算誤差) »