Delphi Dünyası Facebook'ta

Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

Gönderen Konu: Delphide Döngüler  (Okunma sayısı 2067 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı cakirr42

  • Administrator
  • *****
  • İleti: 1.068
  • Rep: +5/-0
  • Cinsiyet: Bay
  • Ben Bana Kendim İçin Lazımım...
    • Ahmet Kürşat ÇAKIR
  • Delphi Sürümü: XE, XE2
Delphide Döngüler
« : 16 Ocak 2010 14:57:49 »
Döngüler
İf Döngüsü
if döngüsünün genel yapısı aşağıdaki gibidir.
If şart then
Komut ;
Else
diğer komut ;

Kod:  (Unknown Language)
  1. var
  2. i : integer ;
  3. begin
  4. i := 0;
  5. i := i + 1 ;
  6. if i = 1 then begin
  7. Label1.Caption := 'Doğru ';
  8. end
  9. else
  10. if i<>1 then begin
  11. Label1.Caption := 'Yanlış ';
  12. end;
  13. end;
  14.  

Case Döngüsü
Bir değişkenin aldığı bir çok değere göre ayrı komutların çalıştırılması gereken durumlarda
Case döngüsü kullanılır. Genel yapısı aşağıdaki gibidir.
Case değişken of
durum1 : Komutlar ;
durum2 : Komutlar ;
......
durumn : komutlar ;
Else komutlar ;
end;
Yukarda dikkat edilirse değişken; durumlara uyan değerler aldığı zaman ilgili komutlar çalışacak
eğer değişkenin değeri hiçbirine uymuyorsa Else' den sonraki komut çalışacaktır.
Aşağıdaki örneği inceleyelim.

Kod:  (Unknown Language)
  1. Case x of
  2. 1 : label1.Caption := ' Mustafa YURTSEVER ' ;
  3. 2 : label1.Caption := ' Ali YEŞİLOĞLU ' ;
  4. 3 : Edit1.Text := ' Ahmet Kürşat ÇAKIR ' ;
  5. else
  6. Edit1.Text := ' Hoşçakal ' ;
  7. end;
  8.  

For Döngüsü
For döngüsünün genel yapısı aşağıdaki gibidir.
For i := ilkdeğer to sondeğer do
begin
komut ;
end ;
Burada to kullanıldığı için i artarak değerler alır.downto kullanıldığı zaman değer i değerleri
azalarak gider.
For i := ilkdeğer downto sondeğer do
begin
komut ;
end ;

Kod:  (Unknown Language)
  1. var
  2. i : array [ 1 .. 20 ] of string ;
  3. k : integer ;
  4. begin
  5. for i := 1 to 20 do
  6. i [ k ] := InputBox( ' i değer girişi ' Inttostr (k ) + '.nin adı ' ' ' ) ;
  7. end ;

While - Do Döngüsü
Bir şart gerçekleştiği zaman çalışması gereken program bloklarında kullanılır.Genel yapısı
aşağıdaki gibidir.
While şart do
Begin
Komutlar ;
end ;

Kod:  (Unknown Language)
  1. var
  2. i : integer ;
  3. Begin
  4. i := 0 ;
  5. while i < 10 do
  6. Begin
  7. Label1.Caption := inttostr ( i ) ;
  8. i := i + 1 ;
  9. end ;
  10.  

Repeat - Until Döngüsü
Genel yapısı aşağıdaki gibidir. Şart gerçekleşene kadar çalışması gereken kısımlarda kullanılır.
Repeat
Komut ;
Until Şart ;

Kod:  (Unknown Language)
  1. var
  2. i : integer ;
  3. begin
  4. repeat
  5. i := 50 ;
  6. Until (i>0) and ( i < 50 )
  7. end ;
  8.  

For in Do
Delphi 2010 la geldi sanırım
Kod:  (Unknown Language)
  1. var  
  2. s : string;  
  3. begin  
  4. fors inlistbox1.items do  
  5. begin  
  6. showmessage(s);  
  7. end;
  8.  
 
« Son Düzenleme: 19 Ocak 2010 16:45:25 by cakirr42 »
http://akcakir.net/
Dalından Kopan Yaprağın Akıbetini Rüzgar Tayin Eder
"Alparslan TÜRKEŞ"

Çevrimdışı cakirr42

  • Administrator
  • *****
  • İleti: 1.068
  • Rep: +5/-0
  • Cinsiyet: Bay
  • Ben Bana Kendim İçin Lazımım...
    • Ahmet Kürşat ÇAKIR
  • Delphi Sürümü: XE, XE2
Ynt: Delphide Döngüler
« Yanıtla #1 : 16 Ocak 2010 15:01:16 »
Döngü Kontrol İfadeleri
Bazı durumlarda döngü bitmeden döngüden çıkılmak istenebilir. Bu gibi durumlarda döngü
kontrol deyimlerini kullanmak gerekir. Bunlardan bazıları Break Continue gibi deyimlerdir.

Break
Break kontrol deyimi ForWhile veya Repeat döngülerinden birinde döngüden çıkmak için
kullanılır.Aşağıdaki örneği inceleyelim.

Kod:  (Unknown Language)
  1. procedure TForm1.Button1.Click ( Sender : TObject ) ;
  2. var
  3. i : array [1 .. 20 ] of string ;
  4. k : integer ;
  5. begin
  6. for i := 1 to 20 do
  7. if i [ k ] = 'Bahadir' then begin
  8. break ;
  9. if > 50 then begin
  10. ShowMessages (' Aranan kayıt bulunamadı. Tekrar deneyiniz...' ) ;
  11. end
  12. else
  13. ShowMessages (Inttostr ( k ) + ' . kişi' ) ;
  14. end ;
  15. end ;
  16.  

Continue
Continue; For While veya Repeat döngülerinde bazı şartlar gerçekleştiğinde döngünün sonuna
gitmeden tekrar başa dönmesini sağlar.

Kod:  (Unknown Language)
  1. var
  2. i : integer ;
  3. Begin
  4. for i := 1 to 20 do
  5. if i<10
  6. continue ;
  7. end ;
  8. ShowMessages( Inttostr ( i ) ) ;
  9. end ;
  10.  

Exit
Exit; mevcut program bloğundan bloğun sonuna ulaşmadan çıkmaya yarar.
Kod:  (Unknown Language)
  1. var
  2.  i : integer ;
  3. begin
  4. i := strtoint ( Edit1. Text ) ;
  5. if i <10 then begin
  6. exit ;
  7. end
  8. else
  9. Edit1.Text := 'i'nin değerleri 10'dan büyük.' ;
  10. end ;
  11. end;
  12.  

Halt
Programdan çıkış sağlar.
Kod:  (Unknown Language)
  1. Begin
  2. Form1.Halt ; // Programdan çıkış sağlar.
  3. end ;
  4.  

Whit - Do
Herhangi bir kontrol elemanının birden fazla özelliğini değiştirmek için yada metodlara ulaşmak
için kullanılır. Genel kullanımım şekli aşağıdaki gibidir.

Kod:  (Unknown Language)
  1. With kontroladi do
  2. Begin
  3. ....
  4. end ;
  5.  

not: Alıntıdır...
« Son Düzenleme: 17 Ocak 2010 12:49:29 by cakirr42 »
http://akcakir.net/
Dalından Kopan Yaprağın Akıbetini Rüzgar Tayin Eder
"Alparslan TÜRKEŞ"

Çevrimdışı cakirr42

  • Administrator
  • *****
  • İleti: 1.068
  • Rep: +5/-0
  • Cinsiyet: Bay
  • Ben Bana Kendim İçin Lazımım...
    • Ahmet Kürşat ÇAKIR
  • Delphi Sürümü: XE, XE2
Ynt: Delphide Döngüler
« Yanıtla #2 : 16 Ocak 2010 15:02:04 »
Umarım Faydalı Olmuşumdur...
http://akcakir.net/
Dalından Kopan Yaprağın Akıbetini Rüzgar Tayin Eder
"Alparslan TÜRKEŞ"

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.228
  • Rep: +54/-0
  • Cinsiyet: Bay
  • Falan filan ...
  • Delphi Sürümü: 2010 - XE2
Ynt: Delphide Döngüler
« Yanıtla #3 : 16 Ocak 2010 16:26:36 »
delphi 2010 la geldi sanırım (2005 - 2006 - 2009 kullanmadım bilmiyorum 2007 de de hiç denemedim)

For in Do

Kod:  (Unknown Language)
  1. var
  2.  s : string;
  3. begin
  4. for s in listbox1.items do
  5.  begin
  6.  showmessage(s);
  7.  end;
  8.  
 



Amatör Küme Programcı

Çevrimdışı cakirr42

  • Administrator
  • *****
  • İleti: 1.068
  • Rep: +5/-0
  • Cinsiyet: Bay
  • Ben Bana Kendim İçin Lazımım...
    • Ahmet Kürşat ÇAKIR
  • Delphi Sürümü: XE, XE2
Ynt: Delphide Döngüler
« Yanıtla #4 : 19 Ocak 2010 16:43:08 »
benim delphide denedim bu kodu olmadı büyük ihtimal 2010la gelmiştir bunuda ekleyim makaleye
http://akcakir.net/
Dalından Kopan Yaprağın Akıbetini Rüzgar Tayin Eder
"Alparslan TÜRKEŞ"

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 796
  • Rep: +13/-0
  • Cinsiyet: Bay
  • Delphi Sürümü: e) Hepsi
