Bu sayfadaki yazılar
Sayfanın metni
Sayfa 91
Gımnaa. Gımnaa. VİRÜS'ünüz karşınızda. Hem de hiç zaman geçirmeden datalarınızı bozmaya başlıyor. Allahım! Bu kadar deli virüs arasında ne yapıcam bilmiyorum. Geçen ay kendisine 500 sayfalık tez göndermesini söylediğim ONUR (Gigavirüsün tabiriyle ONUR THE EM-BESİL (Sorry Onur! Beni öldürmeyi düşüneceğine GİGA'yı öldür çünkü bu ismi sana o taktı)), bu ay bana bir buçuk küsur metrelik içinde XXXXX adet kelime olan bir mektup göndermiş. Bu mektubun tamamını yayınlamama imkan yok çünkü böyle bir şey yaparsam dergi bu ay 'VİRÜS DÜNYASI' olarak çıkar. Böylece 'MAHMURE ABLA' beni kesin öldürür. Ama mektubun bazı yerlerini yayınlayarak okurları ve Onur'u happy edicem. Ayrıca Onur'a özel VİRÜS notu:
- Hey Onur. Takma adın olan JASON'ı maalesef beğenmedim. Çünkü bu adı taşıyan bir BRONX elemanı var. O da JA-SON of BRONX. Onun için daha iyi ve bulunmayan bir ad bulmanı tavsiye ederim. Protesto için artık burada JASON adını kullanmıyorum. Virüsler hain olur. Hem de çok hain! Hahahahihohohahu (Yeşilçamın ünlü COŞKUN'unun hain gülüşünden daha hain bir gülüş)..
Şimdi mektuptan bölümler; 1 > Kendimi bu pişmanlık duygusundan nasıl kurtarabilirim? Acaba Pişmaniye yersem geçer mi?
2> Sence bu mektubun yüzde kaçı Mahmure ablanın denetiminden geçecek?
3> Önerdiğin İbranice AMOS manuel'i aradım. Ama hiç bir yerde bulamadım. Ne yazık ki son olarak yaptığım Arabistan yarımadası seferim de başarısızlıkla sonuçlandı. Mısır piramitlerinde yaptığım kazılarda eski Mısır kralı ZOMOST-RO'nun mücevherlerini saymazsak, hiç bir şey bulamadım. Acaba bu manuel'i nereden bulabilirim.
Önce cevaplar; 1> Aman yavrum böyle bir hatayı nasıl yaparsın. Pişmaniye yersen sadece KİBA-RİYE olursun. Ayrıca denizdeki tuz oranının yükselmesini sağlarsın. Napıyorsun sen yaa? Bu pişmanlık niye? Huzuruma çıkman sana pişmanlık mı veriyor? Bunu senin gibi bir VİRÜS'ten beklemezdim. Hayret yani. Otur koltuğa, aç FANTA'm. Teybine koy bir PUBLIC ENEMY kaseti, huzura er. Oh kebap! Daha ne olsun. ME-MO ve YUSUF hep böyle yapıyor. (SE-DA ve SAMİ'ye de selamlar!)
2> Mahmure abla asla mektup makaslamaz. Mahmure abla asla makas kullanmaz. TRT'nin gönderdiği altın makası bile çöpe atmıştır. Mahmure abla her zaman çim biçme makinası kullanır!
3> A be MONG.... Pardon (hehehe) Ne işin var oralarda. Hadi SİNAN olsan neyse. Atlası aç ve ona göre VİRÜS SEFERLERİNİ düzenle. İBRANİCE seferlerini sadece Brezilya ve civarında bulabilirsin. Ne ZOMOSTRO abi öldü mü? Allahım, sen bu günleri de mi gösterecektin? Daha dün gibi hatırlıyorum. Dedesiyle ne biçim misket oynardık. Virüs hareketleri yanlısı tek Belçika firavunuydu.
Bu arada Onur bazı haberler ve açıklamalar göndermiş. ..* GIGAVİRÜS'ün gerçek adı ERAY ÖZKURAL'mış! Ayrıca odasının duvarlarına sevilen Türk sanat müziği sanatçılarının resimlerini asarmış. Ayrıca GİGİ (GİGAGÜS'ün VİRÜS'çe kısaltılışı) çok uzun bir mektup yazma hazırlıkları yapıyormuş. İnşallah bir kaç ton mürekkep ve kağıt almışındır. Ehh, herhalde Onur'dan daha uzun mektup yazarsın.
Evet artık bitirelim. Uzun lafın kısası Onur gelmiş geçmiş en deli VİRÜS yanlısı olarak CHART'lara giriyor. Ayrıca en uzun mektup yazan VİRÜS olarak da bir numarada bulunuyor. Haydi bakalım hayırlısı. Tekrar görüşürüz. Haa bu arada KOMMODOR ABİ'nin yeni köşesine deli resimlerinizi gönderin de sizi bir göreyim bakalım.
Evet mektuplara biraz ara verip dergiden haberlere geçiyoruz.
*Dergi bu ay KOMMODOR ABİ'nin posterini vermeyi düşününce kıyamet koptu. Dergide olay çıkarıp kendi posterlerinin basılmasını isteyen yazarlar, Mahmure abla tarafından limon almaya gönderildiler. Olay çıkaran yazarların lideri ve sözcüsü GÖKMEN BAYIN olaydan sonra, "Olay bizzat adımızı lekeleyen bir olaydır. Gerekli mercilere başvurduk. Şimdi cevap bekliyoruz. Yakında KOMMODOR ABİ'yi sayfasından çıkaracağız. Hakkımızda gerç.. pardon yalan laflar yazıyor. Geçen ay benim hakkımda okuma yazma bilmeyen yazar olarak bahsetmiş. Nasıl olur, ben okuma bilirim. Yüzme de bilirim hatta kurbağalama dalında madalyalarım bile var. Hatta iyi de yufka açarım." dedi.
^Bu olaylar olurken yazarlardan CEM GENCER de Playmoy dergisine poz vermeye gitti. Benim posterimi basmayan dergide ben durmam diyen CEM'e yeni işinde başarılar dileriz.
O Dergimiz yazarlarından olan 'POLAT YARIŞÇI', okul nedeniyle dergiden birazcık koptu. Geçen günkü sınavda soruların cevapları yerine yanlışlıkla oyun açıklaması yazan POLAT, hocası tarafından azarlandı. Olay sonrası VİRÜS televizyonuna yaptığı açıklamada POLAT şöyle dedi:
- Abi ne yapayım yaa. Dalmışım işte yaa. Bi dakka abi şu KICK OFF maçım bitsin sonra devam ederiz. Aaa saymam ya gol yedim (FROGGY'nin yerinden enstantaneler. Oradakilere selamlar!).
# SİNAN, yanında dört paket sigara taşımaya başladı. Garip sigaraları çevresindekilere denemesi için veren SİNAN otobüste feci biçimde tartaklandı. Olay sonrası SİNAN mikrofonlarımıza şöyle dedi.
- Söyle adını. Ne olduğunu anlayamadım valla. Birden kapının açılıp dışarı atılışımı hatırlıyorum. Sen şu sigarayı denedin mi? Al al iç dene. Dene. İç yaa. İçsene merak etme yanımda 73 paket daha var..
Şimdi sıra ikinci mektuba geldi. fak-tak- Virüsçüm orda mısın? Nasılsın? İşte ben The Dimension Doctor (İzmir'den hahaha). Ah başıma nerden dadandı bu İzmirliler sakın deme. İşte çileden çıkartıcı sorularım.
1> Ah virüsçüm ah biliyorsun İzmir körfezi gittikçe kirleniyor. Örneğin yeni türeyen embesil embriyodan tut da gigavirüse, ondan da kolibasiline kadar her şey doldu. Bunun hakkında ne yapabilirim (Bu sizeydi jaso ve Gigacım)?
2> Bu ünlü Mahmure abla kim? 3> En son yaptığım deneylerde İzmirli iki arkadaşı 68000'e bağladım. Bir gün sonra arkadaşlarım mektup yazmaya, 68000 ise konuşmaya başladı. Arkadaşlarımı bu illetten nasıl kurtarabilirim (Arkadaşlar akşam yemeği yerine Assembler source'ları yemeye başladı da)?
4> CD TV gerçekten bebek mi? Hangi amaçla kullanabilirim?
5> Bilgisayarı açtığımda adamın birisi bana bir disket satmaya çalışıyor. Nasıl kurtulabilirim?
6> Agnus teyze neden bu kadar şişman? 7> Fareler için ithal mama var mı? Özür The Dimension Doctor. Bazı soruların makaslandı. Özellikle GİGİ hakkında olan. Basılacak hale getir ve soruyu tekrar gönder. Şimdi cevapların.
Evet nereden çıktı bu İzmirliler? Hey ANKARA'lılar, ZONGULDAK'lılar, TRİNİDAD'lılar nerdesiniz yahu! (SAMSUN'lular hariç. Çünkü oradan iki deliye sahibiz. Selam dudes!)
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 90
Program çalışınca, çıkış penceresine Sinüs (X) fonksiyonunun grafiğini çizecek ve bir tuşa basmanızı bekleyecek. Tuşa basınca sizden herhangi bir fonksiyonu girmenizi isteyecek. Bu fonksiyonu girerken, herhangi bir şey = fonksiyon şeklinde (Veya doğrudan = fonksiyon şeklinde, mesela =cos (x)) şeklinde gireceksiniz. Fonksiyonu girerken, Basic'in anlayabileceği bir dilde ve sadece X'i parametre olarak kullanarak yazın. Daha sonra bu fonksiyonun aralığı sorulacak. Buraya verdiğiniz sayıya göre fonksiyon çizilecek. Programdan çıkmak için fonksiyon yerine = yazmayın (hatta hiçbir şey yazmayın).
Gelelim programın özelliklerine. Programda ilk olarak bazı değişkenlerin başlangıç değerleri belirleniyor. Bundan sonra f isminde bir fonksiyon tanımlanıyor. Bu fonksiyon sağ taraftaki ifadeye eşit. Yani Fn f (3.14) demek, Sin (3.14) demek oluyor. Bu sayede istediğimiz fonksiyonu basitçe tanımlıyoruz. Arkasından Çizim bölümü geliyor. Burada her şeyden önce pencerenin genişliği (wx%) ve yüksekliği (wy%) bulunuyor, orta noktalarda aynı şekilde bu değerlerin yarısı şeklinde tanımlanıyor. Daha sonra gelen IF ise, pencerenin belirli bir değerden küçük olup olmadığını inceliyor. Eğer pencere çok küçükse, program bitiriliyor. Arkasından bu fonksiyonun verilen aralıkta alabileceği en büyük değer araştırılıyor. Bunun amacı, grafiği ekrana ölçekleyebilmek. Daha sonra ise x değeri hesaplanıyor. Bunun arkasından karşı düşen y değeri bulunuyor ve bu değerin gmaks denen değerden büyük olup olmadığı inceleniyor. Büyük olması durumunda bu gmaks değeri büyük olan değeri alıyor. Bu döngünün sonunda istenen maksimum değer (gmaks) bulunmuş oluyor. Daha sonra ölçeklemek için bir ara değer hesaplanıyor ve bir döngüde line komutu ile grafik çiziliyor. Bunun ardından gelen üç line ile grafiğe eksenler ve bir kenar kutusu çiziliyor. Bundan sonraki bölüm ile ise yeni fonksiyon giriliyor. En sonda bulunan 2000 sayısı da programın bir parçası ve yeni fonksiyon girilirken kullanılıyor. Yüzeysel olarak inceledik. Şimdi gelelim neyin nasıl olduğuna. Bu tür bir program yazmak isteyenler için en önemli sorun, yeni fonksiyonun nasıl girileceğidir. Fonksiyon programın bir parçası olmazsa, o fonksiyonu değerlendirmek programcının işi olacaktır. (Bu işleme Parse denir.). Basic'ten bunu yapmak zor ve zahmetlidir. Daha çok yapılan program çalıştırılarak grafik görülür, yeni bir grafik için programın kendisi değiştirilerek tekrar çalıştırılır. Örneğimizde bunu yapmak için üç line'lı satırın arkasına End ekleyin. Tek yapacağınız, programı çalıştırmadan evvel üçüncü satırdaki Def Fn f (x) 'i değiştirmek olacaktır. Programda temel olarak biz de aynı şeyi yapıyoruz. Programın WHILE INKEY$'dan sonraki bölümünde, şu üç BASIC program satırını yazıyor, bunu RAM:'da Data ismi ile kaydediyor daha sonra Chain Merge emri ile bu Data'yı programın 2000 numaralı satırına ekliyoruz:
2000 Def Fn f (x) = .......( Buraya A$ değişkenindeki fonksiyon ekleniyor) goto çizim Chain ile ilgili ayrıntılı bilgiyi el kitabından elde edebilirsiniz. Dikkat edilmesi gereken, satır numarasının bir numara olmasına özen göstermek ve Ali seçeneğini kullanarak Chain edilen kısmın ana programdaki değişkenlerden yararlanma- sını sağlamak. Kısaca yaptığımızı, Basic'ten Basic programı yazmak olarak yorumlayabiliriz.
Fonksiyonu yazarken kullandığımız INSTR fonksiyonu da oldukça yararlı. Bu fonksiyonu kullanarak bir yazının bir diğeri içinde nerede bulunduğunu saptayabiliriz. Yine INSTR kullanarak basılan bir tuşun programınızca kullanılan tuş olup olmadığını da anlayabiliriz. Şu örneğe bakalım:
10 A$ = INKEY$ IF A$ = "" THEN GOTO 10 IF INSTR ("AEIOU",A$) = 0 THEN GOTO 10 Inkey$ fonksiyonu o anda basılan tuşu tutar. Bu tuşu A$ ile okuyoruz. Eğer boş ise (bir tuşa basılmamışsa) hemen okumaya devam ediyoruz. Son satırda ise basılan tuşun A, E, I, O, U tuşlarından biri olup olmadığını anlıyoruz.
Bir diğer nokta ise, fonksiyonun sınırını kullanıcıdan isterken var. Burada aslında sadece bir sayı istememize rağmen, bunu önce alfanümerik olan c$'e alıp sonra VAL fonksiyonu ile c$'nin değerini d'ye aktarıyoruz. Bu, bizi gereksiz type mismatch hatalarından kurtarıyor.
Bilgisayar ile matematik kullanmak, birçok bakımdan normal matematikten daha kolaydır. Özellikle eğer herhangi bir işlemin sonucunu ekran üzerinde göreceksek, bazı avantajları kullanabiliriz. Her şeyden önce Amiga'nın normal şartlarda sağladığı en yüksek yatay çözünürlük 640 noktadan ibarettir. Basic ile çalıştığınız Workbench ekranı ise 640x200 veya 640x256 çözünürlüktedir. Buradan açıkça görülüyor ki, herhangi bir grafiğinizin yatayda 640, dikeyde 256 değişik değeri alabilmesi mümkündür. Eğer bir fonksiyonu ekranda görecek ve bu fonksiyon sonuçlarını başka fonksiyonlara doğruluk gerektirecek şekilde katmayacaksanız, kullanacağınız fonksiyon sadece 0 ila 1000 arasındaki sayılarla idare edebilir. Yaklaşık hesaplar, çizimlerde doğru hesaplar kadar iyi ve kabul edilir sonuçlar verecektir. Bir diğer örnekte, gerekirse bu konuları daha detaylı inceleriz.
Grafiği yazma konusunda bazı sorunlarımız olabilir. İlk olarak koordinat eksenlerinde 0,0 noktası ortadadır. Amiga'da bu koordinat sol üst köşedir. Pencere genişliğini 640x200 kabul edelim, o zaman ekranın ortası 320, 100 noktası olacaktır. Şimdi, x koordinatı eksi olan bir noktayı düşünelim. Bu sayı, ekranın solunda kalmalıdır. Yani koordinatı 320'den az olmalıdır. Y'de durum biraz farklı. Y pozitif ise sayı ekranın yukarısına doğru kaymalıdır. Şimdi verilen bir noktayı ekran üzerinde yazmak için: X yerine 320+x ve Y yerine 100-y yazmamız gerekir. Burada 320 ve 100 sayıları ekranın ortasını temsil etmekte. Örneğimizde ekranın boyunun değişebileceğini düşünerek bunu önceden hesaplamış ve wxo% ve wyo% değerlerini kullanmıştık.
Bunun yanında ölçekleme içinde işlemler yapalım. Şu haliyle ekranın en sağ orta köşesi +320,0 koordinatında olacak. Eğer fonksiyonun kenarlarda alacağı maksimum değeri biliyorsak, uygun bir çarpma ile grafiği ölçekleyebiliriz. Aynı durum Y ekseni için de geçerli. Diyelim ki en sağ orta kenarın 10,0 noktası olmasını istiyoruz. X sağa kadar 320 nokta ötede. En sağ 10 olursa x başına kaç nokta düşer hesabını kolayca yapar ve X yerine 32*X yazmamız gerektiğini buluruz. Yani denklemimiz, X yerine 320 - (32*X) halini aldı. Örnekte bu sayılara ilaveten bir de soldan ve sağdan bir pay bırakıldığından formüller daha karışık gözüküyor.
% işareti bir değişkenin ondalık değişken olduğunu belirtiyor. Ondalık değişkenlerin . dan sonra değerleri yoktur ve 32767'den büyük değerler alamazlar. Az önce belirttiğim gibi, bu sayıları rahatça işlemlerimizde kullanabiliriz. Bu sayıları kullanmanın yararı nedir? Sadece hız. Bana inanmıyorsanız aşağıdakileri deneyin.
FOR F = 1 to 32000 ve FOR F% = 1 to 32000 G = F-G G% = F%-G% NEXT F NEXT F% İyi değil mi?. Son bir konu kaldı, o da se% adı verilen değişken. Bu değişken çizilen LINE'ın kaçar kaçar çizileceğini veriyor. Mesela se%=4 olursa grafik x'in her dört değerinden biri için çizilecek; dolayısı ile yapılan işlemler dörtte birine inecek. Önemli olan bu sayının işlevi değil. Dikkat ederseniz, bu sayı programın en başında belirlenmiş. Sadece bu en başını değiştirmek, tüm programın değişmesine sebep olacak. Bu tür sabitler kullanmaya alışın. Programlarınızı çok daha kullanışlı hale getirecektir.
Program RAM:'da bir dosya açıyor ve bunu silmiyor, haberiniz ola. (Hatasız kul olmaz. Sadece END'den önceye bir KILL "RAM:DATA" demek yeterli). Programlarınızı mümkünse RAD:'ı veya RAM:'ı kullanacak şekilde programlamanızı önemle tavsiye ederim.
Fazla çene yaptım ve çok ukalalık ettim. Affedin!. Bunun yanında yararlı olamadığımı söyleyemezsiniz. Önemli değil, benim için zevkti, bir dahaki sefere kadar hepinize (Özellikle MATEMATİKTE) başarılar.