BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL

Slides:



Advertisements
Benzer bir sunumlar
Bölüm 11 Metin Dosyaları Metin Dosyaları Dosya Açma ve Kapama
Advertisements

BPR151 ALGORİTMA VE PROGRAMLAMA - I
Fonksiyonlar.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Programlama-II (Java ile Bilgisayar Programlama)
Bölüm 2 C Dilinin Temelleri
Atama ve Girdi/Çıktı Komutları
OOP UYGULAMA 5.
BPR151 ALGORİTMA VE PROGRAMLAMA - I
BPR152 ALGORİTMA VE PROGRAMLAMA - II
BPR151 ALGORİTMA VE PROGRAMLAMA - I
BPR151 ALGORİTMA VE PROGRAMLAMA - I
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Bölüm 10 Yapılar ve Birleşimler
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 6: Sınıflar
Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Hazırlayan : Nuri AVCI
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Nesneye Yönelik Programlama
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
BPR152 ALGORİTMA VE PROGRAMLAMA - II
NESNEYE YÖNELİK PROGRAMLAMA
DİZİLER.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
DELEGATE OOP-UYG.
Erişim Denetimi, Fonksiyon
Fonksiyonlar.
While Döngüsü Tekrarlama deyimidir. Bir küme ya da deyim while kullanılarak bir çok kez yinelenebilir. Yinelenmesi için koşul sınaması döngüye girilmeden.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
METODLAR Canan Işıl. 1 İçindekiler Açıklamalar, Örnekler, Sorularınız? Kaynakça, Teşekkürler..
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
Chapter 7: Using Methods. Metotları ve Kodlamayı Gizlemeyi Anlama Metot – Kapsüllenmiş ifadeler serisini gerçekleştiren bir görev – Kullanılan metodun.
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
BPR152 ALGORİTMA VE PROGRAMLAMA - II
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
Paralel Programlamaya Giriş
FONKSİYONLAR.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
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ı
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller Aslı Ergün.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
Bilgisayar Programlama
Kalıtım , Sınıf Asli Ergün.
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Fonksiyonlar Fonksiyon Tanımı
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Amaçlar Bu derste öğrenilecekler: –Uygulamaları “method”
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Bilgisayar programlarının en büyük avantajı, kullanıcının işini kolaylaştırmalarıdır. Her bilgisayar programı bunu değişik metotlar kullanarak sağlar.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Bugünkü Konular Döngüler ve Akış Diyagramları C de Döngü Tanımlama
1 Yapılandırılmamış programlama Prosedür/Fonksiyon gerekliliği Prosedural Programlama Fonksiyon Tanımlama/Prototip/Çağırma Örnek fonksiyonlar Fonksiyon.
4. Hafta1 4. HAFTA. 4. Hafta2 Fonksiyonlar  Büyük problemler, küçük parçalara bölünerek kolay çözülür  Yazılımlar benzer modüller içerirler  Hata ayıklama.
Fonksiyonlar.
1 Değişken alanları Geçici değişkenler Birleşik ifadeler(bloklar) ve değişkenler Değişken Depolama Süresi ve Alanı –Local ve global değişkenler –Static.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
C dili kullanıcıya kendi ihtiyacı olan bir fonksiyonu yazma imkanı vermiştir. Bir sayının faktöriyelini almaya ihtiyaç duyduğumuzu ve aynı zamanda asal.
Fonksiyonlar ve Diziler
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ
C Programlama Dili Bilgisayar Mühendisliği.
BİLGİSAYAR PROGRAMLAMA Ders 8: Fonksiyonlar
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 5: Fonksiyonlar
Bölüm 2 C Dilinin Temelleri
Bölüm 6: Kullanıcı Tanımlı Fonksiyonlar I
NİŞANTAŞI ÜNİVERSİTESİ
Bölüm 2 C Dilinin Temelleri
C ile Programlamaya Giriş
Sunum transkripti:

BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL

2 Yapılandırılmamış programlama Fonksiyon gerekliliği Fonksiyonel Programlama Fonksiyon Tanımlama ve Çağırma Örnek Fonksiyonlar. Konular

3 Yapılandırılmamış Programlama Şimdiye kadat yazdığımız programlarımız sadece bir fonksiyondan (main) oluşuyordu. Bununla beraber kütüphanelerdeki fonksiyonları da çağırıyoruz. (WriteLine, ReadLine, …) Bu tarz programlama yapılandırılmamış programlama olarak adlandırılır, en büyük dezavantajı lüzumsuz olarak büyümesidir. –Özellikle, aynı kod blokları/ifadeleri programda farklı yerlerde kullanılacaksa blok/ifadeler kopyalanmalı. (kod tekrarı) main DEĞİŞKENLER

