Anakonu: Programlama Dilleri
#10
Döngü olayı ismiyle bire bir uyuyor. Loop belki daha açıklayıcı. 

Kullanıcı bir aralık belirliyor, bu aralığı bir şart ile sabitliyor. Bilgisayar şart sağlanana kadar aralıktan çıkmıyor ve belirlenen aralığı tekrar tekrar baştan okuyor. 
Basit bir örnekle anlatayım. Baban programcı sen de programsın diyelim. Babanın esas amacı 5 lira toplamak senden. Sen de evden çıkmak istiyorsun. Baban sana şart koşuyor evden çıkmak için 5 kere salona git. Her salona gittiğinde de 1 lira veriyorsun. Sen salona bir kere gidiyorsun, 1 lira atıyorsun ve kapıya geliyorsun. Döngü sana soruyor 5 kere salona gittin mi? Sen 1 kere gittin, hayır diyorsun, döngü başa sarıyor. Sen tekrar salona gidiyorsun, tekrar 1 lira atıyorsun. Şartın 5 kere salona gitmek, ama döngü içinde salona her gittiğinde 1 lira at olduğu için ve döngüden dolayı sen bunu 5 kere yaptığın için baban 5 lira toplamış oluyor. En son 5 kere gittin mi diye sorunca evet diyip çıkıyorsun.
 
Örneğin kodlaması ise şöyle:
para=0   (burası toplam paramızın olduğu yer)
a=range(5)  (burada 5 tekrar veriyoruz)
for i in a:
        para=para+1    (önceki paramıza 1 ekliyoruz)
print(para)
 
çıktı 5 şeklinde olacaktır.
 
Faktöriyel hesabı için düşünürsek, önce bize hangi sayının faktöriyeli isteniyor, onu almamız lazım:
x=input()
 
ilk başta bir değişken belitmemiz lazım ki o sayı üzerinde değişiklik yapabilelim.
fakt=1    (0 demememizin sebebi çarpma yapacağımız için sonuç 0 çıkmasın, çarpmada 1, toplamada 0 kullanılır genelde)

şimdi bu sayı adedince artarak çarpım yapılması lazım:
for i in range(x):      (bu kod ile, döngü 1'den başlayıp x sayısına kadar içerisini tekrar edecek. Önce i=1 olacak, sonra i=2 .... en son i=x olacak)
       fakt=fakt*i
 
for'dan sonraya bir de print atarız sonucu görmek için:
print(fakt)

şimdi nasıl işliyor onu görelim. input kısmında x 3 verildi diyelim. 3! ise 3*2*1 olacak:
x=3
fakt=1
for i in range(3):
     fakt=1*1   (fakt 1 oldu)
--- i sonraki sayıya geçer, 1-->2 ---
--- for içinde başa döner---
     fakt=1*2   (fakt 2 oldu)
--- i sonraki sayıya geçer, 2-->3 ----
--- for içinde başa döner---
    fakt=2*3    (fakt 6 oldu)
--- i sonraki sayıya geçemez çünkü range 3 olarak ayarlandı ve en son 3 oldu zaten,  3--/->4 ----
--- for biter ---
print(6)

Bu kodu while ile yazsaydık da for i in range(3) yerine while i<=x derdik, bu da i 1'den x'e ulaşana kadar içeriyi tekrar edecek anlamında.
 
Döngünün olayı, verdiğin şart sağlanana kadar döngü içerisindeki komutları tekrar tekrar uygulamaktadır.
[+] 3 üye Elefsar nickli üyenin bu iletisini beğendi.
Ara
Cevapla
 


Bu Konudaki Yorumlar
Programlama Dilleri - Yazar: Ecdad Computer - 01-05-2018, 20:11
Programlama Dilleri - Yazar: Sezar - 01-05-2018, 20:14
RE: Programlama Dilleri - Yazar: unonimus - 01-05-2018, 21:29
RE: Programlama Dilleri - Yazar: Ayro - 01-05-2018, 20:46
Programlama Dilleri - Yazar: pistoltr - 08-01-2022, 11:47
Programlama Dilleri - Yazar: altnkurt - 01-05-2018, 21:38
Programlama Dilleri - Yazar: cenk1907 - 14-05-2020, 17:31
Programlama Dilleri - Yazar: Ayro - 14-05-2020, 20:11
Programlama Dilleri - Yazar: korkusalan - 14-05-2020, 19:54
Programlama Dilleri - Yazar: Attila the Hun - 15-06-2020, 13:58
Programlama Dilleri - Yazar: Elefsar - 15-06-2020, 14:48
Programlama Dilleri - Yazar: Elefsar - 14-02-2021, 14:36
Programlama Dilleri - Yazar: Yasin Ahmet - 14-02-2021, 14:48
Programlama Dilleri - Yazar: Ayro - 14-02-2021, 15:05
Programlama Dilleri - Yazar: Yasin Ahmet - 15-03-2021, 20:20
Programlama Dilleri - Yazar: Fraude - 15-03-2021, 22:17
Programlama Dilleri - Yazar: Yasin Ahmet - 01-05-2021, 17:28
Programlama Dilleri - Yazar: Yasin Ahmet - 21-05-2021, 17:31
Programlama Dilleri - Yazar: Ayro - 17-10-2021, 20:14
Programlama Dilleri - Yazar: korkusalan - 17-10-2021, 22:06
Programlama Dilleri - Yazar: Yasin Ahmet - 17-10-2021, 23:25
Programlama Dilleri - Yazar: korkusalan - 18-10-2021, 16:25
Programlama Dilleri - Yazar: Yasin Ahmet - 12-11-2021, 03:32
Programlama Dilleri - Yazar: Yasin Ahmet - 30-03-2022, 21:00
Programlama Dilleri - Yazar: Yasin Ahmet - 10-07-2022, 17:01



Konuyu Okuyanlar: 5 Ziyaretçi



Strategyturk Forumları

Strategyturk Forumları tüm Türk stratejiseverler için büyük ve kaliteli bir platform olma amacı güder. Forum içerisinde çok sayıda strateji oyunu için bölüm ve bu bölümlerde haber konuları, rehberler, mod tanıtımları, multiplayer etkinlikleri ve üye paylaşımları için alanlar yer alır.