COBOL
英字項目 (alphabetic item) - 例:AAAAA または A(5)
数字編集項目 (numeric edited item) - 例:ZZZ,ZZ9
英数字編集項目 (alphanumeric edited item) - 例:AXX/XX/XX
COBOLでは固定長のレコード(繰り返しデータ単位)の中に固定長でデータ項目を含むという使い方が多い。たとえば、
などである。データには包含関係の階層があり、領域再定義機能により同じメモリ領域を何通りかの構成で解釈できる。
他の多くの言語(VB、C、Javaなど)では、改行までが繰り返しデータ単位で、その中の項目は可変長でコンマやタブなどの区切り記号で区切るという使い方が多い。たとえばCSV形式
がある。最近のCOBOLコンパイラには、CSV形式の入出力をサポートするものもある。
COBOLでは基本項目を並べて集団項目を作る。レベル番号を用いて階層構造を作る。OCCURS句により多次元配列を作る。これらによる固定長や可変長の「レコード」(C言語などの構造体に相当)のレイアウトを定義する。なお、「レコード」という型はCOBOLによって初めて導入された概念である。
COBOLの階層的データの包含関係は、階層の深さを表すレベル番号"01"から"49"を各データ記述に付けることで記述される。
こうした階層や領域再定義などのデータ構造をもつファイルやレコードの定義と処理は、COBOLの得意とするところで、Java言語および従来のJavaのクラスライブラリによってはなかなかうまく再現できない。
出力
COBOLでは剰余を求める際に、商・剰余それぞれを格納する変数を定義した上でDIVIDE文を用いることが多いが、商は不要で剰余のみが知りたい場合や、それを変数に格納しておく必要が無い場合は、組み込み関数のMODを用いても良い。
また、COBOLの数字項目は定義された桁数よりも少ない桁数の値が格納された場合、ゼロパディングした状態で扱うため、このまま表示させると001、002、...、098と先頭に0が補われて表示されてしまう。 N {\displaystyle N} 桁で定義された数字項目に、正の整数 n {\displaystyle n} が格納された場合、その最上位桁の位置は左から N − ⌊ log 10  n ⌋ {\displaystyle N-\left\lfloor \log _{10}n\right\rfloor } カラム目であるから、上記のようにDISPLAY I(3 - FUNCTION INTEGER(FUNCTION LOG10(I)):)と記述することで、パディングされた0を除いた部分だけを表示させることが出来る。