Commodore sayı 20, sayfa 59

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 59

Döngülerde olduğu gibi recursive uygulama da kendiliğinden duramaz, bu yüzden programa ne zaman durması gerektiğini bildiren bir komut eklememiz gerekir. Recursive bir alt program inceleyelim:

PROCEDURE TERS(N: GER); VAR VERİ:CHAR; BEGİN İF 1 THEN BEGİN READ(VERİ); WRITE(VERİ); END ELSE BEGIN ERS(N-İ); END END;

IİNTE-

TERS, alt programımız N değişkeninin değeri kadar harften oluşan bir kelimeyi tersten yazacak. Eğer bilgisayar

TERS(5);

şeklinde bir komutla karşılaşırsa girilen beş harf tersten yazılacak. Alt programımızda yeralan,

IF N-1 THEN

komutu recursive uygulamanın durma şartını sağlamak amacı ile kullanıldı. Eğer durdurma şartı yanlışsa (N değişkeninin değeri 1'den büyükse) recursive adım uygulanacak. READ komutu ile yeni karakteri okuyup, N-1 değeri ile aynı alt programı tekrar çağıracağız. Okunmuş olan karakter ise WRITE komutu işlenemediğinden daha sonra yazılır. Şimdi bilgisayarın N-3 değeri ile bu alt programı çalıştırmaya başladığında nasıl bir yol izlediğini görelim:

N-3 değeri ile TERS alt programı çağır. VERİ değişkenine ilk karakteri oku. N-2 değeri ile TERS alt programını çağır. İkinci karakteri VERİ değişkenine oku,

N-1 değeri ile TERS alt programını çağır. Üçüncü karakteri VERİ değişkenine oku. Üçüncü karakteri ekrana yaz. Üçüncü çağırıştan geri dön. İkinci karakteri ekrana yaz. İkinci çağırıştan geri dön. İlk karakteri ekrana yaz. İlk çağırıştan geri dön.

Yukarıda gördüğümüz gibi,

TERS(3)

verdiğimizde TERS alt programı her seferinde değişik değerlerle olmak üzere üç kere çağırılıyor.

Kalıcı olmasını istediğimiz bir değer varsa GENEL değişken kullanmamız gerekir.

Alt programdan dönüş alt programın çağırılma sırasının tersi yönde gerçekleşir, yani son çağırıştan ilk olarak döneriz.

BASİT VERİ TİPLERİ

Bilgisayar programlamasını iki başlık altında toplayabiliriz: (1) İşlenecek verilerin düzenlenmesi (2) İşlemlerin gerçekleştirilmesi Şimdiye kadar işlemlerin gerçekleştirilmesini sağlayacak komutlar üzerinde durduk. Yazımızın bu bölümünde ise işlenecek verilerin düzenlenmesi üzerinde duracağız. Pascal'da veriler, veri tipleri sayesinde düzenlenir. Şimdiye kadar programlarımızda veri tipi olarak REAL, CHAR ve BOOLEAN veri tiplerini kullandık. Veri tiplerini, BASİT, YAPISAL ve BELİRTEÇ tipler şeklinde üç sınıfa ayırabiliriz. BASİT veri tipindeki bir değişkene sadece bir tek değer verilebilir. YAPISAL veri tipindeki değişkenin taşıdığı değer daha ufak parçalara ayrılabilir. BELİRTEÇ veri tipini bilgisayarın hafızasında yeralan verilerin yerinin belirtilmesinde kullanırız. Yazımızın bu kısmında sadece BASİT veri tipine değineceğiz.

ORDİNAL VERİ TİPLERİ

İlk olarak ordinal kelimesinin ne ifade ettiğini açıklamaya çalışalım. Kelimemiz, arkasından gelen, birbirini izleyen anlamına geliyor. Buna bir örnek verelim:

1234... A BC-D TRUE FALSE

BASİT veri tipi ordinal veri tipi ile REAL veri tipi olmak üzere ikiye ayrılıyor. CHAR ve BOOLEAN ordinal veri tipine giriyor.

Veri Tipi Tanımlanması

PASCAL, programcılara kendi bünyesinde bulunan veri tiplerinin dışında veri tipleri tanımlanmasına izin verir. Buna örnek vermek için ilk olarak bildiğimiz veri tiplerine farklı isimler verelim. Daha sonraki PASCAL'da bulunan veri tiplerinden başka veri tipi tanımlamayı göreceğiz.

TYPE TAMSAYI - İNTEGER; ONDALIK - REAL; KARAR BOOLEAN; HARF - CHAR;

Artık kendi veri tiplerimize sahip olduğumuza göre bunları kullanarak değişkenler tanımlayalım:

VAR TAMSAYI; X,Y,Z : KARAR; A : HARF;

Bilgisayar bu tanımlamaları işlediğinde I,J,K değişkenleri INTEGER veri tipindeki değerlere, X,Y,Z değişkenleri REAL veri tipindeki değerlere, P,Q,R değişkenleri BOOLEAN veri tipindeki değerlere, A değişkeni CHAR veri tipindeki değere sahip olacaklar. Yeni bir veri tipi tanımlamak için TYPE komutundan sonra yeni veri tipinin ismini yazıyor araya eşit koyup, yeni veri tipini tanımlıyoruz.

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