Sayfa 1 / 3 123 SonSon
28 sonuçtan 1 - 10 arası sonuçlar
  1. #1

    Varsayılan Gw-basic

    GW-BASIC


    Gwbasic ile ilgili İnternet'te arama yaptığınızda, bir çok sonuç ile karşılaşırsınız. Gwbasic'i İnternet'ten, bir zip Arşivi olarak indirebilirsiniz. Zip Arşivini açtığınızda, içinden GWBASIC.EXE adında bir dosya çıkar. GWBASIC.EXE dosyasını çift tıkladığınızda, siyah bir pencere açılır. En üstte Gwbasic sürümü yazar, ve alt satırda hak sahibi tanıtılır. Üçüncü satırda ise kaç byte'lık kullanım alanının mevcut olduğu görünür. OK yazan satırdan sonra da bir imleç yanıp söner. Burası sizin işlem yapabileceğiniz alan olur.

    En alt bölümde numaralandırılmış kutucuklar görürsünüz. Kutucuklar birer komut içerir ve kutucukların önlerindeki numaralar, bu komutları çalıştıracak fn kısayol tuşlarının nmarasıdır.

    Aynı komutları yazarak ta çalıştırabilirsiniz.

    Komutlar ve Kodlar arasındaki fark şudur. Komutlar Gwbasic'e ne yapacağını bildirir. Kodlar ise hangi işlemlerin yapılacağını belirtirler.

    İlk Kodlarımızı yazalım

    Kod:
    print
    Enter tuşuna bastığımızda, bu Kod çalışacaktır. Ancak göreceğiz ki, sadece imleç iki satır aşağıya indi ve yine OK yazısı karşımıza çıktı. OK yazısı bize bir sonraki işleme başlayabileceğimizi belirtir.
    Kodumuz ise aslında hiç bir işlem yapmadı, çünkü işlenecek bir veri yoktu. Bir işlemin gerçekleşebilmesi için, önce işlenecek bir veri gerikiyor.

    Yeni bir deneme yapalım.

    Kod:
    print 5
    Bu işlemi başlattığımızda, alt satıra "beş" rakamı tekrar yazdırılır ve yeni bir işleme başlayabilmek için, yeni, boş bir satıra geçilir. "print" Kodu, işlemlerin çıktısını verir. Eğer biz yaptığımız işlemlerin çıktısını göremezsek, sonuçlarını bilemeyiz. Bu nedenle "print" Basic'te en sık kullanılan Kod oluyor. Bunun önemini anlayabilmek için, önce bir deneme yapalım.

    Kod:
    5 + 5
    Bu işlemi başlattığımızda, karşımıza yine boş bir satır çıkıyor. İşlemin sonucunu görebilmemiz için, aynı işlemi "print" Kodu ile birlikte deneyelim.

    Kod:
    print 5 + 5
    Buradan aldığımız sonuç ise sadece "On" rakamı. Bu rakam, bizim işlemimizin sonucu. Biz, neyin sonucunu aldığımızıda görmek istiyorsak, "print" Kodunun neyin çıktısını vermesinin gerektiğini, daha iyi sonuç verecek şekilde eklemeliyiz.

    Kod:
    print " 5 + 5 = " 5 + 5
    Bu işlemin sonucu olarak ( 5 + 5 = 10 ) çıktısı alıyoruz. Tırnaklar içine alına her veri, işlenmeden, yazıldığı gibi, çıktılarda görünür. Tırnaklar dışında kalan veri ise işlenir ve sadece sonucu görüntülenir.

    Şimdi bu özelliği daha iyi anlayabilmemia için, bir kaç deneme yapalım.

    Kod:
    print "Osman"
    Kod:
    print "Selâm kızlar, bu akşam sinemaya gidelimmi ?"
    Kod:
    print "Osman" + "Aysel"
    Kod:
    print "Osman " + "Aysel"
    Son iki örneğimiz arasındaki farka dikkat ederseniz, son örnekteki Osman'nın arkasında bir boşluk var ve bu sayede Osman ve Aysl birleşik yazılmamış oluyor. Tırnaklar dışındaki boşlukar ise yok sayılıyorlar.

    Kod:
    print a
    Kod:
    print "a"
    Kod:
    print " a + a = " a + a
    Bu üç örneğimizden anlayabileceğimiz, harfler tırnak içine alınmadan yazıldıklarında, değer olarak gösteriliyorlar ve değerleide "sıfır"

    Kod:
    print "Toplama: 4 + 4 = " 4 + 4
    Kod:
    print "Çıkartma: 12 - 6 = " 12 - 6
    Kod:
    print "Çarpma: 123 x 16 = " 123 * 16
    Kod:
    print "Bölme: 120 / 5 = " 120 / 5
    Bu örneklerde hesaplamalarda kullanılan operatörleri görmüş olduk ve çarpma için, Basic'te "*" (yıldız) işaretinin kullanıldığını öğrenmiş olduk. Bunun nedeni ise, "x" eks olarak okuna bir harf olarak geçmesinden kaynaklanıyor ve Gwbasic, bir derleyici olarak, aralarındaki farkı çözemeyebilirdi.
    En son oasman tarafından düzenlenmiştir: 07.12.2013 21:46 Sebep: imla hatası

  2. #2

    Varsayılan

    Çok satırlı işlemler


    Gwbasic ile her yazdığımız satır sonrası, bir alt satıra geçmek istediğimizde, yazdığımız Kodlar çalıştırılır. İşlemimiz için bir den fazla satır yazmamız gerektiğinde, iki farklı çözüm var. Birinci çözüm ise, aynı satıra bir den fazla satırı sığdırmak. Bu çözüm her zaman kullanışlı olmamakla birlikte, bazen kullanışlı olabiliyor.

    Kod:
    print "Osman sen çok yaşa": print "Osman sen çok yaşa"
    Kod:
    print "Merhaba": print "Merhaba": print "Merhaba"
    Burada her bir Kod ve işleyeceği veri grubu arasına çift noktalar ekleyerek, her grubu ayırıyoruz ve bu ayırımlar derleyici tarafından ayrı satırlar olarak değerlendiriliyor.

    Diğer yöntem ise, satırları numaralandırmak.

    Kod:
    1 print "Merhaba"
    2 print "Merhaba"
    3 print "Merhaba"
    Numaralandırılan satırlar hafızada bekletilir ve ancak komut ile çalıştırılır. Gerekli komut gelmediği sürece, derleyici yeni kod satırlarının yazılmasını bekler.

    Kod:
    run
    Veya f2 kısayol tuşu ile kodlarımızı çalıştırabiliriz. Numaralandırılan satırlar, silinene kadar veya üstlerine yazılana kadar hafızada kalırlar. Bu kodları, isterseniz defalarca tekrar çalıştırabilirsiniz.
    Şimdi bir ekleme yapalım

    Kod:
    4 print "Haydi maça gidelim, iki biletim var."
    run
    Yeni yazdığımız "4" numaralı satır, daha önce yazmış olduğumuz ve halen hafızada saklı tutulan ilk üç satıra eklenmiş oldu. "run" komutu için ise satır numarası kullanmıyoruz.
    Bir de, bir düzeltme yapalım.

    Kod:
    1 print "Benim adım Osman."
    run
    Burada var olan bir satırın üzerine yazmış olduk. Bir satır numarası iki kez kullanılacak olursa, sonradan eklenen aynı numaralı satır, öncekinin üstüne yazar. Hafızadaki kod satırlarını silmek için kullanabileceğimiz iki yöntem var. Birincisi, Gwbasic'i kapatabiliriz ve yeniden başlatabiliriz.
    İkinci yönten ise, komut kullanarak.

    Kod:
    new
    Bu komut hafızadaki tüm verileri siler ve yeni bir program için yer açar. Ancak, silinen kodlar halen, çalışmasalarda, ekranda görünmeye devam ederler.

    Kod:
    cls
    Bu komut ise ekranı temizler, ancak hafızayı silmez. Bazı durumlarda, ekranı temizlemek, ama hafızadaki kodlarımızı ve verilerimizi korumak isteyebiliriz. Şimdi temiz ve yeni bir işlem için kullanıma hazır bir hafızamız ve de bir de temiz bir ekranımız var.

    Yeni bir program yazalım.

    Kod:
    10 print "Bir rakam gir"
    20 input x
    30 print "Bir rakam daha gir"
    40 input y
    50 print x" + "y" = "x+y
    Biu programı çalıştıralım ve deneyelim. Önce "print" kodunu kullanarak bir bildiri yazmış olduk ve ardından yeni bir kod daha öğrndik. Adı da "input". Bu kod bizden klavyeyi kullanarak bir giriş yapmamızı bekler ve bizim klavyeden girdiğimiz veriyi "x" adındaki belirsiz veri ile değişir. ikinci bir bildiri daha yazdık ve yine bir ikinci "input" kodu ile ikinci bir giriş bizden bekleniyor, ve ikinci giriş bu sefer "y" isimli belirsiz veri ile yer değişiyor. Son aşamada ise, önce bizim girdiğimiz verilerin değerini alan belirsiz veriler, "print" kodu ile yazdırılıyor ve ardından bu iki, artık değerleri belli olan veri toplanıp, toplam değer yazdırılıyor. Tırnak içine alınanlar ise "+" ve "=" işaretleri ve boş alanlar. Bu program bir toplama yapabilen hesap makinesi.

    Yeni bir tane daha yazalım.

    Kod:
    10 print "Adın ne senin ?"
    20 input isim$
    30 print isim$" sen nerelisin ?"
    40 input sehir$
    50 print sehir$" güzel bir yer."
    Burada yine birinci örnek programımızda olduğu gibi bir işlem gerçekleşiyor, ancak "input" kodu ile değer atadığımız belirsiz verilerin sonuna birer "$" (Dolar) işareti ekledik. Kullandığımız "isim$" ve "sehir$" yerlerine "x$" ve "y$" da kullanabilirdik. "$" (Dolar) işareti ile işaretlenen belirsiz verilerine atanabilecek değer sadece Alfabetik harfler içerebilir. Dolar işaretini kullanmadığımız belirsiz verilerin yerine ise (tam tersi olarak) sadece rakamlar atayabiliriz.

    "isim$" isimli belirsiz veriye 1234 rakamlarını ile değer olarak değiştirmiş olsaydık, bu rakamlar bir kelime veya isim gibi derleyici tarafından işlenirdi. Tersi olarak ilk örnek programımızdaki "x" belirsiz verimize bir harf ile değerini değiştirseydik, değeri, hangi harf olursa olsu, sıfır olurdu.

    "sehir$" isimli belirsiz verimizin isminde "ş" harfinin kullanılmamasının nedeni ise, Gwbasic, tırnak işaretleri dışında Türkçe diline özel olan latin harflarini tanımaz.

    Çift tırnaklar kullandığımız yerlerde, tek tırnaklar kullansaydık, programımız hata verirdi. Bu tür detaylar, programlamada çok önemlidir.

  3. #3

    Varsayılan

    Kod kalıpları


    Basic'te bazı işlemler çok satırlı kodlar gerektirir. Bu işlemlerin bir başlangıcı, ve de bir sonu vardır. Bu tür kalıp yapıları inceleyelim.

    FOR ve NEXT kalıbı

    Kod:
    10 for sayim = 1 to 10
    20 print sayim
    30 next sayim
    Bu tür kendini tekrarlayan işlemlere döngü denir. İlk satır "for" ile neyin tekrarlanacağı belirtilir ve bunu belirtirken de önce bir belirsiz veri isimlendirilir. Bu tür verilere, değerleri değişime açık olduklarından, değişken denir. Bu değişken tekrarlanan veya saydırılan verinin değerini alır.

    İkinci satırda değişkenin aldığı veri "print" kodu ile yazdırılır.

    Son satırda ise "next" ile işlemin tekrarı için ilk satıra geri yönlendirilir. Bu geri yönlendirme işlemi, son değere ulaşıldığında sona erer.

    Programızmıza bir değişiklik ekleyelim.

    Kod:
    10 for sayim = 10 to 100 step 10
    Burada 10 numaralı satırı değiştirdik ve sayım işlemi 1 den 10'a kadar iken, şimdi 10'dan 100'ze kadar oldu ve ek olrarak "step" kodu ile, biz, sayımın 10'ar olarak yapılacağını belirtmiş olduk.

    Bir değişiklik daha yapalım.

    Kod:
    15 print "Merhaba"
    Şimdi ek olrak 15 numaralı satırı ekledik. 15 numaralı satır, programımızın sonunda olmasına rağmen, 10 numaralı ve 20 numaralı satır arasında işlem görecektir. satır numaralarını 10'ar olarak yazmanın bir yararı, sonradan eklemeler yapabilmemize olanak tanımasıdır. Programımız sadec 10'ar olarak 100'e kadar saymanın yanında, bir de on kez rakamların arasında Merhaba yazdırmış oldu.

    Ekranınızdaki görütü artık seçilemiyor olmuşsa,

    Kod:
    cls
    komutu ile ekranınızı temizleyin. Program halen hafızadadır, ancak ne yazmış olduğunuzu göremiyorsunuzdur. Devam edebilmek için, kodlarınızı görmek istiyorsanız,

    Kod:
    list
    komutu ile, veya f1 kısayol tuşuna basarak, hafızadaki kodlarınızı listeleyebilirsiniz. Göreceksinizki, sonradan eklediğimiz 15 numaralı satır gerkli olduğu sıraya yerleştirilmiş

    Fark edeceğiniz ikinci değişim ise, tırnaklar dışında kalan tüm yazılar, biz küçük harflerle yazmış olmamıza rağmen, büyük harflere dönüşmüşler. Bunun nedeni ise, Basic kodları aslında tamamı Büyük harflerle yazılırlar. Ancak sürekli küçük büyük harf arasında değiştirmeler, uzun süre çalışırken, hem dikkat dağıtmaya başlıyorlar ve de zahmet vermeye başlıyorlar. Gwbasic, Basik kodlarını ve de programımıza eklediğimiz değişkenleri, yanlışlıkla küçük harflerle yazılmış olsalar bile tanır ve onları düzeltir. biz şimdiye kadar sürekli hatalı yazmışız ve sürekli olarak hatalarımız düzeltilmiş. Kodlarımız listelendiğinde de, düzeltilmiş hali ile listelenmiş oldular.

    Bütün programı değilde, sadece belirli bir satırı listelemek istediğimizde,

    Kod:
    list 15
    örnekte olduğu gibi "list" komutuna satır numarasını ekliyoruz. Bunu yaparkende, komut ve veri (bu durumda satır numarası) arasında mutlaka bir boşluk bırakmalıyız, çünkü "list15" adında bir komut yok. Aynısı kodlar için de geçerlidir.

    "for" ve "next" dögüsü için sadece rakamları temsil eden bir değişkeni kullanabiliriz. "sayim$" adında bir değişkeni kullanamayız.

    Dikkat etmemiz gereken bir başka ayrıntı ise, "ı" harfi Türkçe dışındaki latin alfabelerinde yok, ancak Avrupa dillerinde "i" büyük yazıldığında, nokta kullanılmıyor. Gwbasic için de bu ayrıntı geçerlidir.

    IF THEN ve ELSE kalıbı

    Kod:
    10 prınt "Bir ve On arası bir rakam gir"
    20 input rakam
    30 if rakam = 3 then print "Tebrikler" else print "Tekrar dene"
    "if" ve "else" kalıbı aynı satırda kullanılıyor ve "if" beklenen bir değer doğruysa "then" ile belirlenen işlem uygulanıyor. Beklenen değer yanlış ise, "else" ile belirlenen işlem uygulanıyor.

    Başka bir örnek.

    Kod:
    10 print " 1 veya 2 veya 3 sayısını seçin"
    20 input sayi
    30 if sayi = 1 then print "Elma"
    40 if sayi = 2 then print "Armut"
    50 if sayi = 3 then print "Ayva"
    GOTO kalıbı

    Kod:
    10 print "Bir seçim yap"
    20 print " a = Aysel"
    30 print " b = Zeynep"
    40 input secım$
    50 if secım$ = "a" then goto 60 else goto 80
    60 print "Aysel'in telefonu 0542 2345678"
    70 end
    80 print "Zeynep'in telefonu 0535 2345678"
    90 end
    "goto" kodu ile seçilen satır numarasına atlanır, ve "end" kodu ile programın devam etmesi ve diğer seçeneklerin, istenmemiş olsalar dahi, yazılmasını önlenir.

    GOSUB ve RETURN

    Kod:
    10 gosub 50
    20 print "Aysel"
    25 print "ve"
    30 print "Zeynep"
    40 end
    50 print "Okulumuzun en güzel kızları"
    60 print "bence bu ikisi."
    70 return
    "gosub" kodu, "goto" koduna benzer. Aralarındaki farklar, "gosub" ile geçiş yapılan işlemlerin sonuna mutlaka "return" kodu eklenmek zorunda. "goto" ile geçiş yapılan satırların sonuna "end" eklemek gerekmek, ancak eklenmediği durumlarda, program sonraki kod satırlarını çalıştırmaya devam eder ve biz her zaman bunu istemeyebiliriz.

    "return" kodu, "gosub" kalıbının işlemlminin veya işlemlerinin bitmesinden sonra, programın, geçiş yapılmadan önce kaldığı yerden devam edilmesini sağlar. Hangi satırdan geçiş yapılmışsa, tekrar bir sonraki kod satırına geri geçiş yapar.

    Bir örnek daha inceleyelim.

    Kod:
    10 print "GS mi? yoksa FB mi?"
    20 input takım$
    25 print "Seçtiğiniz takımın bu hafta şampiyonlar ligindeki durumu :"
    26 print
    30 if takım$ = "gs" then gosub 100 else gosub 200
    50 print "başka bir işlem yapmak istermisiniz ?"
    60 print
    70 print "evet/hayır"
    80 input cevap$
    90 if cevap$ = "evet" then goto 10 else goto 300
    100 rem Galata Saray bölümünün başlangıcı
    110 print "Galatasaray bu hafta cok kötü oynadı ve beşinci sıraya düştü."
    120 print "Halen bu takımı tutmakta ısrarlımısınız ?"
    130 print
    140 return
    200 rem Fenerbahçe bölümünün başlangıcı
    210 print "Fenerbahçenin bu hafta tüm 11 oyuncuları sakatlandıkları için"
    220 print "hiç bir maça çıkamadılar ve lig den ihraç edildiler."
    230 print "Taraftarlara, bu sezon için, Real Madrit'i tutmaları öneriliyor."
    240 print
    250 return
    300 end
    Bu örnekte bazı boş "print" satırları ekledim. Programın akışı içinde işlemlerin kolay ayırt edilebilmeleri için. Siz bu boş satır oluşturan, veri eklenmemiş "print" kod satırlarını sonradan silmek isteyebilirsiniz. Bunun için, mesela

    Kod:
    delete 26
    komutu ile 26. satırı, veya seçtiğiniz her hangi bir satır numarası ekleyerek, silmek istediğiniz satırı silebilirsiniz.

    Ben bu örnekte bazı düzenlemeler yaptığım için, satır numaralarının hepsi on'ar düzende olmamış. Siz görütünün bozulduğunu düşünüyorsanız

    Kod:
    renum
    komutu ile tüm satır numaralarını On'ar düzene sokulmalarını sağlayabilirsiniz. Gwbasic, "goto" ve "gosub" ile geçiş yapılan satırları dahi, yeni numaralandımaları uyarlıyor. Böylelikle, satırların yeniden (otomatik olarak) düzenlenmelerinden doğacak bir sorun çıkmıyor.

    Son örneğimizde bir de yeni bir kod daha kullandım.

    Kod:
    rem
    Bu kod ile "gosub" ile geçiş yapılan kalıpların başlangıcını işaretlemiş oldum. "rem" kodunu istediğiniz yerde kullanabilirsiniz. "rem" ile başlayan satırlar program içinde görünmekzler ve işlenmezler. Gwbasic bu satırları yok sayar. Ben burada bu kodu, "gosub" kod kalıplarının başlangıcını anlaşılır bir şekilde belirtmek için kullandım. Siz isterseniz, yarım kalmış işlerinizde hatırlatma amaçlı olarakta kullanabilirsiniz. "rem" kodu, programcının program içinde not tutabilmesini sağlar.
    En son oasman tarafından düzenlenmiştir: 21.11.2013 13:07

  4. #4

    Varsayılan

    Programların kayıt edilmesi

    Kodlarınızı her defasında yeniden yazmak, size biraz sıkıcı gelebilir. Özelliklede programlarınız çok uzun sa, kodlarınızı her zaman hatırlayamayabilirsiniz ve her seferinde önce defalarca denemeniz gerekebilir. Yararlı bulduğunuz programlarınızı bir yere kayıt edip, ileride tekrar ihtiyaç duyduğunuzda, kayıttan kullanabilmek, çok daha pratik bir yöntem olurdu.

    Önce bir örnek program yazalım.

    Kod:
    10 rem Hesapmakinesi
    20 print
    30 print "             Hesap Makinesi"
    40 print
    50 print " Toplama için  1"
    60 print
    70 print " Çıkartma için 2"
    80 print
    90 print " Çarpmak için  3"
    95 print
    99 print " Bölmek için   4"
    100 input hesaplama
    110 if hesaplama = 1 then gosub 200
    120 if hesaplama = 2 then gosub 300
    130 if hesaplama = 3 then gosub 400
    140 if hesaplama = 4 then gosub 500
    150 print "Yeni bir işlem yapmak istermisiniz ?"
    160 print
    170 input " Evet / Hayır : ", cevap$
    180 if cevap$ = "evet" then goto 10 else goto 600
    200 rem Toplama:
    210 cls
    220 print
    240 input "İlk rakam :", rakam1
    250 input "Son rakam :", rakam2
    260 print rakam1" + "rakam2" = "rakam1+rakam2
    270 print
    280 return
    300 rem Çıkartma:
    310 cls
    320 print
    330 input "İlk rakam :", rakam1
    340 input "Son rakam :", rakam2
    350 print rakam1" - "rakam2" = "rakam1-rakam2
    360 print
    370 return
    400 rem Çarpmak:
    410 cls
    420 print
    430 input "İlk rakam :", rakam1
    440 input "Son rakam :", rakam2
    450 print rakam1" x "rakam2" = "rakam1*rakam2
    460 print
    470 return
    500 rem Bölmek:
    510 cls
    520 print
    530 input "İlk rakam :", rakam1
    540 input "Son rakam :", rakam2
    550 print rakam1" / "rakam2" = "rakam1/rakam2
    560 print
    570 return
    600 rem Programı kapat:
    610 cls
    620 print
    630 print "             Programdan çıkmayı seçtiniz."
    640 print
    650 system
    Bu kadar satır kodu akılda tutmak ve her seferinde yeniden yazmaya kalkışmak biraz zor olur. Şimdi bu programı kayıt edelim.

    Kod:
    save "hesapmak"
    veya "f4" kısayol tuşu ve tırnak içinde "hesapmak" yazabilirsiniz. "GWBASIC.EXE" dosyasının bulunduğu klasörün içine (Gwbasic'in yanına) baktığınızda, "HESAPMAK.BAS" isimli bir yeni dosya keşfedeceksiniz.

    Kayıt ettiğiniz dosya üzerinde sonradan aklınıza gelen bir değişiklik yapmak istediğinizde, Gwbasic'i kapatmadıysanız, program halen hafızada olacaktır ve değişikliklerinizi hiç bir endişeniz olmadan yapabilirsiniz. Ancak değişiklikler sadece hafızada olduğundan, hata yapsanız bile, bu hata kayıtlı dosyayı etkilemez. Yapmış olduğunuz değişiklik düzgün çelışıyorsa, tekrar aynı işlemi ve aynı ismi kullanarak yapabilirsiniz. Veya farklı bir isim kullanarak, ilk orijinalini bozmadan, yeni bir dosya kayıt edebilirsiniz.

    Kayıt ettiğiniz bir dosyayı başka bir zaman tekrar açmak istediğinizde.

    Kod:
    load "hesapmak"
    komutu ile Gwbasic'e yükleyebilirsiniz ve

    Kod:
    list
    komutu ile tekrar görüntüleyebilirsiniz. Bu boyutta veya daha büyük programların tamamını görüntülemek imkânsızdır. Sadece son satırlarını göreceksinizdir.

    Kod:
    list 100-200
    Bu şekilde ise kodlarınızı bölümler halinde görüntüleyebilirsiniz. Programı tekrar çalıştırabilmek içinde

    Kod:
    run
    komutunu kullanıyoruz. Bir programı önce hafızaya yüklemedende çalıştırmak mümkün.

    Kod:
    run "hesapmak"
    komutu ile programı doğrudan çalıştırabilirsiniz. Gwbasic, dosya isimlerindede küçük harfleri ve büyük harfleri eşitler ve kayıt ederken büyük harfli isimler altında kayıt yapar, ve okurkende yine küçük harfli veya büyük harfli isimler arasında ayrım yapmaz. osya ismindeki ".BAS" uzantısınıda otomatik olarak ekler ve yine dosya açmak istendiğinde, isminin ardındaki ".BAS" veya ".bas" uzantısı yazılmamış olsada, dosyayı tanır. Diğer formatlı dosyaları ise tanımaz ve açmaz.

    Not defteri ile yazılmış ve de dosya türü olarak "tüm dosyalar" seçilerek ve ".bas" uzantısı eklenerek kayıt edilmiş dosyalarıda Gwbasic yükleyebilir ve de görüntüleyebilir (satır numaraları kullanılmış olması şartıyla) ancak nadiren, Basic kodları içerse dahi, çalıştırabilir. Hile yapmak sınırlı olarak mümkün.

    Gwbasic'in kayıt ettiği ".BAS" uzantılı dosyalar, sizin yazdığınız Basic kodlarını içermezler. Sizin yazmış olduğunuz kodların dönüştürülmüş halini içerirler.

    Windows bu dosyaları doğrudan çalıştıramaz. Windows'un doğrudan çalıştırdığı dosya formatları EXE, COM ve BAT formatlı dosyalar olurlar. Tüm diğer dosyaları Windows bu dosyaları tanıyan ve çalıştırabilen veya açabilen ve de Windows'ta kurulu olan programlara yönlendirir.

    BAS dosyasının üzerine çift tıklandığında, Windows bir sorgu penceresi açar ve sizden bir seçim yapmanızı bekler. İki şeçenek sunar. "Windows bu dosyayı çalıştırabilmek için çevrim içi bir arama yapsınmı" ve "Hangi program ile çalşacağını kendim seçeceğim" İkincisini seçin ve "Gözat"ı seçin ve klasörler arasında gezinerek, "GWBASİC:EXE" dosyasını bulun ve seçin.

    Artık her üstüne çift tıkladığınız ".BAS" uzantılı dosya, tıpkı bir exe dosyası gibi kebdiliğinden çalışacaktır. "BAS" dosyası bilgisayarınızın her hangi bir klasöründe buluabilir. bu sonucu değiştirmez. Ancak "GWBASIC:EXE" dosaysını silerseniz veya yerini değiştirirseniz, Windows hata bildirmeye başlayacaktır.

    İsterseniz Gwbasic'i (Win XP'de) Program Files klasörüne bir klasör içine kopyalayıp, Sonra BAS veya bas dosyalrının hangi program ile çalıştırılacağını Windows'a bildirirsiniz.

    İsteseniz masaüstünüze (Ekranın boş bir alanına) çift tıklayarak, açılan sorgu dan "yeni" seçerek, ve seçenekler arasından link oluştur seçerek, yine "Gözat"tan "GWBASIC:EXE" dosyasının yerini göstererek, masaüstünüze Gwbasic için bir başlatıcı simgesi ekleyebilirsiniz. Simgenin üstünde renkli olarak "MSDOS" yazar.

    Örnek programımızda bazı yeni uygulamalar fark etmişsinizdir. Bunlardan birisi "CLS" komutunu program içinde bir kod gibi kullanılmış olduğu. Bir diğeri ise "INPUT" kodu ile birlikte, tıpkı "PRINT" kodunda olduğu gibi, bir çıktı ekleyebildiğimizdir. "INPUT" kodunu bir çıktı (Açıklama) ile birlikte yazdığımızda, değişken ve açıklama arasına bir virgül eklemek mutlaka gerekiyor. Son olarakta programı sonlandırmak için kulandığımız bir komut olan "SYSTEM". Bu komut programdan çıkmamızı sağlar. "END" kodu ise sadece işlem gören programı veya kod kalıbını sonlandırır.
    En son oasman tarafından düzenlenmiştir: 23.11.2013 20:53 Sebep: eklemeler oldu ve örnek programın son satırı düzeltildi

  5. #5

    Varsayılan

    Renkli programlar

    Önceki örnek programımız olan, hesap makinesinde bazı düzeltmeler yapalım.

    Kod:
    10 rem Renkli Hesapmakinesi
    15 color 3
    20 print
    30 print "             Hesap Makinesi"
    40 print
    50 print " Toplama için  1"
    60 print
    70 print " Çıkartma için 2"
    80 print
    90 print " Çarpmak için  3"
    95 print
    98 print " Bölmek için   4"
    99 print
    100 input " Seçiminiz    ",hesaplama
    110 if hesaplama = 1 then gosub 200
    120 if hesaplama = 2 then gosub 300
    130 if hesaplama = 3 then gosub 400
    140 if hesaplama = 4 then gosub 500
    145 color 6
    150 print " Yeni bir işlem yapmak istermisiniz ?"
    160 print
    170 input " Evet / Hayır : ", cevap$
    180 if cevap$ = "evet" then goto 10 else goto 600
    200 rem Toplama:
    205 color 2
    210 cls
    220 print
    240 input "İlk rakam :", rakam1
    250 input "Son rakam :", rakam2
    260 print rakam1" + "rakam2" = "rakam1+rakam2
    270 print
    280 return
    300 rem Çıkartma:
    305 color 2
    310 cls
    320 print
    330 input "İlk rakam :", rakam1
    340 input "Son rakam :", rakam2
    350 print rakam1" - "rakam2" = "rakam1-rakam2
    360 print
    370 return
    400 rem Çarpmak:
    405 color 2
    410 cls
    420 print
    430 input "İlk rakam :", rakam1
    440 input "Son rakam :", rakam2
    450 print rakam1" x "rakam2" = "rakam1*rakam2
    460 print
    470 return
    500 rem Bölmek:
    505 color 2
    510 cls
    520 print
    530 input "İlk rakam :", rakam1
    540 input "Son rakam :", rakam2
    550 print rakam1" / "rakam2" = "rakam1/rakam2
    560 print
    570 return
    600 rem Programı kapat:
    605 color 1
    610 cls
    620 print
    630 print "             Programdan çıkamyı seçtiniz."
    640 print
    650 system
    Yaptığımız ufak düzeltmeler, programın göze daha hitab etmesini sağlamaktan ibaret. Bir kaç yeni satır eklenmesi dışında, seçim ekranı biraz düzeltilmiş oldu. Yeni eklediğimiz satırlar, programımızın çeşitlii bölümlerini renklendirerek, daha kolay seçilebilir ve biraz daha albenili yapmış oldular.

    Şimdi renkleri tanıyalım.

    Kod:
    10 color 0
    20 print "Selâmlar"
    Bu satırları çalıştırdığımızda, ekranda hiç bir şey göremeyeceğiz. Çünkü, yazıların renkleri siyah.
    Şimdi, ne yazdığımızıda göremesekte, bu durumu düzeltmeye çalışalım.

    Kod:
    10 color 7
    20 print "Selâmlar"
    "COLOR" kodu ardındaki rakamı değiştirerek, tekrar yazılarımızın rengini düzeltmiş olduk.

    Kod:
    10 color 1
    20 print "Selâmlar"
    Şimdi yazı rengi lacivert oldu.

    Kod:
    10 color 2
    20 print "Selâmlar"
    Yazılarımız yeşil oldu.

    Kod:
    10 color 3
    20 print "Selâmlar"
    Yazılarımız mavi oldu.

    Kod:
    10 color 4
    20 print "Selâmlar"
    yazılarımız kırmızı oldu.

    Kod:
    10 color 5
    20 print "Selâmlar"
    Yazılarımız pembe oldu.

    Kod:
    10 color 6
    20 print "Selâmlar"
    Yazılarımız turuncu oldu.

    Gwbasic, toplam 8 farklı renk destekliyor. Renkler 0 ile 7 arasında numaralar ile tanınıyorlar. Ancak, 8 ve sonrası rakamlar kullanıldığında, aynı reklerin parlak ton'ları kullanılır. Bu durumda turuncu'nun parlak renklisi sarı oluyor. Daha sonraki rakamlar ise yanar söner rekler ve yine daha sonraki rakamlar, parlak yanar söner rekleri temsil eder. Toplam olarak, renk çeşitlerinide hesaplarsak, 32 renk seçeneği var. Bunlar 0 ve 31 arasında rakamlar ile temsil edilirler.

    Bütün renkleri gösteren bir program yazalım.

    Kod:
    10 dim renkler$(7)
    20 renkler$(0) = "Siyah"
    30 renkler$(1) = "Lacivert"
    40 renkler$(2) = "Yeşıi"
    50 renkler$(3) = "Mavi"
    60 renkler$(4) = "Kırmızı"
    70 renkler$(5) = "Pembe"
    80 renkler$(6) = "Turuncu"
    85 renkler$(7) = "Beyaz"
    90 for x = 0 to 7
    95 color x
    96 print "   Renk numarası : "x" "renkler$(x)
    99 next x
    Bu program bize rekleri, numarası ve ismi ile gösteriyor. Burada sadece ana renkleri kullandık. Bir de farklı ton ları ile sıralayan bir program daha yazalım.

    Kod:
    10 for renk = 0 to 31
    20 color renk
    30 print "   Renk numaraları ve renkler : "renk
    40 next renk
    En son oasman tarafından düzenlenmiştir: 23.11.2013 20:51 Sebep: Ekleme + Düzeltme

  6. #6

    Varsayılan

    Renklerin kullanımı

    Renkleri nasıl daha etkin kullanabileceğimizi bir kaç örnek üzerinde görelim.

    Kod:
    10 color 2,5
    20 print "Merhaba Ayşe"
    Bu örneğimzde, "COLOR" kodu ardında, tek bir renk numarası yerine, iki renk numarası kullandık ve bu iki rakamı, bir virgül ile birbirinden ayırdık. Sonuç olarak ise, kodlarımızı yürüttüğümüzde, sadece yazılarımızın değil, yazı arkasındaki zemin de değişmiş oldu. Pembe üzerine yeşil ile yazmış olduk.

    Kod:
    10 color 2,5
    20 cls
    30 print "Merhaba Zeynep"
    Kodlarımızı "CLS" komutu ile birlikte kullandığımızda, sadece harflerin arkası değil, tüm arkaplan rengi değişmiş oldu.

    Kod:
    10 color 14,1
    15 cls
    20 print
    30 print
    40 print
    50 print
    60 print
    70 print
    80 print
    90 print
    99 print
    100 print "                             Bugün : "date$
    110 print "                             Saat  : "time$
    120 print
    130 print
    140 print
    150 print
    160 print
    170 print
    180 print
    190 print
    200 print
    210 print
    220 print
    230 print
    Bu örneğimizde 100 ve 110 satırlı kodlarımız yeni bir işlev görürlerken, diğer satırlar, görüntüyü düzenlemek için kullanılmış. Renk seçimi ise ilk satırdaki kodumuzca Lacivert üstü sarı yazı olarak belirlenmiş.

    100 nolu satırımz Tarihi, ve 110 nolu satırımız Saati gösterir, ancak saat ilerlemez, sadece program başlatıldığı anki saati, saat:dakika:saniye şeklinde gösterir. Tarih ise Ay:Gün:Yıl olarak gösterilir.

    Tekrar denemek için, şu şekilde kod girebilirsiniz.

    Kod:
    print date$
    Kod:
    print time$
    Bir örnek daha deneyelim.

    Kod:
    10 for x = 0 to 15
    20 for y = 0 to 15
    30 color x,y
    40 print "   Merhaba   ";
    50 next y
    60 next x
    Bu örneğimizde iç içe olan iki "FOR" ve "NEXT" kalıbını kullanıyoruz. "NEXT" için kullanılan değişkenlere dikkatlice baakın lütfen. "FOR" için kullanılan değişkenler bu sefer ters sıra ile yazılmışlar. Bunun mantığı ise, "y" "FOR" döngüsü, "x" "FOR" dögüsünün içinde yer alıyor. O halde, ilk olarak kapatılması gerekiyor. Yine dikkat etmeniz gereken bir nokyaysa, "PRINT" kodu ile yazdırdığımız ifadenin sonuna eklediğimiz ";" (nokyalı virgül) işareti. Noktalı virgülün Basic'teki işlevi, satır aşağı işlemini devredışı bırakmak oluyor. bu şekilde, "PRINT" ile yazdırılan ifadeler, alt alta yerine, yan yana yazılabilmiş oluyorlar.

    Renk seçiminde "COLOR 1,2" sıralamasında, ilk rakam yazı rengi olurken, ikinci rakam artalan rengini temsil ediyor. Artalan rengi için sadece ilk 16 (0 - 15 ) renk rakamı kullanılabiliyor. Diğer yanar söner renk seçenekleri artalanda çalışmıyor.

    En son hangi renk seçenekleri seçilmişlerse, Gwbasik o renklerde çalışmaya devam eder. Ya kapatılana kadar, ya da yeni renk seçenekleri seçilene kadar.
    En son oasman tarafından düzenlenmiştir: 24.11.2013 21:26 Sebep: düzelme

  7. #7

    Varsayılan

    Verilerin diziler halinde işlenmesi

    Programlamada verilerin değişkenlere atanarak işlenmeleri yaygın bir uygulamadır. Basic ise bir değişkene bir den fazla değer atanabilmesini sağlar. Bunun nasıl işlediğini basit örnekler üzerinde görelim.

    Kod:
    10 dim isim$(3)
    20 isim$(1) = "Osman"
    30 isim$(2) = "Zeynep"
    40 isim$(3) = "Zahide"
    50 for x = 1 to 3
    60 print isim$(x)
    70 next x
    "DIM" ile tanımlanan bir değişkenimiz var. Değişkenimizin adı "isim$()" ve bu değişkene atanabilen değerlerin sayısı "4" adet. Gwbasic sayamaya "0" dan başlar ve "3" rakamını da dahil edince, toplam "4" değer ediyor. "DIM" ile tanımlanan değişkenlerin isinleri bir başka yerde tekrar başka bir değişken için kullanılamazlar. Değişkenlerin değerleri "DIM" satırından sonra atanırlar. "DIM" sadece değişkenin kaç değer taşıyabileceğini belirler ve bu belirlenen değer sayısı sabittir. değişkene daha az değer atanabilir , ancak daha fazla değer atanamaz. Bu örenekte "4" değer atayabileceğimiz değişkenimize "3" değer atadık ve onları bir "FOR" ve "NEXT" kalıbından oluşan döngü içinde yazdırdık.

    Kod:
    10 dim isim$(3)
    20 isim$(1) = "Osman"
    30 isim$(2) = "Zeynep"
    40 isim$(3) = "Zahide"
    45 isim$(0) = "Ali"
    50 for x = 0 to 3
    60 print isim$(x)
    70 next x
    Bu örneğimizde, sadece 45 nolu satırı ekledik ve "FOR" döngüsünü "0" dan başlattık ki "0" numaralı "isim$()" değişkenin değeride yazdırılabilsin. Değişkenin değerlerini yazdırırken sadece değerlerinin sayısı değil, numaralarının da doğru girilmesi önemli. Çünkü bütün değerlerin yazdırılması gerekmiyor ve yazdırılacak veya işlenecek değerin doğru seçilmesi gerekiyor.

    Kod:
    10 dim isim$(3)
    20 isim$(1) = "Osman"
    30 isim$(2) = "Zeynep"
    40 isim$(3) = "Zahide"
    45 isim$(0) = "Ali"
    50 for x = 1 to 2
    60 print isim$(x)
    70 next x
    veya

    Kod:
    10 dim isim$(4)
    20 isim$(4) = ("Ayşel"+"Osman"+"Ali"+"Zahide"+"Zeynep")
    30 for x = 0 to 4
    40 print isim$(x)
    50 next x
    Son örnekte, sadece bir değer atanmış olduğundan, ilk dört satır, yazdırılmak için sayılmış olsalarda, boş çıkacaklar ve son satır yazdırılmış olacak. Dikkat ! 20 nolu satırda her ne kadar beş değer belirtilmişsede, bu değerler aslında sadece bir uzun değer. Değerler arasındaki "+" işareti yerine "," (virgül) eklenmiş olsaydı, bu sefer beş ayrı değer, "isim$()" değişkeninin beşinci (4 nuaralı) dizisine atanmış olurdu ve bu bir hatalı şlem olacağından, işlem durdurulurdu. Değer büyük olabilir ama her bir dizi bölümü için tek olmak zorunda.

    Kod:
    10 dim sayi(4)
    20 sayi(0) = 123
    30 sayi(1) = 234
    40 sayi(2) = 567
    50 sayi(3) = 5
    60 sayi(4) = 12
    70 for x = 0 to 4
    80 print sayi(x)
    90 next x
    Aynı şekilde aynı dizi içinde rakamlarda kullanabiliriz. Ancak karışık olarak (Rakam ve Alfabetik karakterler) kullanamayız. (Rakamları tırnaklar içine alabiliriz ve bu durumda rakam değil, sadece karakter temsil ederler)

    Veri dizilerininin ne tür bir yararı olabileceğini daha iyi anlayabilmemiz için bir yeni örnek daha deneyelim ve inceleyelim.

    Kod:
    10 dim meyve$(4)
    20 dim fiyat(4)
    21 meyve$(0) = "Elma"
    22 meyve$(1) = "Armut"
    23 meyve$(2) = "Ayva"
    24 meyve$(3) = "Üzüm"
    25 meyve$(4) = "Muz"
    26 fiyat(0) = 17.50
    27 fiyat(1) = 5.30
    28 fiyat(2) = 12.45
    29 fiyat(3) = 0.50
    30 fiyat(4) = 1.75
    40 for x = 0 to 4
    50 print meyve$(x)" Kilosu : "fiyat(x)" TL"
    60 next x
    Burada "fiyat()" değişkenini "fiyat$()" ve "rakam" olarak kullanmamamızın nedeni, rakamların hesaplanabiliyor olmalarından kaynaklanıyor. Her ne kadar bu örneğimizde, hesaplama gerektiren bir işlemimiz olmasada, daha gerçekçi programlarda, verilerimizin hesaplanmaları da gerekebilir.
    En son oasman tarafından düzenlenmiştir: 25.11.2013 16:25

  8. #8

    Varsayılan

    Kayıtlı verilere erişim

    Programların tek yaptıkları işlem, veri işlemektir. Bilgisayarda yapılan tek işlem de yine budur. Farklı programlar farklı veriler işler ve sonucunu bildirir veya gösterir. Veriler önemlidir ve bazı önemli verilerin saklanabilmesi gerekir. Kayıtlı verilerin Gw-basic'te nasıl işlendiğini görelim.

    Kod:
    10 read a$, b$, c$, d$, e$, f$, g$ h$
    20 prınt f$
    200 data "Ali", "Hasan", "Hüseyin", "Osman"
    210 data "Zahide", "Zuhal", "Nalan", "Zeynep"
    Bu örneğimizde dört erkek ve dört kız isimleri "DATA" kodu ile başlayan iki ayrı satırda, ayrılmış olarak yazılmışlar. Verinin işlenebilmesi için, önce verinin var olması gerekir. Bu örneğimizde, verilerin bulunduğu bölüm, programın sonunda olsa bile, programın ilk yazılması gereken bölüm.

    Bu nedenle satır numaralarını seçerken, programın başlangıç bölümünün satır sayıları önceden tahmin edilmei ki, "DATA" satırları ile programın işlem gören bölümünün satırları çakışmasın.

    Gw-basic toplam 65000 satırı okuyabilir. Ancak, satırlar On'ar düzende yazıldığında, bu sayı 6500 satıra düşer. Bunun nedeni, Gw-basic satırların satısını değil, satır numaralarının büyüklüğünü 65000 kod satırı olarak destekler. Satır numaraları 1, 2, 3 gibi giderse, ve siz halen işlemlerin gidişini takip edebiliyorsanız, 65000 satır kod yazmanıza bir engel yoktur.

    Örnek programımıza dönelim.

    10 numaralı satırdaki "READ" kodu, "DATA" ile başlayan satırlardaki veriyi (programın son bölümünden) okur ve bu verileri, 10 numaralı satıra eklenen değişkenlere ekler. Verilerin sayısı ve değişkenlerin saysı eşit olmalı. Değişkenlerin sayısının yetersiz kalması durumunda, sadece eşitlenen veri okunabilir ve diğerleri kullanılamaz. Değişkenlerin sırası nasıl yazılmışlarsa, eşdeğer dıradaki veri ile eşitlenirler. Okunan veriler içinden ise, seçilen hangisi ise, 20 nolu satırda "PRINT" kodu ile, o veri yazdırılır

    Bir örnek daha.

    Kod:
    10 read a, b, c, d, e, f, g, h
    20 prınt e
    30 prınt c
    100 data 1.75, 2.50, 0.50, 12.30
    110 data 3.50, 12.45, 17.99, 1.45
    Bu öerneğimizde, tüm veriler rakamlardan oluşuyor. Okunan veriler arasından, biz hangisini ve hangi sırada yazdırmak istiyorsak, o şekilde yazdırabiliyoruz.

    Karışık bir örnek deneyelim.

    Kod:
    10 read a, b, c, d, e, f, g, h, a$, b$, c$, d$
    20 print a, b, c, a$
    30 prınt a$; a, b$; b
    100 data 1.75, 2.50, 0.50, 12.30
    110 data 3.50, 12.45, 17.99, 1.45
    120 data "Elma", "Armut", "Ayva", "Üzüm"
    Bu örneğimizde, "READ" ile okuduğumuz veriler karışık. "DATA" ile ilk sırada başlayan ve son sırada biten verilerin tümünü, doğru bir sıralamada, sayılar için ve isim veya ifadeler için uygun değişkenlere atyabildiğimiz sürece, programımız düzgün çalışır. veri türlerine göre sıra saymaya yeniden bir başlangıç yok. "DATA" ve "READ" kodları, veri türleri arasında ayrım yapmazlar. Ancak, değişkenlere atandıktan sonra, veriler işlenirken, doğru veri türüne doğru değişken atanamadıysa, programımız sorunlu çalışmaya başlar. (çalışmaz)

    20 ve 30 numaralı satırların çıktılarını dikkatlice inceleyin lütfen. Veriler için kullanılan değişkenlerin isimleri arasında ";" (noktalı virgülkullaıldığında (20. satırda) veriler birbirinin ardına yazılır. "," (virgül) kullanıldığında, veriler aralıklı yazılır. Tam olarak altı (harf) karakteri mesafe ile ayrı yazılırlar.

    Bir karışık örnek daha deneyelim.

    Kod:
    10 read a$, b$, c$, d$
    20 read a$, b, c, d
    30 print "          Fiyat Listesi"
    40 print
    50 print a$, a
    60 print b$, b
    70 print c$, c
    80 print d$, d
    100 data "Lahana", "Pırasa", "Kabak", "Marul"
    200 data 1.45, 2.50, 0.75, 2.75
    Bu örnekte, kayıtlı verilerin nasıl pratikte kullanılabilindiğini görmüş olduyoruz

  9. #9

    Varsayılan

    Dosyada kayıtlı verilere erişim

    Gw-basic ile bir dosyadan veri okuyabilirsiniz. Tabii dosyaya veri kaydıda yapabilirsiniz. Önce bir dosya açıp, veri kayır edelim.

    Kod:
    open "deneme.dat" for output as #1
    Gw-basic'in bulunduğu klasörde (veya sisteminizin varsayılan çalışma alanı olarak tanıdığı klasörde)
    yeni bir dosyanın açıldığını göreceksiniz. Dosyanın adıda "DENEME.DAT"

    "OPEN" kodu, sizin ismi ile belirttiğiniz dosyayı açar, veya öyle bir dosya yoksa, oluşturur. "OUTPUT" kodu ise açılan dosyanın hangi amaç ile açıldığını belirtir ve bu dosya sadece o amaç ile kullanılabilir. Aslında "OUTPUT"un anlamı çıktı demek oluyor, ancak buradaki kullanımı, Gw-basic'ten çıktı aktarmak oluyor. Kodların isimlerini İngilizce kelimeler ile eşdeğer anlamda kıyaslayarak çözmeye çalışırsanız, bazen kafanız karışabilir. Ama genelde benzerdirler.

    "#1" ise dosya isminin ilişkilendirildiği bir değişken oluyor. İsterseniz bir yerine başka bir rakamda kullanabilirsiniz. Ancak işlem sonuna kadar bu rakam sabit kalmalıdır. Bir rakamı aslında dosya numarasıdır. Çünkü Gw-basic anı anda bir den fazla dosya açıp, bir den fazla dosya ile çalışmanıza imkân tanır. Tabii bu durumda kafanız karışmayacak kadar tecrübeye sahip olmanız gerekiyor.

    Devam edelim.

    Kod:
    wrıte #1, "Merhaba"
    Şimdi dosyamıza bir kelime eklemiş olduk. Dikkat ettiyseniz, dosyamız için eşleştirdiğimiz "#1" isimli (numralı) değişkenimizi de belirttik. rdından bir virgül ile ekleyeceğimiz ifadeyi, dosya tanımından ayırıyoruz.

    Kod:
    close #1
    "OPEN" kodu ile açtığımız dosyamızı "CLOSE" kodu ile işleme kapatıyoruz. Açtığımız dosyayı kapatmadan başka hiç bir işlemde kullanamıyoruz.

    Şimdi "DENEME.DAT" ismini verdiğimiz dosyamızı Gw-basic ile okuyalım.

    Kod:
    open "deneme.dat" for input as #1
    Dosyamızı tekrar açmış olduk, ancak bu sefer kullanım amacı olarak "INPUT" kodunu kullandık. "INPUT" kodunu daha önce klavyeden, çalışan programımıza bilgiler eklemek için kullanıyorduk. Bu durumda ise, programımıza girişler, dosyadan okunacak. Dosyamıza atadığımız "#1" değişkeni (veya numaralandırma) dosyayı oluştururken kullandığımız ile aynı olmak zorunda değil. Çünkü bu bir başka işlem.

    Kod:
    line input #1, a$
    "LINE INPUT" kodu ile dosyada bulunan bir satırı olduğu gibi Gw-basic'e aktarıyoruz. Hangi dosyadan satır aktaracağımızı ise, dosyamız ile eşleştirdiğimiz değişken ile belirtiyoruz ve de bir vir gül ile işlem yapılacak bölüm arasında bir ayrım (mutlaka) yaptıktan sonra, içe aktarılan satır bir değişken ile ilişkilendiriyoruz.

    Kod:
    print a$
    Gw-basic'e aktardığımız satırı, ilişkilendirdiğimiz değişken ile belirterek yazdırıyoruz.

    Kod:
    close #1
    Ve yine işlem sonunda dosyayı kapatıyoruz.

    Örnekler:

    Kod:
    10 open "sebzeler.dat" for output as #1
    20 wrıte #1, "Lahana"
    30 write #1, "Pırasa"
    40 write #1, "Kabak"
    50 write #1, "Patlıcan"
    60 close #1
    Yeni bir dosya kayıt etmiş olduk, ve dosyamıza bazı veriler ekledik. Şimdi bu veileri okuyalım.

    Kod:
    open "sebzeler.dat" for input as #1
    20 line input #1, a$
    30 line input #1, b$
    40 line input #1, c$
    50 line input #1, d$
    60 print a$
    70 print b$
    80 print c$
    90 print d$
    99 close #1
    Her bir "WRITE" satırı bir satır yazdığı gibi, her bir "LINE INPUT" satırıda bir satır okur ve kopyalar. Satırlar sırayla okunurlar ve bizim eşleştirdiğimiz değişkenlerde, ekleme sırasına göre satırlar ile eşleşirler. Yazdırırken ise, satırların hangi sırada yazılacaklarını veya hangi satırların yazılacağını biz belirleriz.

    Bir başka örnek.

    Kod:
    10 open "rakamlar.dat" for output as #2
    20 write #2, 123
    40 write #2, abc
    50 write #2, 2 * 23
    60 close #2
    Bu örneğimizde tırnaklar kullanmadık. bu şekilde dosyaya veri eklediğimizde, nasıl sonuç alacağımızı görelim.

    Kod:
    10 open "rakamlar.dat" for input as #2
    20 line input #2, a$
    30 line input #2, b$
    40 lıne input #2, c$
    50 print a$
    60 print b$
    70 print c$
    80 close #2
    Tırnaklar kullanmadan eklediğimiz veriler rakam olarak kayıt edilirler. Bu durumda "abc" olarak eklediğimiz veri, sadece 0 olarak dosyaya kayıt edilmiş. "2 * 23" olarak eklediğimiz veri ise 46 olarak (hesaplanmış ve sonucu) doyaya kayıt edilmiş. "LINE INPUT" için kullandığımız değişkenler ise, satır içeriği ne olursa olsun (sayı veya yazı) bir "$" (dolar) işareti ile ekli isimlendirilmek zorundadırlar.

    Gw-basic'in oluşturduğu dosyalar, Gw-basic'e öz formatlı (ek bilgiler içeren) dosyalar. Bu dosyaların uzantılarınıda, dosyayı açarken yazmanız gerekiyor. "BAS" dosylarında bu gerekmiyordu. Ancak .txt dosyalarını okumakta mümkün.

    Var olan bir dosyaya ekleme yapalım.

    Kod:
    10 open "sebzeler.dat" for append as #2
    20 write #2, "Patates"
    30 write #2, "Domates"
    40 write #2, "Kereviz"
    50 write #2, "Turp"
    60 close #2
    Bu örneğimizde, dosyamızıda işlemi "APPEND" kodu ile belirlemiş olduk. diğer kısımlarında ise, diğer örneklerimizden bir farkı yok. Şimdi ekleme yaptığımız dosyamızı bir konrol edelim. Acaba eklemeler, var olan verinin üzerine yazmadan gerçekleşmişlermi ?

    Kod:
    10 open "sebzeler.dat" for input as #2
    20 for x = 1 to 8
    30 line input #2, a$(x)
    40 print a$(x)
    50 next x
    60 close #2
    Ekleme yaptığımız dosyanın içeriğini okuduğumuzda, yeni eklenen verilerin, var olan verilerin ardına eklendiğini göreceğiz. Son örneğimizde ise diğerlerinden farklı olarak, satırları programımıza okutmak ve yazdırmak için bir "FOR" ve "NEXT" kalıbından oluşan döngü kullandık. Bu da, programımızı daha az kod satırı yazarak bitirebilmemizi sağlamış oldu. Dögüler, programlamada kolaylıkar sağlarlar.

    Peki, bir dosyadaki satır sayısını bilmiyorsak. ne olacak ? Hemen bir çözümünü deneyelim.

    Kod:
    10 open "sebzeler.dat" for input as #1
    20 x = 1
    30 while x > 0
    40 x = x + 1
    50 line input #1, a$(x)
    60 lprint a$
    65 if eof(1) then goto 80
    70 wend
    80 close #1
    Bu sefer işlemlerimiz için farklı bir dögü kullandık. "WHILE" ve "WEND" kalıbından oluşan bu yeni tanıştığımız döngü, "FOR" ve "NEXT" dögüsünden farklı olarak belirlenmiş bir hedefe kadar (belirlenmiş kez) tekrarlamak yerine, bir mantıksal hedefe ulaşana kadar (bir olay gerçekleşene kadar) tekrarlanıyor.

    Burada kullandığımız ulaşılması gereken hedef, aslında "x" isimli değişkenimiz "0" rakamından büyük olduğu sürece tekrarlamaya devam etmek oluyor. Ve bunun anlamıda, buradaki örneğimizin işleyişinde, sonsuza dek tekrarlama demek oluyor. 65 nolu satıra eklediğimiz ikinci bir şart ise, bu sonsuz tekrarlamaya son verecek ikinci (ve bu örnekte tek gerçekleşebilecek) bir olay oluyor.

    "EOF()" kodunun sadece tek bir işlevi var. O da, bir dosya işlenirken, dosyanın sona erdiğini tesbit etmek. Her dögüde, "EOF()" dosyanın sonuna ulaşıldığını kontrol ediyor ve ulaşım olumsuzsa "0" değer veriyor. Dosya sonuna ulaşıldığında (Tüm veriler okunduğunda) hedef olumlu sinyali veriyor ve bunun değeride "1" oluyor. "IF" satırrıda "1" sinyalini aldığında, programı son satıra yönlendiriyor.

    65 numaralı satırı kullanmayı unutmuş olsaydık, yine tüm dosya okunacaktı, ancak son olmayan satırda hata bildirimi ile sonlanacaktı.

    "WHILE" ve "WEND" dögüsüne dönelim v e bir örnek ile devam edlim.

    Kod:
    10 x = 1
    20 while x < 10
    30 x = x + 1
    40 print "Merhaba"
    50 wend
    Burada "WHILE" ve "WEND" dögüsünü kullanarak, 9 kez Merhaba yazdırmış oluyoruz. 20 nolu satırda "WHILE" ile belirlenen hedef olay, "x" değişkeni "10" rakamından küçük olduğu sürece, tekrarlamaya devam edilecektir. İlk olarak "WHILE" dögüsü dışında (dögüden önce) kullanacağımız değişke ilebir değer eşleştirmemiz gerekiyor. Ardından "WHILE" ve "WEND" kalıbının başlangıcına geçiyoruz ve mantıksal bir olay giriyoruz. Ve ardından değişkenimizin değerini her bir yeniden başlangıçta artırıyoruz ve bu her yeni başlangıç ile orantılı olarak, bir işlem gerçekleştiriyoruz. "WEND" ile döngümüz, her işlem sonunda, "WHILE" satırına tekrar geri dönüyor. Bu tekrarlama, beklenen olay gerçekleşene kadar devam ediyor.

    Mantıksal operatörler ve anlamları:

    operatör: = anlamı: Eşittir/Eşdegerdir

    operatör: < anlamı: Sağ taraf daha büyük

    operatör: > anlamı: Sağ taraf daha küçük

    operatör: <> anlamı: Eşdeğer değildir
    En son oasman tarafından düzenlenmiştir: 28.11.2013 21:47 Sebep: düzeltme + ekleme

  10. #10

    Varsayılan

    Rastgele sayılara erişim

    Rastgele (öngörülemez) sayılara erişim ne işe yarar sorusu aklınızdan geçebilir. Düşünün ki bir bilgisayar oyunu oynuyorsunuz. Ve oyunun başlangıcı ve sonucu baştan belli. Çoğumuz bu oyundan, en fazla üçüncü kez oynadıktan sonra sıkılırız.

    Kod:
    print rnd
    Bu kodu her çalıştırdığınızda, farklı bir rakam karşınıza çıkar.


    Kod:
    10 for x = 1 to 10
    20 print rnd
    30 next x
    Bu program 10 adet rastgele rakam yazdırır. Çoğunlukla, ilk örnekteki gibi nokta ardında rakamlardır. Bunlar 0.xxx rakamlar olurlar. Ve her seferinde aynı 10 farklı rakam çıkar.

    Kod:
    10 for x = 1 to 10
    20 print rnd * 10
    30 next x
    Bu programımızda her seferinde aynı 10 rakamı çıkarır, ancak bu sefer çoğu rakamın ilk rakamı artık sıfır değildir. 7.xxxx benzeri rakamlardır bu gördüklerimiz.

    Kod:
    10 for x = 1 to 10
    20 print rnd * 100
    30 next x
    Bu sefer aldığımız rakamlar genelde ondalık rakamlar ve nokta ardındaki rakamlar. 95.xxx benzeri rakamlar ile karşılaşıyoruz.

    Biz bu kayarnoktalı sayılar olarak Türkçeye tercüme edilmiş nokta ardı rakamları değilde, küsürsüz rakamlar elde etmek isteyebiliriz. Göze daha hoş gelir.

    Kod:
    10 for x = 1 to 10
    20 print int(rnd(1))
    30 next x
    Bu programımızda nokta ardı rakamlardan kurtulduk, ancak sadece sıfır rakamını alabiliyoruz.

    Kod:
    10 for x = 1 to 10
    20 print int(rnd(1)) * 10
    30 next x
    Halen sadece sıfır rakamını alabiliyoruz

    Kod:
    10 for x = 1 to 10
    20 print int(rnd(1)*10)
    30 next x
    Bu şekilde kodladığımızda, artık bir ve on arası on adet rakam alabiliyaoruz. Ancak hep aynı sırada aynı rakamlar.

    Kod:
    10 for x = 1 to 10
    20 print int(rnd(1)*100)
    30 next x
    Şimdi 100 altında ondalık rakamlar alıyoruz ve küsürsüz, ancak hep aynı sırada aynı rakamlar.

    "INT" kodu kayarnoktalı sayıları, tam sayılara çevirir. "RND" rastgele rakamlar seçer. ancak hep aynı rakamları seçer. Bunu önlemek için bir başka yönteme ihtiyacımız var.

    Kod:
    10 randomıze tımer
    20 for x = 1 to 10
    30 print int(rnd(1)*100)
    40 next x
    Bu son programımız artık her seferinde bize 10 ayrı rakam çıkarabiliyor. sayılar 0 ve 99 arası.

    Yeni eklediğimiz ilk satırımız, işlemlerimizin başlangıç sürelerini rastgele seçim ile başlamalarını sağlıyor ve bu da rakamların her seferinde farklı olmasını sağlıyor. Bizim denetleyebileceğimiz ise bu durumda, sadece rakamların 0 ile en yüksek olacak olanı oluyor.

    "RANDOMIZE" tıpkı "RND" gibi işlemleri rastgele (öngörülemez) olarak seçiyor. "RND" sadece sayıları rastgele seçerken, "RANDOMIZE" belirtilen işlemi öngörülemez başlatıyor.
    "TIMER" ise işlemcinin zamanlayıcısını gösterir.

    Kod:
    print timer
    Bu kodun çıktılarını ard arda çalıştırarak kıyaslayın. Çıktılar, işlemcinin, Geceyarısından sonra veya yeniden başlatıdığından sonra kaç saniyedir çalıştığını gösterir.

    Bir "Zar" oyunu:

    Kod:
    10 randomıze tımer
    20 print int(rnd(1)*6)+1
    Oyunu inceleyelim: 10 numaralı satır, işlemin başlama zamanını rastgele seçer. 20 numaralı satır, sonuna eklenmiş olan "+1" olmadan, 0 ile 5 (6 dan küçük rakamları) rastgele yazdırır. Gerçek bir zar attığınızda, hiç bir zaman sıfır çıkmaz. "+1" ekleyerek, biz bütün çıkan rrakamları bir sayısı ile toplamış oluyoruz. Gerçekte 5 çıkmyıysa, 6 oluyor ve gerçekte 0 çıkacaktıysa 1 oluyor. "rnd(1)" kısmında bir rakamı sonucu etkilemiyor. Parantezler arasında sembolik bir rakam olarak kullanılıyor.

    Artık, Tavla oynarken, Zar'ınızı kaybetseniz bile, programını yazar, bilgisayardan Zar atabilirsiniz.
    En son oasman tarafından düzenlenmiştir: 29.11.2013 12:02 Sebep: ekleme

Benzer Başlıklar

  1. q basıc yardım
    carg tarafından Programlama Dilleri forumunda
    Yanıt: 9
    Son Mesaj: 02.05.2008, 00:39
  2. BASİC KODLARI
    hacker_382 tarafından Programlama Dilleri forumunda
    Yanıt: 5
    Son Mesaj: 20.12.2005, 05:31
  3. VİSUAL BASİC FREE
    hacker_382 tarafından Programlama Dilleri forumunda
    Yanıt: 3
    Son Mesaj: 20.09.2005, 18:31
  4. visual basıc 6.0
    revolver_ocelot tarafından Programlama Dilleri forumunda
    Yanıt: 4
    Son Mesaj: 28.06.2005, 19:11
  5. VİSUAL BASİC
    Hacker_Ozgur tarafından İnternet, Ağ ve Güvenlik forumunda
    Yanıt: 2
    Son Mesaj: 05.09.2003, 12:45

Gönderim İzinleri

  • Yeni başlık açamazsınız
  • Yanıt yazamazsınız
  • Eklenti gönderemezsiniz
  • Mesajlarınızı düzenleyemezsiniz
  •