450 likes | 718 Views
DEĞİŞKENLER VE VERİTİPLERİ. DEĞİŞKEN NEDİR?. DEĞİŞKENLER BİR BİLGİYİ HAFIZADA TUTMAYA VE GEREKTİĞİNDE KULLANMAYA YARAR. ÖRNEĞİN BİR İSİM SORUYORSANIZ, BUNU GEREKTİĞİNDE KULLANABİLMEK İÇİN BİRD DEĞİŞKENE ALMALISINIZ. DEĞİŞKEN NEDİR?.
E N D
DEĞİŞKEN NEDİR? • DEĞİŞKENLER BİR BİLGİYİ HAFIZADA TUTMAYA VE GEREKTİĞİNDE KULLANMAYA YARAR. • ÖRNEĞİN BİR İSİM SORUYORSANIZ, BUNU GEREKTİĞİNDE KULLANABİLMEK İÇİN BİRD DEĞİŞKENE ALMALISINIZ.
DEĞİŞKEN NEDİR? • BİR DİLDE DEĞİŞKENLERİN KULLANIM VE TANIMLANMA ŞEKLİ O DİLDE PROGRAM YAPMAYI VE PROGRAMLARIN ANLAŞILIRLIĞINI ETKİLEYEN ÖNEMLİ FAKTÖRLERDEN BİRİDİR.
DEĞİŞKEN NEDİR? • DEĞİŞKENLERİN EN İYİ KULLANILDIĞI DİL C İKEN EN KÖTÜ KULLANILDIĞI DİL GWBASIC’TİR. QBASIC’TE ÖNEMLİ GELİŞMELER SAĞLANMIŞ, VISUAL BASIC’TE DEĞİŞKEN YAPISI OLDUKÇA GELİŞTİRİLMİŞTİŞTİR.
DEĞİŞKEN TANIMLAMA • DEĞİŞKENLER İÇİN ÖNEMLİ BİR DURUM, DEĞİŞKENLERİN KARIŞIKLIĞA MEYDAN VERMEMESİ İÇİN TANIMLANMASI MECBURİYETİ OLMASIDIR. • DAHA ÖNCEKİ GWBASIC VE QBASIC’TE BU MECBURİYET YOKTUR VE DEĞİŞKENLERİN BENZERLİKLERİNDEN DOLAYI KARIŞTIRM ARİSKİ VARDIR.
DEĞİŞKEN TANIMLAMA • VB’TE DEĞİŞKENLERİ KULLANMADAN ÖNCE TANIMLAMA MECBURİYETİ PROGRAMCININ SEÇİMİNE BIRAKILMIŞTIR. • PROGRAMCI İSTERSE TOOLS\OPTIONS MENÜSÜNDEKİ EDITÖR SEKMESİNDE “REQUIRE VARIABLE DECLARATION” ONAY KUTUSUNU İŞARETLEYEREK DEĞİŞKEN TANIMLAMASINI MECBURİ YAPABİLİR.
DEĞİŞKEN TANIMLAMA • DEĞİŞKEN TANIMLANMAZSA AŞAĞIDAKİ GİBİ BİRSORUN OLABİLİR • İ=5 • J=6 • aratoplam=1000 • geneltoplam= i*j+aratplam • YUKARIDAKİ ÖRNEKTE VB BİR HATA VERMEYECEK VE SONUÇ 1030 YERİNE 30 OLACAKTIR.
DİKKAT!!! • EĞER VB’DE DEĞİŞKENE BİR DEĞER ATANMAZSA DEĞİŞKENİN İÇERİĞİ “SIFIR” KABUL EDİLİR.
TANIMLAMA KURALLARI • DEĞİŞKENE VERİLECEK İSİM ANLAŞILIR OLMALI. • DEĞİŞKEN RAKAMLA DEĞİL HARF İLE BAŞLAMALIDIR. • DEĞİŞKENDE BOŞLUK BULUNMAMALI. • İKİ KELİMEDEN OLUŞAN DEĞİŞKENLER ALTÇİZGİ “_” İLE YAPILABİLİR. • DEĞİŞKENE VERİLECEK İSİM VB KOMUTLARINDAN OLMAMALI. • EN FAZLA 255 KARAKTER OLMALIDIR.
VERİ TİPLERİ • VB’DE DEĞİŞKEN TİPLERİ “DIM” DEYİMİ İLE TANIMLANIR. • Dim deg_ismi [(diziboyutu)] as tipi • deg_ismi: değişkenin adı • diziboyutu: Dim a(15) tanımıyla 16 elemanlı bir dizi tanımlanır. • tipi: değişken tipi
DEĞİŞKEN TİPLERİ • VB’DE İSTENİRSE TİP TANIMI VERİLMEYEBİLİR. SADECE Dim x ŞEKLİNDE BİR TANIM İLE X DEĞİŞKENİ TANIMLANABİLİR. BU TÜR DEĞİŞKENLERE “VARIANT” DENİR. • ANCAK HIZ AÇASINDAN VARIANT DEĞİŞKENLER İYİ BİR SEÇİM DEĞİLDİR.
BYTE • 1 BYTE’LIK İŞARETSİZ TAMSAYI TİPİDİR. • O-255 ARASINDA DEĞER ALABİLİR.
INTEGER • 2 BYTE’LIK İŞARETLİ TAMSAYI TİPİDİR. • -32.768 İLE 32.767 ARASINDA BİR DEĞER ALABİLİR.
LONG • 4 BYTE’LIK İŞARETLİ TAMSAYI TİPİDİR. • -2.147.483.648 İLE 2.147.483.647 ARASINDA BİR DEĞER ALABİLİR.
DİKKAT !!!! • BYTE, INTEGER VE LONG TİPİNDEKİ DEĞİŞKENLERE ONDALIK SAYI ATANIRSA, SAYI EN YAKIN TAMSAYIYA YUVARLANIR. • Dim i as integer • i=4.3 ‘ i=4 olarak atanır • i=4.5 ‘ i=5 olarak atanır • i=4.6 ‘ i=5 olarak atanır.
SINGLE • 4 BYTE’LIK ONDALIK SAYI TİPİDİR. • (+/-)3.402823E38 İLE (+/-)1.401298E-45 ARASINDA DEĞER ALABİLİR.
DOUBLE • 8 BYTE’LIK ONDALIK SAYI TİPİDİR. • (+/-)1.79769313486232E308 İLE (+/-)4.94065645841247E-324 ARASINDA DEĞER ALABİLİR.
CURRENCY • 8 BYTE’LIK ONDALIK SAYI TİPİDİR. • ANCAK SAYININ ONDALIK KISMI 4 BASAMAKTAN FAZLA OLAMAZ. • BU TİP, DAHA ÇOK PARA HESAPLARI VE VİRGÜLDEN SONRAKİ HASSASİYETİ ÖNEMSİZ OLAN İŞLEMLER İÇİN KULLANILIR.
CURRENCY • 922337203685477.5808 İLE 922337203685477.5808 ARASINDA DEĞER ALABİLİR. • Dim i as currency • i=4.30571 ‘i=4.3057 • i=4.30575 ‘i=4.3058 • OLARAK ATANIR.
DECIMAL • 14 BYTE’LIK VERİ TİPİDİR. • BU TİPİN EN ÖNEMLİ ÖZELLİĞİ,SAYIDAKİ BÜTÜN BASAMAKLARIN TURULMASIDIR. • 29 BASAMAKLI BİRSAYIYI BÜTÜN DİJİTLERİNİ KORUYARAK TUTABİLİR.
DECIMAL • SAYILARIN HASSASİYETİ KAYBOLMAMASI İÇİN,SAYI Cdec FONKSiYONU İLE DECIMAL TIPE ÇEVRİLDİKTEN SONRA ATANIR. • dim x,y • show • x=79228162514264337593543950335 • print x’sonuç:7.92281625142643e28 • y=Cdec (“79228162514264337593543950335”) • print y’sonuç: 79228162514264337593543950335
BOOLEAN • 2 BYTE’LIK BİR VERİ TİPİ OLMASINA RAĞMEN SADECE “TRUE (DOĞRU)” YA DA “FALSE(YANLIŞ)” DEĞERLERİ ALABİLİR. • BU TİPTEN TANIMLANAN DEĞİŞKENLERE DIREK TRUE VEYA FALSE ATANABİLECEĞİBİGİ SAYISAL DEĞER DE ATANABİLİR. • ATANAN SAYI 0 İSE FALSE, DEĞİLSE TRUE KABUL EDİLİR.
ÖRNEK • dim evli as boolean • evli=true • evli=1 • evli=127 • ya da • dim bekar as boolean • bekar=false • bekar=0
ÖRNEK • dim i as boolean, j as integer • j=10 • i=true • print j*i ’sonuç:-10 • i=false • print j*i ‘sonuç:0
STRING • KARAKTER SINIRI VERİLMEZSE 2 MİLYAR KARAKTERE KADAR ATAMA YAPILABİLEN ALFASAYISALBİR VERİ TİPİDİR. 100 BYTE YER KAPLAR. • KARAKTER SAYISINI SINIRLAMAK İSTERSEK • dim degisken as string*sınır • ŞEKLİNDE KULLANILIR.
ÖRNEK • dim a as string • dim b as string*3 • a=“abcdef....” ‘atama aynen yapılır. • b=“abcde” ‘ yalnız ilk üç karakter atanır. yani b=“abc” • b=“a” ‘ gene 3 karakter atanır ancak son ikisiboşluk olur. yani b=“a “
VARIANT • VB’DE DEĞİŞKEN TANIMLARKEN TİP İSMİ VERİLMEMİŞSE BU TİPVARIANT OLARAK ELE ALINIR. • DEĞİŞKENİN TİPİ ATANACAK DEĞERE GÖRE DEĞİŞİR. YANİ VARIANT TİPLER DAHA ÖNCE ANLATILAN TİPLERDEN HERHANGİ BİRİ GİBİ İŞLEM GÖREBİLİR VE PROGRAMIN ÇALIŞMASI ESNASINDA TİPİ DEĞİŞEBİLİR.
ÖRNEK • a=5’ şu anda integer • a=a+450234 ‘ işlem integersınırlarını aştığı işin a şu anda long. • a=5.7 ‘ sayı ondalıklı olduğu için a şu anda single • a=“abc” ‘ a şu anda string oldu
DATE • 8 BYTE KAPLAYAN BU DEĞİŞKENE 1/1/100 İLE 31/12/9999 ARASINDAKİ TARİH VE 0:00:00 İLE 23:59:59 ARASINDAKİ SAAT ATAMALARI YAPILIR. • BU TİPTEKİ DEĞİŞKENLERE ATAMA BİR STRING GİBİ YAPILABİLİR. • dim i as date • i=“17/11/1973” • print i & “tarihinden bu güne kadar” & date-i& “gün geçti.”
GLOBAL VE LOCAL DEĞİŞKENLER • DEĞİŞKENLER GENELDE İKİYE AYRILIRLAR: GLOBAL (GENEL) VE LOCAL(YEREL) DEĞİŞKENLER. • GLOBAL DEĞİŞKENLER PROGRAMIN BÜTÜN FONKSİYONLARI TARAFINDAN KULLANILABİLİRKEN, LOCAL DEĞİŞKENLER SADECE TANIMLANDIKLARI FONKSİYONDA KULLANILIRLAR.
GLOBAL DEĞİŞKENLER • GLOBAL DEĞİŞKENLERİN BÜTÜN FONKSİYONLARDA KULLANILMASI İLK BAŞTA AVANTAJ GİBİ GÖRÜLMESİNE RAĞMEN, PROGRAMIN GELİŞTİRİLMESİ VE TAKİP EDİLMESİNİ ÖNEMLİ ÖLÇÜDE ZORLAŞTIRDIKLARINDAN DOLAYI ÇOK BÜYÜK DEZAVANTAJLARI VARDIR.
GLOBAL DEĞİŞKENLER • DIM DEYİMİYLE YAPILAN TANIMLANDIĞI YERE GÖRE GLOBAL VE LOCAL OLURLAR. • EĞER DEĞİŞKEN “GENERAL DECLARATIONS” KISMINDA TANIMLANMIŞSA BULUNDUĞU MODÜL/FORM İÇERİSİNDE GLOBAL’DİR.
GLOBAL DEĞİŞKENLER • GLOBAL DEĞİŞKENLERE VB’DE “MODULE LEVEL” DENİR VE İLGİLİ MODÜLDEKİ/FORMDAKİ BÜTÜN PROSEDÜRLER BU DEĞİŞKENİ KULLANABİLİR FAKAT DİĞER MODÜLLER/FORMLAR KULLANAMAZ.
GLOBAL DEĞİŞKENLER • EĞER BİR DEĞİŞKEN HERHANGİ BİR FORMUN “GENERAL DECLARATION” KISMINDA “PUBLIC” DEYİMİ İLE TANIMLANMIŞSA DİĞER MODÜLLER/FORMLAR SA BU DEĞİŞKENİ KULLANABİLİR. ANCAK DEĞİŞKENİN İSMİNDEN ÖNCE MODÜLÜN/FORMUN İSMİNİN VERİLMESİ GEREKİR. • form1.x’ burada form1’deki x değişkeni kullanılır.
STATİK DEĞİŞKENLER • LOCAL OLARAK TANIMLANAN DEĞİŞKENLER TANIMLANDIĞI ALT PROGRAM VEYA FONKSİYON ÇALIŞMASI BİTTİKTEN SONRA BELLEKTEN ATILIR. • İLGİLİ PROSEDÜR İKİNCİ KEZ ÇALIŞTIĞINDA LOCAL DEĞİŞKENLER ESKİ DEĞERLERİNDEN DEĞİL BAŞTAN (STRING İSE ““, SAYI İSE 0’DAN) BAŞLAR.
ÖRNEK • BİR KOMUT DÜĞMESİNİN KAÇ DEFA ÇALUIŞTIĞINI BULMAK İÇİN AŞAĞIDAKİ KODU YAZARSANIZ HER SEFERİNDE KOMUT DÜĞMESİ İLK DEFA ÇALIŞIYORMUŞ GİBİ DEĞİŞKENİN DEĞERİ 1 OLACAKTIR. • Private Sub Command1_Click() • dim x • x=x+1 • msgbox (“bu komut düğmesi” &x& “defa tıklandı”) • End Sub
STATİK DEĞİŞKENLER • LOCAL OLARAK TANIMLANAN BİR DEĞİŞKENİN DEĞERİNİN TANIMLANDIĞI ALT PROGRAM VEYA FONKSİYONUN ÇALIŞMASI BİTTİKTEN SONRA DA DEĞERİNİN KORUNMASI İSTENİYORSA “DIM” YERİNE “STATIC” DEYİMİ KULLANILIR. • STATIC DEYİMİ BİR ALT PROGRAM VEYA FONKSİYON ALTINDA TANIMLANABİLİR.
STATİK DEĞİŞKENLER • statik deg_ismi [(disiboyutu)] as tipi • DAHA ÖNCEKİBUTON SAYACI ŞÖYLE DEĞİŞTİRİLMELİDİR • static x • x=x+1 • msgbox (“bu komut düğmesi” &x& “defa tıklandı”)
STATİK DEĞİŞKENLER • EĞER STATİK DEĞİŞKENLERİ BAŞKA PROSEDÜRLER DE KULLANACAKSA İLGİLİ DEĞİŞKEN GLOBAL OLARAK TANIMLANIR.
SABİT TANIMLAMA • PROGRAMDA DEĞERİNİN DEĞİŞMESİ İSTENMEYEN DEĞERLER SABİT OLARAK TANIMLANABİLİR. • const sabitismi=değer • const pi=3.1415 • YUKARIDAKİ SABİT TANIMLANDIĞI YERE GÖRE LOCAL VEYA GLOBAL OLABİLİR.
DİZİLER • DİZİLER BİRBİRLERİYLE İLGİLİ NESNE GRUBUNU İÇEREN DEĞİŞKENLERDİR. • DİZİNİN KAÇ ELEMANDAN OLUŞTUĞU, DEĞİŞKEN İSMİNDEN SONRA PARANTEZ İÇİNE YAZILIR. • dim a(15) ‘ 16 elemanlı bir dizi • ‘yani a(0), a(1),a(2),...,a(15) şeklinde elemanları vardır.
DİZİLER • BİR DİZİNİN İLK ELEMANI a(0) OLMAK ZORUNDA DEĞİLDİR. • dim a(3 to7) ‘ile ilk elemanı a(3) ve son elemanı a(7) olan bir eleman tanımlanabilir. • HERHANGİ BİR FONKSİYON VEYA ALT PROGRAMDA DİZİ TANIMI “DIM” DEYİMİ İLE YAPILAMAZ, SADECE GENERAL-DECLARATIONS KISMINDA VEYA MODÜL İÇİNDE TANIMLANABİLİR.
DİKKAT!!! • EĞER BİR FONKSİYON VEYA ALT PROGRAM İÇİNDE DİZİ TANIMLANACAKSA “REDIM” VEYA “STATIC” DEYİMLERİYLE TANIMLANMALIDIR.
DİZİLERE İLK DEĞER ATAMA • dim diziadı [as variant} • dizi=array(elemanlar)
ÖRNEK • dim gün ‘dikkat! tanımlanan değişken varianttır!!! • gün=array(“pazar”, “pazartesi”, ”salı”, ”çarşamba”, ”perşembe”, ”cuma”, “cumartesi”) • print “dizinin ilk elemanı:” &gün(0)