Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

6. Perl 6.2 Variable Declaration (Değişken Bildirimi)

Benzer bir sunumlar


... konulu sunumlar: "6. Perl 6.2 Variable Declaration (Değişken Bildirimi)"— Sunum transkripti:

1 6. Perl 6.2 Variable Declaration (Değişken Bildirimi)
6.3 User Input (Veri Girme) 6.4 Comparison Operators (Karşılaştırma Operatörleri) 6.5 Control Structures (Kontrol Yapıları)

2 Proje Proje Gruplarının Belirlenmesi: Proje Konuların Önerilmesi:
18 Mart 2005 (%5) Proje Konuların Önerilmesi: Proje Konularının Kesinleşmesi: 25 Mart 2005 (%5) Proje Sunumları: Son Ders (Kesin Tarih daha sonra açıklanacak) Proje Raporları Teslimi: Final sınavlarının son günü (Kesin Tarih daha sonra açıklanacak)

3 Proje Grup 5: Grup 6: Grup 1: Grup 7: Grup 2: Grup 8: Grup 3: Grup 4:
Nihan Potas Ebru Tanacı Grup 6: Bilge Türkoğlu Hakan Batmaz Kaan Demir Grup 7: Süheyla Keskinkaya Hande Şendil Kenan Yıldıran Grup 8: Emre Veldet Siril Ünal Mert Kabadayı Grup 1: Melis Özmen Fethiye Gözde Ünlü Banu Semercigil Grup 2: Gülsen Bardakcı Melike Burçak Kavcar Meral Altuntaş Grup 3: Dilek Bilgin İrem Öztürk Özgü Özçırpan Grup 4: Pelin Beriat Duygu Barutçu Ayşegül Gökalp

4 Geçen Hafta... Scalars Numbers Strings Integers Floating-points
İşlemler Strings Single quoted Double quoted

5 Bu Hafta... Değişken Bildirimi Veri Girme Karşılaştırma
Numerik String Kontrol Yapıları if unless while until do..while do..until for

6 Kaynaklar Chapter 2: Scalar Data Chapter 4: The Perl Language
R. L. Schwartz, T. Phoenix Third Edition, July 2001. Chapter 4: The Perl Language N. Patwardhan, E. Siever, S. Spainhour Second Edition, June 2002.

7 6.2 Değişken Bildirimi my Operatörü: Perl programlarının başlangıcında my anahtar sözcüğü ile değişkenler sadece isimleri ile bildirilebilir. Perl’de normal mode’da değişkenleri bildirme zorunluluğu yoktur. #!/usr/local/bin/perl my $metin; $metin=“Bu bir bildirilmiş değişkendir”; my $sayi=12; Değişken bildiriminin en temel avantajı kodunuzu inceleyen kişilerin hangi değişkenleri kullandığınızı kodun ilk başını inceleyerek anlayabilmeleridir. Bu aşamada açıklama metinleri kullanma da faydalı olacaktır.

8 6.2 Değişken Bildirimi Eğer bildirilmiş bir değişkene herhangi bir değer atanmamışsa, Perl otomatik olarak bu değişkene undef (undefined/tanımlanmamış) değerini verir. Bu değeri doğrudan programcı da değişkenlerine verebilir: $sayi=undef; Bir değişkenin tanımlanmış olup olmadığı defined operatörü ile kontrol edilebilir. Bu operatörün çıktısı “1” veya “”’dır (true/false). $flag=defined $sayi;

9 6.2 Değişken Bildirimi Perl kodunu farklı mode (kullanım)’larda çalıştırabilirsiniz. Bunlara pragma adı verilmektedir ve use operatörü ile çağrılırlar: #!/usr/local/bin/perl use strict; use Warnings; Strict: Yorumlayıcının Perl kodunu en “kurallara uygun” şekilde yorumlaması gerektiğini gösterir. Warnings: Perl yorumlayıcısı kodunuzu çalıştırırken mümkün olduğunca daha fazla hata bildirimi yapar. Perl kodlamayı yeni öğrenenlerin kodlarını bu iki mode’da yazmaları daha uygun olacaktır. Perl kodunu çalıştırmadan kontrol etmek istiyorsanız Perl –c flag’ini kullanabilirsiniz (c: check)

10 6.3 Veri Girme Klavyeyi kullanarak Perl programınıza veri girmenin en kolay yolu satır girdi operatörü (line-input operator) <STDIN>’i kullanmaktır. Programın bir değişkene beklediği scalar değere karşılık <STDIN>’i gösterirseniz, Perl standart girdi’den (standart input) takip eden ilk tam metin satırını (yeni satırın başladığı noktaya kadar) alır ve bu string’i <STDIN>’in değeri olarak kullanır. Standart girdi farklı ortamlar olabilir fakat genelde Perl programını çalıştırmış olan kişinin klavyesidir. Eğer okunmayı bekleyen herhangi bir hazır metin yoksa, o zaman Perl programı duracak ve kullanıcıdan bir dizi karakter ve sonunda yeni satır (Return/Enter tuşu) karakterini girmesini bekleyecek.

