Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Özel Arama
  Bilgi Dünyası > 
(¯`·.(¯`·. (¯`·.(¯`·.BİDUNYABİLGİ ÖZEL - PROGRAMLAMA - WEBMASTER - GRAFİK BÖLÜMÜ .·´¯).·´¯) .·´¯).·´¯)
 > Programlama > Pascal - Delphi (Moderatör: zivercan) > Pascal Dersleri (Geniş Çaplı)
Kullanıcı Adı: Beni Hatirla?
Şifre:
Konu: Pascal Dersleri (Geniş Çaplı)
: 6 cevap var
Okunma SayısıOkunma Sayısı 419 defa
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Sayfa: [1]   Aşağı git
Cevap Yaz Yeni Konu Haberdar Et Okunmadi Say Bu Konuyu Gönder Yazdir
20.10.07 - 11:54:40
ÜYE BILGILERI the state
Profesyonel Üye
*****


CINSIYET Bay
NERDEN
KAYIT TARIHI 25.09.07 - 15:08:05
..Mesaj Sayısı..

/*-+!MaHiR!+-*/


Aktiflik

Deneyim
Seviye
IRTIBAT GÜCÜ Rep Puanı: 74

190 Mesajına Toplam
367 Kere Teşekkür Edildi

53 Mesajına Toplam
57 Kere Karma Verildi
ILETISIM
Offline Offline
---Arcade---
---Şampiyonluklarım---



Uyarı Puanı:
%0
« :»

Döngüler

For...Do Döngüsü

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.

FOR...TO DÖNGÜSÜ

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 :
for değişken := ilk_değer to son_değer do komut;

veya

for değişken := ilk_değer to son_değer do
begin
komut(lar)
end;

FOR..DOWNTO DÖNGÜSÜ

for değişken := ilk_değer downto son_değer do komut;


Veya

for değişken := ilk_değer downto son_değer do
begin
komut(lar)
end;

Ş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.


Kod:
var i: integer; ismin : string;begin write('Ismini gir sahip :'); readln(ismin); for i := 1 to 15 do writeln('Merhaba ',ismin,' sahip');end.





*************************************


Repeat..Until döngüsü

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.

Repeat
...
işlemler;
...
Until koşul(lar);

Örnek :

Kod:

Var I : Integer;begin repeat Write('Bir sayı giriniz : '); ReadLn; until (I >= 0) and (I <= 9); writeln(‘Sayı 0..9 arasındadir.’);End.

Ne olursa olsun şarta bakana kadar döngüyü bir kez çalıştırır.


Until'de belirtilen şart doğru olduğu sürece çalışır.






While-Do Döngüsü

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.

While koşul(lar) do
Begin
...
işlemler;
...
End;

Örnek :

Kod:
Var I : Integer;begin I := 100; while((I >= 0) and (I <= 9)) do begin Write('Bir sayı giriniz : '); ReadLn; end; writeln(‘Sayı 0..9 arasındadir.’);End.


Repeat-Until Döngüsünden farklı olarak öncelikle koşual bakılır sonra döngü başlar.


1-Döngüden çıkabilmek için mutlaka koşulun döngü içinde değişmesi gerektiğine dikkat edin.


2-Birden fazla koşul kullanacaksanız bu koşulların tümünü bir parantez içine alın.



****************************



MenüLer

File Menüsü


Pascal file menüsü üzerinde 10 ayrı menü komutu vardır. Bunların görevleri aşağıda özetlenmiştir.

Open: 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.

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.

New: Editörde yeni bir Pascal dosyası yaratmak amacıyla kullanılır.

Save: 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.




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.

Save As: 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.

Save All: 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.

Change Dir...: 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.

Print: Aktif Pascal penceresindeki program listesinin yazıcıdan alınmasını sağlar.

Printer Setup : 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.

Get Info: 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.

Dos Shell: 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. Edit Menüsü 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).

Edit Menüsü


Copy: İş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).
Paste: Copy komutu ile panoya kopyalanan metinin editör üzerinde istenilen yere kopyalanabilmesini sağlar. Kısa yol tuşu (Shift+Ins).

Search Menüsü

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.

Find: 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.
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.

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.

Replace: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.

Search Again: 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.

Goto Line Number: 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.

Run Menüsü


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.