Ynt: Delphide Döngüler
« Yanıtla #5 : 19 Ocak 2010 20:02:10 »
Bu özellik muhtemelen Delphi 8 le gelmiş olabilir ama bu versiyonu hiç olmamış farzediyorum ;) . O yüzden Delphi 9 (D2005) ve sonrasında bu döngü biçimi desteklenmektedir, D7 ve öncesinde bu şekilde döngü çalışmamaktadır.
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı cakirr42

  • Administrator
  • *****
  • İleti: 1.068
  • Rep: +5/-0
  • Cinsiyet: Bay
  • Ben Bana Kendim İçin Lazımım...
    • Ahmet Kürşat ÇAKIR
  • Delphi Sürümü: XE, XE2
Ynt: Delphide Döngüler
« Yanıtla #6 : 19 Ocak 2010 20:03:53 »
ben d6 kullanıyorum ve bende sonuç vermedi hata aldım bu döngüde zaten ne işe yaradığınıda anlamış değilim
http://akcakir.net/
Dalından Kopan Yaprağın Akıbetini Rüzgar Tayin Eder
"Alparslan TÜRKEŞ"

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 796
  • Rep: +13/-0
  • Cinsiyet: Bay
  • Delphi Sürümü: e) Hepsi
Ynt: Delphide Döngüler
« Yanıtla #7 : 19 Ocak 2010 20:05:38 »
« Son Düzenleme: 19 Ocak 2010 20:06:21 by sabanakman »
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı cakirr42

  • Administrator
  • *****
  • İleti: 1.068
  • Rep: +5/-0
  • Cinsiyet: Bay
  • Ben Bana Kendim İçin Lazımım...
    • Ahmet Kürşat ÇAKIR
  • Delphi Sürümü: XE, XE2