11 6.3 Veri Girme #!/usr/local/bin/perl $metin=“Bir sayı giriniz: ”;
$sayi=<STDIN>; print “Girdiğiniz sayı $sayi \n”; $metin=“İki farklı sayı giriniz: ”; $sayi1=<STDIN>; $sayi2=<STDIN>; $sayi3=$sayi1%$sayi2; print “$sayi3 \n”;

12 6.3 Veri Girme Klavyeden <STDIN> vasıtası ile girilen verilerin sonunda bir yeni satır (return) karakteri bulunmaktadır. Bu karakter kullanıcı tarafından, programa girdinin bittiğini göstermek için en sonda basılmış olan Enter tuşu ile girilmiştir. $text1=<STDIN>; $text2=“bu satirin sonunda \\n yok”; print $text1; print $text2;

13 6.3 Veri Girme $sayi=<STDIN>; #123 girildiğini farzedin
<STDIN> vasıtası ile girilen istenmeyen bu yeni satır karakterinden kurtulmak için iki tane farklı operatör kullanılabilir. Bunlar chop ve chomp’tur. Chop operatörü herhangi bir string’in en sonuncu karakterini “baltalar”. $sayi=<STDIN>; #123 girildiğini farzedin chop ($sayi); #sondaki \n karakterini baltalar chop ($sayi); #sondaki 3 karakterini baltalar print $sayi; #12 yazdırır Bu operatörü kullanarak bir değişkenin içinde istediğiniz kadar son karakter silebilirsiniz.

14 6.3 Veri Girme Chomp operatörü ise özelleştirilmiş bir işlemdir. String barındıran bir değişkenin son karakteri yeni satır karakteri ise, chomp operatörü ile bu yeni satır karakterini “çiğneyebilirsiniz”. $deger=“49\n"; veya $deger=<STDIN>; chomp($deger); Chomp operatörü sadece tek bir yeni satır karakterini değişken string’inin sonundan sileceği için Chop’a göre hatalı kullanılma ihtimalini azaltmaktadır. Eğer bir string’in sonunda birden fazla yeni satır karakteri varsa o zaman Chomp sadece birini siler, diğer yeni satır karakterini silmek için bir daha çağırmanız gerekir, eğer yeni satır karakteri yoksa Chomp hiçbirşey silmez. Chomp’u kullanmanın bir basit yolu da doğrudan girdiye eşitlemek: chomp($text = <STDIN>);

15 6.3 Veri Girme Chomp ve Chop operatörleri ile “baltalanan” ya da “çiğnenen” değerleri değişkenlere atayabilirsiniz. $deger=“49\n\n\n"; $a=chop($deger); $b=chop($deger); $c=chop($deger); $d=chop($deger); $e=chop($deger); $deger=“49\n\n\n"; $a=chomp($deger); $b=chomp($deger); $c=chomp($deger); $d=chomp($deger); $e=chomp($deger);

16 6.4 Karşılaştırma Operatörleri
Numerik String Gönderdiği Less than < lt true 1, false  “” Less than or equal to <= le Greater than > gt Greater than or equal to >= ge Equal to == eq Not equal to != ne compare <=> cmp -1, 0, 1

17 6.4 Karşılaştırma Operatörleri
my $a = 5; my $b = 500; $a < $b; # 1 $a >= $b; # “” $a <=> $b; # -1 my $c = “hello”; my $d = “there”; $d cmp $c; # 1 $d ge $c; # 1 $c cmp “hello”; # 0 my $output; $output=$c cmp $d; #-1

18 6.5 Kontrol Yapıları Perl’de kontrol yapıları ile çalışırken Blok (block) tabanında çalışmalısınız. Perl’de bloklar { } arasında tanımlanır. { my $var; Statement; } Unutulmamalı ki, bloklar içinde bildirilmiş değişkenler, sadece o blok boyunca geçerlidir.

19 6.5 Kontrol Yapıları Kontrol yapılarında iki önemli kavram True ve False’tur. Her bir anlatım’ın (expression) bir doğruluk değeri vardır (turth value). Perl’de etkin kontrol yapıları oluşturabilmek için hangi değerlerin True ve hangi değerlerin False olduğunu bilmeniz gerekir. Perl’de, aşağıda sıralanmış olan değerler dışında tüm değerler True’dur: “” (boş string) “0” (sıfır stringi) ve “” ya “0” sonuçlanan tüm ifadeler. 0 ve 0’a sonuçlanan tüm sayısal ifadeler. Tanımlanmamış (undefined) değerler.

