YAPISAL PROGRAMLAMA Hafta-5

Slides:



Advertisements
Benzer bir sunumlar
String fonksiyonları:
Advertisements

Fonksiyonlar - Functions
Fonksiyonlar.
Bölüm 12 ÜST DÜZEY KONULAR Dinamik Bellek Ayırma Önişlemci
Nesnelerin Özellikleri. - Üye nesneler - friend belirtesi - Nesnelerin operatörlere yüklenmesi - this yerel (lokal) değişkeni - inline tanımlı üye fonksiyonlar.
Göstericiler (Pointers)
Nesneye Yönelik Programlama
Nesneye Dayalı Programlama
Bölüm 7 Fonksiyonlar GÖSTERGELER Gösterge Tanımı
Bölüm 2 C Dilinin Temelleri
Değişken Bildirimleri
Atama ve Girdi/Çıktı Komutları
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
String Kütüphanesindeki Arama Fonksiyonları
Bölüm 10 Yapılar ve Birleşimler
String ve Karakterlerin Temelleri
Nesneye Dayalı Programlama
Fonksiyonlar.
SINIFLAR VE DİNAMİK BELLEK YÖNETİMİ
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
C ile Programlamaya Giriş
Temel Veri Türleri ve Operatörler
FONKSİYONLAR.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
Bilgisayar Programlama
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Fonksiyonlar Fonksiyon Tanımı
Algoritma & Programlama
SINIFLAR VE DİNAMİK BELLEK YÖNETİMİ VE SINIFLARIN DİĞER ÖZELLİKLERİ Yılmaz Kılıçaslan.
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
STRING‘LER Karakter Kütüphanesi Fonksiyonları
Örnek Adam asmaca oyununun programının yazılması.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Fonksiyonlar
1 Yapılandırılmamış programlama Prosedür/Fonksiyon gerekliliği Prosedural Programlama Fonksiyon Tanımlama/Prototip/Çağırma Örnek fonksiyonlar Fonksiyon.
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
2. HAFTA 2. Hafta.
Bölüm 3 Atama ve Girdi/Çıktı Komutları Bölüm 3 Atama ve Girdi/Çıktı Komutları Atama Komutu Operatörler İsim Sabitleri Veri Tipi Dönüşümü Çıktı Fonksiyonu.
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.
1 7. HAFTA. 2 Referanslar  Referanslar adres temsilcisidir  İşaretçilerin görevlerini kısmi olarak yapabilirler  Değişken değildirler.  Bellekte yer.
Fonksiyonlar.
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
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.
Örnek Sorular Bilgisayar Programlama BIL 107. Soru 1: Ekran çıktısında 66 yazması için boşlukları doldurunuz ______ i = 'A'; printf(____, i__); CEVAP:
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Bilgisayar Programlama BIL 107
Fonksiyonlar ve Diziler
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
C Programlama Dili Bilgisayar Mühendisliği.
C’de Fonsiyonlar Aslı Ergün.
Bölüm 7 Fonksiyonlar GÖSTERGELER Gösterge Tanımı
C Programlama Diline Giriş
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H11
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Bölüm 2 C Dilinin Temelleri
Bölüm 1: C Programlama Diline Giriş
Fonksiyonlar.
YAPISAL PROGRAMLAMA Hafta-6
Bilgisayar Bilimi Problem Çözme Süreci-2.
YAPISAL PROGRAMLAMA Hafta-7
Bölüm 6: Kullanıcı Tanımlı Fonksiyonlar I
YAPISAL PROGRAMLAMA Hafta-8
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Karakter dizi fonksiyonları
Bölüm 2 C Dilinin Temelleri
C ile Programlamaya Giriş
4. HAFTA.
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

YAPISAL PROGRAMLAMA Hafta-5 AR. GÖR. ESRA SÖĞÜT

İçindekiler Header Dosyaları Veri Tipleri Fonksiyonlar-Örnekler Matematik Kütüphanesi Rand() Fonksiyonu Void() Fonksiyonu Fonksiyon Parametresi Referans Değişkenleri Varsayılan Parametreler Değişken Kapsamı Tek Kapsam Çözme Operatörü :: Fonksiyon Yükleme Satıriçi Fonksiyonlar (Inline) Const Belirteci Sizeof operatörü Operator Overloading Örnek Sorular Kaynaklar