Ynt: Delphide Döngüler
« Yanıtla #8 : 19 Ocak 2010 20:06:43 »
Anladım Hocam Saolun
« Son Düzenleme: 19 Ocak 2010 20:08:06 by cakirr42 »
http://akcakir.net/
Dalından Kopan Yaprağın Akıbetini Rüzgar Tayin Eder
"Alparslan TÜRKEŞ"

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 796
  • Rep: +13/-0
  • Cinsiyet: Bay
  • Delphi Sürümü: e) Hepsi
Ynt: Delphide Döngüler
« Yanıtla #9 : 19 Ocak 2010 20:09:23 »
...bu döngüde zaten ne işe yaradığınıda anlamış değilim

Şu iki döngü delphi2005 ve sonrasında aynı anlama gelmektedir. Göz atarak ne olduğu sanırım anlaşılacaktır.
Kod:  (Unknown Language)
  1. var s:string; i:Integer;
  2. begin
  3.   for s in ListBox1.Items do begin
  4.     ///
  5.   end;
  6.  
  7.   for i:=0 to ListBox1.Items.Count-1 do begin
  8.     s:=ListBox1.Items[i];
  9.     ///
  10.   end;
  11. end;

Her iki çeşit döngü karşında. Maksat kodlamada çeşitleme olsun demişler ama bu yeni stildeki döngü kod yazarken daha pratik olduğu açık olarak ortadadır sanırım ;) .
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.228
  • Rep: +54/-0
  • Cinsiyet: Bay
  • Falan filan ...
  • Delphi Sürümü: 2010 - XE2
Ynt: Delphide Döngüler
« Yanıtla #10 : 20 Ocak 2010 02:15:42 »
@SabanAkman hocam iyi olmuş ama ara ara güzel oluyor böyle değişiklikler (bence) :DD



Amatör Küme Programcı

Çevrimdışı cakirr42

  • Administrator
  • *****
  • İleti: 1.068
  • Rep: +5/-0
  • Cinsiyet: Bay
  • Ben Bana Kendim İçin Lazımım...
    • Ahmet Kürşat ÇAKIR
  • Delphi Sürümü: XE, XE2
Ynt: Delphide Döngüler
« Yanıtla #11 : 20 Ocak 2010 09:35:45 »
for to do
for in do
çeşit çeşit aynı işi yapıyo ama :D
http://akcakir.net/
Dalından Kopan Yaprağın Akıbetini Rüzgar Tayin Eder
"Alparslan TÜRKEŞ"