Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

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.

Benzer bir sunumlar


... konulu sunumlar: "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."— 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:  18 Mart 2005(%5)  18 Mart 2005 (%5) Proje Konuların Önerilmesi: (%5)  18 Mart 2005 (%5) Proje Konularının Kesinleşmesi: (%5)  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 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 Grup 5:  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ı

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

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 R. L. Schwartz, T. Phoenix Third Edition, July Chapter 2: Scalar Data Chapter 4: The Perl Language N. Patwardhan, E. Siever, S. Spainhour Second Edition, June 2002.

7 6.2 Değişken Bildirimi my 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 pragma use 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: Strict: Yorumlayıcının Perl kodunu en “kurallara uygun” şekilde yorumlaması gerektiğini gösterir. Warnings: 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) ’i kullanmaktır. Programın bir değişkene beklediği scalar değere karşılık ’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 ’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= ; print “Girdiğiniz sayı $sayi \n”; #!/usr/local/bin/perl $metin=“İki farklı sayı giriniz: ”; $sayi1= ; $sayi2= ; $sayi3=$sayi1%$sayi2; print “$sayi3 \n”;

12 6.3 Veri Girme Klavyeden 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= ; $text2=“bu satirin sonunda \\n yok”;\\n print $text1; print $text2;

13 6.3 Veri Girme 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= ; #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= ; 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 = );

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 NumerikStringGönderdiği Less 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ı İfadeSayı/StringTrue/False 0SayıFalse 0.0SayıFalse SayıFalse “”StringFalse “0”StringFalse “0.0”StringTrue Undef-False 42-(6*7)SayıFalse “0.0”+0.0SayıFalse “foo”stringTrue

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 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 = ; 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 = ; 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”;yadaprint “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 = ; chomp $answer; while ( $answer ne “yazı” and $answer ne “tura” ) { print “Cevabınızı doğru giriniz”; $answer = ; chomp $answer; }

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”;yadaprint “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"; } $a=1; while ($a<10) { print $a,"\n"; $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) 6.3 User Input (Veri Girme) 6.4 Comparison Operators (Karşılaştırma Operatörleri) 6.5 Control Structures." indir ppt

Benzer bir sunumlar


Google Reklamları