BPR152 ALGORİTMA VE PROGRAMLAMA - II

Slides:



Advertisements
Benzer bir sunumlar
8. SINIF 3. ÜNİTE BİLGİ YARIŞMASI
Advertisements

el ma 1Erdoğan ÖZTÜRK ma ma 2 Em re 3 E ren 4.
BPR151 ALGORİTMA VE PROGRAMLAMA - I
ALİ YALKIN İLKÖĞRETİM OKULU 2/A SINIFI ÇALIŞMA SAYFASI
Dersin Adı:ALGORİTMA GELİŞTİME TEKNİKLERİ Dersin Kodu:YBS506 Konu:Kontrol Yapıları(if / if-else) 2.HAFTA.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Kontrol İfadeleri : 2.Kısım
Saydığımızda 15 tane sayı olduğunu görürüz.
T.C. İNÖNÜ ÜNİVERSİTESİ Arapgir Meslek YÜKSEKOKULU
Konu Başlıkları Müfredat Oluşturulurken Dikkat Edilmesi Gereken Hususlar Çalışmalardaki Olumsuz Örnekler ve İstatistiksel Bilgiler Anket Çalışmaları Teknik.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
DÖNGÜ İFADELERİ.
Kontrol Çevrimleri FOR WHILE DO-WHILE IF-ELSE SWITCH-CASE-DEFAULT
Bölüm 5 – Kontrol İfadeleri : 2.Kısım
Silme Sil 12 Tek dönüş.
1/27 GEOMETRİ (Kare) Aşağıdaki şekillerden hangisi karedir? AB C D.
Bölüm 5 – Kontrol İfadeleri : 2.Kısım
KIR ÇİÇEKLERİM’ E RakamlarImIz Akhisar Koleji 1/A.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
BPR151 ALGORİTMA VE PROGRAMLAMA - I
BPR151 ALGORİTMA VE PROGRAMLAMA - I
ÖMER ÖZDEMİR NE DERSENİZ ÇARPIM TABLOSUNA BAKALIM MI.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Soruya geri dön
TOPLAMA İŞLEMİNDE VERİLMEYEN TOPLANANI BULMA
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 3: Döngüler
Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Hazırlayan : Nuri AVCI
BPR151 ALGORİTMA VE PROGRAMLAMA - I
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
BPR152 ALGORİTMA VE PROGRAMLAMA - II
ÖRNEKLEM VE ÖRNEKLEME Dr.A.Tevfik SÜNTER.
DÖNGÜ İFADELERİ.
ARALARINDA ASAL SAYILAR
BPR152 ALGORİTMA VE PROGRAMLAMA - II
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Matematik 2 Örüntü Alıştırmaları.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Tam sayılarda bölme ve çarpma işlemi
3tane3=9 3kere3=9 3 x 3 =9 4tane3=12 4kere3=12 4 x 3 =12.
~DÖNGÜLER~.
BPR151 ALGORİTMA VE PROGRAMLAMA - I
HABTEKUS' HABTEKUS'08 3.
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
Döngü Yapıları.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
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.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller Aslı Ergün.
1/20 ÖLÇÜLER (Zaman) A B C D Bir saat kaç dakikadır?
Bir bölme işleminde bölen 8,Bölüm 7, kalan 1ise bölünen Kaçtır?
DÖNGÜLER.
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
DÖNGÜ YAPILARI.
DÖNGÜLER.
Çocuklar,sayılar arasındaki İlişkiyi fark ettiniz mi?
DÖNGÜLER(Loop) while, for döngüleri Break ve continue işlevleri
ÖĞR. GRV. Ş.ENGIN ŞAHİN BİLGİ VE İLETİŞİM TEKNOLOJİSİ.
Diferansiyel Denklemler
C++ Ders Notları 4.Ders (Kontrol ve Döngüler)
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller
Nesne Tabanlı Programlama 2
DÖNGÜ DEYİMLERİ Programın belirli bir kesiminin birden fazla tekrarlanması işlemine DÖNGÜ denir. Bir değişken belirli bir değerden başlayıp, son değeri.
Bugünkü Konular Döngüler ve Akış Diyagramları C de Döngü Tanımlama
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
4- OPERATÖR – koşul - döngü Nesne Yönelimli Programlama - i
Sunum transkripti:

BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL bayramakgul@bartin.edu.tr http://bmyo.bartin.edu.tr/akgul

Bugünkü Konular Döngüler ve Akış Diyagramları C# ‘ta Döngü Tanımlama while döngüsü do-while döngüsü for döngüsü foreach döngüsü (listelerde ve koleksiyonlarda kullanılır. Daha sonra işlenecektir.) İç içe döngüler Döngülerde kullanılan yardımcı ifadeler break continue goto Sonsuz döngüler