20 6.5 Kontrol Yapıları İfade Sayı/String True/False Sayı False 0.0
Sayı False 0.0 0.0000 “” String “0” “0.0” True Undef - 42-(6*7) “0.0”+0.0 “foo” string

21 6.5.1 if IF operatörü, İki değeri karşılaştırdıktan sonra, karşılaştırmanın sonucuna göre programın belli işlemler yapmasını sağlar: if (if_expression) { Expression_True_Statement; } elsif (elsif_expression) Expression_Elseif_Statement; else Else_Statement;

22 6.5.1 if { print $a; } elsif ($b>20) print $b; else print $a,$b;
if ($a>$b) { print $a; } elsif ($b>20) print $b; else print $a,$b;

23 6.5.1 if print “Do you like Perl?” ; $answer = <STDIN>; chomp $answer; if ($answer eq “yes”) { print “That is great!\n”; } elsif ($answer eq “no”) { print “That is disappointing!\n”; } else { print “Not recognized answer\n”; }

24 6.5.1 if if operatörünü kullanırken, elsif ve else operatörleri opsiyoneldir. Her if, elsif ve else’ten sonra bir {} blok kullanılması zorunludur. Bu blok tek bir satırdan oluşmakta olsa bile {} parantezler kullanılmalıdır. Expression’larda & veya and operatörünü kullanarak farklı kontrolleri birleştirmeniz mümkün olabilir: if ($a<$b & $b<10) { print “gerceklesti”; }

25 6.5.1 if $answer = <STDIN>;
if ($answer ne “yazi” & $answer ne “tura”) { die “Yanlis cevap: $answer!”; } elsif ( $answer eq “yazi” ) print “yazi! kazandiniz!\n”; else print “tura?! Kaybettiniz!\n”;

26 6.5.2 unless unless operatörü, if operatörünün syntax’ını kullanmaktadır. if operatörü kontrol ifadesi True olduğunda alt bloku işlerken, unless operatörü kontrol ifadesi False olduğunda bu bloku işler: unless ($a<$b) if (! $a<$b) { { print “ornek”; yada print “ornek”; } }

27 6.5.3 while while operatörü, bir değer False olana kadar bir işlemi sürekli gerçekleştirir. Dolayısıyla, while blok’unun içinde sonsuz döngüye (infinite loop) girmesini engellemek için bir kontrol satırı eklenmelidir. while (expression) { While_Statement; }

28 6.5.3 while $count = 0; while ($count < 10) { $count += 1;
print "count is now $count\n"; }

29 6.5.3 while $top_number = 100; $x = 1; $total = 0;
while ( $x <= $top_number ) { $total += $x; $x += 1; } print "total is $total\n";

30 6.5.3 while $answer = <STDIN>; chomp $answer;
while ( $answer ne “yazı” and $answer ne “tura” ) { print “Cevabınızı doğru giriniz”; }

31 6.5.4 until until operatörünün syntax’ı, while operatörünün syntax’ı ile aynıdır, fakat burada until, bir değer True olana kadar bir işlemi sürekli gerçekleştirir. Dolayısıyla, until aslında while’ın kontrol olarak tam tersidir. until ($a<$b) while (! $a<$b) { { $b += 1; $b += 1; print “ornek”; yada print “ornek”; } }

32 6.5.5 do...while while döngüsünde yorumlayıcı önce kontrol ifadesinin True olup olmadığına bakıp sonra bloku çalıştırırdı. Eğer blok’un bir defa çalıştırılıp sonra kontrol ifadesinin incelenmesini istiyorsanız o zaman do...while döngüsünü kullanmalısınız. Burada da sonsuz döngüye girmemesi için gerekli önlemleri almanız gerekmektedir. do { DoWhile_Statement; } while (expression);

33 6.5.6 do...until Do...while döngüsünün kontrol ifadesi çerçevesinde tam tersidir. Do...until bir blok’u kontrol ifadesi True olana kadar çalıştıracaktır. Dolayısıyla until (expression); u while (! expression); şeklinde de yazılabilir.

34 6.5.7 for Perl’de for döngüsü de diğer daha önce gördüğümüz döngüler gibi C, C++ veya Java’daki döngülere çok benzer bir şekilde çalışmaktadır. for(Initial_Statement; expression; Increment_Statement) { For_Statement; }

35 6.5.7 for for($a=1;$a<10;$a++) { print $a,"\n"; } ---------------
while ($a<10) $a++;

36 6.5.7 for my $a=1; for (1..10) { print $a,"\n"; $a++; }


"6. Perl 6.2 Variable Declaration (Değişken Bildirimi)" indir ppt

Benzer bir sunumlar


Google Reklamları