Run: Programı derleyerek çalıştırır. Kısa yol tuşu (Ctrl+F9).
Program Reset: 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).
Goto Cursor: 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).

Trace Into: 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).

Step Over: 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.)

Compile Menüsü


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.

Compile: Editör ekranındaki aktif durumda olan programı derlemek amacıyla kullanılır. Kısa yol tuşu (Alt+F9).

Make: 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).

Build: Editör ekranındaki aktif durumda olan programları ve bu programa bağlı unit harici programlarını birlikte derler.

Destination Memory (Disk): 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.

Target: 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.




Turbo Pascal'da bir programın genel yapısı :

Kod:
Program Program_adı Tanımlamalar Procedure ve Function Ana Program


Yukardaki yapı program kodlarının genel yapısı. Gelin beraber biraz daha genişletelim.

Kod:
Program Program_adı Uses Kullanacağımız unitleri belirtiyoruz burada Type Kendimiz özel bir veri tipi belirlemek istediğimizde Const Program içinde kullanılacak sabitler Var Değişkenlerimizi burada tanımlıyoruz Label Etiketler (goto deyimi için) Zorunlu olmadıkça kullanmayacağız ! Procedure ProcedureAdı Type... Const... Var... Begin komutlar .. End; Function FunctionAdı Type... Const... Var... Begin komutlar .. End; Begin Ana program komutları End.

Gelin sizinle yukarıda kullanılan terimleri bir inceleyelim :

Program : 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.

Uses : Pascal'ın kendi unitlerini : wincrt, dos...(crt, dos...) veya bizim kendimize özel hazırladığımız unit'leri kullanmak için kullanılır.

Const : Sabit tanımlamak için kullanılır.

Var : Değişkenlerimizi burada tanımlıyoruz.

Label : 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.

Procedure ve Function : Arkadaşlar bunlar programımız içinde kullandığımız programcıktır. 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.

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.

Bu ifadeler size karışık gelebilir. Ama ilerleyen zamanlarda Procedure Ve Function ları incelediğimizde daha iyi anlayacaksınız.


********************************


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.

   1. Tamsayı Tipler
   2. Gerçek ( Reel) Sayı Tipler
   3. String Tip
   4. Karekter(Char) Tip
   5. Boolean Tip
   6. Dizi (ARRAY) Tip
   7. Kayıt ( Record) Tipler
   8. Set (Küme) Tipler
   9. Dosya Tipler

1-) TAMSAYI TİPLER:
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:
Resimlerin Görüntülenmesine İzin Verilmiyor

Resimleri Görebilmek İçin Lütfen Üye Olun veya Giriş Yapın
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.
Logged
Robot Moderatör
Anahtar Kelime
*****
Offline Pasif

Mesajlar: 6522

View Profile
Re: Pascal Dersleri (Geniş Çaplı)
« Posted on: 03.12.08 - 10:02:39 »

 
      uyari
Merhaba ziyaretçi. Öncelikle sitemize hoşgeldiniz. Ben robot moderatör olrak siteden daha fazla yararlanmanız için
sitemize üye olmanızı öneririm. iyi eğlenceler.

giris  kayit
Anahtar Kelimeler: Pascal Dersleri (Geniş Çaplı)
Web kaynakları , flash oyunlar , msn eklentileri , eğlenceli videolar hepsi burada
Logged
Sponsor Baglantilar


20.10.07 - 11:55:00
ÜYE BILGILERI the state
Profesyonel Üye
*****


CINSIYET Bay
NERDEN
KAYIT TARIHI 25.09.07 - 15:08:05
..Mesaj Sayısı..

/*-+!MaHiR!+-*/


Aktiflik

Deneyim
Seviye
IRTIBAT GÜCÜ Rep Puanı: 74

190 Mesajına Toplam
367 Kere Teşekkür Edildi

53 Mesajına Toplam
57 Kere Karma Verildi
ILETISIM
Offline Offline
---Arcade---
---Şampiyonluklarım---



Uyarı Puanı:
%0
« Yanıtla #1 :»

Tamsayı Tipleri :
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
2-) Gerçek ( Reel) Sayı Tipler :
Ondalık değiken ve sabitleri tanımlamak için kullanılır.
Tamsayı Tipleri :
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 NOT: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.

3-)Srting Tip :
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.

