C PROGRAMLAMA D İ L İ

Benzer belgeler
BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

Fonksiyonlar (Altprogram)

BÖLÜM 4 FONKSİYONLAR. Fonksiyonlar programların etkinliğini, kolay yazılmasını, anlaşılmasını ve bellekte daha az yer kaplamasını sağlayan bloklardır.

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

Koşul doğru olduğu sürece istenilen işlem/işlemlerin tekrarlanmasını sağlayan yapıdır.

ALGORİTMA VE PROGRAMLAMA I

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

ALGORİTMA VE PROGRAMLAMA I

C PROGRAMLAMA D İ L İ

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

Ders 6: Karşılaştırma Deyimleri

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Fonksiyonlar. Yrd.Doç.Dr.Bülent Çobanoğlu

Temel Giriş/Çıkış Fonksiyonları

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Sınav tarihi : Süre : 60 dak.

C ile Uygulamalar 3 - Cevaplar

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

Diziler (Arrays) Çok Boyutlu Diziler

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

C dilinde if-else yapısı

Adım Adım C. Dr. Hidayet Takcı

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

Sınav tarihi : Süre : 60 dak. c) En başta #include<stdio.h> yazılmamıştır. c) zt d) Pi e) X0

BMB1002 Bilgisayar Programlamaya Giriş. Dosyalar. Prof. Dr. Necmettin Kaya

PROGRAMLAMAYA GİRİŞ DERS 2

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

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

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

Fonksiyonlar -Genel Test- A

Ders 7: Döngüler. Giriş. 7.1 while Döngüsü

C PROGRAMLAMA D İ L İ

C PROGRAMLAMA D İ L İ

Algoritma ve Programlama: Karar Yapıları ve Döngüler

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

8. Bölüm DİZİLER. tip dizi_ismi[eleman_sayısı]; Bütün diziler 0 ile baţlar.

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu DİZİLER

NESNEYE YÖNELİK PROGRAMLAMA

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

BLM 111 ALGORİTMA VE PROGRAMLAMA I

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

Döngü ve Koşul Deyimleri

8. İŞARETCİLER (POINTERS)

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

Giris {\} /\ Suhap SAHIN Onur GÖK

C ile Uygulamalar 4 - Cevaplar

DOSYA İŞLEMLERİ Programlama dilleri hafta -

HSancak Nesne Tabanlı Programlama I Ders Notları

4.Hafta BİL Soruların Çözümleri

elemanlı bir dizide bir sinyalin 1 er saniye aralıklarla ölçülen gerilim değerleri tutulmaktadır. Bu sinyalin tepeden tepeye genliğini,

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

Klavyeden girilen metnin karakter uzunluğu bulan C programı. Klavyeden girilen metin içerisindeki küçük ve büyük harf sayısını bulan C programı

C ile Uygulamalar 2 - Cevaplar

BLM 111 ALGORİTMA VE PROGRAMLAMA I

BİLİNİRLİK ALANI ve ÖMÜR, KONTROL DEYİMLERİ

#include<stdio.h> #include<conio.h> #define doktorsayisi 3. typedef struct dr{ int ay1, ay2, ay3, ay4; } doktor; float hesapla(doktor dktr){

C++ Dersi: Nesne Tabanlı Programlama

Hafta 13 Fonksiyonlar

BLM 111 ALGORİTMA VE PROGRAMLAMA I

C Programlama Dilininin Basit Yapıları

sayi=3 harf=a reelsayi=8.72 Bellek durumu 5. İşaretç iler (pointers)

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Ders 4: Temel Giriş/Çıkış Fonksiyonları

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

Telefon Rehberi Uygulaması

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Bilgisayar programlama III Fonksiyonlar

BÖLÜM 7: DÖNGÜ KONTROL YAPILARI

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Adım Adım C-II. Eksik kalmış konular

Bölüm 8, Yrd. Doç. Dr. A. Kadir YALDIR PAÜ Bilgisayar Mühendisliği Bölümü BÖLÜM 8: DİZİLER

IF / ELSE IF / ELSE. Bu deyimler, koşullu işlem yapan deyimlerdir ve daima if deyimi ile başlar, else if veya else ile devam eder.

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI

Dr. Fatih AY Tel: fatihay@fatihay.net

Bil Hafta Çalışma Soruları (Yanıtlar)

Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler

Karşılaştırma Komutları (Switch ve? Operatörü)

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

Program Çözümleme. Aşağıdaki örneklerde printf() ve scanf() fonksiyonlarının işlevleri gösterilmektedir. Liste 1.1. Çözümleme:

Pointer Kavramı. Veri Yapıları

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

