WRITE / WRITELN


Programlamanin en genel amaci kullanicidan bazi degerleri alip birtakim -önceden programci tarafindan belirlenmis- islemlerden geçirilip sonuçta bulunan degeri ekrana yazmak oldugu için her programlama dilinde kullanicidan veri alma ve ekrana veri yazma deyimleri vardir. Pascal'da kullanicidan read ya da readln komutlariyla veri alinir ve ekrana write ya da writeln komutlariyla yazilir.
Write/Writeln:
Ekrana bir seyler yazmak için kullanilir. Bu sey sabit bir yazi olabilecegi gibi bir degisken de olabilir. Bu durumda degiskenin kendisinin adi degil, degeri yazilir. Ya da direkmen bir islemin sonucu da yazdirilmak istenebilir. Hatta bunlardan iki ya da daha fazlasini da birlikte yazdirabiliriz. Ilk önce ekrana sabit bir yazi (yazi diyoruz ama sayi ya da isaret de olabilir) yazdirmak için kullanimina bakalim. Bu durumda Write(ifade); gibi kullanilir. ifade yerine iki apostrof isareti arasinda bir seyler yazilabilir. Örnegin write('www.kalkan.cjb.net'); gibi. writeln(www.kalkan.cjb.net); gibi degil! Çünkü www.kalkan.cjb.net bir degisken adi degildir (ve olamaz da..). Bununla ilgili küçük bir uygulama yapalim:
Proram uygulama01;
uses crt;
begin clrscr;
writeln('Yarasa');
write('Web Sitesi:');
writeln('www.programlamadili.blogcu.com');
write('E-mail adresi: programlamadili@yahoo.com');
readln;
end. 

Bu program her zaman ayni sonucu verir. Burada belki fark etmissinizdir write ile writeln'in farkini. Write istenen ifadeyi yazip en sonunda bekler, writeln ise bir alt satirin basina gider ve orada bekler. Bekler dedigim sey imleçtir. Siz yazi yazarken yanip sönen o seye imleç denilir ve Pascal'da bir sey yazmak istediginizde imlecin bulundugu yerden itibaren yazilir. Ekranin istedigimiz bir yerine yazi yazdirmayi da anlatacagiz. write ve writeln komutlarinda bir degil de birden fazla ifade de verebilirsiniz:
Program uygulama02;
uses crt;
begin clrscr;
writeln('Yarasa');
writeln('Benim sitem:','www.programlamadili.blogcu.com');
readln;
end. 

..gibi. Gerçi burada pek isimize yaramiyor. Direkt olarak da yazdirabiliriz. Simdi de bir degiskenin degerini yazdiralim. Bunu da write(degisken); seklinde yapariz. Eger write(degisken1, degisken2, degisken3); seklinde 3 adet degiskeni yazdirirsak hepsi ard arda ve bosluk birakilmadan yazilir.
Örnek:program uygulama03;
uses crt;
var
ad, site: string;
sayi, karesi:longint;
begin clrscr;
sayi:=13;
karesi:=sayi*sayi;
ad:='Yarasa';site:='www.programlamadili.blogcu.com';
writeln(ad);
writeln('web sitesi ', site);
writeln(sayi,'->', karesi);
readln;
end.

Gördügünüz gibi sabit ifade ile degisken de ayni write komutuyla kullanilabiliyor. Bu arada write('web sitesi ',site); ile write('web sitesi ', site); komutunun Pascal için hiçbir farki yoktur. Yani -ilk baslarda da anlattigim gibi- Pascal'da bosluklar önemli degildir (tirnak içindekiler hariç). Mesela a:=b+c; ya da a := b + c; yazabilirsiniz. Bu sizin keyfinize kalmis. Ikisi de ayni isi apar. Hatta
a:=
b
+
c;

olarak 4 satir halinde yazsaniz da ayni isi yapar ve hiçbir hata olmaz. Bir de write komutuyla bir islem de yaptirabilirsiniz. Mesela yukaridaki programda karesi degiskenini kullanmadan programi söyle yazabiliriz:
program uygulama04;
uses crt;
var
ad, site: string;
sayi:longint;
begin clrscr;
sayi:=13;
ad:='Yarasa';
site:='www.programlamadili.blogcu.com';
writeln(ad);
writeln('web sitesi ', site);
writeln(sayi,'->',sayi*sayi);
writeln('15 x 3 = ', 15*3);
readln;
end. 

Programa bir writeln daha ekledik. Gördügünüz gibi writeln komutuyla islemin sonucunu da yazdirabiliyoruz. Bunu da inceleyin. Eger write ile bir sayi yazdiracaksaniz sayilara özel olarak write(82); ile write('82'); ayni isi yapar ve sorun çikartmaz. Ama write('Ahmet'); ile write(Ahmet); ayni degildir. Birincisinde ekrana Ahmet yazar ama ikincisinde Ahmet adli bir degiskenin olup olmadigina bakar, eger varsa degerini ekrana yazar, ancak böyle bir degisken daha önceden (var etiketi ile) tanimlanmamissa program çalismaz. Onun için tirnaklara dikkat edin.

Hiç yorum yok:

Yorum Gönder