Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
NİŞANTAŞI ÜNİVERSİTESİ
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Fonksİyon tanımı, fonksİyon çağırma, FONKSİYONLARIN PROTOTİPİ, BAŞLIK DOSYALARI NİŞANTAŞI ÜNİVERSİTESİ © İktisadi, İdari ve Sosyal Bilimler Fakültesi iisbf.nisantasi.edu.tr
2
FONKSİYON TANIMI Büyük programların yazılması kadar değiştirilmeleri, hatalarının bulunması ve düzeltilmesi oldukça zordur. Bu nedenle büyük programlar modül veya fonksiyon denilen küçük program parçalarına ayrılır. Buna modüler programlama denir.
3
FONKSİYON TANIMI tip fonksiyon_adı (parametre listesi) { yerel değişkenler; komutlar; return (ifade); }
4
FONKSİYON ÇAĞIRMA Bir fonksiyonu çağırmak, yani çalıştırmak için ana programda fonksiyon adının yanına parantez içinde fonksiyona geçirilmek istenilen değerler listesi yazılır: fonksiyon_adı (argüman listesi); Burada argüman listesi birbirinden virgülle ayrılmış bulunan değerler veya bu değerleri taşıyan değişkenlerdir. Buradaki fonksiyona çağıran fonksiyon denir. Çağıran fonksiyondaki argümanların tipi ile çağrılan fonksiyonda argümanlara karşılık gelen parametrelerin tipi aynı olmalıdır. Bunların sayısı en çok 31’dir.
5
ÖRNEK Bir sayının küpünü hesaplayıp geri döndüren C fonksiyonunu yazınız. Bu fonksiyonu kullanarak klavyeden girilen 5 sayının küpünü hesaplayıp ekrana yazdıran C programını yazınız.
6
ÖRNEK Çağırıldığı zaman ekrana “Merhaba C” mesajını yazan fonksiyonu tasarlayınız. Bu fonksiyonu kullanarak ekrana 10 kez “Merhaba C” yazdıran C programını yazınız.
7
ÖRNEK 3 adet tamsayıdan en büyüğünü bulup geri döndüren bir C fonksiyonu yazınız. Bu fonksiyonu kullanarak klavyeden girilen 3 tamsayıdan en büyüğünü bulup ekrana yazdıran C programını yazınız.
8
ÖRNEK Bir kullanıcı Celsius cinsinden verilen bir sıcaklık değerini Fahrenheit; Fahrenheit cinsinden verilen değeri ise Celsius cinsinden bulmak istemektedir. Kullanıcıya hangi tür çevrim yapacağını soran ve buna göre çevirmeyi yapan C programını yazınız. Eğer kullanıcı f girerse çevirme Celcius’tan Fahrenheit’a; c girerse Fahrenheit’dan Celsius’a olmalıdır. Formül olup F: Fahrenheit, C: Celsius’u ifade etmektedir. Bu programı tasarlarken 2 ayrı fonksiyon yazınız. Fonksiyonlardan biri Celsius’u parametre olarak almalı ve Farheinheit değerini geri döndürmeli; diğer fonksiyon ise Fahrenheit değerini parametre olarak almalı ve Celsius değerini geri döndürmelidir.
9
ÖRNEK
10
ÖRNEK Adları topla, cikar,carp ve bol olan dört fonksiyon tanımlayarak, klavyeden girilen iki sayı ve bir karaktere göre (+, -, *, /), seçilen işlemi gerçekleştirerek sonucu ekrana yazdıran C programını yazınız.
11
ÖRNEK
12
FONKSİYON ÇAĞIRMA Fonksiyonlar iki farklı şekilde çağrılır ;
1) değerle çağırma (call by value) 2) adresle çağırma (call by refrence) Değerle çağırma yönteminde argümanın değeri, çağrılan fonksiyon içinde karşısındaki parametreye kopyalanır. Kopyalanan değerin içinde kullanılması veya değiştirilmesi argümandaki değeri değiştirmez. İkinci yöntemi gösterici konusunu incelerken ele alacağız.
13
FONKSİYON ÇAĞIRMA Bir programda istenildiği kadar fonksiyon kullanılabilir ve bu fonksiyonlardan her biri bir diğerini çağırabilir. Özellikle main() fonksiyonu diğer bütün fonksiyonları çağırabilir Fonksiyonlar bir programda herhangi bir sırada veya alfabetik sıraya göre veya sırasına göre yer alabilir. main( ) bile istenilen herhangi bir yere konabilir, ilk başta yer alması zorunlu değildir.
14
FONKSİYONLARIN PROTOTİPİ
ANSI C’nin çok önemli özelliklerinden biri de fonksiyonun prototipi ile ilgilidir. Derleyici, fonksiyonun prototipine bakarak fonksiyonun tipini, parametre sayısını, parametrelerinin tipini ve bu parametrelerin sırasını belirler. Programda fonksiyonun çağrılması veya kullanılması sırasında bir uyumsuzluk olması halinde derleyici uyarı mesajı verir. Bu da programın daha sağlıklı çalışmasını sağlar.
15
FONKSİYONLARIN PROTOTİPİ
Fonksiyon prototipi formatı: tip fonksiyon_adı (tip degisken_ismi_1, …… ,tip degisken_ismi_n) Fonksiyon prototipinde parametre isimleri yer almayabilir: tip fonksiyon_adı (tip,tip, …… ,tip) Fonksiyonlar genelde main() ‘den önce yer alır. Kaynak: İbrahim Güney, C Programlama Dili, Nobel Yayıncılık
16
BAŞLIK DOSYALARI Her standart kitaplığın ilgili olduğu bir başlık dosyası vardır. Bu dosyada, kitaplıktaki tüm fonksiyonların prototipleri ve bu fonksiyonlar için gerekli olan değişik veri tipleri ile sabitlerin tanımları yer alır. Programcı, kendisi için de bir başlık dosyası oluşturabilir. Önceden hazırlanmış ve kullanıcının hizmetine sunulan özel amaçlı fonksiyonların prototipleri, bazı makro ve sembolik sabit tanımlamaları değişik başlık dosyalarında toplanmıştır. Programlarda hangi başlık dosyasının fonksiyonu kullanılacaksa o başlık dosyası #include yanında yer almalıdır. Kaynak: İbrahim Güney, C Programlama Dili, Nobel Yayıncılık
17
BAŞLIK DOSYALARI <ctype.h>. Bu dosyada karakterlerle ilgili işlemler(testler) yapan fonksiyonların prototipleri bulunur. tolower(ch): ch küçük harf ise aynı bırakır, büyük ise küçük yapar. toupper(ch): ch büyük harf ise aynı bırakır, küçük ise büyük yapar. < conio.h>. Bazı özel giriş/ çıkış fonksiyonların prototipini içerir: getch(),getche(),getchar(): klavyeden karakter okur. putchar(ch): ekrana ch deki karakteri görüntüler. <math.h>. matematik fonksiyonlann prototiplerini içerir. Dosyadaki fonksiyon listesi aşağıda verilmiştir. Kaynak: İbrahim Güney, C Programlama Dili, Nobel Yayıncılık
18
BAŞLIK DOSYALARI xy exp(x) ex exp(1.0) = 2.71828 log(x) lnx
<math.h>. matematik fonksiyonlann prototiplerini içerir. Dosyadaki fonksiyon listesi aşağıda verilmiştir. Fonksiyon Açıklama Örnek sqrt(x) karekök x sqrt(900.0) = 30.0 exp(x) ex exp(1.0) = log(x) lnx log( ) =1.0 fabs(x) |x| fabs(-3.0) = 3.0 ceil(x) < x olan tamsayı ceil(9.2) = 10.0 floor(x) > x olan tam sayı floor(9.2) = 9.0 pow(x,y) xy pow(9,2) = 81 Kaynak: İbrahim Güney, C Programlama Dili, Nobel Yayıncılık
19
BAŞLIK DOSYALARI <stdio.h>. giriş/çıkış yapan fonksiyonların prototipleri ve bazı sabitlerle ilgili bilgiler içerir: printf( ), scanf(), puts( ), gets()....: giriş/çıkış ile ilgili fonksiyonlar. <stdlib.h>. Rastgele sayılarla ilgili fonksiyonların prototipleri bulunur. rand( ) veya srand() : Her çağırılışında 0-RAND_MAX arasında bir sayı üretir. Randomize( ), random(n): birlikte kullanılır. İlk komut üretilen rasgele sayıların Farklı olmasını sağlar. 0-(n 1) arasında rasgele sayı üretir. Kaynak: İbrahim Güney, C Programlama Dili, Nobel Yayıncılık
20
ÖRNEK basamak.h isimli bir başlık dosyası oluşturunuz. Bu başlık dosyasında basamaksayisi isimli bir fonksiyon tanımlayınız. Bu fonksiyon parametre olarak aldığı tamsayının basamak sayısını geri döndürecektir. Daha sonra bu fonksiyonu çağırarak girilen sayıların basamak sayısını hesaplayan bir program yazınız. Program negatif bir tamsayı girilene kadar çalışmaya devam edecektir.
21
ÖRNEK
22
KayNAKlar Fahri Vatansever, Algoritma Geliştirme ve Programlamaya Giriş, Seçkin Yayıncılık İbrahim Güney, C Programlama Dili, Nobel Yayıncılık
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.