Nesne Yönelimli Programlama

Dr. Fatih AY Tel:

KONTROL DEYİMLERİ, İŞLEV BİLDİRİMLERİ, DÖNGÜ DEYİMLERİ

C PROGRAMLAMA DİLİNE GİRİŞ

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

ALGORİTMA VE PROGRAMLAMA II

Transkript:

C PROGRAMLAMA DİLİ

Fonksiyonlar (Alt programlar)

Fonksiyon Kavramı Fonksiyon, belirli sayıda verileri kullanarak bunları işleyen ve bir sonuç üreten komut grubudur. Her fonksiyonun bir adı ve fonksiyona gelen değerleri gösteren argumanları(bağımsız değişkenleri) vardır. Genel olarak bir fonksiyon Şekil dekigibi bir kutu ile temsil edilir:

Fonksiyonların girdilerine parametreler yada argumanlar denir. Bir fonksiyon bu parametreleri alıp bir işleme tabi tutar ve bir değer hesaplar. Bu değer çıktı, geri dönüş değeri (returnvalue) olarak adlandırılır. Bir fonksiyonun kaç girişi olursa olsun sadece bir çıkışı vardır.

Tek parametreli sqrt(x) fonksiyonu: İki parametreli F(x,y) = x*x + x*y fonksiyonu:

C Programlama Dili, kullanıcısına bu türden fonksiyon yazmasına izin verir. C dilinde hazırlanan bir fonksiyonun genel yapısı şöyledir: FonksiyonTipi FonksiyonAdı(değişken listesi) değişkenlerin tip bildirimleri Yerel değişkenlerin bildirimi fonksiyon içindeki deyimler veya diğer fonksiyonlar returngeri dönüş değeri;

Örneğin iki sayının toplamının hesaplayacak bir fonksiyon şöyle tanımlanabilir: int topla(x,y) /* klasik biçim */ int x,y int sonuc; sonuc= x + y; return sonuc; veya inttopla(intx,inty) /* modern biçim */ int sonuc; sonuc= x + y; return sonuc; veya inttopla(intx,inty) /* modern biçim */ return(x+y);

Fonksiyonun kimlik kartı! ve kutu gösterimi şöyledir:

Her üç program parçasında da return (geri dönüş) deyimi kullanılmaktadır. Bu deyim C programlama dilinin anahtar sözcüklerinden biridir ve fonksiyon içerisinde sonucu, kendisini çağıran yere göndermek için kullanılır. Yani topla fonksiyonu herhangi bir programın içerisinde kullanıldığında, fonksiyonun üreteceği sonuç return deyiminden sonra belirtilen değişken veya işlem olacaktır.

Örneğin fonksiyon: int t; t = topla(9,6); şeklinde kullanılırsa, t değişkenine 9+6=15 değeri atanır.

Fonksiyon Bildirimi 1. Ana programdan önce: 2. Ana programdan sonra: Bu durumda fonksiyon örneği ana programdan önce bildirilmelidir.

Ana Programdan Önce int topla(int x,int y) /* fonksiyon */ main()

Ana Programdan Sonra inttopla(intx,inty); main() inttopla(intx,inty) İkinci kullanımda fonksiyon prototipi mutlaka bildirilmelidir. Aksi halde bir hata mesajı ile karşılaşılır.

topla fonksiyonunun ana programda kullanılması #include <stdio.h> #include <conio.h> int topla( int x,int y ); main() int toplam,a,b; printf("iki sayi girin : "); scanf("%d %d",&a,&b); toplam = topla(a,b); printf("%d ve %d nin toplami %d dir.\n", a,b,toplam); getch(); int topla( int x, int y ) int sonuc; sonuc = x + y; return sonuc;

Faktöriyel alan fonksiyon ve programı yazınız?

#include <stdio.h> #include <conio.h> main() int faktoriyel(int n); intm; printf("bir sayigirin"); scanf("%d",&m); printf("sayinin faktoriyeli=%d",faktoriyel(m)); getch(); int faktoriyel(int n) inti,f; f=1; for(i=1;i<=n;i++) f=f*i; returnf;

Geri Dönüş Değerleri return anahtar sözcüğünün iki önemli işlevi vardır: 1. 2. fonksiyonun geri dönüş değerini oluşturur fonksiyonu sonlandırır Bu deyiminden sonra bir değişken, işlem, sabit veya başka bir fonksiyon yazılabilir. Örneğin: return (a+b/c); /* parantez kullanmak zorunlu değil */ return 10; /* değişken kullanmak mecbur değil */ return topla(a,b)/2.0; /* önce topla fonksiyonu çalışır */