4-) Karekter( Char) Tip:
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 '*'
5-)Boolean Tip:
Sadece TRUE (doğru) veya FALSE (yabnlış) değerini alan tiptir. Hafızada 1 Byte yer kaplar.
6-)Dizi (Array ) Tip :
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.
7-)Kayıt (Record ) Tip:
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.

Genel Yazılışı :

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:
Ogrenci= Record ad, soyad : string[20]; numara : integer; pascal_notu: byte; END;

Ö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:
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 ogrgrenci; { 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.

With Deyimi
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:
program record_deneme;uses wincrt;Type Ogrenci= Record ad, soyad : string[20]; numara : longint; pascal_notu: byte; END;Var ogrgrenci;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.




8-)Set ( Küme ) Tipleri :
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:
['X']['A'..'Z'][0..9]['E','H',#27][1,2,3,4] ve [1..4] eşittir.


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:
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}


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:
if (T='E') or (T='e') or (T='H') or (T='h') Then...

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:
if T in ['E','e','H','h'] Then...

Örnek 2:
Kod:
if (sayi>=0) And (sayi<=5) Then ...

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:
if sayi in [0..5] Then ...





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.

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 olmadığı 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.


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 “uses crt;” (windows için wincrt kullanmalısınız) komutuyla hallettikten sonra geriye bir problem kalmıyor.


A)READ – READLN (Procedure):

Kod:
Read([dosya değişkeni],değişken1,değişken2,....,değişkenN) Readln([dosya değişkeni],değişken1,değişken2,....,değişkenN) dosya değişkeni: Bilgi okunacak dosyanın adını tutan değişken.

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.

Read 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.

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.

Konuyla ilgili birkaç örnek verelim;


Kod:
var a,b:integer; Begin Readln(a); Readln(b); ......... ......... Readln; End. { a ve b değişkenlerinin değerlerini kullanıcının } { klavyeden girmesini sağlıyoruz. Daha sonra bu } { değişkenlerle ne istersek yapabiliriz. End. den } { önceki readln komutuyla da programın tüm işlemleri } { bitirdikten sonra beklemesini sağlıyoruz ki ne olmuş } { ne bitmiş görelim. }


B) WRITE – WRITELN (Procedure):

Kod:
Write([dosya değişkeni],değişken1,değişken2,değişkenN [:alan uzunluğundalık uzunluğu]); Writeln([dosya değişkeni],değişken1,değişken2,değişkenN [:alan uzunluğundalık uzunluğu]); dosya değişkeni: Bilgi yazılacak dosyanın adını tutan değişken. Alan uzunluğu: Sayısal ifadelerin toplam hane sayısı. Ondalık uzunluğu: Sayısal ifadelerin ondalıklı kısmının uzunluğunu belirten ifade.

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.

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.
Logged
20.10.07 - 11:55:29
ÜYE BILGILERI the state
Profesyonel Üye
*****


CINSIYET Bay
NERDEN
KAYIT TARIHI 25.09.07 - 15:08:05
..Mesaj Sayısı..

/*-+!MaHiR!+-*/


Aktiflik

Deneyim
Seviye
IRTIBAT GÜCÜ Rep Puanı: 74

190 Mesajına Toplam
367 Kere Teşekkür Edildi

53 Mesajına Toplam
57 Kere Karma Verildi
ILETISIM
Offline Offline
---Arcade---
---Şampiyonluklarım---



Uyarı Puanı:
%0
« Yanıtla #2 :»

