1Forum.US  

Go Back   1Forum.US > Teknoloji - Webmaster - Programlama > IRC Sunucu Sahipleri - WEB > Genel IRCD > Socketbotlar
Sosyal Gruplar Oyun Dünyası Yasaklılar Listesi Etiketler Arşiv Rss


Yeni Konu aç  Cevapla
 
LinkBack Seçenekler
Alt 29/03/08, 19:12 PM   #1 (permalink)
ShotKiLLa
Standart Pogram denetimi (Mantiksal Denetleme IF - ELSEIF - ELSE - SWITCH )

Pogram denetimi (Mantiksal Denetleme IF - ELSEIF - ELSE - SWITCH )

Programlamanin en önemli kosulu mantiksal denetlemedir. Mantiksal denetlemede; programa bir şart verilerek bu şartın gerçekleşmesi yada gerçekleşmemesi durumunda oluşabilcek durumları belirtir.

IF Deyimi:

Bir cok programlama dilinde en cok kullanilan mantiksal denetleme deyimidir. Türkçe kelime karsiligi "eğer" olan if deyimi bir cok yerde kullanilmaktadir. If deyiminin calisma mantigi su sekilde tarif edilebilir Programa bir sart kosariz. Mesela; Girilen değer eğer su ise sunu yap girilen deger eğer su degilse sunu yap eger deger girilmediyse de sunu yap.

Kullanimi

if { yapilmasi istenen koşul yada koşullar } {

..bu kosul yada kosullar dogru ise yapilacak islemler

}

Yukarida goruldugu gibi if deyimin kosulu "{ }" güzel parantez icine alinarak sorgulanir ve bir diger guzel parantezle kosul sonuclari denetlenerek güzel parantez ile son bulur.


Bir ornek vererek konuyu kavramanizi saglayalim:

if {5 > 4} {

putlog "5 sayisi 4 sayisindan buyuktur"
}

Bu kosulu calistirdigimiz zaman karsimiza 5 sayisi 4 sayisindan buyuktur yazisi cikar. Burada TCL ye sunu diyoruz; Eğer 5 4 den buyukse sunu yap.

IF deyimi yalnizca bir kosul gerceklestirmez gerektiginde bir cok kosulu sorgulamamiz icin kullanacagimiz 2 operator sunlardir " && " ve " || " operatorleridir.

Ornek vermek gerekirse:

if {5 > "4" && 5 < "10"} {

putlog "5 4 den buyuktur ve 5 10 dan kucuktur"
}

Burada iki kosul sorguladik birinci kosulumuz 5 sayisinin 4 den buyuk olma durumu ikinci kosulumuz ise 5 sayisinin 10 sayisindan kucuk olma durumu dur.

Arada kullanmis oldugumuz && operatoru su anlama gelmektedir birinci ve ikinci kosullarimiz dogruysa yani "ve" anlamina gelmektedir. Bunun bir benzeri olan || (veya) operatorudur bu ise iki kosulun tartisilmasindan ote birinci sorgumuz veya ikinci sorgumuz dogru sonuc getirmesemis olsa bile bunlarsan sadece birinin dogru sonuc getirmesi komut dizinimizin calistirilmasini saglayacaktir.

Buna bir ornek vermek gerekirse:

if { 5 == "8" || 4 == "8" } {

putlog "Bu sorgulardan biri dogru"

}

Burada veya operatoru olan || icin bir ornek vermis olduk sonuc olarak 5 8 sayisina esit veya 4 8 sayisina esit oldugunda komut dizinimizde belirtigimiz ekranimiza bu sorgulardan biri dogru yazdirilacaktir.


ELSE Deyimi:

ELSE deyimi denetlenecek olan kosulun yanlis olmasi kosulunda yapilacak olan komutlari icerir. Bu deyim IF deyimi ile birlikte kullanilabilir. IF deyimi ile alinacak bir sonuc eger alinamamissa ELSE deyimi ile bu sorgunun sonucsuz kaldigini ve calismasini istedigimiz komutlari belirtmemizi saglar. Her sonuc dogru olamayacagi icin genelde ELSE deyimi surekli kullanilir.

Ornek vermek gerekirse:

if { 15 == "12" } {
puthelp "Bu iki sayi esittir"
} else {
puthelp "Bu iki sayi esit degildir"
}

