Prosedürler Prosedürler bir yemek
-tarifi kitabının sayfaları gibidir
. Her sayfa bir yemeğin tarifini yapar
. Mesela 17ci sayfadaki yemek tarifine bakalım
. Adım adım yemeğin nasıl hazırlanacağı hakkında bilgi verir
. Bir prosedürde aynen böyle belli bir işi halletmek için tüm gereken adımları tek komut altında toplar
. Bu belli işi yapmak için her zaman o işi gören prosedürü çalıştırmak yeterlidir
. Basitte tüm kodlamalar prosedürler ile yapılır
. Prosedürlerin kapsama alanları
"lokal birim" olarak belirlenir
. Prosedürlerin özellikleri
:
- Parametre girilebilir
- Parametrelere standart değer verilebilir
- Bir sonuç geri verebilir
- Yükleme yapabilir
Prosedür Tanımı
En basit tanımlama yöntemi
:
Prosedür ADI ()
...
ProsedürSon
Sonuç geri vermeli
:
Prosedür ADI () Rakamdır
...
ProsedürSon
Parametreli
:
Prosedür ADI ( Rakam rak1; rak2; Metin met )
...
ProsedürSon
Standart değerli parametreli
:
Prosedür ADI ( Rakam rak1; rak2 = 5; Metin met1 = "A"; met2; Bayt c = 0 )
...
ProsedürSon
Parametreli ve sonuç geri vermeli
:
Prosedür ADI ( Rakam rak1; rak2; Metin met ) Dizilimsel Virgüldür
...
ProsedürSon
Prosedürü kodlamak yeterli değil
. İşlem yapması için, onu işlem yapacağı kod bölümünde çalıştırmak gerekir
. Prosedürleri hemen tanırsın
. Yapı her zaman aynıdır
. Prosedürün adı gelir ve hemen ardına
() çifti gelir
. Eğer parametreleri yoksa parantez açılır ve kapanır
. Eğer parametreleri varsa, o halde parantez için parametreler girilir
. Birden fazla parametreyi ayırt etmek için Semikolon işareti kullanılır
:
Prosedür deBirŞey( Metin neDiyim; başkaNeDiyim )
MetinselDenetim neDiyim && başkaNeDiyim
ProsedürSon
Prosedür Başlat ()
deBirŞey( "Merhaba"; "Dünya" )
ProsedürSon
Prosedürün parametre yapısı aynı değişken ve dizilim tanımlama gibidir
. Örnek
: Prosedür ADI
( Rakam a
; b
; Virgül c
; d
; Metin e
; f
) ... Prosedür işlem yaptıktan sonra geriye bir sonuç verebilir
. Eğer bir sonuç geriye verilecekse, bunu belirtmek lazım
. Örnek
:
Prosedür deBirŞey() Metindir
Sonuç "Merhaba Dünya"
ProsedürSon
Prosedür Başlat ()
MetinselDenetim deBirŞey()
ProsedürSon
Sonuç verme türleri normal, dizilimsel, işaretli, dizilimsel işaretli veya işaret olabilir
:
Veri Türü |
Bit Adeti |
Kapasitesi |
Amacı |
YarıBayttır |
8 |
-128 + 127 |
En düşük sayısal değerleri karşılamak içindir |
Bayttır |
8 |
0 - 255 |
En düşük, fakat pozitif olan sayısal değerleri karşılamak içindir |
Asciidir |
8 |
0 - 255 |
Ascii Tablosunun karakterlerini desteklemek içindir (Özellikle C fonksiyonlarıyla veri alışverişinde bulunurken gereklidir) |
ÇiftBayttır |
16 |
0 - 65535 |
Geniş bir banda sahip olup, sadece pozitif sayısal değerleri karşılamak içindir |
SafKüçükRakamdır |
16 |
0 - 65535 |
Geniş bir banda sahip olup, sadece pozitif sayısal değerleri karşılamak içindir |
KüçükRakamdır |
16 |
-32768 - +32767 |
Geniş bir banda sahip olup, hem pozitif, hemde negatif sayısal değerleri karşılamak içindir |
Renktir |
32 |
-2147483648 +2147483647 |
KYM (RGB) ve KYMŞ (RGBA) renklerini karşılamak içindir |
Saattir |
32 |
-2147483648 +2147483647 |
Saat, Dakika ve Saniyeyi karşılamak içindir |
Rakamdır |
32 |
-2147483648 +2147483647 |
Standart sayısal değerleri karşılamak içindir |
SafRakamdır |
32 |
0 - 4294967295 |
Standart geniş bir banda sahip olup, sadece pozitif sayısal değerleri karşılamak içindir |
EsnekRakamdır (32Bit) |
32 |
-2147483648 bis +2147483647 |
32 Bit derlemede Rakam ile aynıdır |
SafEsnekRakamdır (32Bit) |
32 |
0 - 4294967295 |
32 Bit derlemede SafRakam ile aynıdır |
EsnekRakamdır (64Bit) |
64 |
-2147483648 bis +2147483647 |
64 Bit derlemede GenişRakam ile aynıdır |
SafEsnekRakamdır (64Bit) |
64 |
0 - 4294967295 |
64 Bit derlemede SafGenişRakam ile aynıdır |
GenişRakamdır |
64 |
−9223372036854775808 - +9223372036854775807 |
Çok geniş bir banda sahip olup, hem pozitif, hemde negatif sayısal değerleri karşılamak içindir |
SafGenişRakamdır |
64 |
0 - 18446744073709551615 |
Çok geniş bir banda sahip olup, sadece pozitif sayısal değerleri karşılamak içindir |
KüçükVirgüldür |
32 |
-1175494e-38 - +3402823e+38 |
Normal boyuttaki virgüllü rakamlar içindir |
Virgüldür |
64 |
-22250738585072013e-308 - +17976931348623157e+308 |
Büyük virgüllü rakamlar içindir |
İzdir |
32 |
0 - 4294967295 |
Türü belirsiz, işaretli adresleme içindir |
Tarihtir (32Bit) |
32 |
-2147483648 bis +2147483647 |
Sadece Tarih bilgisini içermek içindir |
Tarihtir (64Bit) |
64 |
−9223372036854775808 - +9223372036854775807 |
Sadece Tarih bilgisini içermek içindir |
TarihSaattir (32Bit) |
32 |
-2147483648 bis +2147483647 |
Tarih ve Saat bilgisini içermek içindir |
TarihSaattir (64Bit) |
64 |
−9223372036854775808 - +9223372036854775807 |
Tarih ve Saat bilgisini içermek içindir |
AsciiMetnidir |
* |
Karakter başına Bayt |
Bu tür C kütüphaneleri ile veri alışverişi için özel olarak sunulur. Basit standart olarak Metin türünü kullanır ve tüm karakterleri Unikod modelinde Metin türünde tutar |
Metindir |
* |
Karakter başına ÇiftBayt |
Basitin sunduğu standart karakter türüdür. Tüm metinsel veriler bu türle tutulur |
Esnektir (32 Bit) |
32 |
0 - 4294967295 |
Esnek özel bir türdür. Tüm diğer türleri destekler. Bazen gerekli olduğu için sunulmaktadır. Fakat standart olarak asla kullanılmamalıdır. Sadece gerçekten gerektiği yerde kullanılması doğrudur. |
Esnektir (64 Bit) |
64 |
0 - 18446744073709551615 |
Veri Türü "Esnek" özel bir türdür. Bu türün özelliği ise, diğer türlerin hepsinden olabilir. Esnek ihtiyaç durumunda yeniden yapılandırılır. Esnek türünün kullanılmasının gerekli olduğu durumlar mutlaka vardır. Ama önerilen o ki, mümkün oldukça bu türden az kullanılmasıdır. Çünkü "Esnek" normalden çok daha fazla hesaplama ve işlem adımları gerektiriyor. Bu durum programın yavaşlamasına ve ağır çalışmasına sebebiyet verebilir. Tabloya bakıldığında kapasite açısından aynı kapasiteye sahip türler ile karşılaşıyoruz. Kapasiteleri aynı olsa bile kullanım durumlarında farklılıkları ortaya çıkmaktadır. |
Yapıdır |
32 |
0 - 4294967295 |
Yapısal adres geri verir |
Objedir |
32 |
0 - 4294967295 |
Objesel/Bileşensel adres geri verir |
Bileşendir |
32 |
0 - 4294967295 |
Objesel/Bileşensel adres geri verir |
Örnekler
:
Prosedür X ( ... ) Rakamdır ? Normal bir sayısal değer verir
Prosedür X ( ... ) Dizilimel Rakamdır ? Komple bir dizilimi geri verir
Prosedür X ( ... ) İşaretli Rakamdır ? Global birimden bir değişkene işaret verebilir
Prosedür X ( ... ) İşaretli Dizilimsel Rakamdır ? Global birimden bir dizilime işaret verebilir
Prosedür X ( ... ) İşarettir ? Bellek alanında bir adrese işaret verebilir
Prosedür X ( ... ) Yapıdır ? Bir yapı geri verebilir
Prosedür X ( ... ) Objedir ? Bir obje geri verebilir
Erişebilirlik
Prosedürlerin tanımlama sırası önemli değildir. Basit derleme esnasında gereken tüm önemlemleri otomatik olarak alır. Aynı geçerlilik alanında bulunan tüm prosedürler birbirleri tarafından çalıştırılabilir. Tek istisna Başlat-Prosedürüdür.
Yükleme
Aynı isime sahip, fakat parametre adetleri farklı olan prosedürler kodlanabilir
. Bu prosedürler birlikte bir yüklemedirler
(Overloaded Functions
). Derleyici parametre adetlerinden hangi prosedürün çalıştırılmak istendiğini tespit eder
. Örnek
:
Değişken Metin mesajnotu
Prosedür not ( Metin mesajım )
mesajnotu = mesajım
ProsedürSon
Prosedür not () Metindir
Sonuç mesajnotu
ProsedürSon
Prosedür Başlat ()
not( "Merhaba Dünya" )
Denetim not()
ProsedürSon