Bir fonksiyonda birden çok geri dönüş değeri kullanılabilir. Fakat, ilk karşılaşılan return deyiminden sonra fonksiyon sonlanır ve çağrılan yere bu değer gönderilir. Örneğin aşağıdaki harf fonksiyonunda beş tane return deyimi kullanılmıştır. char harf(int not) if( not>=0 && not<50 ) return 'F'; if( not>=50 && not<70 ) return 'D'; if( not>=70 && not<80 ) return 'C'; if( not>=80 && not<90 ) return 'B'; if( not>=90 ) return 'A';

Bu fonksiyon kendisine parametre olarak gelen 0-100 arasındaki bir notun harf karşılığını gönderir. Aslında geri gönderilen değer bir tanedir. Eğer bu fonksiyon aşağıdaki gibi çağrılırsa: char harfim; harfim = harf(78); harfim değişkenine 'C' değeri (karakteri) atanır.

iki return deyimi kullanan bir fonksiyon #include <stdio.h> int artik_yil(int); /* fonksiyon prototipi */ main() int yil; printf("bir yil girin: "); scanf("%d",&yil); if( artik_yil(yil) ) printf("%d artik yil\n",yil); else printf("%d artik yil degil\n",yil); /* yil artıl yıl ise 1 aksi halde 0 gönderir */ int artik_yil(int yil) if( yil % 4 == 0) return 1; else return 0;

Bir fonksiyonun her zaman geri dönüş değerinin olması gerekmez. Bu durumda return deyimi kullanılmaz. Eğer bu anahtar kelime yoksa, fonksiyon ana bloğu bitince kendiliğinden sonlanır. Böyle fonksiyonların tipi void (boş, hükümsüz) olarak belirtilmelidir. Bu tip fonksiyonlar başka bir yerde kullanılırken, herhangi bir değişkene atanması söz konusu değildir, çünkü geri dönüş değeri yoktur. Ancak, void fonksiyonlara parametre aktarımı yapmak mümkündür.

Bu fonksiyon kendisine parametre olarak gelen YTL cinsinden para miktarını 20, 10 ve 5 TL'lik birimler halinde hesaplar. Girilen miktar 5 TL'nin bir katı değilse, ekrana uygun bir mesaj gönderir. bankamatik fonksiyonu bir dizi hesap yapmasına rağmen geriye hiç bir değer göndermez.

#include <stdio.h> void bankamatik(int para) int a,yirmilik,onluk,beslik; a = para; if(a%5==0) yirmilik = a/20; a=a-yirmilik*20; onluk = a/10; a=a- onluk*10; beslik = a/5; a=a-beslik*5; printf("\nyirmilik = %d",yirmilik); printf("\nonluk = %d",onluk); printf("\nbeslik = %d\n",beslik); else printf("girilen miktar 5 YTL ve katlari olmali!\a\n"); /* return deyimi yok!*/ main() int miktar; printf("cekilecek para miktari (YTL) = "); scanf("%d",&miktar); bankamatik(miktar); /* fonksiyon bir değişkene atanmamış! */

/* Basit bir kutu çizen fonksiyon */ #include <stdio.h> void kutu_ciz(int,int); main() kutu_ciz(8,35); /* 8 satır, 35 sütün */ void kutu_ciz( int satir, int sutun ) int sut; for (satir ; satir > 0; satir--) for (sut = sutun; sut > 0; sut--) printf("x"); printf("\n");

Fonksiyon Sayısı Ana programdan, main fonksiyonundan, isteğe göre birden çok fonksiyon çağırmak mümkündür. Bir fonksiyonun çağırılması demek, o fonksiyonun geri dönüş değerinin ana programda kullanılması demektir.

Ana programdan alt programların (fonksiyonların) çağırılması. Fonksiyonu çağırmak için, fonksiyonun adını yazmak yeterlidir.

Makro Fonksiyon Tanımlaması Başlık dosyalarında da bolca olan makro fonksiyon tanımlaması #define önişlemci komutu kullanılarak yapılır. Örneğin aşağıdaki makro fonksiyonlar geçerlidir. #define kare(x) (x)*(x) #define delta(a,b,c) ((b)*(b)-4*(a)(c)) #define yaz() puts("devam etmek için bir tuşa basın...")

buyuk(a,b) makrosu a>b ise a değerini aksi halde b değerini gönderir. /* makro fonksiyon uygulaması */ #include <stdio.h> #define buyuk(a,b) ((a>b)?a:b) /* makro fonksiyon */ main() int x,y,eb; printf("iki sayı girin: "); scanf("%d,%d",&x,&y); eb = buyuk(x,y); printf("buyuk olan %d\n",eb);