4 Yapılandırılmamış Programlama & Fonksiyon gerekliliği Console.WriteLine("*"); Console.WriteLine("**"); Console.WriteLine("***"); Console.WriteLine("++++"); Console.WriteLine("*"); Console.WriteLine("**"); Console.WriteLine("***"); Console.WriteLine("++++"); * ** *** ++++ * ** *** ++++ Problem: Ekrana yandakini yazdırmak istiyoruz. Tekrarlanmış

5 Fonksiyonel Programlama Fikir: tekrarlanmış ifadeleri çıkar, bir yerde onları birleştir ve bir isim ver. –prosedür, alt yordam, metod veya fonksiyon olarak isimlendirilir static void ucgen() { Console.WriteLine("*"); Console.WriteLine("**"); Console.WriteLine("***"); } static void kare() { Console.WriteLine("++++"); } static void Main() { ucgen(); kare(); ucgen(); kare(); } * ** *** ++++ * ** *** ++++ static void Main() { Console.WriteLine("*"); Console.WriteLine("**"); Console.WriteLine("***"); Console.WriteLine("++++"); Console.WriteLine("*"); Console.WriteLine("**"); Console.WriteLine("***"); Console.WriteLine("++++"); }

6 Fonksiyonel Programlamanın Avantajları Kod tekrarlamalarını önler Kodumuzu küçük parçalara ayırıp daha kolay anlama ve modifiye edebiliriz. Doğruluk: –Bir kere fonksiyonumuzu yazıp test ettikten sonra her çağrışımızda doğru sonuç verecektir. Tekrar kullanma: –Artık fonksiyonumuzu istediğimiz kadar ve istediğimiz programlarda kullanabiliriz.

7 Fonksiyon Başlatma Bir Fonksiyon çağrılırken –Fonksiyon çağrısı yapılır –Kontrol fonksiyonun başında ki ilk ifadeye geçer –Fonksiyon adımları çalıştıktan sonra kontrol fonksiyonun çağrıldığı yerden sonraki ifadeye geri döner.

8 Fonksiyon Nedir? fonksiyon belli bir işi yapmak için kullanılan bir dizi ifadenin isimlendirilmesidir. –WriteLine ekrana mesaj yazdırır –ReadLine klavyeden bir girdi okur –ReadKey klavyeden basılan tuşu okur Bizim oluşturduğumuz fonksiyonlar: –ucgen ‘*’ karakterini kullanarak ekrana üçgen çizer –kare ‘+’ karakterini kullanarak ekrana kare çizer. –…

9 Her fonksiyonda bulunması gerekenler: fonksiyon başlığı Kod bloğu {….} –Fonksiyon gövdesini kapsar. geriDonusTipi fonksiyonAdi([parametreler]) { değişken tanımlamalar; ifade1; ifade2; … return ifade; } fonksiyon başlığı fonksiyon gövdesi Dönmesini istediğimiz değer

10 Fonksiyon Başlığı Geri dönüş tipi sonra fonksiyon adı ve opsiyonel olarak parantez içinde parametrelerden oluşur. –Parametreler fonksiyon çağrılırken program tarafından fonksiyona gönderilen verilerdir. int Topla3Sayi(int a, int b, int c) Bir int dönder Adı 3 parametresi var

11 Örnek fonksiyon başlıkları (1)Hiç parametresi olmayan ve değer döndürmeyen fonksiyon. void Fonksiyon1() (2) 1 int parametresi olan ve değer döndürmeyen fonksiyon. void Fonksiyon2(int a) (3) Parametresi olmayan ve bir int döndüren fonksiyon. int Fonksiyon3() (4) iki parametresi olan ve bir int döndüren fonksiyon. int Fonksiyon4(int a, int b)

12 Parametresi olmayan ve değer döndürmeyen fonksiyon(1) static void ucgen() { Console.WriteLine("*"); Console.WriteLine("**"); Console.WriteLine("***"); Console.WriteLine("****"); } static void Main() { ucgen(); } * ** *** **** * ** *** **** * ** *** **** void:Fonksiyonun dönüş değeri yok bu fonksiyon üç kere çağrılıyor

