Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar

Slides:



Advertisements
Benzer bir sunumlar
STRİNG FONKSİYONLARI.
Advertisements

Diziler.
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
Bölüm 12 ÜST DÜZEY KONULAR Dinamik Bellek Ayırma Önişlemci
Göstericiler (Pointers)
void medyan(int cevap[]) { int j; siralama(cevap);
Bölüm 7 Fonksiyonlar GÖSTERGELER Gösterge Tanımı
Bölüm 2 C Dilinin Temelleri
switch - case Yapısı Döngü Yapıları
Bölüm 4 İşlevlerve Modüler Programlama. 1 / 8 İşlev Tanımı /* İşlev açıklama satırı */ ( ) { }
Değişken Bildirimleri
Atama ve Girdi/Çıktı Komutları
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Bölüm 10 Yapılar ve Birleşimler
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
NESNEYE YÖNELİK PROGRAMLAMA
Soru1: Kullanıcıdan iki tam sayı girmesini isteyen ve daha sonra büyük olan sayı ile beraber ‘en büyüktür’ ifadesi yazan, ancak sayılar birbirine eşitse.
Erişim Denetimi, Fonksiyon
Fonksiyonlar.
C ile Programlamaya Giriş
FONKSİYONLAR.
Özyineleme(Recursion)
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
DÖNGÜLER.
Bilgisayar Programlama
Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
Fonksiyonlar Fonksiyon Tanımı
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
Diziler (Arrays).
Temel Giriş/Çıkış Fonksiyonları
C PROGRAMLAMA FONKSİYONLAR Hazır fonksiyonlar (math, rand) Kullanıcı Tanımlı Fonksiyonlar Değer ile Çağırma.
Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri Dizgi Çıktı İşlemleri Dizgi Fonksiyonları Karakter Fonksiyonları Gösterge Dizgileri.
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
Algoritmalar ve Programlama I Ders 10: ALTPROGRAM KAVRAMI ve FONKSİYON
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
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.
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.
Fonksiyonlar.
BİLGİSAYAR programlama II
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.
Programlama Dillerinin Prensipleri
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:
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.
Programlamaya Giriş-I Bölüm-1. Algoritma Algoritma günlük yaşamımızda yaptığımız işler sırasında sıklıkla kullandığımız bir yöntemdir. Algoritma, bir.
Fonksiyonlar ve Diziler
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
C Programlama Dili Bilgisayar Mühendisliği.
C’de Fonsiyonlar Aslı Ergün.
Bölüm 7 Fonksiyonlar GÖSTERGELER Gösterge Tanımı
BİLGİSAYAR PROGRAMLAMA Ders 8: Fonksiyonlar
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
FONKSİYONLAR Programlamada fonksiyon kullanmanın en önemli sebebi kodların tekrar edilmesini engellemektir. Örneğin; karekök yada üsalma işlemi yapan bir.
Bölüm 2 C Dilinin Temelleri
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
YAPISAL PROGRAMLAMA Hafta-7
Bölüm 6: Kullanıcı Tanımlı Fonksiyonlar I
Bölüm 2 C Dilinin Temelleri
Bilgisayar Bilimi Fonksiyonlar-2.
C ile Programlamaya Giriş
MTM216 GÖRSEL PROGRAMLAMA
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar Değer Döndüren Fonksiyonlar Çok Parametreli Fonksiyonlar Değişken Kapsamları Çok Fonksiyonlu Programlar

Fonksiyon Tanımı Karmaşık ve uzun programları, küçük, basit ve belirli bir amacı olan program parçalarına bölebiliriz. Belirli bir işi yapan bu program parçalarına fonksiyon adı verilir. main ana fonksiyondur.

Fonksiyon Tanımı Örnek: İki fonksiyondan oluşan bir program

Fonksiyon Tanımı Fonksiyon Başlığı döndürme_tipi fonksiyon_ismi (parametre_ listesi)

Örnek:Girilen iki sayıdan büyük olanını bulan max fonksiyonu #include <stdio.h> int max(int a, int b) { if (a>b) return a; else return b; } main() {int i=10; int j=15; int k; k=max(i,j); printf("maksimum deger=%d",k); return 0;

Fonksiyon Tanımı Fonksiyon Prototipi Fonksiyon başlığına benzer, cümle sonunda noktalı virgül vardır. Fonksiyon prototipi program başında yer almalıdır. Böylece, derleyici, fonksiyon prototipini gördüğünde fonksiyon ismini tanır. int topla(int a); veya int topla(int);

Değer Döndürmeyen Fonksiyonlar Parametresiz Fonksiyonlar Parametreler, fonksiyonların çağırıldıkları yerden veri almasını sağlayan değişkenlerdir. Parametresiz, değer döndürmeyen fonksiyonlar çağırıldıkları yerden bir veri almayan ve herhangi bir veri geri döndürmeyen fonksiyonlardır.

Değer Döndürmeyen Fonksiyonlar Parametreli Fonksiyonlar çağırıldıkları yerden veri alan ama herhangi bir veri geri döndürmeyen tip fonksiyonlardır.

Değer Döndüren Fonksiyonlar Parametresiz Fonksiyonlar çağırıldıkları yere bir değer döndüren ve çağırıldıkları yerden bir veri almayan fonksiyonlardır.

Değer Döndüren Fonksiyonlar Parametreli Fonksiyonlar hem çağırıldığı yerden değer alan, hem de çağırıldığı yere değer döndüren fonksiyonlardır.

Çok Parametreli Fonksiyonlar Fonksiyon Başlığı döndürme_tipi fonksiyon_ismi (formal_parametre_listesi) Fonksiyonu çağırma cümlesi fonksiyon_ismi (gerçek_ parametre_listesi);

Çok Parametreli Fonksiyonlar

Değişken Kapsamı Değişken kapsamı, bir değişkenin tanımının programın hangi bölümünde geçerli olduğunu veya tanındığını gösterir. Yerel kapsam, değişkenin tanımlandığı fonksiyona ait olduğunu ve değişkene sadece tanımlandığı fonksiyon içinden erişilebilindiğini gösterir. Bu tip değişkenlerin tanımı fonksiyon içinde yapılır ve bu değişkenler fonksiyonun bitiminde bellekten silinirler. Genel kapsamlı bir değişken, fonksiyonların dışında tanımlanır ve tanımlamanın yapılmasından sonra yazılmış tüm fonksiyonlar tarafından tanınır ve kullanılır.

Değişken Kapsamı

Değişken Kapsamı f() fonksiyonu çağırıldığında Çıktı 10 5 3 30 11 4 10 5 3 30 11 4 10 5 5 f() fonksiyonu içinde

Çok Fonksiyonlu Programlar Bir program birden fazla fonksiyondan oluşursa, main() fonksiyonu, istenen fonksiyonu çağırabilir veya bir fonksiyon başka bir fonksiyonu çağırabilir. #include <stdio.h> int faktoriyel (int k); int kombinasyon (int n, int r); int main(void) { int k,s,cevap; printf(“Iki tamsayi giriniz:”); scanf(“%d%d”,&k,&s); cevap=kombinasyon(k,s); printf("Kombinasyon=%3d ",cevap); return(0); } int faktoriyel (int k) /*Faktoriyel hesabi*/ { int i, s=1; for(i=1;i<=k;++i) s*=i; return (s); int kombinasyon (int n, int r) /*Kombinasyon hesabi*/ { int s; s=faktoriyel(n)/(faktoriyel(r)*faktoriyel(n-r));

Değişkenlerin Kullanım Hakları Global(Genel) veri tanımlamaları: Programın en üstünde main dahil hiçbir blok içerisinde yer almayacak şekilde yapılan tüm tip tanımlamaları bütün ifadeler için globaldir. Global değişkenler kendinden sonra kodlanan her C komutu içinde kullanılabilirler. Global değişkenler program bellekte var olduğu sürece varlıklarını sürdürürler. Herhangi bir fonksiyonun bu değişkene atadığı bilgiye bir diğer fomksiyon rahatlıkla ulaşabildiği için alt programlar ve fonksiyonlar arasında veri transferinde kullanılabilirler

Global değişken kullanım örneği float c(); //prototip int x; void a() { } int y; void b() { } float c() { } main() { } Burada verilen programda x ve y değişkenlerinin geçerliliği her fonksiyon için geçerli değildir. X değişkeni tüm fonksiyonların üstünde tanımlandığı için programın her yerinde kullanılabilirken , y değişkeni a() alt programının altında tanımlandığı için sadece b(), c() alt programları ve main için geçerlidir. a() alt programı için tanımsızdır. Prototipler sadece fonksiyona giriş/çıkış tiplerinin ne olduğunu derleyiciye bildirirken fonksiyon içinde kullanılacak değişkenler hakkında bilgiye sahip değildirler. C() fonksiyonu x ve y değişkenleinden sonra tanımlandığı için her iki değişkenide kullanabilir. Burada verilen programda x ve y değişkenlerinin geçerliliği her fonksiyon için geçerli değildir. X değişkeni tüm fonksiyonların üstünde tanımlandığı için programın her yerinde kullanılabilirken , y değişkeni a() alt programının altında tanımlandığı için sadece b(), c() alt programları ve main için geçerlidir. a() alt programı için tanımsızdır. Prototipler sadece fonksiyona giriş/çıkış tiplerinin ne olduğunu derleyiciye bildirirken fonksiyon içinde kullanılacak değişkenler hakkında bilgiye sahip değildirler. C() fonksiyonu x ve y değişkenleinden sonra tanımlandığı için her iki değişkenide kullanabilir.

Lokal (Yerel) veri tanımlamaları Fonksiyonlar dahil herhangi bir blok içersinde yer alan tüm değişken tanımlamaları yerel tanımlamalardır. Bu tür değişkenler sadece tanımlandıkları blok içerisinde veya bu blok içinde yer alan diğer alt bloklar içersinde kullanılabilirler. Lokal değişkenlerin ömrü, bloğun icra edilme süresi kadardır. Lokal olarak tanımlanmış bir değişken ile global olarak tanımlanmış bir değişkenin aynı olması halinde her iki değişkende farklı bir değişken olarak ele alınır. Lokal değişkene yapılan atamalardan global değişken etkilenmez. Bloğun icrası bittiğinde lokal değişken iptal edileceğinden global değişken yine kullanım hakkını ele geçirir.

Lokal değişken kullanım örneği: #include <stdio.h> int x=5; ----------------- global tanımlama void a() { int x=7;----------------- lokal tanımlama printf(“ %d “,x); { int x=9;-------------- blok içinde lokal değişken printf(“ %d”, x); } printf(“ %d ”,x); main() { a(); printf(“ %d \n”,x); Program çıktısı: 5 7 9 7 5

Yerel değişkenleri varlığının korunması Belli bir bilginin sadece bir fonksiyon veya blok tarafından kullanılması fakat bloğun icrası bittiğinde değerin kaybolmayıp bloğun tekrar icrasına kadar korunması gerektiğinde değişken isminin önünde static anahtar kelimesi kullanılır. Global değişkenlerin önünde static anahtar kelimesinin kullanılması gerekmez.

Static anahtar kullanımına örnek #include <stdio.h> int y=3; void a() { static int x=0; printf(" statik x \'in su anki degeri: %d dir\n",x); ++x; } main() {while (y>0) {printf("y\'nin degeri: %d dir\n",y); y--; a(); #include <stdio.h> int y=3; void a() { int x=0; printf(" statik x \'in su anki degeri: %d dir\n",x); ++x; } main() {while (y>0) {printf("y\'nin degeri: %d dir\n",y); y--; a(); Ekran çıktısı: y’nin değeri 3’dir statik x’in değeri 0’dir y’nin degeri 2’dir statik x’in değeri 1’di, y’nin degeri 1’dir statik x’in degeri 2’dir Ekran çıktısı: y’nin değeri 3’dir statik x’in değeri 0’dir y’nin degeri 2’dir statik x’in değeri 0’di, y’nin degeri 1’dir statik x’in degeri 0’dir

Sabit tanımlama (Const) Const(sabit): değeri programın çalışması boyunca değiştirilemez const tip Belirleyici =değeri; const float PI=3.14; Tip belirtilmez ise tam sayı kabul edilir

Örnek: #include <stdio.h> main() { const float PI=3.14; float r, Alan; scanf(“%f”,r); alan=PI*r*r; printf(“Alan=%f”,alan); }

Öz Yinemeli Fonksiyonlar (Recursive Functions) Kendini çağıran fonksiyonlardır Örneğin: Faktoriyel hesabı long fact(long i) { if( i<2) return 1; else return i* fact (i-1); } Örnegin: n=4 için fonksiyonun kendisini çağırdığı satır şöyledir: 4* fakt(3), 3*fact(2), 2*fact(1) 24=4*6 3*2 2*1