Header Dosyaları <assert.h> Programın hatalarının ayıklanmasında yardımcı olması için eklenen teşhislerin makroları ve bilgilerini içerir. <ctype.h> karakterleri belli özelliklere göre test eden fonksiyonların ve küçük harfi büyük harfe çeviren fonksiyonların (terside geçerlidir) prototiplerini tutar <errno.h> hata mesajlarını iletmek için gereken makroları tanımlar <float.h> sistemin ondalıklı sayılar için limitlerini tutar <limits.h> sistemin integral limitlerini tutar <locale.h> Programın çalıştırıldığı yerdeki yerel bilgilere göre değiştirilebilmesini sağlayan fonksiyon prototiplerini ve bunların ihtiyaç duyabileceği bilgileri içerir. Yerel gösterimler bilgisayar sisteminin, tarih, zaman, para birimleri ve dünya üzerindeki büyük sayılar için değişik gösterim biçimlerini doğru bir şekilde kullanmasını sağlatır. Kullanımı: #include “square.h”

Header Dosyaları <math.h> matematik kütüphane fonksiyonlarının prototiplerini tutar. <setjmp.h> fonksiyon çağrıları ve geri dönüşleri arasındaki geçişlere izin veren fonksiyonların prototiplerini tutar <signal.h> programın çalıştırılması esnasında oluşabilecek çeşitli durumları gerçekleştiren makroları ve fonksiyon prototiplerini tutar <stdarg.h> sayısı ve tipleri belli olmayan argüman listesine sahip fonksiyonların çalışmasını sağlayan makroları tutar <stddef.h> C’de belli hesaplamaları yaptığımız tiplerinin genel tanımlarını tutar <stdio.h> standart giriş/çıkış kütüphane fonksiyonlarının prototiplerini ve bunlar tarafından kullanılan bilgileri tutar <stdlib.h> sayıları yazılara, yazıları sayılara çeviren, rastgele sayılar üreten, hafıza ayrılmasını sağlayan fonksiyonların prototiplerini tutar <string.h> string işlemlerini yapan fonksiyonların prototiplerini tutar <time.h> zamanla ve tarihle ilgili işlemler yapan fonksiyonların prototiplerini tutar.

Veri Tipleri printf ile kullanımları scanf ile kullanımları long double %Lf %Lf double %f %lf float %f %f unsigned long int %lu %lu long int %ld %ld unsigned int %u %u int %d %d short %hd %hd char %c %c

Fonksiyonlar Fonksiyonlar bir görevi yapan komutlar grubudur. Fonksiyonlar uzun bir problemi daha küçük problemlere bölerek çözmek ve program yazımını basitleştirmek için kullanılır. Fonksiyonu bir kere yazıp programın farklı yerlerinden çağırmak mümkündür. İnt fakt(intx); // veya İnt fakt(int); Fonksiyon Prototipi

Fonksiyonlar-Matematik Kütüphanesi TANIM ÖRNEK sqrt(x) x’in karekökü sqrt(900.0) 30.0 değerini verir exp(x) ex üssel fonksiyon exp(1.0) 2.718252 değerini verir exp(2.0) 7.389056 değerini verir log(x) x’in e tabanına göre logaritması log (2.718252) 1.0 değerini verir log (7.389056) 2.0 değerini verir log10(x) x’in 10 tababına göre logaritması log10(1.0) 0.0 değerini verir log10(10.0) 1.0 değerini verir log10(100.0) 2.0 değerini verir fabs(x) x’in mutlak değeri x>0 ise x değerini verir x=0 ise 0.0 değerini verir x<0 ise –x değerini verir

Fonksiyonlar-Matematik Kütüphanesi TANIM ÖRNEK ceil(x) x’i kendinden büyük ilk tamsayıya yuvarlar ceil(9.2) 10.0 değerini verir ceil(-9.8) –9.0 değerini verir floor(x) x’i kendinden küçük ilk tamsayıya yuvarlar floor(9.2) 9.0 değerini verir floor(-9.8) –10.0 değerini verir pow(x) xy x üzeri y pow(2,7) 128.0 değerini verir pow(9,.5) 3 değerini verir fmod(x,y) x/y işleminin kalanını bulur fmod(13.657,2.333) 1.992 değerini verir sin(x) x’in sinüsünü hesaplar(x radyan) sin(0.0) 0.0 değerini verir cos(x) x’in cosinüsünü hesaplar (x radyan) cos(0.0) 1.0 değerini verir tan(x) x’in tanjantını hesaplar (x radyan) tan(0.0) 0.0 değerini verir