İç içe döngüler Döngüleri bir biri içinde kullanabiliriz Çoğu programlarda bu durum gerekiyor. Örnek: çarpım tablosu Sütunlar +---+---+---+---+---+---+---+---+---+---+---+ | *| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| | 1| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| | 2| 2| 4| 6| 8| 10| 12| 14| 16| 18| 20| | 3| 3| 6| 9| 12| 15| 18| 21| 24| 27| 30| | 4| 4| 8| 12| 16| 20| 24| 28| 32| 36| 40| | 5| 5| 10| 15| 20| 25| 30| 35| 40| 45| 50| Satırlar

Çarpım Tablosunu Ekrana Yazdırma /* tablo başlığı yazdıralım*/ Console.WriteLine("+---+---+---+---+---+---+---+---+---+---+---+"); Console.Write("| * |"); for (int i = 1; i <= 10; i++) Console.Write("{0,3}|", i); Console.WriteLine("\n+---+---+---+---+---+---+---+---+---+---+---+"); /* Tabloda: i satırları, j sütunları ifade edecek */ { Console.Write("|{0,3}|", i); /* i için tablonun bir satırını yazdır*/ for (int j = 1; j <= 10; j++) Console.Write("{0,3}|", i * j); } Console.WriteLine(); // bir satır ekle /* Tablonun alt çizgisini yazdır*/

Faktöriyel hesaplama n! = 1*2*3* .. *n int fakt = 1; for (int i = 1; i <= n; i++) fakt *= i; Klavyeden girilen n sayısına kadar olan sayıların faktöriyelini ekrana yazdıran bir program yazalım. Örneğin n=6 için: 0!=1 => 1 1!=1 => 1 2!=2 => 1*2 3!=6 => 1*2*3 4!=24 => 1*2*3*4 5!=120 => 1*2*3*4*5 6!=720 => 1*2*3*4*5*6 …

Faktöriyel hesaplama n değeri:8 0! = 1 1! = 1 2! = 2 3! = 6 4! = 24 using System; class Program { static void Main() int n, fakt = 1;   Console.Write("n değeri:"); int.TryParse(Console.ReadLine(), out n); for (int i = 0; i <= n; i++) fakt = 1; for (int j = 1; j <= i; j++) fakt *= j; } Console.WriteLine("{0}! = {1}", i, fakt); Console.ReadLine(); n değeri:8 0! = 1 1! = 1 2! = 2 3! = 6 4! = 24 5! = 120 6! = 720 7! = 5040 8! = 40320

İç içe döngüler devam Aşağıdaki şekli yapacak kod int n; 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 … int n; Console.Write("n değeri:"); int.TryParse(Console.ReadLine(), out n);   for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) Console.Write(j + " "); Console.WriteLine(); }

Döngü içinde break kullanımı switch ifadesinde break kodunun bizi switch ifadesi dışına attığını görmüştük. Benzer bir şekilde, break döngü içinde kullanıldığın da bizi geçerli döngünün dışına atar.

