 PS 9308





                         RAKAMDAN YAZIYA...

                                                          Ahmet Yldz



Bu programla, verilen saylar yazya dntrmektedir. Program fatura
programlarnzda rahatlkla kullanabilirsiniz. Programn alma mant u
ekilde;

lk nce saylar harf eklinde yazarak tanmlyoruz. Bunlar DEGER1 DEGER2,
DEGER3, DEGER4 VE DEGER5'tir. Sonra bu deerleri REDEFINES komutuyla eit
paralara blyoruz. Bunlar DIZI1, DIZI2, DIZI3, DIZI4 ve DIZI5. Bu
tanmlardan sonra, asl nmerik sayy tanmlyoruz. Bunu da SAYI olarak
tanmladk. Sayy drt basamakl olarak blyoruz "BOLGE". Blgeyi de S1, S2
ve S3 diye tanmlyoruz. Bylece alt yapy hazrlam olduk.

Sra sayy klavyeden almada. Bunu P1 sahasnda gerekletiriyoruz. Say daha
sonra u ekilde ayrlyor (000 000 000 000). Drt blgeye ve er adet
olarak. P1-1 sahasndan balayarak P5 sahasna kadar rakamlar okutularak,
ilem sonulanana kadar bir dngde kalyor. Bu esnada harf karlklar SONUC
olarak tanttmz blme kayt ediliyor. lem sona erdiinde dngden
kyor. Bylece rakam harf eklinde yazdrm bulunmaktayz.




       IDENTIFICATION DIVISION.
       PROGRAM-ID. YAZI.
       AUTHOR. Ahmet YILDIZ.
       SECURITY.
           SAYIYI RAKAMLA YAZMA    07.03.1993 (10:00) (Ver 1.00).
       ENVIRONMENT DIVISION.
      * INPUT-OUTPUT SECTION.
      * FILE-CONTROL.
      *     SELECT YAZICI ASSIGN TO PRINTER.
       DATA DIVISION.
      * FILE SECTION.
      * FD YAZICI LABEL RECORD OMITTED.
      * 01 SATIR    PIC X(100).
       WORKING-STORAGE SECTION.
       01  DEGER1    PIC X(45) VALUE
           "BR  K     DRT BE  ALTI YED SEKZDOKUZ".
       01  DIZI1 REDEFINES DEGER1.
           02 BIRLER PIC X(5)  OCCURS 9.
       01  DEGER2    PIC X(54) VALUE
           "ON    YRM OTUZ  KIRK  ELL  ALTMIYETMSEKSENDOKSAN".
       01  DIZI2 REDEFINES DEGER2.
           02 ONLAR  PIC X(6)  OCCURS 9.
       01  DEGER3    PIC X(24) VALUE "MLYARMLYONBN    TL.  ".
       01  DIZI3 REDEFINES DEGER3.
           02 EK     PIC X(6)  OCCURS 4.
       01  DEGER4    PIC X(45) VALUE
           "YZ  K     DRT BE ALTI YED SEKZDOKUZ".
       01  DIZI4 REDEFINES DEGER4.
           02 YUZILE PIC X(5)  OCCURS 9.
       01  DEGER5    PIC X(45) VALUE
           "BN  K     DRT BE ALTI YED SEKZDOKUZ".
       01  DIZI5 REDEFINES DEGER5.
           02 BINILE PIC X(5)  OCCURS 9.
       01  SAYI.
           02 BOLGE OCCURS 4.
              03 S1  PIC 9.
              03 S2  PIC 9.
              03 S3  PIC 9.
       01  KUCUK.
           02 AA     PIC 99 COMP-0 VALUE 15.
           02 SONUC  PIC X(100).
       77  K         PIC 99.
       77  I         PIC 99.
       77  L         PIC 99.
       77  CEVAP     PIC X.
       SCREEN SECTION.
       01  RAKAM.
           02 LINE 10 COLUMN 15 PIC ZZZ,ZZZ,ZZZ,ZZZ TO SAYI.
       PROCEDURE DIVISION.
      * P0.
      *     OPEN OUTPUT YAZICI.
       P1.
           DISPLAY (1 1) ERASE  DISPLAY (10 10) "SAYI = ".
           ACCEPT RAKAM.
           MOVE 0 TO K I.
           MOVE SPACES TO SONUC.
       P1-1.
           ADD 1 TO K I.
           IF BOLGE(K) = "000" GO P5.
           IF S1(K) = 0 GO P2.
           IF S1(K) = 1 MOVE S1(K) TO L
              STRING YUZILE(L) DELIMITED BY " " INTO SONUC POINTER I
                     GO P2.
              MOVE S1(K) TO L
              STRING BIRLER(L) "YZ" DELIMITED BY " " INTO SONUC POINTER I.
       P2.
           IF S2(K) = 0 GO P3.
           MOVE S2(K) TO L
           STRING ONLAR(L) DELIMITED BY " " INTO SONUC POINTER I.
       P3.
           IF S3(K) = 0 GO P4.
           IF BOLGE(3) = "001" AND K = 3  MOVE S3(K) TO L
              STRING BINILE(L) DELIMITED BY " " INTO SONUC POINTER I
                     GO P5.
              MOVE S3(K) TO L
              STRING BIRLER(L) DELIMITED BY " " INTO SONUC POINTER I.  P4.
           STRING EK(K) DELIMITED BY " " INTO SONUC POINTER I.
       P5.
           IF K < 4 GO P1-1.
           STRING EK(4) DELIMITED BY "  " INTO SONUC POINTER I.  DISPLAY (12
           1) "YAZIYLA : "    DISPLAY (12 10) SONUC.
      *     WRITE SATIR FROM KUCUK.
           DISPLAY (15 15) "DEVAM MI ? (E)".
           ACCEPT  (15 30) CEVAP WITH AUTO-SKIP
                    IF CEVAP = "E" OR "e" GO P1.
         SON.
      *     CLOSE YAZICI.
           STOP RUN.