ForumAlem
Would you like to react to this message? Create an account in a few clicks or log in to continue.
forum kurmak | ©phpBB | Bedava yardımlaşma forumu | Suistimalı göstermek | Cookies | Son tartışmalar
ForumAlem

ForumAlem
 
AnasayfaAnasayfa  Latest imagesLatest images  AramaArama  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

 

 PASCAL DERSLER3

Aşağa gitmek 
YazarMesaj
ToPrAk
Admin
Admin
ToPrAk


Mesaj Sayısı : 457
Kayıt tarihi : 05/08/08
Yaş : 35
Nerden : KONYA

PASCAL DERSLER3 Empty
MesajKonu: PASCAL DERSLER3   PASCAL DERSLER3 Icon_minitimeCuma Ağus. 08, 2008 5:53 pm

String Degisken tip:
Programci diliyle bu tip degiskenler alfasayisal degerler alabilir. Halk dilinde ise bunlara yazi ya da sayisal olmayan veri diyebiliriz. Yani sizin yasiniz sayisal bir deger ise isminiz alfasayisal bir degerdir. Alfasayisal ifadeler iki tirnak içerisinde gösterilir. Yani isminizi 'Halil Ibrahim Kalkan' seklinde gösterirsiniz. Ancak sayi degil dekik diye içerisinde sayi geçmeyecek diye birsey yoktur. Yeni 'Beim yasim 17.' cümlesi ve '392' sayisi da tirnak içerisinde yazildigindan string tiplerdir ve matematiksel islemlerde kullanilamazlar. Ya da mesela telefon numaraniz bir sayi oldugu halde bunu tutmak için sayisal degisken kullanilmaz, onun yerine string degisken kullanilir. Çünkü telefon numaranizin üstünde çikartma, kök alma gibi matematiksel islem yapmayacaksiniz. Ama tabii ki bu size kalmis. Isterseniz telefon numarasi için longint degisken tanimlayabilirsiniz.
String degiskenlerin içerisinde maksimum 255 karekterlik bilgi bulunabilir. Bu karekter her türlü harf, sayi, isaret, bosluk... olabilir. Mesela 'a=2x5+3/62' diye bir string ifade yazilabilir. Anlayacaginiz tirnak içerisinde ne varsa sabittir. Örnek bir program yazalim:
Program String_tip_ornegi;
Uses crt;
Var
isim: string;
yas: byte;
begin clrscr;
write('Adinizi yaziniz: ');readln(isim);
write('Yasinizi yaziniz: ');readln(yas);
clrscr;
writeln('Merhaba ',isim);
writeln('Sizin yasiniz ',yas);
readln;
end.
Bu programi pascal'da yazip çalistirirsaniz sizin isminizi ve yasinizi alip ekrana geri yazar. Simdi dikkat ettiyseniz 'Adinizi yaziniz: ' ifadesi de aslinda string ifadedir. Bu ifade degisken degil, sabit oldugundan iki apostrof isareti arasina yazilir. Peki bu ifadeleri de bir degiskenin degeri yapalim ve öyle yazdiralim:
Program String_tip_ornegi;
Uses crt;
Var
isim, ad_iste, yas_iste, yas_yaz, ad_yaz: string;
yas: byte;
begin clrscr;
ad_iste:='Adinizi yaziniz: ';
yas_iste:='Yassinizi yaziniz: ';
write(ad_iste);readln(isim);
write(yas_iste);readln(yas);
clrscr;
yas_yaz:='Sizin yasiniz ';
ad_yaz:='Merhaba ';
writeln(ad_yaz,isim);
writeln(yas_yaz,yas);
readln;
end.
Bu programi yazip çalistirinca bir önceki program ile tamamen ayni isi yaptigini göreceksiniz. Ama burada gereksiz yere fazla degiken kullanip fazla islem yaptik. Ama amacimiz ögrenmek. Gördügünüz gibi string tipdeki bir degiskene veri aktarimi sayisal tipli bir degiskene veri aktarimi ile ayni ama burada verileri iki apostrof isareti arasina yaziyoruz ( '.....' gibi ). Bu arada eger programlari kopyala/yapistir yolu ile pascal'a aktariyorsaniz (ki bunu yapmasaniz daha iyi ögrenirsiniz) Türkçe karakterlerde sorunlar vuku bulmus olabilir(!). Bu windows ile ms-dos'un ascii karakterlerinin farkli olmasindan kaynaklaniyor ve telafisi zor. En iyisi elle yazmak. Bu arada ilerde ascii'nin de ne olduguna deginecegimiz için "bu ascii de ne demek" diye düsünmenize gerek yok.
Bir string ifade aksi belirtilmedikçe maksimum 255 karakter uzunlugunda olur ve hafizada 256 byte alan isgal eder. Aksi belirtilmedikçe diyince hemen aksini belirtip daha uzun olabileceginiz sanmayin. Tersine daha az olabilir. Peki nasil aksini belirtecegiz.
Var
isim: string[40];
seklinde. Artik isim adli string degiskenimiz en fazla 40 karakter uzunlugunda olabilir ve 41 byte yer kaplar (Neden mi 41 byte? Unutmazsak sonra anlatiriz onu da!). Bir insanin ismi de 40 harften fazla olamayacagindan (ya da olsa bile kisa yazsin sayin kullanicilarimiz!) gereksiz yere 256 bytelik yer isgal etmeyip 215 byte kar edelim. Artik bu degskene 40 harften daha uzun bilgi girilmek istenirse sadece ilk 40 karakterini alir ve gerisini yok sayar.
String tipin çok özelligi var. Bunlari ilerdeki konularda görecegiz. Ancak simdi String tiplerde çok isinize yarayacak (ilk etapta gereksiz gözükebilir ama döngüleri ve karar deyimlerini gördükten sonra daha iyi anlayacaksiniz) bir özellige gözatalim. Bir string degiskenin x. karakterini elde etmek için string_ifade[x] seklinde kullanilir. Yani isim adli bir string degiskenimizi isim='www.kalkan.cjb.net' olarak tanimlayiip sonra da write(isim[5]); komutunu verirsek ekrana sadece k harfi yazilir. Bununla ilgili çok örnek yapacagimizdan simdilik üzerinde durmayalim ve örnek yapma isini size birakalim
Sayfa başına dön Aşağa gitmek
 
PASCAL DERSLER3
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» GNU-PascaL
» Pascal If...Then...Else
» PASCAL DERSLERI 8
» PASCAL DERSLERI 9
» PASCAL DERSLERI10

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
ForumAlem :: Programlama Dilleri :: PascaL-
Buraya geçin: