BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler

Slides:



Advertisements
Benzer bir sunumlar
Yinelemeli Algoritma Analizi & Asimptotik Notasyon
Advertisements

switch - case Yapısı Döngü Yapıları
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 3: Döngüler
Kontrol Yapıları ve Döngüler
PROGRAM DENETİM DEYİMLERİ
The if statement. if Şartlı kontrol Koşul değimi doğru (1) yada yanlış (0) değeri üretir. Şartın doğru olması durumunda if satırından sonraki değimler.
Bugünkü Konular Döngüler ve Akış Diyagramları C de Döngü Tanımlama
Döngü Komutları. for deyimi bir alt limitten, bir üst limite kadar programın belirli bir parçasını tekrar eder. for deyiminde sayaç artış oranı da verilmelidir.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
BİLGİSAYAR PROGRAMLAMA Ders 2: Algoritma ve Akış Şemaları
BİLGİSAYAR PROGRAMLAMA Ders 8: Fonksiyonlar Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
BİLGİSAYAR PROGRAMLAMA Ders 4: Koşula Göre İşlem Yapma Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
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.
PROGRAMLAMA ve YAZILIM Sayısal Analiz Yrd.Doç.Dr. Zekeriya PARLAK.
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 5: Fonksiyonlar Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Örnek 1 Kullanıcının girdiği bir sayının karesini hesaplayan bir program yazınız.
TC Windows Editörü DevC++. KURULUM PROGRAMIN KURULACAĞI YER BURADA BELİRLENİYOR.
9. HAFTA 25 Nisan2016. Fonksiyon M-Dosyaları Fonksiyon dosyaları ilk satırda “function” kelimesi bulunan “.m” uzantısı bulunan dosyalardır. MATLAB içinde.
Örnek Sorular Bilgisayar Programlama BIL 107. Soru 1: Ekran çıktısında 66 yazması için boşlukları doldurunuz ______ i = 'A'; printf(____, i__); CEVAP:
Bölüm 5 Döngü Komutları while Komutu while Komutu Diğer Operatörler (Bileşik atama, artırma ve azaltma operatörleri ) Diğer Operatörler (Bileşik atama,
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
1 Bölüm 2 C Dilinin Temelleri Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir, ve Ç.
6. HAFTA Mart Mantıksal Operatörler & Ve | Veya ~ Değil / Bölme.
Bölüm 2 C Dilinin Temelleri
BİLGİSAYAR PROGRAMLAMA DERSİ
Bilgisayar Programlama BIL 107
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
C Programlama Dili Çağdaş Hakan Aladağ.
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
TAM SAYILAR.
BİLGİSAYAR PROGRAMLAMA Ders 8: Fonksiyonlar
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H05
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı
Algoritma ve Programlamaya Giriş
C PROGRAMLAMADA AKIŞ KONTROLÜ
Algoritma ve Programlamaya Giriş
NBP103 Programlama Temelleri Öğr. Gör. Mahmut Kılıçaslan
BİLGİSAYAR PROGRAMLAMA Ders 4: Koşula Göre İşlem Yapma
Bölüm 3 Atama ve Girdi/Çıktı Komutları
PROBLEM ÇÖZME VE ALGORİTMALAR
Bilgisayar Programlama
3.hafta METODLAR.
BİLGİSAYAR programlama II
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
NİŞANTAŞI ÜNİVERSİTESİ
YAPISAL PROGRAMLAMA Hafta-4
Doğrusal Mantık Yapısı İle Problem Çözme
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Bilgisayar Bilimi Koşullu Durumlar.
Karar Yapıları İle Problem Çözme
BİL 112 Programlamaya Giriş
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
?: KARŞILAŞTIRMA OPERATÖRÜ
NİŞANTAŞI ÜNİVERSİTESİ
6. DÖNGÜ (TEKRARLAMA) DEYİMLERİ
Bilgisayar Bilimi Fonksiyon Yazma.
WHILE DÖNGÜSÜ while (şart) { ifade 1; ifade 2; }
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
Kesikli Olay benzetimi Bileşenleri
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
İleri Algoritma Analizi
Sunum transkripti:

BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler

Döngüler Belirli bir sayıda ya da belirli bir koşul sağlanana kadar arka arkaya yapılması gereken işlemler için döngüler kullanılır. Böylece bilgisayarın sürekli yapacağı işlemler için aynı komutları tekrar tekrar yazmak zorunda kalmayız. IF ve GOTO komutlarının birlikte kullanımı ile de döngü kurulabilir, fakat en doğru yol belirli bir sayıda işlem yapmak için FOR, belirli bir koşul sağlanana kadar işleme devam etmek için ise WHILE döngülerini kullanmaktır.

FOR Döngüsü for ( int i = A ; i <= B ; i = i + C ) { ... } Örn: 1 ile 100 arasındaki tam sayıları görüntüleme: for ( int i = 1 ; i <= 100 ; i = i + 1 ) { printf("%d\n", i); Başlangıç Değeri Bitiş Değeri Artım Değeri Döngüde kontrol amaçlı kullanılan değişken i değişkeni döngü dışında geçerli olmayacaktır i++ yada i+=1 yazılabilir. 100’den 1’e görüntüleme: for (i = 100 ; i >= 1 ; i--)

1 ile 100 arasındaki sayıların toplamını hesaplayıp görüntüleyen program main() { int toplam = 0; for (int i = 1; i <= 100; i += 1) toplam += i; } printf("Toplam = %d", toplam); i değişkeninin for döngüsü içinde tanımlanması C++ dilinde mümkündür. Program kodunuz cpp değil de c uzantılı kaydedildi ise derleme C dilinde yapılacak ve hata verecektir. Döngüde tek komut yer aldığı için { ve } (blok başı ve sonu simgeleri) kullanılmayabilirdi.

Girilen 15 sayıdan pozitif olanların adedini bulup görüntüleyen program main() // AKIŞ ŞEMASI: HAFTA 2, ÖRNEK 7 { int sayi, adet = 0; for (int i = 1; i <= 15; i++) printf("%d. sayi : ", i); scanf("%d", &sayi); if (sayi >= 0) adet++; } printf("Pozitif adedi = %d", adet);

Girilen 10 sayıdan en büyüğünü bulan ve görüntüleyen program main() // AKIŞ ŞEMASI: HAFTA 2, ÖRNEK 14 { int sayi, eb = 0; for (int i = 1; i <= 10; i++) printf("%d. sayi : ", i); scanf("%d", &sayi); if (sayi > eb) eb = sayi; } printf("En buyuk sayi = %d", eb); Kullanıcı tüm sayıları negatif girerse ne olur?

50 öğrencinin notlarının ortalamasını hesaplayıp görüntüleyen program main() // AKIŞ ŞEMASI: HAFTA 2, ÖRNEK 8 { int notu, ort, toplam = 0; for (int i = 1; i <= 50; i++) printf("%d. not : ", i); scanf("%d", &notu); toplam += notu; } ort = toplam / 50; printf("Notlarin ortalamasi = %d", ort); "ort" değişkeni olmasaydı: printf("Notlarin ortalamasi = %d", toplam / 50);

Faktöriyel Programı main() // AKIŞ ŞEMASI: HAFTA 2, ÖRNEK 9 { int sayi, fakt, i; printf("Faktoriyeli bulunacak sayi:"); scanf("%d", &sayi); fakt = 1; for (i = 2; i <= sayi; i++) fakt = fakt * i; printf("%d! = %d", sayi, fakt); }

Verilen koşul doğru olduğu sürece döngü devam eder. WHILE Döngüsü while ( koşul ) { ... if ( koşul ) break; } Verilen koşul doğru olduğu sürece döngü devam eder. Döngüden çıkmak için döngü içinde break ifadesi kullanılabilir (hem FOR hem de WHILE için geçerli). Eğer break bir if koşulu içinde kullanılmadıysa döngü bloğu içinde o satırın altındaki tüm satırlar gereksiz olacaktır.

WHILE ile Faktöriyel Programı main() // AKIŞ ŞEMASI: HAFTA 2, ÖRNEK 9 { int sayi, fakt = 1, i = 2; printf("Faktoriyeli bulunacak sayi:"); scanf("%d", &sayi); while (i <= sayi) { fakt = fakt * i; i++; } printf("%d! = %d", sayi, fakt); Döngü sayısı belli olduğuna göre FOR döngüsü kullanmak daha mantıklıydı. for (i = 2; i <= sayi; i++)

Koşulu döngü sonunda vermek Eğer döngüye koşul aranmadan girilmesi istenirse, döngünün sonunda da koşul kontrolü yapılabilir: do { ... } while ( koşul );

Kullanıcı hatalı giriş yaptığı sürece tekrar giriş istenmesi döngüsü char i; printf("1) Toplama, 2) Cikarma, "); printf("3) Carpma, 4) Bolme, 5) Cikis"); do { printf("Islemi seçin [1-5]: "); i = getchar(); if (i == '5') exit(0); } while (i < '1' || i > '5'); NOT: Geçen hafta 4 işlem programında GoTo kullanmak yerine bu kodu kullanabilirdik.

WHILE ile Asal Sayı Bulma main() { int sayi, i = 2; printf("Sayiyi giriniz : "); scanf("%d", &sayi); while (i <= sayi/2) { if (sayi % i == 0) break; // bölen bulundu i++; } if (i > sayi/2) printf("Sayi asal\n"); else printf("Sayi asal degil\n"); Bu programda kullanıcının girdiği sayının 2’den büyük ve sayı/2’den küçük olan tüm sayılara tam bölünüp bölünmediği kontrol edilir.

FOR ile Asal Sayı Bulma main() { int sayi, i; printf("Sayiyi giriniz : "); scanf("%d", &sayi); for (i = 2; i <= sayi/2; i++) { if (sayi % i == 0) break; // bölen bulundu } if (i > sayi/2) printf("Sayi asal\n"); else printf("Sayi asal degil\n");

Ödevler F(x)=x2 fonksiyonunu 0 ile 5 aralığında 0,1 adımlarla arttırarak hesaplatan programı kodlayınız.

Ödevler Daha az sayıda döngü adımı ile asal sayı bulabilen bir algoritma geliştiriniz. 1 ile 1000 arasındaki asal ve mükemmel sayıları bulan ve ekranda görüntüleyen programı yazınız. (Mükemmel sayı: bölenlerinin toplamı kendisine eşit olan sayı... 28 = 1+2+4+7+14).

Ödevler Kullanıcıdan 2 sayı alıp bu sayıların en büyük ortak bölenini ve en küçük ortak katını bulan programı yazınız. Fibonacci serisi 0 ve 1 ile başlayıp, bir elemanın değerinin kendisinden önceki iki elemanın toplanması ile oluşturulduğu bir seridir: Kullanıcının klavyeden girdiği sayıda Fibonacci serisi elemanını gösteren programı yazınız.