Bu sorguyu calistirdigimiz TCL 15 sayisi ile 12 sayisinin esit olup olmadigini denetleyecek. Denetlme bittigi zaman sayilarin esit olmadigini anlayacak ve ELSE deyimini arayacak. Biz ELSE deyimini kullandigimiz icin ELSE deyimi altinda kullanmis oldugumuz islemler uygulanacaktir.

Anlatim boyunca surekli olarak rakamlari denetldik istenilirse kelimeleri de kontrol etmek mumkundur.

set kelime "rockturk.com"
set kelime2 "irckolik.com"

if {$kelime == $kelime} {
putlog "bu iki degisken birbirine esittir"
} else {
putlog "bu iki degisken birbirine esit degildir"
}

Not: degisken sorgularken sorgu " " (tirnak) icerisine alinmak zorunda degildir fakat eger degisken degilde bir rakam yada yaziyi elimizle belirtmek istersek rakam orneklerinde oldugu gibi sorgu " " (tirnak) icine alinarak denetlenmelidir.

Ornek olarak;

Elimizle belirtilen bir string ifade icin "" kuralinin uygulanmasi

if {$kanal == "#kanal"} {
putlog "degisken #kanal ile esittir"
} else {
putlog "degisken #kanal ile esit degildir"
}

Degiskenlerle ifade edilmis sorgulama ise su sekilde olmalidir

if {$kanal == $chan} {
putlog "iki degiskende birbirlrine esittir"
} else {
putlog "degiskenlr esit degildir."
}


ELSEIF Deyimi:

IF deyimi ile kullanilan bu deyim bir onceki if sorgusu sonucunun dogru olmadigi durumlarda bir sonraki kosulu belirtmek icin kullanilir. Program if ile bir sorgu denetimi yapar ve sonuc dogru olmadigi zaman ilk once elseif deyimi aranir eger bulunamazsa else ile program son bulmak ister bu nedenle elseif programinizin mantigi disinda elverisli calismasinida kolaylastirmaktadir.


Kullanimi tam olarak su sekilde olmalidir:

if { kosul ve kosullar } {
kosul veya kosullar dogruysa uygulanacak komutlar
} elseif { bagimsiz kosul veya kosullar } {
bu kosulun dogru olmasi sonucu uygulanacak komutlar
} else {
tum kosullar sonuc getirmediginde uygulanacak komutlar
}

Bilmeniz gereken hususlar:

1. Bir if deyimi kullanmak icin sadece if deyimide kullanilabilir.
2. Bir if deyiminden sonra istenildigi kadar elseif deyimi kullanilabilir.
3. if deyimi kullanilmadan elseif deyimi kullanilmaz.
4. if deyimi kullanilmadan else deyimi kullanilmaz.


NOT: Cok fazla sorgu yapmiyorsaniz if deyiminden sonra diger sorgular icin mutlaka elseif kullanin bu programinizin daha mantikli calismasina olanak saglayacaktir ve gerekli gordugunuz her denetimde else deyimini kullanin bu sizin programinizda eslesmelerin dogru olup olmadigini sorgulamaniz ve bunun icin bir onlem almanizi kolaylastiracaktir.

Ipucu: Genel anlamda bir cok dil icin bu deyimler bu algoritma ile uretilmislerdir kurallari aynidir kullanimlari farkli olabilir.



SWITCH Deyimi

TCL program denetiminde kullanilan bir diger deyimde switch'tir. Bu deyimde bir degisken yapilir ve degisik seceneklere atanabilir. Bu degisken hangi secenege uyuyorsa o komutlar uygulanir. Switch deyimini if deyimi ile de yapmaniz mumkundur fakat if deyimi ile yaptiginiz herseyi switch ile yapmaniz mumkun degildir.

Yapilan bazi arastirmalar sonucu switch deyiminin if deyiminden daha hizli calistigi ortaya konulmustur bu nedenle swicth ile yapabileceginiz sorgulama tekniklerinde if kullanmamaniz programinizin daha elverisli ve hizli calismasina olanak saglayacaktir.

Su sekilde kullanilir.

switch -- degisken {
"birinci kosul" {
Bu kosul dogru ise uygulanacak komutlar
}
"ikinci kosul" {
Bu kosul dogru ise uygulanacak komutlar
}
"ucuncu kosul" {
Bu kosul dogru ise uygulanacak komutlar
}
default {
Bu kosullardan hic biri dogru degilse uygulanacak komutlar
}
}