13 Parametresi olmayan ve değer döndürmeyen fonksiyon(2) static void SelamVer() { Console.WriteLine("Selam, Merhaba Sınıf!"); } static void Main() { SelamVer(); // fonksiyon çağrılıyor SelamVer(); // bir daha çağrılıyor } Selam, Merhaba Sınıf! void:fonksiyonun geri dönüş değeri yok

14 Bir parametresi olan ve değer döndürmeyen fonksiyon(1) static void nYazdir(int n) { Console.WriteLine("n = {0}", n); } static void Main() { nYazdir(573); nYazdir(-1234); } n = 573 n = int n 573 olarak geçiliyor, ve fonksiyon çağırılıyor. int n olarak geçiliyor, ve fonksiyon çağırılıyor.

15 Bir parametresi olan ve değer döndürmeyen fonksiyon(2) static void KuvvetAl(double x) { double x2 = x * x; double x6 = x2 * x2 * x2; Console.WriteLine("x = {0:F6}", x); Console.WriteLine("x^2 = {0:F6}", x2); Console.WriteLine("x^6 = {0:F6}", x6); } static void Main() { KuvvetAl(1.5); Console.WriteLine(" "); KuvvetAl(0.11); } x = 1, x^2 = 2, x^6 = 11, x = 0, x^2 = 0, x^6 = 0, double x 1.5 olarak geçiliyor, ve fonksiyon çağırılıyor. double x 0.11olarak geçiliyor, ve fonksiyon çağırılıyor.

16 Bir parametresi olan ve değer döndürmeyen fonksiyon(3) static void YildizYazdir(int n) { for (int i = 0; i < n; i++) Console.Write("*"); Console.Write("\n"); } static void Main() { YildizYazdir(1); YildizYazdir(2); YildizYazdir(3); YildizYazdir(4); } * ** *** **** int n 1 olarak geçiliyor, ve fonksiyon çağırılıyor. int n 2 olarak geçiliyor, ve fonksiyon çağırılıyor.

17 Aynı işi yapan Kod: static void YildizYazdir(int n) { for (int i = 0; i < n; i++) Console.Write("*"); Console.Write("\n"); } static void Main() { for (int i = 1; i < 5;i++ ) YildizYazdir(i); } * ** *** **** int n, i değerini alarak geçiliyor, ve fonksiyon çağırılıyor.

18 Bir parametresi olan ve değer döndüren fonksiyon // x ^ 5 döndürür static double Kuvvet5(double x) { double x5 = x * x * x * x * x; return x5; } static void Main() { double p5 = Kuvvet5(1.5); Console.WriteLine("{0}", p5); } // n toplamı static int Topla(int n) { return n * (n + 1) / 2; } static void Main() { int tp = Topla(5); Console.WriteLine("{0}", tp); }

19 2 parametresi olan ve değer döndürmeyen fonksiyon static void Yazdir(int n, char c) { for (int i = 0; i < n; i++) Console.Write(c); Console.WriteLine(); } static void Main() { Yazdir(5, '*'); Yazdir(10, '-'); Yazdir(15, '='); } ***** ===============

Notlar Fonksiyonları kullanırken parametrelerini doğru sayıda, doğru sırada ve doğru türde vermeliyiz. Değer döndüren fonksiyonlarda return satırıyla belirtilen ifade, fonksiyonu oluştururken verilen türle uyumlu olmalıdır. Değer döndürmeyen (void ile belirtilmiş) fonksiyonlarda return komutu kullanılabilir, fakat herhangi bir bir ifadeyle kullanılamaz. Değer döndürmeyen fonksiyonlar bir değermiş gibi kullanılamaz. Fonksiyonlar değer döndürmeyebileceği gibi, parametre de almayabilirler. 20

Kombinasyon Hesabı 21

Fonksiyon kullanmadan kombinasyon hesabı 22 static void Main() { int n = 5, r = 3; int n_fakt = 1; for (int i = 1; i <= n; i++) n_fakt *= i; int r_fakt = 1; for (int i = 1; i <= r; i++) r_fakt *= i; int nr_fakt = 1; for (int i = 1; i <= (n - r); i++) nr_fakt *= i; int comb = n_fakt / (nr_fakt * r_fakt); Console.WriteLine("C({0},{1}) = {2}", n, r, comb); } Üç defa benzer kod tekrarlamış

Fonksiyon kullanarak kombinasyon hesabı 23 static void Main() { int n = 5, r = 3; int comb = fakt(n) / (fakt(n - r) * fakt(r)); Console.WriteLine("C({0},{1}) = {2}", n, r, comb); } static int fakt(int s) { int fk = 1; for (int i = 1; i <= s; i++) fk *= i; return fk; }

DINLEDIĞINIZ IÇIN TEŞEKKÜRLER… Öğr. Gör. Bayram AKGÜL24