Rand() Fonksiyonu /* 1+rand( )%6 ile üretilmiş kaydırılmış ve derecelendirilmiş tamsayılar */ #include <stdio.h> #include <stdlib.h> //rand() icin int main( ) { int i; for ( i = 1; i <= 20; i++ ) { printf( "%10d", 1 + ( rand( ) % 6 ) ); if ( i % 5 == 0 ) printf( "\n" ); } return 0; }

Fonksiyonlar-Örnek

Fonksiyonlar-Örnek

Fonksiyonlar-Örnek

Void Fonksiyonları Bir fonksiyon değer döndürmüyorsa veya parametre içermiyorsa, bu durumu void yazarak belirtmemiz gerekir.

Void Fonksiyonları

Fonksiyon Parametresi Bu parametreler değer parametresi (call by value) veya referans parametresi (call by reference) olarak kullanılabilir.

Fonksiyon Parametresi C++ dilinde parametreler iki şekilde yollanabilir:

Referans Değişkeni Referans değişkenleri bir değişkene farklı bir isim vermek için kullanılır. Referans değişkenleri & (referans) operatörü ile tanımlanır. int &ref; YANLIŞ TANIMLAMA İnt x=5,y=6; İnt &ref=x; ref=y; GEÇERSİZ ATAMA

Varsayılan Parametreler Gerçek parametre yollanmadığında daha önce tanımlanmış değeri alan parametrelere varsayılan parametre denir.

Değişken Kapsamı-Faaliyet Alanı Her değişkenin program içinde hangi bölgelerde kullanılabileceğini gösteren bir kapsamı (scope) vardır.

Fonksiyonlar ve Değişkenlerin Faaliyet Alanları-Örnek #include <stdio.h> void a( void ); /* fonksiyon prototipi*/ void b( void ); /* fonksiyon prototipi */ void c( void ); /* fonksiyon prototipi */ int x = 1; /* global değişken */

Fonksiyonlar ve Değişkenlerin Faaliyet Alanları-Örnek Devamı int main( ) { int x = 5; /* main’e yerel değişken */ printf ("main’in faaliyet alanı dışındaki yerel x değişkeni %d olur.\n", x ); { /* yeni faaliyet alanına başla */ int x = 7; printf( "main’in faaliyet alanı içindeki yerel x değişkeni %d olur.\n", x ); } /* yeni faaliyet alanını bitir*/ printf( "main’in faaliyet alanı dışındaki yerel x değişkeni %d olur.\n", x ); a( ); /* a automatic yerel x’ e sahiptir.*/ b( ); /* b static yerel x’ e sahiptir. */ c( ); /* c global x kullanır. */ a( ); /* a automatic yerel x’ e tekrar ilk değer atar.*/ b( ); /* static yerel x önceki değerini korur */ c( ); /* global x ‘ de değerinin korur. */ printf( "main içindeki yerel x %d olur.\n", x ); return 0; }

Fonksiyonlar ve Değişkenlerin Faaliyet Alanları-Örnek Devamı void a( void ) { int x = 25; /* a her çağrıldığında ilk değeri atanır */ printf( "\na’ya girildikten sonra yerel x %d olur.\n", x ); ++x; printf( "a’dan çıkmadan önce yerel x %d olur.\n", x ); }   void b( void ) { static int x = 50; /* sadece static ilk değer atama */ /* b’nin ilk çağırılması */ printf( "\nb’ye girerken static x %d olur.\n", x ); printf( "b’den çıkarken önce static x %d olur.\n", x ); } void c( void ) { printf( "\nc’ ye girerken global x %d olur.\n", x ); x *= 10; printf( "c’ den çıkarken global x %d olur.\n", x ); }

Tek Kapsam Çözme Operatörü :: Genel değişkenlere, içinde aynı isimde yerel değişken tanımı olan fonksiyonlardan erişmek için Tekli Kapsam Çözme Operatörünü (::) kullanabiliriz.

Fonksiyon Yükleme Aynı isimde birden fazla fonksiyonu, farklı parametrelerle tanımlayabiliriz. Bu yönteme Fonksiyon Yükleme denir.