break kullanımı Döngü deyimlerinin içerisindekiler çalıştırılırken, döngünün, koşuldan bağımsız kesin olarak bitirilmesi gerektiğinde break deyimi kullanılır. Örneğin 1/x hesaplama: double x; do { Console.Write("x değeri:"); double.TryParse(Console.ReadLine(), out x);   if (x == 0) break; // girilen değer 0 ise çık! Console.WriteLine(1 / x); } while (true);

Bir sürü sayının toplamını hesaplama 0 girilene kadar girilen sayının toplama eklenmesi isteniyor. int sayı, toplam = 0; while (true) /* sonsuz döngü*/ { Console.Write("bir sayı gir (durmak için 0): "); int.TryParse(Console.ReadLine(), out sayı); if (sayı == 0) break; /* döngünün dışına çık */ toplam += sayı; } Console.Write("toplam=" + toplam); Normalde sonsuz döngü, ancak kullanıcı 0 girince döngü break tarafından sonlandırılacaktır.

Girilen n sayısının asal olup olmadığını kontrol etme - Kendisi ve 1’den başka böleni olmayan sayılar asal sayılardır. int n, i; Console.Write("Bir sayı giriniz: "); int.TryParse(Console.ReadLine(), out n); for (i = 2; i < n; i++) { if (n % i == 0) break; } if (i < n) Console.Write("{0} sayısı {1} sayısına bölünüyor", n, i); else Console.Write("{0} sayısı asaldır!",n);

break (devam) Bazen döngüyü bitirme koşulu olarak ta kullanılır. Girilen sayının küpünü hesaplama: int n; while (true) { Console.Write("bir sayı girin veya bitirmek için 0: "); int.TryParse(Console.ReadLine(), out n); if (n == 0) break; Console.WriteLine("n=" + n + ", n*n*n*=" + n * n * n); }

break (devam) Döngüler iç-içe kullanılmış ise break sadece içinde kullanılan döngünün kod bloğunun dışına çıkarır. for (…) { … while(…) break; // while den çıkar ama hala for döngüsünde }

continue continue döngünün gövdesinde kullanılan yerden sonraki kısmı atlar ve kontrolü döngünün koşul kısmına alır. int sayı, adet = 0, toplam = 0; while (adet < 10) { Console.Write("Sayı Gir:"); int.TryParse(Console.ReadLine(), out sayı); if (sayı <= 0) continue; // kalan kısmı atlar adet++; toplam += sayı; } Console.WriteLine("Toplam = " + toplam); Klavyeden girilen 10 tane pozitif tam sayının toplamını ekrana yazma: Girilen sayı sıfırdan küçük veya eşit ise adet bir arttırılmayacak ve sayı toplama eklenmeyecektir.

continue  x ve y bir birinden farklı olmak şartıyla |x|+|y|=4 eşitliğini sağlayan tamsayı çiftlerini ekrana yazdıran program: -4,0 -3,-1 -3,1 -2,2 -1,-3 -1,3 0,-4 0,4 1,-3 1,3 2,-2 3,-1 3,1 4,0 int x, y; for (x = -4; x <= 4; x++) { for (y = -4; y <= 4; y++) if (x == y) continue; //x=y ise atla   if (Math.Abs(x) + Math.Abs(y) == 4) Console.WriteLine(x + "," + y); }

goto Kontrolü keyfi olarak kodun içinde işaretlenmiş (etiketlenmiş) bir yere aktarmak için kullanılır. goto ifadesinin kullanımı katı bir şekilde istenmez. Kodu anlaşılmaz ve bakımı zor hale getirir. while (…){ … switch(…){ goto dongu_tamam; /* break burada bizi sadece*/ … /* switch ten çıkarabilir */ } /* switch-sonu */ } /*while-sonu */ dongu_tamam:

goto goto ifadesi C# programlama dilinde iyileştirilmiştir. goto ifadesi ile etiketlere, switch içinde ki case ve default durumlarına geçilebilir.

goto örnek: int a ; ... switch (a) { case 4: Console.Write("case 4'e geldi."); string b = Console.ReadLine(); Console.Write(b); break; case 5: Console.Write("case 5'ten case 4'e git"); goto case 4; default: Console.Write("default kısmı"); }

using System; class Program { static void Main() Random r = new Random(); int s = r.Next(1, 11); int i = 0, sayı;   tekrarla: Console.Clear(); Console.Write("Kalan Tahmin sayısı: " + (5 - i)); Console.WriteLine("\n 1 ile 10 arasında bir sayı giriniz:"); int.TryParse(Console.ReadLine(), out sayı); i++; if (sayı == s) goto tebrikler; if (i == 5) goto bulamadınız; else goto tekrarla; tebrikler: Console.WriteLine("Tebrikler {0}. tahminde buldunuz.", i); goto son; bulamadınız: Console.WriteLine("Tahmin hakkınız bitti. Kaybettiniz!"); son: Console.WriteLine("Oyun Bitti!"); Console.ReadLine(); } goto ile oyun: Bilgisayarın 1 ile 10 aralığında rastgele tuttuğu bir sayıyı 5 tahminde bulmak için yazılmış kod:

Sonsuz Döngüler Sınırsız sayıda tekrar eden döngülerdir. Koşul sürekli olarak sağlanırsa döngü sonsuz döngü olmuş olur. while (true) { … } do { … } while (true); for (;;) { … } while (1 < 2) { … } do { … }while (1 == 1); for (;true;) { … }

Sonsuz döngülerden nasıl çıkılır? Peki bu tür döngülerden nasıl çıkabiliriz? Basitçe döngünün bir yerlerine “break” koyarak. int n; while (true) { Console.Write("bir sayı girin veya bitirmek için 0: "); int.TryParse(Console.ReadLine(), out n); if (n == 0) break; Console.WriteLine("n=" + n + ", n*n*n*=" + n * n * n); }

Dinlediğiniz için teşekkürler… Öğr. Gör. Bayram AKGÜL