Amiga Dünyası sayı 8, sayfa 76

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 76

Bu ay madem ki şahsi kullanımlarınıza uygun programlar ile başladık, aynı şekilde devam edelim. Bu ayki ikinci programımız bir başka Amiga kullanıcısı Mehmet DEVELİOĞLU'ndan. Bütçenizi hesaplamak, aylara göre analiz yapmak ve grafiğini çizdirmek için rahatlıkla kullanabileceğiniz BÜTÇE programı, kendi yazacağınız programlarda da size kaynak teşkil edebilecek nitelikte. Programda kullanılan dosyalar, sequential olarak açılmıştır. Menü seçenekleri ile bilgi girişi yapılıp kaydedilen bütçe gider verileri, programın analiz bölümüne girilip harcama kalemi seçilerek analiz edilebilir, grafik bölümünde bar grafik olarak görülebilir. Analiz bölümünde, seçilen harcama kaleminin bir yıl içindeki aylık gelirlere oranı ve bir önceki ay yüzdesine göre artış ya da azalışı '+' ve '-' olarak gösterilmiştir. Kayıt okuma sırasında, istenen 'hangi ay' sorusunun yanıtı, diskete daha önce kaydedilen aylık veri içeren dosyanın ismi olmalıdır. Dosyalara istenen ismi vermek mümkün; 0, 1, Ocak, 01, OCAK 1990 gibi. Giriş esnasında, aylık net geliriniz de sorulacaktır. Girişlerde gerçek dışı veriler girilmesi ya da aylık gelirin aşılması durumunda program ana menüye dönecektir.

10 SCREEN 1,640,240,2,2 20 WINDOW 2, " B U T C E K O N T R O L (C) COPYRIGHT 1989 BY MIDSOFT",16,1 30 WINDOW OUTPUT 2 40 DIM A(10),A$(10),AY$(12),AT(120),ANA(12),ATG(12) 50 W=1 :WW=1 :TPL=0 70ONERRORGOTO1540 80 CHDIR "df0:":GOTO 1200 100 REM ************ GIRIS *********** 110CLS:GOSUB930 130 FOR X=1 TO 10:READ A$(X):NEXT X:FOR X=1 TO 10:A(X)=0:NEXT X :TPL=0 140 LOCATE 5,1:INPUT 'HANG AY :";AYY$:AYY$=UCASE$(AYY$):GOSUB 1060 İ 160 LOCATE 1,45:PRINT AYY$; 180 FOR X=1 TO 9: LOCATE 5,1: PRINT " "; 210 LOCATE 5,1 :PRINT A$(X);:INPUT :A(X) 230 LOCATE 2+X,42:PRINT X;V*;A$(X);USING "#########.##" :A(X) 250 TPL=TPL+A(X):LOCATE 14,40:PR NT " TOPLAM = M:TPL:

M GELİR = ":GELIR I 260 IF TPL>GELIR THEN GOTO 1600 270 NEXT X 275 A(10)=GELIR-TPL:LOCATE 12,42:PRINT "10 >";A$(10);USING "#########.##" :A( 10) 280 Q$=INKEY$:IF Q$="" THEN 280 285 RETURN 290 REM **************** GRAFİK *************** 300 CLS:FOR X=1 TO 10:READ A$(X):NEXT X 330 DATA "KIRA :","YAKIT :","YIYECEK :","GIYIM :","ULASTIRMA :","KIRTASIYE :" 340 DATA "EĞLENCE :","S GLIK :","DIGERLERI :","TASARRUF :" A 350 LOCATE 1,45:PRINT AY$ 370 FOR X=1 TO 10:LOCATE 2+X,42 390 PRINT X;">";A$(X);USING "#########.##" ;A(X):NEXT X 410 LINE (14,160)-(15,10)„B 420 LOCATE 21,1:PRINT "0":LOCATE 14,1:PRINT H5

M 440 LOCATE 8,1:PRINT "10":LOCATE 2,1:PRINT W15

M 460 LINE (15,160)-(475,161)„B 470 LOCATE 22,1 :PRINT " 1 2 3 4 5 6 7 8 9 1 0" 480 LOCATE 20,44:PRINT BOLM0;"._ TL OLARAK" 490 REM ** BAR GRAFİK ICIN HESAPLAMALAR ** 500 FOR X=1 TO 10:A1=A(X)/BOL 520 FOR Y=1 TO A1:LINE (30*X,160-Y)-((30*X)+15,160-Y):NEXT Y 550 LINE (30*X+25,160)-(30*X+25,155-A1) :REM *** dik uzun çizgi 560 LINE (30*X+15,160-A1)-(30*X+25,155-A1) :REM sağdaki / 570 LINE (30*X,160-A1)-(30*X+10,155-A1) :REM soldaki / 580 LINE (30*X+10,155-A1)-(30*X+25,155-A1) :REM ust - 590 NEXT X 600 REM ****************** DEĞİŞTİRME *************** 610 LOCATE 15,45:INPUT "DEĞİŞİM İSTİYOR MUSUNUZ? [E/H] ",C$:C$=UCASE$(C$) 640 IF C$="H" OR C$="" THEN GOTO 1200 650 LOCATE 16,46: INPUT "KA NO'LU MASRAF";M C 670 IF M<1 OR M>10 THEN 650 680 LOCATE 17,45:PRINT "ESKİ DEĞERİ =";A(M) 700 LOCATE 18,45:INPUT "YENİ DEĞER =";Y 720 A(M)=Y:X=M:A1=Y/BOL:GOSUB 800 760 LINE (350,105)-(620,150),0,BF:GOTO 610 780 RESTORE 30 3 810GOSUB900 820 FOR Y=1 TO A1 :LINE (30*X,160-Y)-((30*X)+15,160-Y):NEXT Y 850 ÜNE (30*X+25,160)-(30*X+25,155-A1) :REM *** dik uzun çizgi 860 LINE (30*X+15,160-A1)-(30*X+25,155-A1) :REM sağdaki / 870 LINE (30*X,160-A1)-(30*X+10,155-A1) :REM soldaki / 880 LINE (30*X+10,155-A1)-(30*X+25,155-A1) :REM ust - 890 RETURN 910 LINE (30*X,159)-(30*X+25,1),0,BF:RETURN 940 CLS:LOCATE 11,27:INPUT "AYLIK GELİRİNİZ =";GELIR 970 IF GELİR >1500000000& THEN BOL=30000000&:GOTO 1030 980 IF GELİR >150000000& THEN BOL=3000000&:GOTO 1030 990 IF GELİR >15000000& THEN BOL=300000&:GOTO 1030 1000 IF GELİR >1500000& THEN BOL=30000&:GOTO 1030 1010 IF GELİR >150000& THEN BOL=3000:GOTO 1030 1020BOL=300 1040CLS:RETURN 1050 FOR 0=1 TO 12 1060 IF LEFT$(AY$(0),LEN(AYY$))=AYY$ THEN AY=0:NEXT O 1190 RETURN 1210 DATA OCAK,SUBAT,MART,NISAN,MAYIS,HAZIRAN,TEMMUZ 1220 DATA AGUSTOS,EYLUL,EKIM,KASIM,ARALIK

Klavyeyle gezinmek için ← ve → tuşları.