Satıriçi Fonksiyonlar (inline) Inline fonksiyonlar, fonksiyonun kullanıldığı yerlere doğrudan yapıştırılır. Böylece çağırma işleminin yapılmasına gerek kalmaz. Inline double alan() { return a*a; } gibi. Derleyici, satıriçi olarak tanımlanan her fonksiyonu satıriçi fonk. olarak değerlendirmeyebilir. Bu derleyicinin inisiyatifine bırakılmıştır. Çok kısa ve sık kullanılan fonk.lar için tercih edilmelidir. Aksi halde birçok yerde tekrar kopyalanacağı için programın kapladığı alan da büyüyecektir. Bu fonk.larda bir değişiklik yapıldığında, bu fonk.nun kullanıldığı diğer program parçalarının yeniden derlenmesi gerekir.

Soru-Cevap 20 20 18 23 12 13 23 36 17

Soru

Cevap Devamı…

Const Belirteci const belirteci, programcının derleyiciye belirli bir değişkenin değerinin değiştirilmemesi gerektiğinin bildirmesini sağlar. Eğer const olarak bildirilmiş bir değer değiştirilmeye çalışılırsa, derleyici bunu yakalar ve bilgisayara bağlı olarak hata ya da uyarı mesajı yayınlar.

Const olmadan-örnek /*küçük harfleri büyük harfe çevirmek.*/ #include <stdio.h> #include <ctype.h> void buyukHarfeCevir( char * ); int main( ) { char string[ ] = "karakterler ve $32.98"; printf( "Çevrilmeden önceki string: %s", string ); buyukHarfeCevir( string ); printf( "\nÇevrildikten sonraki string: %s\n", string ); return 0; } void buyukHarfeCevir ( char *sPtr ) { while ( *sPtr != '\0' ) { if ( islower( *sPtr ) ) *sPtr = toupper( *sPtr ); /* büyük harfe çevir */ ++sPtr; /* sPtr ile diğer karaktere geç */ } }

Const olunca-örnek #include <stdio.h> void karakterleriYazdir ( const char * ); int main( ) { char string [ ] = "string karakterlerini yaz"; printf( "String:\n" ); karakterleriYazdir( string ); printf( "\n" ); return 0; } /* karakterleriYazdir fonksiyonunda sPtr bir karakter sabitini gösteren göstericidir. Karakterler sPtr kullanarak değiştirilemezler (yani sptr, sadece okunabilir bir göstericidir). */ void karakterleriYazdir ( const char *sPtr ) { for ( ; *sPtr != '\0'; sPtr++ ) /* ilk değer ataması yok */ printf( "%c", *sPtr ); }

Const olunca-örnek #include <stdio.h> void f ( const int * ); int main( ) { int y; f( &y ); /* f doğru olmayan bir değişiklik yapmaya çalıştı */ return 0; } /* f içinde xPtr,bir tamsayı sabitini gösteren göstericidir */ void f ( const int *xPtr ) { *xPtr = 100; /* const nesnesi değiştirilemez */ }

Const olunca-örnek #include <stdio.h> int main( ) { int x, y; int * const ptr = &x; /* ptr, tamsayı gösteren sabit bir göstericidir Bir tamsayı ptr ile değiştirilebilir ama ptr hafızada her zaman aynı yeri gösterir */ *ptr = 7; ptr = &y; return 0; }

Sizeof operatörü /*sizeof operatörü dizi isimlerine uygulandığında dizideki byte sayısını döndürür.*/ #include <stdio.h> size_t buyukluguBul( float * ); int main( ) { float dizi[ 20 ]; printf( "Dizinin byte uzunluğu: %d" "\nbuyukluguBul ile döndürülen byte sayısı: %d\n", sizeof( dizi), buyukluguBul( dizi ) ); return 0; } size_t buyukluguBul( float *ptr ) { return sizeof( ptr ); }

Operatörlere Yeni İşlevlerin Yüklenmesi (Operator Overloading)

Operator Overloading-Örnek

Kaynaklar Atılım Üniversitesi-Yrd. Doç. Dr. Çiğdem Turhan - Yrd. Doç. Dr. Fatma Cemile Serçe-C++ Dersi Sunumları Anadolu Üniversitesi- Öğr. Gör. Levent Terlemez-Bilgisayar Programlama Ders Notları C ve C++ Deitel&Deitel Programlama Kitabı İTÜ-Dr. Feza Buzluca-Nesneye Dayalı Programlama Dersi Notları