Ana sayfa
Forumlar
Yeni mesajlar
Forumlarda ara
Blog
Neler yeni
Yeni mesajlar
Son aktiviteler
Giriş yap
Kayıt ol
Neler yeni
Ara
Ara
Sadece başlıkları ara
Kullanıcı:
Yeni mesajlar
Forumlarda ara
Menü
Giriş yap
Kayıt ol
Install the app
Yükle
Forumlar
Download
Program Merkezi
Pascal Dersleri
JavaScript devre dışı. Daha iyi bir deneyim için, önce lütfen tarayıcınızda JavaScript'i etkinleştirin.
Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz..
Tarayıcınızı güncellemeli veya
alternatif bir tarayıcı
kullanmalısınız.
Konuya cevap cer
Mesaj
<blockquote data-quote="anarkh" data-source="post: 133209" data-attributes="member: 953"><p><strong><span style="color: #008000">Döngüler</span></strong></p><p><strong><span style="color: #008000"></span></strong></p><p><strong><span style="color: #008000"></span></strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #008000"><strong>For...Do Döngüsü</strong></span></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #008000"><strong></strong></span></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #008000"><strong></strong></span></span></span><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong>Bilgisayarların en güzel yanlarından birisi de hiç sıkılmadan, şikayet etmeden aynı şeyleri yapabilmeleridir. Böylesine tekrar tekrar çalışması gereken işlemleri, bir programlama dilinde ancak döngüler vasıtası ile sağlayabiliriz. Aşağıda bu döngülerin çeşitlerini ve Pascalda nasıl kullanıldıklarını görebilirsiniz.</strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px">FOR...TO DÖNGÜSÜ</span></span></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong>En basit döngü çeşididir. Kendisinden sonra gelen deyim veya deyimler gurubunu verilen sayı kadar çalıştırmaya yarar. Öncelikle yapısını görelim :</strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">for değişken := ilk_değer to son_değer do komut;</span></span></span></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong>veya</strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">for değişken := ilk_değer to son_değer do</span></span></span></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">begin</span></span></span></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">komut(lar)</span></span></span></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">end;</span></span></span></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px">FOR..DOWNTO DÖNGÜSÜ</span></span></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">for değişken := ilk_değer downto son_değer do komut;</span></span></span></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff"></span></span></span></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong>Veya</strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">for değişken := ilk_değer downto son_değer do</span></span></span></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">begin</span></span></span></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">komut(lar)</span></span></span></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">end;</span></span></span></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong>Şimdi bu yapıya bakarak sizlere çalışma mantığını anlatmaya çalışalım. For deyiminden sonra sayaç olarak kullanılacak bir tamsayı değişken kullanılır. Döngü işlemi bu değişkenin ilk değerinden başlar ve son değere kadar 1’er 1’er artar (to) veya azalır(downto). Bazı başka dillerdekinin aksine ne artış miktarını ayarlayabilirsiniz ne de ondalıklı sayıları kullanabilirsiniz. Döngü kendisinden sonra gelen ilk deyimi veya begin..end bloğunu işletir. Döngü içinde iken döngü değişkenine müdahale etmek mümkün olmakla birlikte bunu yapmak sakıncalı olabilir. Bu yüzden döngü değişkenleri genellikle döngü içerisinde işleme tabi tutulmaz.</strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong>Bu kadar teorik bilgiden sonra şimdi bir örnek ile konumuzu pekiştirelim.</strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p><p><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p><p><strong>Kod:</strong></p><p><strong></strong></p><p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: purple"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-size: 10px">var</span><span style="font-size: 10px"> i: integer; ismin : string;begin write('Ismini gir sahip :'); readln(ismin); for i := 1 to 15 do writeln('Merhaba ',ismin,' sahip');end.</span></strong></span></span></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: purple"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-size: 10px"></span></strong></span></span></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: purple"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-size: 10px"></span></strong></span></span></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: purple"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-size: 10px"></span></strong></span></span></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: purple"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-size: 10px"></span></strong></span></span></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: purple"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-size: 10px"></span></strong></span></span></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: purple"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-size: 10px">*************************************</span></strong></span></span></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: purple"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-size: 10px"></span></strong></span></span></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: purple"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-size: 10px"></span></strong></span></span></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: purple"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-size: 10px"></span></strong></span></span></span></span></span><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #008000"><strong>Repeat..Until döngüsü</strong></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #008000"><strong></strong></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #008000"><strong></strong></span></span></span><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong>Repeat deyimi ile until deyimi arasında kalan işlemleri untildeki koşul yanlış olduğu sürece tekrarlar. Untildeki koşul(lar) doğru olduğu anda döngüden çıkar.</strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">Repeat</span></span></span></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">...</span></span></span></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">işlemler;</span></span></span></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">...</span></span></span></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">Until koşul(lar);</span></span></span></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong>Örnek :</strong></span></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></span></span><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: purple"><strong>Var I : Integer;begin repeat Write('Bir sayı giriniz : '); ReadLn<img src="http://www.dostuz.biz/forum/images/smilies/smiley38.gif" alt="" class="fr-fic fr-dii fr-draggable " style="" />; until (I >= 0) and (I <= 9); writeln(‘Sayı 0..9 arasındadir.’);End.</strong></span></span></span></span></span></p></p> <p style="text-align: left"></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><img src="http://www.programlama.com/images/info3.gif" alt="" class="fr-fic fr-dii fr-draggable " style="" /><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #c5003f">Ne olursa olsun şarta bakana kadar döngüyü bir kez çalıştırır. </span></span></span></span></span></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"></span></span></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"></span></span></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><img src="http://www.programlama.com/images/info3.gif" alt="" class="fr-fic fr-dii fr-draggable " style="" /><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #c5003f"> Until'de belirtilen şart doğru olduğu sürece çalışır.</span></span></span> </span></span></strong></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #008000"><strong>While-Do Döngüsü</strong></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #008000"><strong></strong></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #008000"><strong></strong></span></span></span><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong>Whiledan sonraki koşul doğru olduğu sürece işlem(ler) tekrarlanır. Whiledaki koşul(lar) doğru olduğu anda döngüden çıkar.</strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">While koşul(lar) do</span></span></span></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">Begin</span></span></span></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">...</span></span></span></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">işlemler;</span></span></span></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">...</span></span></span></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #0000ff">End;</span></span></span></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong>Örnek :</strong></span></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></span></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong></strong></span></span></span></span><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: purple"><strong>Var I : Integer;begin I := 100; while((I >= 0) and (I <= 9)) do begin Write('Bir sayı giriniz : '); ReadLn<img src="http://www.dostuz.biz/forum/images/smilies/smiley38.gif" alt="" class="fr-fic fr-dii fr-draggable " style="" />; end; writeln(‘Sayı 0..9 arasındadir.’);End.</strong></span></span></span></span></span></p></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><img src="http://www.programlama.com/images/info3.gif" alt="" class="fr-fic fr-dii fr-draggable " style="" /><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #c5003f">Repeat-Until Döngüsünden farklı olarak öncelikle koşual bakılır sonra döngü başlar.</span></span></span></span></span></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"></span></span></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"></span></span></strong></p> <p style="text-align: left"><strong></strong><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><img src="http://www.programlama.com/images/info3.gif" alt="" class="fr-fic fr-dii fr-draggable " style="" /><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #c5003f"> 1-Döngüden çıkabilmek için mutlaka koşulun döngü içinde değişmesi gerektiğine dikkat edin.</span></span></span></span></span></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"></span></span></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"></span></span></strong></p> <p style="text-align: left"><strong></strong><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><strong><img src="http://www.programlama.com/images/info3.gif" alt="" class="fr-fic fr-dii fr-draggable " style="" /><span style="font-family: 'Tahoma'"><span style="font-size: 10px"><span style="color: #c5003f">2-Birden fazla koşul kullanacaksanız bu koşulların tümünü bir parantez içine alın.</span></span></span></strong> </span></span></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left">****************************</p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><strong><span style="color: red">MenüLer</span></strong></p> <p style="text-align: left"><strong><span style="color: red"></span></strong></p> <p style="text-align: left"><strong><span style="color: red"></span></strong><strong><span style="color: darkgreen"><strong>File Menüsü</strong></span></strong></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Pascal file menüsü üzerinde 10 ayrı menü komutu vardır. Bunların görevleri aşağıda özetlenmiştir.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Open:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Daha önceden diskte varolan Pascal program dosyasının editöre yüklenmesi için kullanılır. Pascalın DOS sürümü ile çalışırken aynı yöntem geçerli olmakla birlikte, aynı işlemi, F3 tuşuna basarak da yapabiliriz. Bu menü komutu kullanıldığında Şekil 2’de verilen diyalog kutusu görülecektir.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Disk üzerinde bulunan bir Pascal dosyasını editöre yüklemek için diyalog kutusunda görülen *.PAS yazılı yere programın adı yazılarak “Enter” tuşuna basılır veya önce tab tuşuna bastıktan sonra ok tuşları ile programın adı üzerine gelinerek “Enter” tuşuna basılır. Aynı seçim, mouse ile açılmak istenilen programın üzerine gelip iki kez sol tuşu tıklayarak da gerçekleştirilir.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">New: </span></span><span style="color: black"><span style="font-family: 'Tahoma'">Editörde yeni bir Pascal dosyası yaratmak amacıyla kullanılır.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Save:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Yazılan programın hafızaya alınması işlemini gerçekleştirir. Program ilk defa hafızaya alınacak ise Şekil 3’de görülen Save As Diyalog Kutusu ekrana gelerek, programa bir isim verilmesini bekleyecektir. Programın hafızaya alınması için program adı yazıldıktan sonra mouse ile "ok" tuşuna veya klavyeden “Enter” tuşuna basılması gerekir. Daha önceden diskte bulunan bir Pascal programı üzerinde yapılan değişiklikler nedeniyle hafızaya alma işlemi için bu komut kullanıldığı zaman, program eski adı ile kaydedileceğinden aynı diyalog kutusu ekranda görülmez.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Pascalın DOS sürümü ile çalışırken yazılan programın hafızaya alınması için bu menü komutu ile aynı işleve sahip olan F2 tuşuna basılması yeterlidir.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Save As: </span></span><span style="color: black"><span style="font-family: 'Tahoma'">Editörde aktif penceredeki Pascal programının yeni bir isimle kaydedilmesi amacıyla kullanılır. Komutun kullanılmasıyla ekrana Save As Diyalog Kutusu gelir. Programa verilecek yeni isim yazılarak “Enter” tuşuna basılır.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Save All: </span></span><span style="color: black"><span style="font-family: 'Tahoma'">Pascal ile program yazarken, birden fazla program penceresi ard arda açılabilir. Komut kullanıldığında açık olan bütün Pascal programları bilinen adları ile hafızaya alınır. Komutun kullanılması için açık pencerelerdeki programlara daha önceden isim verilmiş olmalıdır.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Change Dir...:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Sadece Dos sürümü Turbo/Borland Pascalda bulunan bu komut, aktif çalışma sürücüsü veya dizininin değiştirilmesi amacıyla kullanılır. Komut çalıştırıldığında istenilen dizin veya sürücü seçilerek “Alt+K” tuş kombinasyonuna basılır veya tab tuşu ile “Ok” butonuna gelinerek “Enter” tuşuna basılır.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Print:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Aktif Pascal penceresindeki program listesinin yazıcıdan alınmasını sağlar.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Printer Setup :</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Printer seçimi ve printer ayarlamalarının yapılması için kullanılır. Komut kullanıldığında Şekil 4 ‘te verilen diyalog kutusu ekrana gelir. Printer ve port bölümünden yazıcı seçimi yapılır. Set Up.. tuşuna basıldığında yazıcı ayarlarında istenilen değişikliklerin yapılmasını sağlayan diğer bir diyalog kutusu ekrana gelecektir. Burada kağıt boyutu, kağıdın yazıcıya yerleştirilme şekli, kağıt kaynağı (el ile, üst tepsi, otomatik vb), kullanılacak kağıt kalitesi gibi değişkenlerden istenilenleri seçmemize olanak sağlanmıştır. </span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Get Info:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Sadece Dos sürümü Turbo/Borland Pascal 'da bulunan bu komut, program ile ilgili bilgileri içeren bir diyalog kutusu ekrana gelir. Amacı programın ile ilgili çeşitli bilgilerin programcıya sunulmasıdır.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Dos Shell:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Sadece Dos sürümü Turbo/Borland Pascalda bulunan bu komut, geçici olarak Pascal editörünün terkedilip Dos ortamına dönülmesi amacıyla kullanılır. Dos ortamından tekrar editöre dönülmesi için Dos promptunda EXIT yazılır. </span></span><span style="color: black"><span style="font-family: 'Tahoma'">Edit Menüsü</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Edit menüsü (Şekil 5) yardımıyla program içinde belli blokların silinmesi, başka yere taşınması, kopyalanması gibi işlemleri yapabilmek mümkündür. Yukarıda sözü edilen işlemlerin yapılabilmesi için öncelikle üzerinde işlem yapılacak program bloklarının Shift ve Ok tuşlarına aynı anda basılması ile işaretlenmesi gerekmektedir. Metinin işaretlenmesi işleminden sonra edit menüsü üzerinde görülen menü komutları çalıştırılır. Cut: İşaretli metinin silinmesi amacıyla kullanılır. Kısa yol tuşu (Shift+Del). </span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><strong><span style="color: darkgreen"><strong>Edit Menüsü</strong></span></strong></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Copy:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> İşaretli metini panoya (clipboard) kopyalar. Bu şekilde panoya kopyalanan metinin istenilen yere kopyalanması işlemi için bu komuttan sonra aşağıda tanımlanan Paste komutunun kullanılması gerekmektedir. Kısa yol tuşu (Ctrl+Ins). </span></span></strong></span></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Paste:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Copy komutu ile panoya kopyalanan metinin editör üzerinde istenilen yere kopyalanabilmesini sağlar. Kısa yol tuşu (Shift+Ins). </span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><strong><span style="color: darkgreen"><strong>Search Menüsü </strong></span></strong></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Search Menüsü (Şekil 6), program yazımı sırasında belirli sözcüklerin aranması ve değiştirilmesi, istenilen program satırına hızlı bir şekilde ulaşılması vb. gibi işlemlerin kolaylıkla yapılabilmesini sağlar.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Find:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Bu komut program içinde herhangi bir metinin aranması amacıyla kullanılır. Komut aktif hale geldiğinde Şekil 7’deki diyalog kutusu ekrana gelir. Aranılacak metin, kendisi için ayrılmış alana yazılarak klavyeden “Enter” tuşuna veya mouse ile Ok butonuna basılır.</span></span></strong></span></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Bulunulan noktadan ileriye doğru arama yapılacak ise Direction bölümünde Forward terimi işaretlenmeli, geriye doğru arama yapılacak ise Backward terimi işaretlenmelidir.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Scope bölümünde, sözcüğün tüm dosya içinde aranılması isteniyorsa global, sadece seçilen metinde aranılması isteniyorsa selected text bölümleri işaretlenmelidir. Origin bölümünde, aramaya başlanacak sözcük, nokta bütün dosya içinde aranılacak ise entire scope, imleçin bulunduğu noktadan itibaren aranılacak ise from kursor bölümleri seçilmelidir.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Replace:</span></span><span style="color: black"><span style="font-family: 'Tahoma'">Yazılan program içinde kullanılan herhangi değişkenlerin veya Pascal sözcüklerinin başka bir değişken veya Pascal sözcüğü ile değiştirilmesi gerekebilir. Bu komut kullanıldığında Şekil 8’deki diyalog kutusu ekrana gelir. Text to find’ 'in karşısında ayrılmış alana değiştirilmesi istenilen sözcük, New Text’ in karşısındaki ayrılmış alana yeni sözcük yazılır. Değiştirilecek sözcük programın tamamında veya birden çok yerinde değiştirilecek ise Change all tuşunun üzerine gelinir ve klavyeden “Enter”, mouse ile Ok butonuna basılır. Programda aranılan metin bulunduğunda değişim için kullanıcıdan onay bekleyen bir diyalog kutusu ekrana gelir. Değişime onay için “Y”, değişime hayır demek için “N” tuşuna basılır.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Search Again:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Find menü komutu ile arama yapıldığında, program içinde aranılan metine ilk karşılaşılan yerde arama kesilir. Aynı metini tekrar aramak için Search Again menü komutu kullanılır.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Goto Line Number:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Program içinde istenilen program satırına hızlı bir şekilde ulaşılmasını sağlar (Şekil 9). Komutun kullanımıyla ekrana gelen diyalog kutusunda ayrılmış alana satır numarası yazılarak “Enter” tuşuna basılır.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><strong><span style="color: darkgreen"><strong>Run Menüsü </strong></span></strong></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Run menüsünde yazılan programın çalıştırılması için bazı komutlar bulunmaktadır. Run menüsünde bulunan menü komutları aşağıda özetlenmiştir.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Run:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Programı derleyerek çalıştırır. Kısa yol tuşu (Ctrl+F9).</span></span></strong></span></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Program Reset:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Sadece DOS sürümü Turbo/Borland Pascal‘de bulunan bu komut ile Step Over veya Trace Into komutlarından biri çalıştırılınca, yapılan kontrolü durdurmak ve hata kontrolünü tekrar programın ilk deyimi üzerine almak için kullanılır. Kısayol tuşu (Ctrl+F2).</span></span></strong></span></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Goto Cursor:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Sadece DOS sürümü Turbo/Borland Pascal‘de bulunan bu komut ile editör ekranındaki program yazılımında kursörün bulunduğu satıra kadar olan program bölümünün derlenerek çalıştırılmasını sağlar. Kısayol tuşu (Ctrl+F4).</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Trace Into:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Sadece DOS sürümü Turbo/ Borland Pascal‘de bulunan bu komut ile editör ekranındaki programın satır satır çalıştırılmasını sağlar. Kısayol tuşu (F7).</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Step Over: </span></span><span style="color: black"><span style="font-family: 'Tahoma'">Sadece DOS sürümü Turbo/ Borland Pascal‘de bulunan bu komut ile editör Trace On durumuna geçer. Aktif durumdaki programın çalışması sırasında programın hangi satırları izlediğini ve işlem sırasını izlemek amacıyla kullanılmaktadır. Kısayol tuşu (F8.)</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><strong><span style="color: darkgreen"><strong>Compile Menüsü </strong></span></strong></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Compile Menüsü (Şekil 11) editörde aktif bulunan Pascal programının derlenmesinde, bu programa bağlı unit programların derlenmesinde ve yazılan Pascal programının dos/windows ortamında kendi başına çalışır duruma yani; XXXXXXXX.EXE durumuna getirilmesi için kullanılır. En çok kullanacağımız menü komutları aşağıda özetlenmiştir.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Compile:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Editör ekranındaki aktif durumda olan programı derlemek amacıyla kullanılır. Kısa yol tuşu (Alt+F9).</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Make:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Editör ekranındaki aktif durumda olan programı ve bu programa bağlı unit harici programlarını en son değiştirilmiş halleriyle derleme işlemini yapar. Kısa yol tuşu (F9).</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Build: </span></span><span style="color: black"><span style="font-family: 'Tahoma'">Editör ekranındaki aktif durumda olan programları ve bu programa bağlı unit harici programlarını birlikte derler.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Destination Memory (Disk):</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Sadece DOS Turbo Pascalda bulunan bu komut ile Programın derlenerek çalıştırılacağı ortamın belirtilmesi için kullanılır. Seçenek üzerine “Enter” tuşuna basılarak Memory yazılı bölüm Disk veya Disk yazılı ise Memory durumuna alınır. Destination Disk durumunda derleme sonucunda program dos ortamında direkt olarak çalıştırılabilir.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color: darkgreen"><strong><span style="color: black"><span style="font-family: 'Tahoma'">Target:</span></span><span style="color: black"><span style="font-family: 'Tahoma'"> Yazılan programın derlenip çalıştırılacağı ortamı belirlemek için kullanılır. Pascal Real mode, Protected mode ve Windows olmak üzere üç ortam sunmaktadır.</span></span></strong></span></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><strong><span style="color: #ff0000">Turbo Pascal'da bir programın genel yapısı :</span> </strong></p> <p style="text-align: left"></p> <p style="text-align: left"><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><strong>Program Program_adı Tanımlamalar Procedure ve Function Ana Program </strong></p></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><strong>Yukardaki yapı program kodlarının genel yapısı. Gelin beraber biraz daha genişletelim. </strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><strong>Program Program_adı Uses <span style="color: #ff0000">Kullanacağımız unitleri belirtiyoruz burada</span> Type <span style="color: #ff0000">Kendimiz özel bir veri tipi belirlemek istediğimizde</span> Const <span style="color: #ff0000">Program içinde kullanılacak sabitler</span> Var <span style="color: #ff0000">Değişkenlerimizi burada tanımlıyoruz</span> Label <span style="color: #ff0000">Etiketler (goto deyimi için) </span>Zorunlu olmadıkça kullanmayacağız ! Procedure ProcedureAdı <span style="color: #0000ff">Type...</span> <span style="color: #0000ff">Const...</span> <span style="color: #0000ff">Var...</span> Begin <span style="color: #0000ff">komutlar ..</span> End; Function FunctionAdı <span style="color: #0000ff">Type...</span> <span style="color: #0000ff">Const...</span> <span style="color: #0000ff">Var...</span> Begin <span style="color: #0000ff">komutlar ..</span> End; Begin <span style="color: #ff0000">Ana program komutları </span>End. </strong></p></p> <p style="text-align: left"></p> <p style="text-align: left"><strong>Gelin sizinle yukarıda kullanılan terimleri bir inceleyelim : </strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong><span style="color: #ff0000">Program :</span> Bu komut ile hazırladığımız program için bir isim yazıyoruz. Kullanılması zorunlu değildir. Fakat programımızı belirli bir zaman geçtikten sonra kendimiz yada başkaları incelediğinde , en başta programımız için bir fikir verdiği için kullanılması faydalıdır. </strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong><span style="color: #ff0000">Uses :</span> Pascal'ın kendi unitlerini : wincrt, dos...(crt, dos...) veya bizim kendimize özel hazırladığımız unit'leri kullanmak için kullanılır. </strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong><span style="color: #ff0000">Const :</span> Sabit tanımlamak için kullanılır. </strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong><span style="color: #ff0000">Var :</span> Değişkenlerimizi burada tanımlıyoruz. </strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong><span style="color: #ff0000">Label :</span> GOTO komutu ile program akışının gideceği bölümleri tanımlamak için kullanılır. Fakat bu programın okunurluluğunu azalttğı için pek tavsiye edilmez. </strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong><span style="color: #ff0000">Procedure ve Function :</span> Arkadaşlar bunlar <u>programımız içinde kullandığımız progr*****tır.</u> Yapacağımız bir işi kısımlara ayırarak çözmemiz herzaman bize kolaylık sağlar.Bunuda function ve procedure kullanarak yapabiliyoruz. İlerde aradaki farkları da ayrıntılı bir şekilde incelenecektir. </strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong></strong><strong><span style="color: #0000ff">Arkadaşlar dikkat ederseniz programımızın başında Type , Const, Label , va Var bölümlerinde tip,sabit, etiket ve değişken tanımlamaları yaptık. Aynı şekilde Procedure ve Function'larda da yaptık. Neden? </span></strong></p> <p style="text-align: left"><strong><span style="color: #0000ff">Aradaki fark şudur: Programımızın başındaki tanımlamalar, programın heryerinde geçerlidir. </span></strong></p> <p style="text-align: left"><strong><span style="color: #0000ff">Procedure ve Functionlar daki ler ise sadece tanımlandıkları yerde geçerlidir. Ana program tarafından bu değşkenler kullanılamaz. </span></strong></p> <p style="text-align: left"><strong><span style="color: #0000ff"></span></strong></p> <p style="text-align: left"><strong>Bu ifadeler size karışık gelebilir. Ama ilerleyen zamanlarda Procedure Ve Function ları incelediğimizde daha iyi anlayacaksınız.</strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong>********************************</strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong></strong><strong>Turbo Pascal'da program içerisinde kullanılan tüm değişkenler tipleri ile beraber tanımlanmalıdır. </strong></p> <p style="text-align: left"><strong>Peki Bu TİPLER nelerdir bakalım. </strong> <ol> <li data-xf-list-type="ol"><strong>Tamsayı Tipler </strong></li> <li data-xf-list-type="ol"><strong>Gerçek ( Reel) Sayı Tipler </strong></li> <li data-xf-list-type="ol"><strong>String Tip </strong></li> <li data-xf-list-type="ol"><strong>Karekter(Char) Tip </strong></li> <li data-xf-list-type="ol"><strong>Boolean Tip </strong></li> <li data-xf-list-type="ol"><strong>Dizi (ARRAY) Tip </strong></li> <li data-xf-list-type="ol"><strong>Kayıt ( Record) Tipler </strong></li> <li data-xf-list-type="ol"><strong>Set (Küme) Tipler </strong></li> <li data-xf-list-type="ol"><strong>Dosya Tipler</strong></li> </ol></p> <p style="text-align: left"><strong><u>1-) TAMSAYI TİPLER</u>: </strong></p> <p style="text-align: left"><strong>Tam sayı tipleri ismi üzerinde tamsayı olan değişken ve sabitleri tanımlamak için klullanılır.</strong></p> <p style="text-align: left"><strong>Yani tamsayı olarak tanımlanan bir değişkene bir ondalıklı sayı aktarılamaz. Ve diyelimki biz bir işlemin sonucunu tamsayı tipinde tanımladığımız bir değişkene aktarmak istiyoruz. Eğer işlemimizde / işareti varsa ; 'Type mismatch' yani tip uyuşmazlığı hatası olur.</strong></p> <p style="text-align: left"><strong>Hemen Canlı örneğini yapalım:</strong></p> <p style="text-align: left"><strong><img src="http://www.ceturk.com/resimler/pascal/type_mismatch.gif" alt="" class="fr-fic fr-dii fr-draggable " style="" /></strong></p> <p style="text-align: left"><strong>Bu örnekte , sayi diye bir değişkenimizi tamsayı tiplerinden olan "integer" tipi ile tanımladık. Ve program içerisinde 10/5 işleminin sonucunu aktardık. Ve programımızı çalşıtırmak için RUN dediğimizde ekranda gördüğümüz Type mismatch hatası oluştu.</strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong></strong><strong><span style="color: #ff0000">Tamsayı Tipleri :</span></strong></p> <p style="text-align: left"><strong><span style="color: #ff0000"></span>Tip Adı : Sınırları Kapladığı Alan Shortint -128..127 1 Byte Integer -32768..32767 2 Byte Longint -2147483648..2147483647 4 Byte Byte 0..255 1 Byte Word 0..65535 2 Byte</strong></p> <p style="text-align: left"><strong><u>2-) Gerçek ( Reel) Sayı Tipler </u>: </strong></p> <p style="text-align: left"><strong>Ondalık değiken ve sabitleri tanımlamak için kullanılır. </strong></p> <p style="text-align: left"><strong><span style="color: #ff0000">Tamsayı Tipleri :</span></strong></p> <p style="text-align: left"><strong>Tip Adı : Sınırları Kapladığı Alan Real 2.9e-39..1.7e38 6 Byte single 1.5e-45..3.4e38 4 Byte double 5.0e-324..1.7e308 8 Byte extended 3.4e-4932..1.1e4932 10 Byte comp -9.2e18..9.2e18 8 Byte <span style="color: #ff0000">NOT:</span>Reel dışındaki diğer tiplerin çalışması için makinada matematik işlemcinin bulunması gerekir. Ayrıca Program başına {ŞN+} directive tanımı yapılmalıdır.</strong></p> <p style="text-align: left"><strong>Ayrıca e işareti 10 u temsile eder. yani e-39 demek 10 üzeri -39 demektir.</strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong><u>3-)Srting Tip </u>: </strong></p> <p style="text-align: left"><strong>Program içerisinde sayısal anlamı olmayan ve isim, adres... gibi bilgiler için kullanılır.String tipteki bilgiler iki apastrof işareti ' ' arasında yazılır. </strong></p> <p style="text-align: left"><strong>String 1..255 karekter alabilirve hafızada 256 byte'lık yer kaplar.</strong></p> <p style="text-align: left"><strong>String[n] ise n karekterlik bilgi alır ve n+1 bytlık yer kaplar.</strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong><u>4-) Karekter( Char) Tip</u>: </strong></p> <p style="text-align: left"><strong>Sadece bir karekterlik bilgi için kullanılır. Hafızada 1 Byte yer kaplar. Char tipteki bilgiler'' işareti arasına yazılır. </strong></p> <p style="text-align: left"><strong>Örnek: </strong></p> <p style="text-align: left"><strong>'A' , '3' , veye '*' </strong></p> <p style="text-align: left"><strong><u>5-)Boolean Tip</u>: </strong></p> <p style="text-align: left"><strong>Sadece TRUE (doğru) veya FALSE (yabnlış) değerini alan tiptir. Hafızada 1 Byte yer kaplar.</strong></p> <p style="text-align: left"><strong><u>6-)Dizi (Array ) Tip :</u></strong></p> <p style="text-align: left"><strong>Aynı tipteki birden fazla bilginin tutulduğu değişken ve sabit isimlere dizi denir. </strong></p> <p style="text-align: left"><strong>Dizileri tanımlamak için ARRAY kelimesi kullanılır. </strong></p> <p style="text-align: left"><strong>Örnek : </strong></p> <p style="text-align: left"><strong>Array[1..100] of Real;</strong></p> <p style="text-align: left"><strong>Array[1..10,1..5] of Byte;</strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong>Dizileri anlatırken ayrıntısıyla üzerinde duracağız. </strong></p> <p style="text-align: left"><strong><u>7-)Kayıt (Record ) Tip</u>:</strong></p> <p style="text-align: left"><strong>Record ile farklı tipte birden fazla alan bir isim altında tanımlanabilir. Mesela bir öğrenciye ait ; isim, soyad,sınıf, no gibi verileri ogrenci diye bir record tipi tanımlayarak hepsini bir çatı altında toplayabiliriz.</strong></p> <p style="text-align: left"><strong>Record Tipindeki veriler daha çok Rastgele Erişimli Dosyalar'da kullanlılır. Dosyalara bilgi girişi ve dosyadan bilgi okuma işlemlerinde kayıt yapısını oluşturan her alanın tek tek yazılması yerine, bütün alanları kapsayan bir değişken isminin yazılması yeterli olacak ve kullanımda büyük bir kolaylık sağlayacaktır. </strong></p> <p style="text-align: left"><strong>Record Tipinde olan veriler TYPE bölümünde RECORD-END bloğu içerisinde tanımlanırlar.</strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong><span style="color: #ff0000">Genel Yazılışı :</span></strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong>KayıtTipAdı= Record</strong></p> <p style="text-align: left"><strong>AlanAdı1 : Tipi;</strong></p> <p style="text-align: left"><strong>AlanAdı2 : tipi;</strong></p> <p style="text-align: left"><strong>: :</strong></p> <p style="text-align: left"><strong>END;</strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong>Gördüğünüz gibi Record tip tanımı END deyimi ile son bulur. Eğer Alan isimleri aynı tipte ise aralarına virgül (,) koyarak arka arkaya yazabiliriz.</strong></p> <p style="text-align: left"><strong>Örnek :</strong></p> <p style="text-align: left"><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><strong>Ogrenci= Record ad, soyad : string[20]; numara : integer; pascal_notu: byte; END;</strong></p></p> <p style="text-align: left"></p> <p style="text-align: left"><strong>Örneğimizde de gördüğümüz gibi string, integer, byte.. gibi birden çok ve değişik veri tiplerini tek bir tip altında topladık.</strong></p> <p style="text-align: left"><strong>Record tipimizin adı " Ogrenci". </strong></p> <p style="text-align: left"><strong>Peki nasıl kullanacağız bunu? </strong></p> <p style="text-align: left"><strong>diğer veri tiplerini nasıl kullanıyorsak bunu da aynı şekilde . "Ogrenci " tipinde bir değişken tanımlama için :</strong></p> <p style="text-align: left"><strong>VAR</strong></p> <p style="text-align: left"><strong>Ogr: Ogrenci; </strong></p> <p style="text-align: left"><strong>Gelin bir örnek yapalım.</strong></p> <p style="text-align: left"><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><strong>program record_deneme; uses wincrt; Type Ogrenci= Record {burda ogrenci diye bir record tipi belirliyoruz} ad, soyad : string[20]; numara : longint; pascal_notu: byte; END; Var ogr<img src="http://www.megatr.org/forum/images/smilies/redface.gif" alt="" class="fr-fic fr-dii fr-draggable " style="" />grenci; { ogr degiskenin tipini belirledigimiz ogrenci record tipi olrak belirliyoruz} Begin ogr.ad:='Mehmet' ; ogr.soyad:='ACA' ; ogr.numara:=01011028 ; ogr.pascal_notu:= 75; writeln('Ogrencinin Adi : ' , ogr.ad); writeln('Ogrencinin Soyadi : ' , ogr.soyad); writeln('Ogrencinin Numarasi : ' , ogr.numara); writeln('Ogrencinin Pascal Notu :', ogr.pascal_notu); End.</strong></p></p> <p style="text-align: left"></p> <p style="text-align: left"><strong><span style="color: #ff0000">With Deyimi</span> </strong></p> <p style="text-align: left"><strong>Yukarıdaki örneğimize baktığımızda ogr değişkenimiz ile, ogrenci olarak belirlediğimiz kayıt tipimizin alt bölümleri arasına . (nokta) koyduğumuz görüyoruz. Sürekli ogr.ad veya ogr.soyad yazmak hem programımızın uzamasına hem de bizim için bir zaman kaybına neden olur. </strong></p> <p style="text-align: left"><strong>Bunu Engellemek için With deyimi kullacağız. Aşağıdaki örneği inceleyiniz. </strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><strong>program record_deneme;uses wincrt;Type Ogrenci= Record ad, soyad : string[20]; numara : longint; pascal_notu: byte; END;Var ogrenci;Begin With ogr do Begin ad:='Mehmet' ; soyad:='ACA' ; numara:=01011028 ; pascal_notu:= 75; writeln('Ogrencinin Adi : ' , ad); writeln('Ogrencinin Soyadi : ' , soyad); writeln('Ogrencinin Numarasi : ' , numara); writeln('Ogrencinin Pascal Notu :',pascal_notu); End;End.</strong></p></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><strong><u><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite6" alt=":cool:" title="Cool :cool:" loading="lazy" data-shortname=":cool:" />Set ( Küme ) Tipleri </u>:</strong></p> <p style="text-align: left"><strong>Küme: Aynı tipte ve birbirleriyle ilgili bilgilerin oluşturduğu bütündür. Kümedeki elemanların arasına virgül(,) konur. Fakat eğer kümemizdeki elemanlar birbirlerini takip eden değerlerden oluşuyorsa bu değerler arasına iki nokta ( ..) konur.</strong></p> <p style="text-align: left"><strong>Aşagıdaki küme örneklerini inceleyiniz.</strong></p> <p style="text-align: left"><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><strong>['X']['A'..'Z'][0..9]['E','H',#27][1,2,3,4] ve [1..4] eşittir. </strong></p></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><strong>Küme tipinde bir tip tanımlamak için TYPE blümünden yararlanılır. Özel bir tip olan küme tipi verileri için SET OF ifadesi kullanılır. </strong></p> <p style="text-align: left"><strong>Genel şekil :</strong></p> <p style="text-align: left"><strong>KümeAdı=Tip Adı </strong></p> <p style="text-align: left"><strong>Örnek :</strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><strong>type Gun= (Sun, Mon, Tue, Wed, Thu, Fri, Sat); CharSet = set of Char; Rakam = set of [0..9]; DAYS = set of Day; { DAYS kümesi, Gun kümesinin elemanlarından oluşur}</strong></p></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><strong>Küme ifadeleri daha çok belli bir değerin başka değerlere eşit olup olmadığını veya bir değerin verilen bir aralıkta olup olmadığını kontrol etmede yaygın olarak kullanılır.</strong></p> <p style="text-align: left"><strong>Örnek 1:</strong></p> <p style="text-align: left"><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><strong>if (T='E') or (T='e') or (T='H') or (T='h') Then...</strong></p></p> <p style="text-align: left"></p> <p style="text-align: left"><strong>Komutu ile T değişkenin E,e,H,h harflerinden birine eşit olup olmadığı kontrol ediliyor.</strong></p> <p style="text-align: left"><strong>Biz Küme kullarak daha kısa yapabiliriz: </strong></p> <p style="text-align: left"><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><strong>if T in ['E','e','H','h'] Then...</strong></p></p> <p style="text-align: left"></p> <p style="text-align: left"><strong>Örnek 2:</strong></p> <p style="text-align: left"><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><strong>if (sayi>=0) And (sayi<=5) Then ...</strong></p></p> <p style="text-align: left"></p> <p style="text-align: left"><strong>komutu ile Sayi değişkenin değeri 0' dan büyük eşit ve 5' ten küçük eşit olması durumu kontrol ediliyor.</strong></p> <p style="text-align: left"><strong>Bu komut yerine aşağıdakini kullanabiliriz.</strong></p> <p style="text-align: left"><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><strong>if sayi in [0..5] Then ...</strong></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'">PASCAL GİRİŞ / ÇIKIŞ KOMUTLARI </span></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'"></span></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'">Konuya geçmeden önce kısaca birkaç şeyden bahsetmek istiyorum. Bundan önceki yazılarda anlatılanlar aşağı yukarı tüm programlama dillerinde aynı prensiplere dayanır. Bu yazıyla birlikte Pascal programlama diline özel komutları göreceğiz. Her ne kadar ben, Pascal ’a özel dediysem de elbette ki bu komutların bazılarının diğer dillerdeki komutlara benzediğini görebilirsiniz. </span></strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'">Bu komutlar anlatılırken, komutun procedure veya function mı olduğunu belirtilecek, ayrıca [ ] iki köşeli parantez içinde yazanlar bu bilginin kullanılmasının zorunlu <u>olmadığı </u>anlamına gelecektir. | işareti ise iki veya daha fazla seçenekten birinin seçileceğini belirtmek amacıyla kullanılacaktır. Eveeet, artık konumuza dönebiliriz. </span></strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'">Kullanıcının programa bilgi girmesini, dosyadan ve bellekten bilgilerin okunmasını ve program içindeki bilgilerin ekranda gösterilmesini, dosyaya, belleğe bilgi yazılmasını, yazıcıya bilgi gönderilmesini sağlayan komutlara giriş / çıkış komutları diyoruz. Şimdilik sadece ekrana bilgi yazdırmayı ve kullanıcının ekrana girdiği bilgiyi okumayı göreceğiz. Dosyadan, yazıcıdan vs. bilgi okunmasını ve yazılmasını ileriki konularda daha detaylı ele alacağız. Bu komutları kullanabilmek için programınızın başında bu komutlara ihtiyaç duyduğunuzu belirtmelisiniz. Bunu “</span><span style="font-family: 'Courier New'">uses</span><span style="font-family: 'Courier New'"> crt;</span><span style="font-family: 'Tahoma'">” (windows için wincrt kullanmalısınız) komutuyla hallettikten sonra geriye bir problem kalmıyor. </span></strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'">A)</span></strong><strong><span style="font-family: 'Tahoma'">READ – READLN (Procedure): </span></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'"></span></strong></p> <p style="text-align: left"><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><strong><span style="font-family: 'Courier New'">Read(</span><span style="font-family: 'Courier New'">[dosya değişkeni],değişken1,değişken2,....,değişkenN) </span><span style="font-family: 'Courier New'">Readln(</span><span style="font-family: 'Courier New'">[dosya değişkeni],değişken1,değişken2,....,değişkenN) </span><span style="font-family: 'Courier New'">dosya değişkeni: Bilgi okunacak dosyanın adını tutan değişken.</span></strong></p></p> <p style="text-align: left"></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'">Her ne kadar bu iki procedure aynı işi yapıyor gibi görünse de aralarında fark var. Readln, bilgi girişi yapılması için programın akışını geçici olarak durdurur ve giriş yapıldıktan sonra programın kaldığı yerden devam etmesini sağlar. </span></strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'">Read</span><span style="font-family: 'Tahoma'"> komutuyla birden fazla değişken bilgisi almak problem oluşturabilir çünkü alfa sayısal değişkenlerin tanımlandıkları uzunlukta, sayısal değişkenlerin ise başlangıcında ve bitiminde birer boşluk bırakılması gerekmektedir. Bu yüzden biz, Read komutu yerine Readln komutunu kullanacağız. Birden fazla değişken bilgisi alırken değişkenler arasına virgül koymak yeterli olacaktır. </span></strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'">Ayrıca Readln komutunu tek başına kullanırsanız, programın akışı enter tuşuna basılıncaya kadar durdurulur. Enter tuşuna bastıktan sonra, program kaldığı yerden işlemlere devam edecektir. Bunu daha çok Turbo Pascal editöründe yazdığınız kodları derlerken kullanabilirsiniz. Böylece programınızın sonuçlarını ekrandan daha rahat takip edebilirsiniz. Aksi halde programın işlenmesi biter bitmez hemen editöre geri dönersiniz ve eğer programınız ekranda bir şeyler gösteriyorsa göremezsiniz. Yazdığınız programın en sonuna bu komutu eklemeniz yeterli olacaktır. </span></strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong></strong><strong><span style="font-family: 'Tahoma'">Konuyla ilgili birkaç örnek verelim; </span></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'"></span></strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><strong><span style="font-family: 'Courier New'">var </span><span style="font-family: 'Courier New'">a,b:integer; </span><span style="font-family: 'Courier New'">Begin </span><span style="font-family: 'Courier New'">Readln(</span><span style="font-family: 'Courier New'">a); </span><span style="font-family: 'Courier New'">Readln(</span><span style="font-family: 'Courier New'">b); </span><span style="font-family: 'Courier New'">......... </span><span style="font-family: 'Courier New'">......... </span><span style="font-family: 'Courier New'">Readln; </span><span style="font-family: 'Courier New'">End. </span><em><span style="font-family: 'Courier New'">{ a ve b değişkenlerinin değerlerini kullanıcının } </span></em><em><span style="font-family: 'Courier New'">{ klavyeden girmesini sağlıyoruz. Daha sonra bu } </span></em><em><span style="font-family: 'Courier New'">{ değişkenlerle ne istersek yapabiliriz. End. den } </span></em><em><span style="font-family: 'Courier New'">{ önceki readln komutuyla da programın tüm işlemleri } </span></em><em><span style="font-family: 'Courier New'">{ bitirdikten sonra beklemesini sağlıyoruz ki ne olmuş } </span></em><em><span style="font-family: 'Courier New'">{ ne bitmiş görelim. } </span></em></strong></p></p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'">B) WRITE – WRITELN (Procedure):</span></strong></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'"></span></strong></p> <p style="text-align: left"><strong>Kod:</strong></p> <p style="text-align: left"><strong></strong><p style="text-align: left"><strong><span style="font-family: 'Courier New'">Write(</span><span style="font-family: 'Courier New'">[dosya değişkeni],değişken1,değişken2,değişkenN </span><span style="font-family: 'Courier New'">[:alan uzunluğundalık uzunluğu]); </span><span style="font-family: 'Courier New'">Writeln(</span><span style="font-family: 'Courier New'">[dosya değişkeni],değişken1,değişken2,değişkenN </span><span style="font-family: 'Courier New'">[:alan uzunluğundalık uzunluğu]); </span><span style="font-family: 'Courier New'">dosya değişkeni: Bilgi yazılacak dosyanın adını tutan değişken. </span><span style="font-family: 'Courier New'">Alan uzunluğu: Sayısal ifadelerin toplam hane sayısı. </span><span style="font-family: 'Courier New'">Ondalık uzunluğu: Sayısal ifadelerin ondalıklı kısmının uzunluğunu belirten ifade. </span></strong></p></p> <p style="text-align: left"></p> <p style="text-align: left"><strong><span style="font-family: 'Tahoma'">Bu iki komut da aynı gibi görünüyor fakat farklılıkları olan komutlar. Write komutu işlemini bitirdikten sonra bir alt satıra geçmez. Kursör yazılan bilginin sonuna konumlanır. Writeln komutuyla bilgi yazdırıldıktan sonra kursör bir alt satıra geçer. </span></strong></p> <p style="text-align: left"><strong></strong></p> <p style="text-align: left"><strong></strong><span style="font-family: 'Tahoma'"><strong>Yazılmak istenen mesajlar ‘’ apostrof (shift + 2 tuş kombinasyonu) işaretleri arasına yazılır. Bu işaretin içine yazılan bilgiler olduğu gibi ekranda gözükür. Birden fazla bilgi yazdırmak istersek mesajların yada değişkenlerin arasına virgül koymak yeterli olacaktır. </strong></span></p> <p style="text-align: left"><span style="font-family: 'Tahoma'"><strong></strong></span></p> <p style="text-align: left"></p></blockquote><p></p>
[QUOTE="anarkh, post: 133209, member: 953"] [B][COLOR=#008000]Döngüler [/COLOR][/B][FONT=Tahoma][SIZE=2][COLOR=#008000][B]For...Do Döngüsü [/B][/COLOR][/SIZE][/FONT][FONT=Tahoma][SIZE=2][B]Bilgisayarların en güzel yanlarından birisi de hiç sıkılmadan, şikayet etmeden aynı şeyleri yapabilmeleridir. Böylesine tekrar tekrar çalışması gereken işlemleri, bir programlama dilinde ancak döngüler vasıtası ile sağlayabiliriz. Aşağıda bu döngülerin çeşitlerini ve Pascalda nasıl kullanıldıklarını görebilirsiniz. [FONT=Tahoma][SIZE=2]FOR...TO DÖNGÜSÜ[/SIZE][/FONT] En basit döngü çeşididir. Kendisinden sonra gelen deyim veya deyimler gurubunu verilen sayı kadar çalıştırmaya yarar. Öncelikle yapısını görelim : [FONT=Tahoma][SIZE=2][COLOR=#0000ff]for değişken := ilk_değer to son_değer do komut;[/COLOR][/SIZE][/FONT] veya [/B][B][FONT=Tahoma][SIZE=2][COLOR=#0000ff]for değişken := ilk_değer to son_değer do begin komut(lar) end;[/COLOR][/SIZE][/FONT] [FONT=Tahoma][SIZE=2]FOR..DOWNTO DÖNGÜSÜ[/SIZE][/FONT] [/B][B][FONT=Tahoma][SIZE=2][COLOR=#0000ff]for değişken := ilk_değer downto son_değer do komut; [/COLOR][/SIZE][/FONT] Veya [/B][B][FONT=Tahoma][SIZE=2][COLOR=#0000ff]for değişken := ilk_değer downto son_değer do begin komut(lar) end;[/COLOR][/SIZE][/FONT] Şimdi bu yapıya bakarak sizlere çalışma mantığını anlatmaya çalışalım. For deyiminden sonra sayaç olarak kullanılacak bir tamsayı değişken kullanılır. Döngü işlemi bu değişkenin ilk değerinden başlar ve son değere kadar 1’er 1’er artar (to) veya azalır(downto). Bazı başka dillerdekinin aksine ne artış miktarını ayarlayabilirsiniz ne de ondalıklı sayıları kullanabilirsiniz. Döngü kendisinden sonra gelen ilk deyimi veya begin..end bloğunu işletir. Döngü içinde iken döngü değişkenine müdahale etmek mümkün olmakla birlikte bunu yapmak sakıncalı olabilir. Bu yüzden döngü değişkenleri genellikle döngü içerisinde işleme tabi tutulmaz. Bu kadar teorik bilgiden sonra şimdi bir örnek ile konumuzu pekiştirelim. [/B][/SIZE][/FONT] [B]Kod: [/B] [LEFT][FONT=Tahoma][SIZE=2][COLOR=purple][FONT=Tahoma][SIZE=2][B][SIZE=2]var[/SIZE][SIZE=2] i: integer; ismin : string;begin write('Ismini gir sahip :'); readln(ismin); for i := 1 to 15 do writeln('Merhaba ',ismin,' sahip');end. ************************************* [/SIZE][/B][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Tahoma][SIZE=2][COLOR=#008000][B]Repeat..Until döngüsü [/B][/COLOR][/SIZE][/FONT][FONT=Tahoma][SIZE=2][B]Repeat deyimi ile until deyimi arasında kalan işlemleri untildeki koşul yanlış olduğu sürece tekrarlar. Untildeki koşul(lar) doğru olduğu anda döngüden çıkar. [/B][B][FONT=Tahoma][SIZE=2][COLOR=#0000ff]Repeat ... işlemler; ... Until koşul(lar);[/COLOR][/SIZE][/FONT] [/B][FONT=Tahoma][SIZE=2][B]Örnek : [/B][/SIZE][/FONT][/SIZE][/FONT][B]Kod: [/B][LEFT][FONT=Tahoma][SIZE=2][FONT=Tahoma][SIZE=2][COLOR=purple][B]Var I : Integer;begin repeat Write('Bir sayı giriniz : '); ReadLn[IMG]http://www.dostuz.biz/forum/images/smilies/smiley38.gif[/IMG]; until (I >= 0) and (I <= 9); writeln(‘Sayı 0..9 arasındadir.’);End.[/B][/COLOR][/SIZE][/FONT][/SIZE][/FONT][/LEFT] [B][FONT=Tahoma][SIZE=2][IMG]http://www.programlama.com/images/info3.gif[/IMG][FONT=Tahoma][SIZE=2][COLOR=#c5003f]Ne olursa olsun şarta bakana kadar döngüyü bir kez çalıştırır. [/COLOR][/SIZE][/FONT] [/SIZE][/FONT] [FONT=Tahoma][SIZE=2][IMG]http://www.programlama.com/images/info3.gif[/IMG][FONT=Tahoma][SIZE=2][COLOR=#c5003f] Until'de belirtilen şart doğru olduğu sürece çalışır.[/COLOR][/SIZE][/FONT] [/SIZE][/FONT][/B] [FONT=Tahoma][SIZE=2][COLOR=#008000][B]While-Do Döngüsü [/B][/COLOR][/SIZE][/FONT][FONT=Tahoma][SIZE=2][B]Whiledan sonraki koşul doğru olduğu sürece işlem(ler) tekrarlanır. Whiledaki koşul(lar) doğru olduğu anda döngüden çıkar. [/B][B][FONT=Tahoma][SIZE=2][COLOR=#0000ff]While koşul(lar) do Begin ... işlemler; ... End;[/COLOR][/SIZE][/FONT] [/B][FONT=Tahoma][SIZE=2][B]Örnek : [/B][/SIZE][/FONT][/SIZE][/FONT][B]Kod: [/B][LEFT][FONT=Tahoma][SIZE=2][FONT=Tahoma][SIZE=2][COLOR=purple][B]Var I : Integer;begin I := 100; while((I >= 0) and (I <= 9)) do begin Write('Bir sayı giriniz : '); ReadLn[IMG]http://www.dostuz.biz/forum/images/smilies/smiley38.gif[/IMG]; end; writeln(‘Sayı 0..9 arasındadir.’);End.[/B][/COLOR][/SIZE][/FONT][/SIZE][/FONT][/LEFT] [B][FONT=Tahoma][SIZE=2][IMG]http://www.programlama.com/images/info3.gif[/IMG][FONT=Tahoma][SIZE=2][COLOR=#c5003f]Repeat-Until Döngüsünden farklı olarak öncelikle koşual bakılır sonra döngü başlar.[/COLOR][/SIZE][/FONT] [/SIZE][/FONT] [/B][B][FONT=Tahoma][SIZE=2][IMG]http://www.programlama.com/images/info3.gif[/IMG][FONT=Tahoma][SIZE=2][COLOR=#c5003f] 1-Döngüden çıkabilmek için mutlaka koşulun döngü içinde değişmesi gerektiğine dikkat edin.[/COLOR][/SIZE][/FONT] [/SIZE][/FONT] [/B][FONT=Tahoma][SIZE=2][B][IMG]http://www.programlama.com/images/info3.gif[/IMG][FONT=Tahoma][SIZE=2][COLOR=#c5003f]2-Birden fazla koşul kullanacaksanız bu koşulların tümünü bir parantez içine alın.[/COLOR][/SIZE][/FONT][/B] [/SIZE][/FONT] **************************** [B][COLOR=red]MenüLer [/COLOR][/B][B][COLOR=darkgreen][B]File Menüsü[/B][/COLOR][/B] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Pascal file menüsü üzerinde 10 ayrı menü komutu vardır. Bunların görevleri aşağıda özetlenmiştir.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Open:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Daha önceden diskte varolan Pascal program dosyasının editöre yüklenmesi için kullanılır. Pascalın DOS sürümü ile çalışırken aynı yöntem geçerli olmakla birlikte, aynı işlemi, F3 tuşuna basarak da yapabiliriz. Bu menü komutu kullanıldığında Şekil 2’de verilen diyalog kutusu görülecektir.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Disk üzerinde bulunan bir Pascal dosyasını editöre yüklemek için diyalog kutusunda görülen *.PAS yazılı yere programın adı yazılarak “Enter” tuşuna basılır veya önce tab tuşuna bastıktan sonra ok tuşları ile programın adı üzerine gelinerek “Enter” tuşuna basılır. Aynı seçim, mouse ile açılmak istenilen programın üzerine gelip iki kez sol tuşu tıklayarak da gerçekleştirilir.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]New: [/FONT][/COLOR][COLOR=black][FONT=Tahoma]Editörde yeni bir Pascal dosyası yaratmak amacıyla kullanılır.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Save:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Yazılan programın hafızaya alınması işlemini gerçekleştirir. Program ilk defa hafızaya alınacak ise Şekil 3’de görülen Save As Diyalog Kutusu ekrana gelerek, programa bir isim verilmesini bekleyecektir. Programın hafızaya alınması için program adı yazıldıktan sonra mouse ile "ok" tuşuna veya klavyeden “Enter” tuşuna basılması gerekir. Daha önceden diskte bulunan bir Pascal programı üzerinde yapılan değişiklikler nedeniyle hafızaya alma işlemi için bu komut kullanıldığı zaman, program eski adı ile kaydedileceğinden aynı diyalog kutusu ekranda görülmez.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Pascalın DOS sürümü ile çalışırken yazılan programın hafızaya alınması için bu menü komutu ile aynı işleve sahip olan F2 tuşuna basılması yeterlidir.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Save As: [/FONT][/COLOR][COLOR=black][FONT=Tahoma]Editörde aktif penceredeki Pascal programının yeni bir isimle kaydedilmesi amacıyla kullanılır. Komutun kullanılmasıyla ekrana Save As Diyalog Kutusu gelir. Programa verilecek yeni isim yazılarak “Enter” tuşuna basılır.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Save All: [/FONT][/COLOR][COLOR=black][FONT=Tahoma]Pascal ile program yazarken, birden fazla program penceresi ard arda açılabilir. Komut kullanıldığında açık olan bütün Pascal programları bilinen adları ile hafızaya alınır. Komutun kullanılması için açık pencerelerdeki programlara daha önceden isim verilmiş olmalıdır.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Change Dir...:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Sadece Dos sürümü Turbo/Borland Pascalda bulunan bu komut, aktif çalışma sürücüsü veya dizininin değiştirilmesi amacıyla kullanılır. Komut çalıştırıldığında istenilen dizin veya sürücü seçilerek “Alt+K” tuş kombinasyonuna basılır veya tab tuşu ile “Ok” butonuna gelinerek “Enter” tuşuna basılır.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Print:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Aktif Pascal penceresindeki program listesinin yazıcıdan alınmasını sağlar.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Printer Setup :[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Printer seçimi ve printer ayarlamalarının yapılması için kullanılır. Komut kullanıldığında Şekil 4 ‘te verilen diyalog kutusu ekrana gelir. Printer ve port bölümünden yazıcı seçimi yapılır. Set Up.. tuşuna basıldığında yazıcı ayarlarında istenilen değişikliklerin yapılmasını sağlayan diğer bir diyalog kutusu ekrana gelecektir. Burada kağıt boyutu, kağıdın yazıcıya yerleştirilme şekli, kağıt kaynağı (el ile, üst tepsi, otomatik vb), kullanılacak kağıt kalitesi gibi değişkenlerden istenilenleri seçmemize olanak sağlanmıştır. [/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Get Info:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Sadece Dos sürümü Turbo/Borland Pascal 'da bulunan bu komut, program ile ilgili bilgileri içeren bir diyalog kutusu ekrana gelir. Amacı programın ile ilgili çeşitli bilgilerin programcıya sunulmasıdır.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Dos Shell:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Sadece Dos sürümü Turbo/Borland Pascalda bulunan bu komut, geçici olarak Pascal editörünün terkedilip Dos ortamına dönülmesi amacıyla kullanılır. Dos ortamından tekrar editöre dönülmesi için Dos promptunda EXIT yazılır. [/FONT][/COLOR][COLOR=black][FONT=Tahoma]Edit Menüsü[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Edit menüsü (Şekil 5) yardımıyla program içinde belli blokların silinmesi, başka yere taşınması, kopyalanması gibi işlemleri yapabilmek mümkündür. Yukarıda sözü edilen işlemlerin yapılabilmesi için öncelikle üzerinde işlem yapılacak program bloklarının Shift ve Ok tuşlarına aynı anda basılması ile işaretlenmesi gerekmektedir. Metinin işaretlenmesi işleminden sonra edit menüsü üzerinde görülen menü komutları çalıştırılır. Cut: İşaretli metinin silinmesi amacıyla kullanılır. Kısa yol tuşu (Shift+Del). [/FONT][/COLOR][/B][/COLOR] [B][COLOR=darkgreen][B]Edit Menüsü[/B][/COLOR][/B] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Copy:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] İşaretli metini panoya (clipboard) kopyalar. Bu şekilde panoya kopyalanan metinin istenilen yere kopyalanması işlemi için bu komuttan sonra aşağıda tanımlanan Paste komutunun kullanılması gerekmektedir. Kısa yol tuşu (Ctrl+Ins). [/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Paste:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Copy komutu ile panoya kopyalanan metinin editör üzerinde istenilen yere kopyalanabilmesini sağlar. Kısa yol tuşu (Shift+Ins). [/FONT][/COLOR][/B][/COLOR] [B][COLOR=darkgreen][B]Search Menüsü [/B][/COLOR][/B] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Search Menüsü (Şekil 6), program yazımı sırasında belirli sözcüklerin aranması ve değiştirilmesi, istenilen program satırına hızlı bir şekilde ulaşılması vb. gibi işlemlerin kolaylıkla yapılabilmesini sağlar.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Find:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Bu komut program içinde herhangi bir metinin aranması amacıyla kullanılır. Komut aktif hale geldiğinde Şekil 7’deki diyalog kutusu ekrana gelir. Aranılacak metin, kendisi için ayrılmış alana yazılarak klavyeden “Enter” tuşuna veya mouse ile Ok butonuna basılır.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Bulunulan noktadan ileriye doğru arama yapılacak ise Direction bölümünde Forward terimi işaretlenmeli, geriye doğru arama yapılacak ise Backward terimi işaretlenmelidir.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Scope bölümünde, sözcüğün tüm dosya içinde aranılması isteniyorsa global, sadece seçilen metinde aranılması isteniyorsa selected text bölümleri işaretlenmelidir. Origin bölümünde, aramaya başlanacak sözcük, nokta bütün dosya içinde aranılacak ise entire scope, imleçin bulunduğu noktadan itibaren aranılacak ise from kursor bölümleri seçilmelidir.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Replace:[/FONT][/COLOR][COLOR=black][FONT=Tahoma]Yazılan program içinde kullanılan herhangi değişkenlerin veya Pascal sözcüklerinin başka bir değişken veya Pascal sözcüğü ile değiştirilmesi gerekebilir. Bu komut kullanıldığında Şekil 8’deki diyalog kutusu ekrana gelir. Text to find’ 'in karşısında ayrılmış alana değiştirilmesi istenilen sözcük, New Text’ in karşısındaki ayrılmış alana yeni sözcük yazılır. Değiştirilecek sözcük programın tamamında veya birden çok yerinde değiştirilecek ise Change all tuşunun üzerine gelinir ve klavyeden “Enter”, mouse ile Ok butonuna basılır. Programda aranılan metin bulunduğunda değişim için kullanıcıdan onay bekleyen bir diyalog kutusu ekrana gelir. Değişime onay için “Y”, değişime hayır demek için “N” tuşuna basılır.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Search Again:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Find menü komutu ile arama yapıldığında, program içinde aranılan metine ilk karşılaşılan yerde arama kesilir. Aynı metini tekrar aramak için Search Again menü komutu kullanılır.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Goto Line Number:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Program içinde istenilen program satırına hızlı bir şekilde ulaşılmasını sağlar (Şekil 9). Komutun kullanımıyla ekrana gelen diyalog kutusunda ayrılmış alana satır numarası yazılarak “Enter” tuşuna basılır.[/FONT][/COLOR][/B][/COLOR] [B][COLOR=darkgreen][B]Run Menüsü [/B][/COLOR][/B] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Run menüsünde yazılan programın çalıştırılması için bazı komutlar bulunmaktadır. Run menüsünde bulunan menü komutları aşağıda özetlenmiştir.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Run:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Programı derleyerek çalıştırır. Kısa yol tuşu (Ctrl+F9).[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Program Reset:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Sadece DOS sürümü Turbo/Borland Pascal‘de bulunan bu komut ile Step Over veya Trace Into komutlarından biri çalıştırılınca, yapılan kontrolü durdurmak ve hata kontrolünü tekrar programın ilk deyimi üzerine almak için kullanılır. Kısayol tuşu (Ctrl+F2).[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Goto Cursor:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Sadece DOS sürümü Turbo/Borland Pascal‘de bulunan bu komut ile editör ekranındaki program yazılımında kursörün bulunduğu satıra kadar olan program bölümünün derlenerek çalıştırılmasını sağlar. Kısayol tuşu (Ctrl+F4).[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Trace Into:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Sadece DOS sürümü Turbo/ Borland Pascal‘de bulunan bu komut ile editör ekranındaki programın satır satır çalıştırılmasını sağlar. Kısayol tuşu (F7).[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Step Over: [/FONT][/COLOR][COLOR=black][FONT=Tahoma]Sadece DOS sürümü Turbo/ Borland Pascal‘de bulunan bu komut ile editör Trace On durumuna geçer. Aktif durumdaki programın çalışması sırasında programın hangi satırları izlediğini ve işlem sırasını izlemek amacıyla kullanılmaktadır. Kısayol tuşu (F8.)[/FONT][/COLOR][/B][/COLOR] [B][COLOR=darkgreen][B]Compile Menüsü [/B][/COLOR][/B] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Compile Menüsü (Şekil 11) editörde aktif bulunan Pascal programının derlenmesinde, bu programa bağlı unit programların derlenmesinde ve yazılan Pascal programının dos/windows ortamında kendi başına çalışır duruma yani; XXXXXXXX.EXE durumuna getirilmesi için kullanılır. En çok kullanacağımız menü komutları aşağıda özetlenmiştir.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Compile:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Editör ekranındaki aktif durumda olan programı derlemek amacıyla kullanılır. Kısa yol tuşu (Alt+F9).[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Make:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Editör ekranındaki aktif durumda olan programı ve bu programa bağlı unit harici programlarını en son değiştirilmiş halleriyle derleme işlemini yapar. Kısa yol tuşu (F9).[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Build: [/FONT][/COLOR][COLOR=black][FONT=Tahoma]Editör ekranındaki aktif durumda olan programları ve bu programa bağlı unit harici programlarını birlikte derler.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Destination Memory (Disk):[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Sadece DOS Turbo Pascalda bulunan bu komut ile Programın derlenerek çalıştırılacağı ortamın belirtilmesi için kullanılır. Seçenek üzerine “Enter” tuşuna basılarak Memory yazılı bölüm Disk veya Disk yazılı ise Memory durumuna alınır. Destination Disk durumunda derleme sonucunda program dos ortamında direkt olarak çalıştırılabilir.[/FONT][/COLOR][/B][/COLOR] [COLOR=darkgreen][B][COLOR=black][FONT=Tahoma]Target:[/FONT][/COLOR][COLOR=black][FONT=Tahoma] Yazılan programın derlenip çalıştırılacağı ortamı belirlemek için kullanılır. Pascal Real mode, Protected mode ve Windows olmak üzere üç ortam sunmaktadır.[/FONT][/COLOR][/B][/COLOR] [B][COLOR=#ff0000]Turbo Pascal'da bir programın genel yapısı :[/COLOR] [/B] [B]Kod: [/B][LEFT][B]Program Program_adı Tanımlamalar Procedure ve Function Ana Program [/B][/LEFT] [B]Yukardaki yapı program kodlarının genel yapısı. Gelin beraber biraz daha genişletelim. Kod: [/B][LEFT][B]Program Program_adı Uses [COLOR=#ff0000]Kullanacağımız unitleri belirtiyoruz burada[/COLOR] Type [COLOR=#ff0000]Kendimiz özel bir veri tipi belirlemek istediğimizde[/COLOR] Const [COLOR=#ff0000]Program içinde kullanılacak sabitler[/COLOR] Var [COLOR=#ff0000]Değişkenlerimizi burada tanımlıyoruz[/COLOR] Label [COLOR=#ff0000]Etiketler (goto deyimi için) [/COLOR]Zorunlu olmadıkça kullanmayacağız ! Procedure ProcedureAdı [COLOR=#0000ff]Type...[/COLOR] [COLOR=#0000ff]Const...[/COLOR] [COLOR=#0000ff]Var...[/COLOR] Begin [COLOR=#0000ff]komutlar ..[/COLOR] End; Function FunctionAdı [COLOR=#0000ff]Type...[/COLOR] [COLOR=#0000ff]Const...[/COLOR] [COLOR=#0000ff]Var...[/COLOR] Begin [COLOR=#0000ff]komutlar ..[/COLOR] End; Begin [COLOR=#ff0000]Ana program komutları [/COLOR]End. [/B][/LEFT] [B]Gelin sizinle yukarıda kullanılan terimleri bir inceleyelim : [COLOR=#ff0000]Program :[/COLOR] Bu komut ile hazırladığımız program için bir isim yazıyoruz. Kullanılması zorunlu değildir. Fakat programımızı belirli bir zaman geçtikten sonra kendimiz yada başkaları incelediğinde , en başta programımız için bir fikir verdiği için kullanılması faydalıdır. [COLOR=#ff0000]Uses :[/COLOR] Pascal'ın kendi unitlerini : wincrt, dos...(crt, dos...) veya bizim kendimize özel hazırladığımız unit'leri kullanmak için kullanılır. [COLOR=#ff0000]Const :[/COLOR] Sabit tanımlamak için kullanılır. [COLOR=#ff0000]Var :[/COLOR] Değişkenlerimizi burada tanımlıyoruz. [COLOR=#ff0000]Label :[/COLOR] GOTO komutu ile program akışının gideceği bölümleri tanımlamak için kullanılır. Fakat bu programın okunurluluğunu azalttğı için pek tavsiye edilmez. [COLOR=#ff0000]Procedure ve Function :[/COLOR] Arkadaşlar bunlar [U]programımız içinde kullandığımız progr*****tır.[/U] Yapacağımız bir işi kısımlara ayırarak çözmemiz herzaman bize kolaylık sağlar.Bunuda function ve procedure kullanarak yapabiliyoruz. İlerde aradaki farkları da ayrıntılı bir şekilde incelenecektir. [/B][B][COLOR=#0000ff]Arkadaşlar dikkat ederseniz programımızın başında Type , Const, Label , va Var bölümlerinde tip,sabit, etiket ve değişken tanımlamaları yaptık. Aynı şekilde Procedure ve Function'larda da yaptık. Neden? Aradaki fark şudur: Programımızın başındaki tanımlamalar, programın heryerinde geçerlidir. Procedure ve Functionlar daki ler ise sadece tanımlandıkları yerde geçerlidir. Ana program tarafından bu değşkenler kullanılamaz. [/COLOR] Bu ifadeler size karışık gelebilir. Ama ilerleyen zamanlarda Procedure Ve Function ları incelediğimizde daha iyi anlayacaksınız. ******************************** [/B][B]Turbo Pascal'da program içerisinde kullanılan tüm değişkenler tipleri ile beraber tanımlanmalıdır. Peki Bu TİPLER nelerdir bakalım. [/B][LIST=1] [*][B]Tamsayı Tipler [/B] [*][B]Gerçek ( Reel) Sayı Tipler [/B] [*][B]String Tip [/B] [*][B]Karekter(Char) Tip [/B] [*][B]Boolean Tip [/B] [*][B]Dizi (ARRAY) Tip [/B] [*][B]Kayıt ( Record) Tipler [/B] [*][B]Set (Küme) Tipler [/B] [*][B]Dosya Tipler[/B] [/LIST][B][U]1-) TAMSAYI TİPLER[/U]: Tam sayı tipleri ismi üzerinde tamsayı olan değişken ve sabitleri tanımlamak için klullanılır. Yani tamsayı olarak tanımlanan bir değişkene bir ondalıklı sayı aktarılamaz. Ve diyelimki biz bir işlemin sonucunu tamsayı tipinde tanımladığımız bir değişkene aktarmak istiyoruz. Eğer işlemimizde / işareti varsa ; 'Type mismatch' yani tip uyuşmazlığı hatası olur. Hemen Canlı örneğini yapalım: [IMG]http://www.ceturk.com/resimler/pascal/type_mismatch.gif[/IMG] Bu örnekte , sayi diye bir değişkenimizi tamsayı tiplerinden olan "integer" tipi ile tanımladık. Ve program içerisinde 10/5 işleminin sonucunu aktardık. Ve programımızı çalşıtırmak için RUN dediğimizde ekranda gördüğümüz Type mismatch hatası oluştu. [/B][B][COLOR=#ff0000]Tamsayı Tipleri : [/COLOR]Tip Adı : Sınırları Kapladığı Alan Shortint -128..127 1 Byte Integer -32768..32767 2 Byte Longint -2147483648..2147483647 4 Byte Byte 0..255 1 Byte Word 0..65535 2 Byte [U]2-) Gerçek ( Reel) Sayı Tipler [/U]: Ondalık değiken ve sabitleri tanımlamak için kullanılır. [COLOR=#ff0000]Tamsayı Tipleri :[/COLOR] Tip Adı : Sınırları Kapladığı Alan Real 2.9e-39..1.7e38 6 Byte single 1.5e-45..3.4e38 4 Byte double 5.0e-324..1.7e308 8 Byte extended 3.4e-4932..1.1e4932 10 Byte comp -9.2e18..9.2e18 8 Byte [COLOR=#ff0000]NOT:[/COLOR]Reel dışındaki diğer tiplerin çalışması için makinada matematik işlemcinin bulunması gerekir. Ayrıca Program başına {ŞN+} directive tanımı yapılmalıdır. Ayrıca e işareti 10 u temsile eder. yani e-39 demek 10 üzeri -39 demektir. [U]3-)Srting Tip [/U]: Program içerisinde sayısal anlamı olmayan ve isim, adres... gibi bilgiler için kullanılır.String tipteki bilgiler iki apastrof işareti ' ' arasında yazılır. String 1..255 karekter alabilirve hafızada 256 byte'lık yer kaplar. String[n] ise n karekterlik bilgi alır ve n+1 bytlık yer kaplar. [U]4-) Karekter( Char) Tip[/U]: Sadece bir karekterlik bilgi için kullanılır. Hafızada 1 Byte yer kaplar. Char tipteki bilgiler'' işareti arasına yazılır. Örnek: 'A' , '3' , veye '*' [U]5-)Boolean Tip[/U]: Sadece TRUE (doğru) veya FALSE (yabnlış) değerini alan tiptir. Hafızada 1 Byte yer kaplar. [U]6-)Dizi (Array ) Tip :[/U] Aynı tipteki birden fazla bilginin tutulduğu değişken ve sabit isimlere dizi denir. Dizileri tanımlamak için ARRAY kelimesi kullanılır. Örnek : Array[1..100] of Real; Array[1..10,1..5] of Byte; Dizileri anlatırken ayrıntısıyla üzerinde duracağız. [U]7-)Kayıt (Record ) Tip[/U]: Record ile farklı tipte birden fazla alan bir isim altında tanımlanabilir. Mesela bir öğrenciye ait ; isim, soyad,sınıf, no gibi verileri ogrenci diye bir record tipi tanımlayarak hepsini bir çatı altında toplayabiliriz. Record Tipindeki veriler daha çok Rastgele Erişimli Dosyalar'da kullanlılır. Dosyalara bilgi girişi ve dosyadan bilgi okuma işlemlerinde kayıt yapısını oluşturan her alanın tek tek yazılması yerine, bütün alanları kapsayan bir değişken isminin yazılması yeterli olacak ve kullanımda büyük bir kolaylık sağlayacaktır. Record Tipinde olan veriler TYPE bölümünde RECORD-END bloğu içerisinde tanımlanırlar. [COLOR=#ff0000]Genel Yazılışı :[/COLOR] KayıtTipAdı= Record AlanAdı1 : Tipi; AlanAdı2 : tipi; : : END; Gördüğünüz gibi Record tip tanımı END deyimi ile son bulur. Eğer Alan isimleri aynı tipte ise aralarına virgül (,) koyarak arka arkaya yazabiliriz. Örnek : Kod: [/B][LEFT][B]Ogrenci= Record ad, soyad : string[20]; numara : integer; pascal_notu: byte; END;[/B][/LEFT] [B]Örneğimizde de gördüğümüz gibi string, integer, byte.. gibi birden çok ve değişik veri tiplerini tek bir tip altında topladık. Record tipimizin adı " Ogrenci". Peki nasıl kullanacağız bunu? diğer veri tiplerini nasıl kullanıyorsak bunu da aynı şekilde . "Ogrenci " tipinde bir değişken tanımlama için : VAR Ogr: Ogrenci; Gelin bir örnek yapalım. Kod: [/B][LEFT][B]program record_deneme; uses wincrt; Type Ogrenci= Record {burda ogrenci diye bir record tipi belirliyoruz} ad, soyad : string[20]; numara : longint; pascal_notu: byte; END; Var ogr[IMG]http://www.megatr.org/forum/images/smilies/redface.gif[/IMG]grenci; { ogr degiskenin tipini belirledigimiz ogrenci record tipi olrak belirliyoruz} Begin ogr.ad:='Mehmet' ; ogr.soyad:='ACA' ; ogr.numara:=01011028 ; ogr.pascal_notu:= 75; writeln('Ogrencinin Adi : ' , ogr.ad); writeln('Ogrencinin Soyadi : ' , ogr.soyad); writeln('Ogrencinin Numarasi : ' , ogr.numara); writeln('Ogrencinin Pascal Notu :', ogr.pascal_notu); End.[/B][/LEFT] [B][COLOR=#ff0000]With Deyimi[/COLOR] Yukarıdaki örneğimize baktığımızda ogr değişkenimiz ile, ogrenci olarak belirlediğimiz kayıt tipimizin alt bölümleri arasına . (nokta) koyduğumuz görüyoruz. Sürekli ogr.ad veya ogr.soyad yazmak hem programımızın uzamasına hem de bizim için bir zaman kaybına neden olur. Bunu Engellemek için With deyimi kullacağız. Aşağıdaki örneği inceleyiniz. Kod: [/B][LEFT][B]program record_deneme;uses wincrt;Type Ogrenci= Record ad, soyad : string[20]; numara : longint; pascal_notu: byte; END;Var ogrenci;Begin With ogr do Begin ad:='Mehmet' ; soyad:='ACA' ; numara:=01011028 ; pascal_notu:= 75; writeln('Ogrencinin Adi : ' , ad); writeln('Ogrencinin Soyadi : ' , soyad); writeln('Ogrencinin Numarasi : ' , numara); writeln('Ogrencinin Pascal Notu :',pascal_notu); End;End.[/B][/LEFT] [B][U]8-)Set ( Küme ) Tipleri [/U]: Küme: Aynı tipte ve birbirleriyle ilgili bilgilerin oluşturduğu bütündür. Kümedeki elemanların arasına virgül(,) konur. Fakat eğer kümemizdeki elemanlar birbirlerini takip eden değerlerden oluşuyorsa bu değerler arasına iki nokta ( ..) konur. Aşagıdaki küme örneklerini inceleyiniz. Kod: [/B][LEFT][B]['X']['A'..'Z'][0..9]['E','H',#27][1,2,3,4] ve [1..4] eşittir. [/B][/LEFT] [B]Küme tipinde bir tip tanımlamak için TYPE blümünden yararlanılır. Özel bir tip olan küme tipi verileri için SET OF ifadesi kullanılır. Genel şekil : KümeAdı=Tip Adı Örnek : Kod: [/B][LEFT][B]type Gun= (Sun, Mon, Tue, Wed, Thu, Fri, Sat); CharSet = set of Char; Rakam = set of [0..9]; DAYS = set of Day; { DAYS kümesi, Gun kümesinin elemanlarından oluşur}[/B][/LEFT] [B]Küme ifadeleri daha çok belli bir değerin başka değerlere eşit olup olmadığını veya bir değerin verilen bir aralıkta olup olmadığını kontrol etmede yaygın olarak kullanılır. Örnek 1: Kod: [/B][LEFT][B]if (T='E') or (T='e') or (T='H') or (T='h') Then...[/B][/LEFT] [B]Komutu ile T değişkenin E,e,H,h harflerinden birine eşit olup olmadığı kontrol ediliyor. Biz Küme kullarak daha kısa yapabiliriz: Kod: [/B][LEFT][B]if T in ['E','e','H','h'] Then...[/B][/LEFT] [B]Örnek 2: Kod: [/B][LEFT][B]if (sayi>=0) And (sayi<=5) Then ...[/B][/LEFT] [B]komutu ile Sayi değişkenin değeri 0' dan büyük eşit ve 5' ten küçük eşit olması durumu kontrol ediliyor. Bu komut yerine aşağıdakini kullanabiliriz. Kod: [/B][B]if sayi in [0..5] Then ...[/B] [B][FONT=Tahoma]PASCAL GİRİŞ / ÇIKIŞ KOMUTLARI Konuya geçmeden önce kısaca birkaç şeyden bahsetmek istiyorum. Bundan önceki yazılarda anlatılanlar aşağı yukarı tüm programlama dillerinde aynı prensiplere dayanır. Bu yazıyla birlikte Pascal programlama diline özel komutları göreceğiz. Her ne kadar ben, Pascal ’a özel dediysem de elbette ki bu komutların bazılarının diğer dillerdeki komutlara benzediğini görebilirsiniz. [/FONT] [FONT=Tahoma]Bu komutlar anlatılırken, komutun procedure veya function mı olduğunu belirtilecek, ayrıca [ ] iki köşeli parantez içinde yazanlar bu bilginin kullanılmasının zorunlu [U]olmadığı [/U]anlamına gelecektir. | işareti ise iki veya daha fazla seçenekten birinin seçileceğini belirtmek amacıyla kullanılacaktır. Eveeet, artık konumuza dönebiliriz. [/FONT] [FONT=Tahoma]Kullanıcının programa bilgi girmesini, dosyadan ve bellekten bilgilerin okunmasını ve program içindeki bilgilerin ekranda gösterilmesini, dosyaya, belleğe bilgi yazılmasını, yazıcıya bilgi gönderilmesini sağlayan komutlara giriş / çıkış komutları diyoruz. Şimdilik sadece ekrana bilgi yazdırmayı ve kullanıcının ekrana girdiği bilgiyi okumayı göreceğiz. Dosyadan, yazıcıdan vs. bilgi okunmasını ve yazılmasını ileriki konularda daha detaylı ele alacağız. Bu komutları kullanabilmek için programınızın başında bu komutlara ihtiyaç duyduğunuzu belirtmelisiniz. Bunu “[/FONT][FONT=Courier New]uses[/FONT][FONT=Courier New] crt;[/FONT][FONT=Tahoma]” (windows için wincrt kullanmalısınız) komutuyla hallettikten sonra geriye bir problem kalmıyor. [/FONT] [FONT=Tahoma]A)[/FONT][/B][B][FONT=Tahoma]READ – READLN (Procedure): [/FONT] Kod: [/B][LEFT][B][FONT=Courier New]Read([/FONT][FONT=Courier New][dosya değişkeni],değişken1,değişken2,....,değişkenN) [/FONT][FONT=Courier New]Readln([/FONT][FONT=Courier New][dosya değişkeni],değişken1,değişken2,....,değişkenN) [/FONT][FONT=Courier New]dosya değişkeni: Bilgi okunacak dosyanın adını tutan değişken.[/FONT][/B][/LEFT] [B][FONT=Tahoma]Her ne kadar bu iki procedure aynı işi yapıyor gibi görünse de aralarında fark var. Readln, bilgi girişi yapılması için programın akışını geçici olarak durdurur ve giriş yapıldıktan sonra programın kaldığı yerden devam etmesini sağlar. [/FONT] [FONT=Tahoma]Read[/FONT][FONT=Tahoma] komutuyla birden fazla değişken bilgisi almak problem oluşturabilir çünkü alfa sayısal değişkenlerin tanımlandıkları uzunlukta, sayısal değişkenlerin ise başlangıcında ve bitiminde birer boşluk bırakılması gerekmektedir. Bu yüzden biz, Read komutu yerine Readln komutunu kullanacağız. Birden fazla değişken bilgisi alırken değişkenler arasına virgül koymak yeterli olacaktır. [/FONT] [FONT=Tahoma]Ayrıca Readln komutunu tek başına kullanırsanız, programın akışı enter tuşuna basılıncaya kadar durdurulur. Enter tuşuna bastıktan sonra, program kaldığı yerden işlemlere devam edecektir. Bunu daha çok Turbo Pascal editöründe yazdığınız kodları derlerken kullanabilirsiniz. Böylece programınızın sonuçlarını ekrandan daha rahat takip edebilirsiniz. Aksi halde programın işlenmesi biter bitmez hemen editöre geri dönersiniz ve eğer programınız ekranda bir şeyler gösteriyorsa göremezsiniz. Yazdığınız programın en sonuna bu komutu eklemeniz yeterli olacaktır. [/FONT] [/B][B][FONT=Tahoma]Konuyla ilgili birkaç örnek verelim; [/FONT] Kod: [/B][LEFT][B][FONT=Courier New]var [/FONT][FONT=Courier New]a,b:integer; [/FONT][FONT=Courier New]Begin [/FONT][FONT=Courier New]Readln([/FONT][FONT=Courier New]a); [/FONT][FONT=Courier New]Readln([/FONT][FONT=Courier New]b); [/FONT][FONT=Courier New]......... [/FONT][FONT=Courier New]......... [/FONT][FONT=Courier New]Readln; [/FONT][FONT=Courier New]End. [/FONT][I][FONT=Courier New]{ a ve b değişkenlerinin değerlerini kullanıcının } [/FONT][/I][I][FONT=Courier New]{ klavyeden girmesini sağlıyoruz. Daha sonra bu } [/FONT][/I][I][FONT=Courier New]{ değişkenlerle ne istersek yapabiliriz. End. den } [/FONT][/I][I][FONT=Courier New]{ önceki readln komutuyla da programın tüm işlemleri } [/FONT][/I][I][FONT=Courier New]{ bitirdikten sonra beklemesini sağlıyoruz ki ne olmuş } [/FONT][/I][I][FONT=Courier New]{ ne bitmiş görelim. } [/FONT][/I][/B][/LEFT] [B][FONT=Tahoma]B) WRITE – WRITELN (Procedure): [/FONT] Kod: [/B][LEFT][B][FONT=Courier New]Write([/FONT][FONT=Courier New][dosya değişkeni],değişken1,değişken2,değişkenN [/FONT][FONT=Courier New][:alan uzunluğundalık uzunluğu]); [/FONT][FONT=Courier New]Writeln([/FONT][FONT=Courier New][dosya değişkeni],değişken1,değişken2,değişkenN [/FONT][FONT=Courier New][:alan uzunluğundalık uzunluğu]); [/FONT][FONT=Courier New]dosya değişkeni: Bilgi yazılacak dosyanın adını tutan değişken. [/FONT][FONT=Courier New]Alan uzunluğu: Sayısal ifadelerin toplam hane sayısı. [/FONT][FONT=Courier New]Ondalık uzunluğu: Sayısal ifadelerin ondalıklı kısmının uzunluğunu belirten ifade. [/FONT][/B][/LEFT] [B][FONT=Tahoma]Bu iki komut da aynı gibi görünüyor fakat farklılıkları olan komutlar. Write komutu işlemini bitirdikten sonra bir alt satıra geçmez. Kursör yazılan bilginin sonuna konumlanır. Writeln komutuyla bilgi yazdırıldıktan sonra kursör bir alt satıra geçer. [/FONT] [/B][FONT=Tahoma][B]Yazılmak istenen mesajlar ‘’ apostrof (shift + 2 tuş kombinasyonu) işaretleri arasına yazılır. Bu işaretin içine yazılan bilgiler olduğu gibi ekranda gözükür. Birden fazla bilgi yazdırmak istersek mesajların yada değişkenlerin arasına virgül koymak yeterli olacaktır. [/B][/FONT] [/LEFT] [/QUOTE]
Adı
İnsan doğrulaması
Peygamber Efendimiz a.s.v.'ın kabri nerededir? (Sadece şehir adını küçük harfler ile giriniz)
Cevap yaz
Forumlar
Download
Program Merkezi
Pascal Dersleri
Bu site çerezler kullanır. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz.
Accept
Daha fazla bilgi edin.…
Üst