Pascalda Veri Tipleri
Tamsayi Tipleri Pascalda degiskenleriniz için tanimlayabileceginiz veri tiplerini asagida bulabilirsiniz. Isaretli veya isaretsiz tamsayilari ifade etmek için kullanabileceginiz çesitli araliklari kapsayan degisken tipleridir. Programlarinizda en çok kullanacak oldugunuz tipler de yine bu tiplerdir.
Tip Deger Açiklama
Byte 0..255 Isaretsiz tamsayilar (8 bit).
Shortint -128..127 Isaretli tamsayilar (8bit).
Integer -32768..32767 Isaretli tamsayilar (16 bit)
Word 0..65535 Isaretsiz tamsayilar (16 bit).
Longint -2147483648..2147483647 Isaretli tamsayilar(32 bit).
Tamsayi Tipleri Bu sayi tipleri sabit veya kayar noktali gerçel sayilari ifade etmekte kullanilirlar. Özellikle büyük rakamlarla veya bilimsel arastirmalarla ugrasiyorsaniz bu tip degiskenlere çok isiniz düsecek demektir.
Tip Deger Basamak Açiklama
Real 2.9e-39..1.7e38 11-12 6 bytelik yer tutar
Single 1.5e-45..3.4e38 7-8 4 bytelik yer tutar
Double 5.0e-324..1.7e308 15-16 8 bytelik yer tutar
Extended 3.4e-4932..1.1e4932 19-20 10 bytelik yer tutar
Comp -9.2e18..9.2e18 19-20 8 bytelik yer tutar
Asagidaki degerler bilimsel notasyonda yazilmistir. Düzgün görüntüsü için tu örnekten yararlanabilirsiniz : 2.9e-39 = 2.9 * 10-39 Karakter ve Alfanümerik Tipler Bu tip degiskenlerin içinde isim, adres gibi sayisal olmayan degerler tutulur.
Tip Deger Açiklama
Char ‘a','z'... Tek karakterlik degiskenler (8 bit).
String (0..254 karakter) Karakterlerden olusan dizidir
Mantiksal Tip Sadece dogru veya yanlis degerini tutabilen degiskenlerdir. Karar vermenizde size yardimci olacaklarina emin olabilirsiniz. Dogru için 1, yanlis için 0 olarak düsünebilirsiniz.
Tip Deger
Boolean True,False (1,0)
Degisken ve Sabit Tanimlamala
Var Blogu: Pascalda degisken tanimlamak için VAR blogu kullanilir. Bu blokta bir degisken tanimlamak için önce degiskenin adi, sonra ":" (iki nokta üstüste) ve son olarak da degiskenin tipi belirtilir. Ayni tipite olan degiskenleri virgülle ayirarak bir defada da tanimlayabilirsiniz. <DEÄzIÅzKEN_ADi[,<DEÄzIÅzKEN_ADi ,…] :<DEÄzIÅzKEN_TIPI ; Örnek : Var Sayi : integer; Isim, Soyisim : string; Var blogu baska bir blogun baslamasi ile biter. Programinizin daha okunakli olmasi için ":" leri alt alta getirmeye özen gösterebilirsiniz. Unutmayin ki iyi bir programci kodunun okunurlugundan belli olur. Const Blogu: Pascalda sabit tanimlari CONST blogunda yapilir. Sabitlerin özelligi program içerisinde degerlerinin degistirilememesidir. Bir sabitin tanimlanmasi için önce sabitin adi, sonra "=" ve sabit degeri yazilir. <SABIT_ADi=<SABIT_DEGER ; Örnek: Const Pi = 3.14; Bu blokta yapilabilecek diger bir tanim ise degiskenlere ilk deger verilmesidir. Bunun için önce degiskeninizin adini yaziyorsunuz sonra ":" koyup tipini belirliyorsunuz ve ilk deger vermek için "=" yazip ilk degerini veriyorsunuz. <DEÄzIÅzKEN_ADi:<DEÄzIÅzKEN_TIPI =<ILK_DEGER ; Örnek: Const Sayac : byte = 0;
Programlara Açiklama Eklenmesi
Program yazimi sirasinda kodlarimiza çok sik ekleme ve çikarmalar yapariz bunlar bazen programlari içinden çikilmaz hale getirebilir, bunu engellemek için Pascalda programlara açiklama satirlari ekleyebilirsiniz. Açiklama satirlari eklemeniz ileride programda yaptiginiz degisiklikleri ve program akisini kolayca hatirlamanizi ve programinizi inceleyen diger kisilerin programi kolayca anlamalarini saglayacaktir. Pascalda açiklama satiri yazimi için {,} sembolleri veya (*,*) ikilileri kullanilir bunlar açiklamanin nerede baslayip nerede bittiklerini belirtir. Programin derlenmesi esnasinda bu satirlar derleyici tarafindan gözardi edilir, yani derlenmis kodda açiklama satirlari yer almaz. Açiklamalar birinci tipte { ile baslar } ile biter. Ikinci tipte ise (* ile baslar ve *) ile biter. Programlarinizda açiklama satirlarina sikça yer vermeniz hem sizin hem de programi inceleyen diger kisilerin programi rahat anlamalarini saglayacaktir. Örnek: Var sayi:integer; {sayi degiskeni kaç kisinin adini girecegimizi saymak için kullanildi. Bu bir açiklama satiridir ve derleyici tarafindan gözardi edilir} adi:string[20]; (* Bu da bir açiklama satiridir ve bu satir da derleyici tarafindan gözardi edilir*) Pascalda degisken tanimlamalarinin ve kod satirlarinin sonuna noktali virgül geldigi halde açiklama satirlarinin sonuna noktali virgül gelmedigine özellikle dikkat edin. Deger Atama ve Tip Dönüsümleri
Pascalda diger programlama dillerinden farkli olarak deger atamasi yapilirken ":=" (iki nokta üst üste ve esittir isaret ikilisi kullanilir). Yani sayi diye bir integer tipindeki degiskene 20 degerini atamak istedigimizde yapmamiz gerekenler söyle olacaktir. Örnek: Var sayi : integer; { sayi adinda integer tipinde bir degisken tanimladik } ... sayi := 20; (* sayi degiskenine 20 degerini atadik *) sayi := sayi + 1; (* sayi degiskeninin degerini 1 arttirdik *) ... Pascalda degiskenlere deger atarken iki nokta üstüstü ve esittir birlikte kullanilir. Esittir tek basina kullanildiginda karsilastirma operatörü olarak görev yapar. Pascalda, Standart Veri Tipleri sayfasinda da bahsedildigi gibi degisik tiplerde ve degisik uzunluklarda sayilar tanimlama imkanimiz var. Programimizin akisi dolayisiyla bazen degisik tip ve uzunluklardaki degiskenlerin birbirlerine deger aktarmalari gerekebilir veya degisik tiplerdeki degiskenler tek bir ifade içinde isleme konulabilir. Böyle durumlarda bu degiskenlerin tiplerinin birbirine dönüstürülmesi gerekir buna tip dönüsümü (Type Casting) denir. Pascalda bu islem için tu fonksiyonlar kullanilir. trunc(real):longint { real bir degiskeni longint tipine dönüstürür.} int(real):real {real bir degerin tam kismini alir} frac(real):real {real bir degerin ondalik kismini alir} round(real):longint {real bir degiskeni en yakin tam sayiya yuvarlayarak longint tipine dönüttürür} str(x,y) { x sayisini karakter dizisi olarak string tipindeki y degiskenine atar} val(x,y,code) {x stringini y integer degiskenine atar. Eger bu dönüsüm sirasinda bir hata olusursa code degiskeni 0 (sifir)'dan farkli bir deger alir. Code degiskenin aldigi deger hatanin stringin kaçinci elemaninda olustugunu gösterir.}
Operatörler
Pascalda programlama esnasinda en fazla ihtiyaç duyulan seyler herhalde operatörlerdir. Deger atamalarindan mantiksal karsilastirmalara ve aritmetik islemlere kadar onlar bizim en büyük yardimcilarimizdir. Isin asli onlarsiz herhengi bir dil de olamazdi. Simdi kisaca bu operatörleri inceleyelim. Aritmetik Operatörler
Operator Islemi Islem Tipleri Sonuç tipi
+ Toplama integer,real integer,real
- Çikarma integer,real integer,real
* Çarpma integer,real integer,real
/ Bölme integer,real real,real
Div Tamsayi Bölme integer,real integer,real
Mod Kalan integer integer
Mantiksal Operatörler
Operator Islem Islem Tipi Sonuç Tipi
Not Degil integer integer
And Ve integer integer
Or Veya integer integer
Xor 1 sayaci integer integer
Shl Sola kaydirma integer integer
Shr Saga kaydirma integer integer
Karsilastirma Operatörleri Bu operatörlerin sonucu daima boolean döner.
Operatör Açiklamasi
= Esit olup olmadigini kontrol eder
<> Farkli olup olmadigini kontrol eder
< Küçük mü?
> Büyük mü?
<= Küçük veya esit mi?
>= Büyük veya esit mi?
Pascal'da Operatörlerin Önceligi
Operatör Öncelik
@, Not Yüksek
*, /, div, mod, and, shl, shr Ikinci derece
+, -, or, xor Üçüncü derece
=, <>, <, >, <=, >=, in Dördüncü derece





if-then-else



if sart then komut else komut;

Bu durumda sart olarak verilen önerme dogru ise THEN kelimesinden sonra yazili olan komut veya komutlar önerme yanlis ise ELSE kelimesinden sonraki komut veya komutlar Yazilir.

(if sart then komut else komut );

ÖRNEK ; KULLANICIDAN 2 SAYI GIRMESINI ISTEYEN GIRILEN SAYININ TOPLAMI 100'DEN BÜYÜKSE ÇOK BÜYÜK DEGILSE TOPLAMINI BULAN PROGRAM.


Kod:
Uses Crt; Var a,b,t:integer; Begin Clrscr; Writeln(' Bir Sayi giriniz '); readln(a); Writeln(' Ikinci Sayiyi giriniz '); readln(b); t:=a+b; if a<100 then writeln(' Toplam ',t) ELSE writeln(' Çok büyük sayi girdiniz '); readln; End.

ÖRNEK ; KLAVYEDEN GIRILEN SAYININ 1-2-3 OLMASI DURUMUNDA SAYIYI EKRANA YAZDIR.

Kod:
Uses Crt; Var a:integer; begin clrscr; Writeln(' Bir sayi giriniz '); readln(a); if (a=1) or (a=2) or (a=3) then begin Writeln(' 1-2-3 Sayilarindan girilen sayi = ',a); end Else writeln(' 1-2-3 disinda bir sayi girdiniz '); readln; End.




ALINTIDIR:
Logged
20.10.07 - 12:10:00
ÜYE BILGILERI culebra74
Atilla
Süper Moderator
*


CINSIYET Bay
NERDEN BARTIN
KAYIT TARIHI 15.07.07 - 17:20:26
..Mesaj Sayısı..


Aktiflik

Deneyim
Seviye
IRTIBAT GÜCÜ Rep Puanı: 158

257 Mesajına Toplam
373 Kere Teşekkür Edildi

105 Mesajına Toplam
136 Kere Karma Verildi
ILETISIM
Offline Offline
---Arcade---
---Şampiyonluklarım---

Snow Paul Squid Hunter Simpsons Breakout Newtons Revenge Snake Topbanana Killkenny Invaders Flasteroids Donkeykong Airfox Dolphindash Breakit CH Flatout Plumber2CH


Uyarı Puanı:
%0
« Yanıtla #3 :»

ne demek istediğinden hiç bişi anlamadım  yardım
Logged

Resimlerin Görüntülenmesine İzin Verilmiyor

Resimleri Görebilmek İçin Lütfen Üye Olun veya Giriş Yapın Resimlerin Görüntülenmesine İzin Verilmiyor

Resimleri Görebilmek İçin Lütfen Üye Olun veya Giriş Yapın

(ιмzα αтмαуı вιℓмєм,ραямαк вαѕѕαм؟!)
20.10.07 - 12:30:32
ÜYE BILGILERI the state
Profesyonel Üye
*****


CINSIYET Bay
NERDEN
KAYIT TARIHI 25.09.07 - 15:08:05
..Mesaj Sayısı..

/*-+!MaHiR!+-*/


Aktiflik

Deneyim
Seviye
IRTIBAT GÜCÜ Rep Puanı: 74

190 Mesajına Toplam
367 Kere Teşekkür Edildi

53 Mesajına Toplam
57 Kere Karma Verildi
ILETISIM
Offline Offline
---Arcade---
---Şampiyonluklarım---



Uyarı Puanı:
%0
« Yanıtla #4 :»

bende anlamam bu pscal mıdır nedir buldum bı yerden bırılerinin işine yarar diye koydum  Grin Grin Grin
Logged
20.10.07 - 16:03:39
ÜYE BILGILERI vLKn
Administrator
*


CINSIYET Bay
NERDEN internetin olduğu her yerden
KAYIT TARIHI 27.01.07 - 10:45:26
..Mesaj Sayısı..


Aktiflik

Deneyim
Seviye
IRTIBAT GÜCÜ Rep Puanı: 220

511 Mesajına Toplam
776 Kere Teşekkür Edildi

135 Mesajına Toplam
176 Kere Karma Verildi
ILETISIM
WWW Offline Offline
---Arcade---
---Şampiyonluklarım---

MatchCH Militarywar Pacman Ponx Parasites