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

Slides:



Advertisements
Benzer bir sunumlar
STRİNG FONKSİYONLARI.
Advertisements

Fonksiyonlar.
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
Değişkenler ve bellek Değişkenler
JAVASCRİPT VERİ TÜRLERİ
JavaScript Birinci Hafta.
Zeynep Çelik Sunar….
6. Perl 6.1 Scalars.
Bölüm 2: Program Denetimi
SQL de Değişken Tanımlama
 Print() :  Print() : Ekrana bir değişkenin değerini veya bir metni yazdırmayı sağlar. print (“PHP Programlama”);// ekrana “PHP Programlama” yazdırır.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
String Kütüphanesindeki Arama Fonksiyonları
4. KONTROL VE DÖNGÜ KOMUTLARI
PROSEDÜRLER (YORDAMLAR) (FONKSİYONLAR VE ALT PROGRAMLAR)
BPR152 ALGORİTMA VE PROGRAMLAMA - II
OPERATÖRLER.
Fonksiyonlar.
Bilgisayar Programlama (Yrd. Doç. Dr. İbrahim ASRİ)
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 9. Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1,
MANTIKSAL OPERATÖRLER
Operatörler ve Denetim Yapıları
BPR152 ALGORİTMA VE PROGRAMLAMA - II
SQL de Değişken Tanımlama
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
ŞART İFADELERİ.
C ile Programlamaya Giriş
DEĞİŞKENLER, VERİ TÜRLERİ VE OPERATÖRLER
FONKSİYONLAR.
Koşul İfadeleri ve Akış Kontrolü Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir akış kontrolü oluşturabilmek için koşul ifadelerini.
Akış Kontrol Mekanizmaları
Chapter 6: Using Arrays.
Çoklu dallanma seçimi: switch
Mantıksal Operatörler ve Denetim Yapıları
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
a) b) c) d) e) Pi= 4* atan(1) y=Log10 | x | +4 Y= LOG10 (ABS(x))+4
JAVA’DA DİZİLER Dr.Galip AYDIN.
4. KONTROL VE DÖNGÜ KOMUTLARI
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 8.  Tamsayı Değerler (Integer) Tamsayılar, 10 tabanlı (decimal), 8 tabanlı (octal) veya 16 tabanlı (hexadecimal)
Python Aslı Ergün.
Fonksiyonlar ile Çalışmak
Görsel C# ile Windows Programlama
Kabuk Programlama Shell Scripting(bash)
TEMEL php Dersleri - Ders 1 Değişgenler
Bu Günkü Konular If yapısı ve karşılaştırma operatörleri
Bugünkü Konular Döngüler ve Akış Diyagramları C de Döngü Tanımlama
BMS-301 Kabuk Programlama Güz 2015 (5. Sunu) (Yrd. Doç. Dr. Deniz Dal)
BM-103 Programlamaya Giriş Güz 2012 (3. Sunu)
Fonksiyonlar.
Adım Adım Algoritma.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
VERİ TİPLERİ BYTE:0-255 ARASI TAMSAYI (1 BYTE)
“ THERE IS MORE THAN ONE WAY TO DO IT” Hazırlayan: Cemal İNANÇ.
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
VERİ ve BELLEK & DEĞİŞKENLERİN SAKLANMASI Asst.Prof.Dr.Misket YEKTAY Gizem AYIK.
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
Bilgisayar Programlamasına ve Veri Analizine Giriş - IV
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Excel’de VBA Programlama (Visual Basic Application)
Bilgisayar Programlamasına ve Veri Analizine Giriş
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
Bölüm 10: Kayıtlar – Records (structs)
Bölüm 5: Kontrol Yapıları II (Yenilenme-Repetition)
Bilgisayar Bilimi Problem Çözme Süreci-2.
Bilgisayar Programlamasına ve Veri Analizine Giriş
NİŞANTAŞI ÜNİVERSİTESİ
Bir Döngünün Bölümleri (hatırlatıcı)
Sunum transkripti:

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ı)

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)

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

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

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

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.

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.

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;

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)

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.

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”;

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;

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.

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>);

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);

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

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

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.

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.

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

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;

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;

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”; }

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”; }

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”;

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”; } }

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; }

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

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

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

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”; } }

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);

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.

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; }

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

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