top of page

BİLGİSAYAR BİLİMİ KUR 1 - 1. DÖNEM 12. HAFTA


ÜNİTE:


1.2. PROBLEM ÇÖZME VE ALGORİTMALAR


KAZANIMLAR:


1.2.4.3. Belirli bir problemin çözümü için kullanılan mantıksal yapılarını ayırt eder.


1.2.4.4. Bağlaşım (coupling) ve yapışkanlık (cohesion) kavramlarını açıklar.


1.2.4.5. Problemlerin çözümünde yerel ve global değişkenleri kullanır.




5.1.4. Yerel ve Global Değişkenler


Yerel ve global değişken kavramı tüm programlama dilleri için çok önemli kavramlardır. Programcı- lar, yerel ve global değişkenleri bağlılık ve yapışkanlık oluşturmak amacıyla kullanırlar. Bir modül içinde tanımlanmış değişkenler “yerel”; modüller dışında program genelinde kullanılmak üzere tanımlanmış değişkenler ise “global” değişkenler olarak adlandırılır. Aralarındaki en önemli fark, kapsamlarıdır. Bu kapsam, değişkenin ne zaman nerede kullanılabileceğini belirler.


Yerel değişkenler, yalnızca tanımlandıkları modül içerisinde kullanılabilir. Diğer modüllerin bu de- ğişkenlere ilişkin hiçbir bilgisi bulunmaz. Böylece değişken isimlerinin çakışması gibi sorunlar yaşanmaz. Bu nedenle yerel bir değişkenin diğer modüller tarafından kullanılması gerekirse bu değişkenin parametre ya da dönen değerler ile eşleştirilmesi gerekir.


Global olarak tanımlanan değişkenler ise bütün modüller tarafından tanınır. Program çalıştığı sürece hafızada tutulan ve işlem yapılabilen değişkenlerdir. Program akışında bağlılık oluşturmak için gereklidir. Programın çalışma sürecinde değişkenler için kullanılan bir hiyerarşi vardır. Buna göre önce yerel değişken, sonra parametre ve daha sonra da global değişken kullanılır. Bu yüzden programcılar aynı değişkeni hem yerel hem de global olarak tanımlarsa sorun yaşanır.


Global değişkenler modüller arasında veri geçişini sağladığı için bu tür durumlarda parametre ve dönen değerlerin kullanılmasına gerek olmaz. Aşağıda yerel ve global değişkenlere ilişkin bir örnek görülmektedir.




5.1.5. Parametreler


Programlama sürecinde anlaşılması zor ama çok önemli konulardan biri parametrelerdir. Parametrelerin kullanımı benzer değişken isimlerinin çakışmasını önleyerek sürecin daha hızlı ilerlemesini sağ- lar. Modüller ayrı ayrı çalışır ve veriler parametreler aracılığı ile iletilir. “Parametreler” bir modülden diğerine geçen yerel değişkenlerdir. Modüller arasındaki iletişimi sağlar. Modül adından sonra ayraç içerisinde belirtilerek kullanılırlar: Oku (a, b, c) gibi. Eylemsel parametreler listesi, kontrol modülü tarafından çağırılan parametrelerin listesidir. Biçimsel parametre listesi ise ilgili modülü takip eden parametre listesidir.




Parametreleri kullanarak bir modülden diğerine veri göndermenin iki yolu vardır: Parametreleri değeri ya da adresi ile çağırabiliriz. Önünde “*” simgesi olmayan parametreler, değeri ile çağrılan parametrelerdir. Parametre değeri ile ilgili modüle iletildiğinde, o modül o değerle ilk kez karşılaştığı için hafızada yeni bir yer oluşturur. Bu durumda ilgili değer değiştiğinde programın geneli etkilenmez; yalnızca modül aktif olduğu sürece geçerli olur çünkü çağırılan modülde bu değer için hafızada ayrılmış farklı bir yer vardır. Böylece değeri ile çağırılan değişken için hafızada iki farklı yer ayrılmıştır ve bunlar, farklı modüller tarafından değiştirilebilir.


Parametre, değeri ile değil, adresi ile çağrıldığında, ilgili modüle değer yerine hafızadaki yer bilgisi gönderilir. Çağırılan modül, hafızada ilgili yerdeki değer ile işlem yapar. Bir değişiklik olduğunda hem çağıran modül hem de çalışan modül bu değişikliği fark eder yani değişiklik program genelinde etkili olur. Adresi ile çağırılan parametrede hafızada aynı yer paylaşılırken, değeri ile çağırıldığında hafızada aynı değişken iki farklı yer ayrılır. Parametreler modüller arasında yapışkanlık yaratmak için en iyi yöntemdir.



5.1.6. Dönen Değerler


Modüller arasında yapışkanlık yaratmanın üç yolu vardır.


1. Yerel değişkenler


2. Parametreler


3. Dönen değerler 


Bir fonksiyonu çağırıp belirli işlemleri gerçekleştirdiğimiz zaman fonksiyon bize bir ya da daha fazla işlem sonucunu döndürür. Dönen değer, fonksiyon sonucudur. Bu işlem, fonksiyonu adı ile çağırarak gerçekleşir. İşlem sonucundaki değer, geçici olarak ilgili değişkene atanır. Fonksiyon, çalışmasını bitirdiğinde artık o isme atanmış bir değer bulunmaz çünkü bu değer, çağıran modüle geri dönmüştür. Aşağıdaki şekilde bu akış görülmektedir.







Düşünelim/Deneyelim 


Klavyeden girilen iki sayının toplamını alan algoritmayı geriye değer döndü-


ren parametreli fonksiyon kullanarak çözünüz.



• Ekrandan girilen iki sayının önce pozitif ya da negatif olduğunu; sonra en kü-


çük ortak bölenini bulan algoritmayı yazınız. Bu iki işlem için ayrı fonksiyonlar kullanın. Sayı değerlerini global; diğer sonuçları yerel olarak tanımlayınız.


Çıktıları öncelikle fonksiyonların içinde yazdırıp sonra çıktıları ana programda yazdıracak biçimde düzenleyiniz.



• Girilen bir sayıya ilişkin olarak aşağıdaki özellikleri verilen programı yazınız.


a) Sayı kaç basamaktan oluşmaktadır?


b) Sayı 3’ün ve 10’un katlarına bölünebiliyor mu?


c) Sayı asal sayı mı?


Bu problemleri önce parametre kullanmadan sonra da parametre kullanarak çözünüz.



• Bir dikdörtgen prizmanın;


a) Yüzey alanını,


b) Hacmini bulunuz.



• Klavyeden üç sayı giriliyor.


a) Bu sayılarla bir üçgen çizilip çizilemeyeceğini,


b) Çiziliyorsa türünü (eşkenar, ikizkenar, çeşitkenar),


c) Üçgenin çevresini,


ç) Üçgenin alanını hesaplayan algoritmayı yazınız. 



























































































תגובות


bottom of page