Birinci ikinci ve ucuncu kosul basamaklarimiz ayni if elseif gibi dusunulebilir dogrudur ve daha pratiktir burada else yerine ise default kullanilir ve kullanilmalidir.

Bir diger ornek icin Burc yorumlama botumda kullanmis oldugum sorgu teknigini gosterecegim.

switch -- $burc {
"koc" {
putlog "sectiginiz burc koc burcudur"
}
"ikizler" {
putlog "sectiginiz burc ikizler burcudur"
}
"yengec" {
putlog "sectiginiz burc yengec burcudur"
}
"aslan" {
putlog "sectiginiz burc aslan burcudur"
}
"basak" {
putlog "sectiginiz burc basak burcudur"
}
default {
putlog "sectiginiz burc yanlistir"
}
}

$burc degiskenine atanmis olan deger koc ikizler aslan veya basak ise bunlarla ilgili islemler gerceklesecek eger hic bir uygunluk rastlanmazsa default ile secili olan burcun hatali oldugu saptanabilecektir.

Deyimler de kullanilan operatorler:

== eşitligi denetler
!= eşitsizligi denetler
<= kucuk ve esit sorgular denetler
>= buyuk ve esit sorgulari denetler
< kucuk oldugunu denetler
> buyuk oldugunu denetler
&& cok anlamli sorgular icin degerlerin ayni olmasini denetler
|| cok anlamli sorgular icin degerlerin birinin dogru olmasini denetler

Unutmayin bir cok program bu denetimler uzerine kurulmustur birini ogrenmeniz digerini kolay anlamanizi saglayacaktir. Bu orneklere dayali olarak cok daha mantikli programlar yazmaniz dilegiyle...

Not: Bazi nedenlerden dolayi 1 ay sonra burada yayinlanip kisilerin bilgi edinmesini uygun gordum.

Yayinlanma ilkesi; yalnizca altta belirtilen yazar adi ve iletisim yolunun gostermesidir.

Yazar: Adil Bülbül (aCoustiC)
Email: acoustic@realcoder.com


_______________________
Üye olup ailemize katılmak ve reklamsız bir forumdan yararlanmak isterseniz TIKLAYIN
Sitemizde yönetici olarak bizlerle çalışmak isterseniz BU KONUYU okumalısınız.

Konu ShotKiLLa tarafından (29/03/08 Saat 19:14 PM ) değiştirilmiştir..
ShotKiLLa isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla

Reklam Alanı
Yeni Konu aç  Cevapla

Etiketler
denetimi, denetleme, elseif, mantiksal, pogram, switch


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
-------------------------------------------------------------


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 09:31 AM.

Powered by vBulletin® Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2009, Crawlability, Inc.

Sitemiz bir forum sitesi olduğu için kullanıcılar her türlü görüşlerini önceden onay olmadan anında siteye yazabilmektedir,
bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir,
yine de sitemizde yasalara aykırı unsurlar bulursanız buradan bize bildirebilirsiniz, şikayetiniz incelendikten sonra en kısa sürede gereken yapılacaktır.
Report Abuse, Harassment, Scamming, Hacking, Warez, Crack, Divx, Mp3 or any Illegal Activity to here

Reklam vermek için bize buradan ulaşabilirsiniz.

3 4 5 9 11 12 13 14 15 18 22 24 25 27 28 29 30 31 33 34 35 36 38 39 40 42 43 44 45 46 51 52 54 55 57 59 61 62 68 69 70 71 75 76 81 82 88 91 95 96 99 100 101 104 109 120 121 128 131 132 135 136 139 142 147 150 151 152 153 154 155 156 157 158 159 160 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 251 252 253 254 255 259 277 279 280 281 283 285 286 287 288 289 290 291 292 293 295 296 303 304 306 307 308 309 310 311 312 313 314 319 321 322 323 325 327 328 329 330 331 332 334 338 340 341 342 343 344 345 346 347 348 349 351 355 358 359 360 362 364 365 366 367 371 377 378 379 380 381 382 383 384 385 411 412 417 419 420 421 422 423 426 432 434 439 440 441 442 444 449 481 497 501 502 505 518 519 520 521 523 524 526 533 537 539 541 545 546 548 549 550 551 552 555 556 557 559 560 561 562 563 565 566 569 571 574 580 581 582 583 584 585 586 589 590 591 593 595 596 597 598 599 600 601 604 605 606 607 608 609 610 611 612 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 635 636 637 638 639 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 672 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813