Thursday, June 16, 2016

QuickBasic дээр хийсэн жишээ програм - 1

Дунд сургуулийн 9-10-р ангид Жиймэн багш чамд ер нь програмын хэл заана аа гэснээс хойш даруй 15 жил өнгөрч. Миний анх сурч байсан хэл бол QuickBasic (QB). Тухайн үед багш QB хэл дээр бүхий л програмуудаа бичдэг байсан ба хамгийн гол нь өөрийн гол бүтээл болох Интерактив ш/у-ны зурхай бүтээлээ энэ хэл дээр бичсэн.
Одоо орчин үед QB хэлийг сонирхон судалж байгаа хүн ер харагдахгүй болсон ба, уг хэлний дараагийн хувилбар болох Visual Basic хэл рүү орцгоосон. 
Гэвч QB хэлийг сургалтын зорилгоор ашиглах боломжтой гэж хувьдаа бодож явдаг. Миний компьютерийн фолдерт 10 гаруй жил салхи оролгүй хадгалагдаж байгаа жишээ програмуудыг залуучуудад, тэр дундаа анхлан суралцагчдад хэрэг болж магадгүй гэсэн үүднээс энд татаж авах боломжтойгоор байршуулахаар шийдлээ. 

Календарийн програм

CLS
    DIM SHARED a(12), sar(12)
    RESTORE l1
     FOR i = 1 TO 12: READ a(i): NEXT
    RESTORE l2
     FOR i = 1 TO 12: READ sar(i): NEXT
     INPUT "year ="; y
    'y = 2004
    IF y MOD 4 = 0 THEN sar(2) = 29
    FOR m = 1 TO 12
        CLS
        LOCATE 1, 58: COLOR 12, 0: PRINT USING "##### year"; y
        COLOR 10, 0
        PRINT USING "                        ####  month"; m
        LOCATE 3, 20: COLOR 5, 0
        PRINT "mo   tu   we   th   fr   sa   su"
        ro = 4
        FOR i = 1 TO sar(m)
            CALL gar(y, m, i, ga)
            IF ga = 0 THEN ga = 7
            LOCATE ro, (ga - 1) * 5 + 19
            q = 15
            IF ga = 6 OR ga = 7 THEN q = 14
            COLOR q, 0: PRINT i
            IF ga = 7 THEN ro = ro + 1
        NEXT
        DO: LOOP WHILE INKEY$ = ""
    NEXT
END
l1:
DATA 4,0,0,3,5,1
DATA 3,6,2,4,0,2
l2:
DATA 31,28,31,30,31,30,31,31,30,31,30,31

SUB gar (y, m, d, w)
    q = y - 1999
    s = INT(q / 4) + 1
    md = y MOD 4
        IF md = 0 THEN
            IF m < 3 THEN
                w = q + s - 1
                w = w + a(m) + d
                w = w MOD 7
            ELSE
                w = q + s
                w = w + a(m) + d
                w = w MOD 7
            END IF
        ELSE
            w = q + s
            w = w + a(m) + d
            w = w MOD 7
        END IF
END SUB

No comments: