PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

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

int faktoriyel(int sayi) { int sonuc = 1; for(int i=sayi;i>0;i--) sonuc*=i; return sonuc; } int main() { int sayi = faktoriyel(5); }

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

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

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

Hafta 13 Fonksiyonlar

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

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

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

Diziler (Arrays) Çok Boyutlu Diziler

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

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

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

C PROGRAMLAMA D İ L İ

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

Fonksiyonlar (Altprogram)

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

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Sunum İçeriği. Programlamaya Giriş

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

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

Dr. Fatih AY Tel: fatihay@fatihay.net

BİL-142 Bilgisayar Programlama II

NESNEYE YÖNELİK PROGRAMLAMA

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-1 Kapsama Kuralları & Rasgele Sayı Üretimi & Rekürsif (Özyinelemeli) Fonksiyonlar

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

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Yrd. Doç. Dr. Caner ÖZCAN

HSancak Nesne Tabanlı Programlama I Ders Notları

Dr. Fatih AY Tel:

C PROGRAMLAMA D İ L İ

ALGORİTMA VE PROGRAMLAMA I

Rasgele Sayılar. 1.1 Bilgisayar Rasgele Sayı Üretemez! 1.2 rand() fonksiyonu

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

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

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

BLM 112- Programlama Dilleri II. Hafta 2 C Programlarının Bellek Düzeni ve Rekürsif (Özyinelemeli) Fonksiyonlar

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

Fonksiyonlar - Functions. Örnek. Örneğin. C dilinde 5/13/2011. ENF-102 Jeoloji

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

Bölüm 9. Altprogramlar ISBN

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

ELN1001 BİLGİSAYAR PROGRAMLAMA I

C PROGRAMLAMA D İ L İ

8. İŞARETCİLER (POINTERS)

ALGORİTMA VE PROGRAMLAMA I

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.

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

İsimler ve Kapsam. 24 Şubat Programlama Dilleri - Pamukkale Üniversitesi 1

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

Yrd. Doç. Dr. Caner ÖZCAN

BİL-142 Bilgisayar Programlama II

Programlama Dilleri 1. Ders 3: Rastgele sayı üretimi ve uygulamaları

Bir C programı C fonksiyonlarından oluşur. Bunlar arasında main() adı verilen ana fonksiyon daima olmalıdır. C fonksiyonları programı oluşturan

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

PROGRAMLAMAYA GİRİŞ DERS 2

C++ Dersi: Nesne Tabanlı Programlama

BİL1001 Bilgisayar Bilimlerine Giriş 1

BLM 111 ALGORİTMA VE PROGRAMLAMA I

C dilinde if-else yapısı

BİLG Dr. Mustafa T. Babagil 1

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

Bölüm 10. Altprogramların gerçeklenmesi ISBN

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

10/17/2007 Nesneye Yonelik Programlama 3.1

Hafta 11 Çok Boyutlu Diziler

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

Bölüm 10. Altprogramları Uygulamak

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

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

BLM 112- Programlama Dilleri II. Hafta 1 Giriş, Kapsama Kuralları ve Rasgele Sayı Üretimi

Ders 8: Metotlar. barisgokce.com

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

Dr. Fatih AY Tel: fatihay@fatihay.net

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

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

HSancak Nesne Tabanlı Programlama I Ders Notları

1 PROGRAMLAMAYA GİRİŞ

C++ Dersi: Nesne Tabanlı Programlama

ALGORİTMA VE PROGRAMLAMA II

Final Sınavı Soruları Güz, Süre: 90 Dakika

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

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

Bil 101 Bilgisayar Yazılımı 1 Çözümlü Sorular Timur Karaçay

Arasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika

C# Metotlar ve Metot Tanımlama

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

Algoritmalar ve Programlama. Algoritma

Fonksiyonlar -Genel Test- A

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

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

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

public static int Toplam int x, int y

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

Programlama Dilleri Laboratuvarı

Pointer Kavramı. Veri Yapıları

2. Dereceden Denklemin Köklerini Bulan Program

Transkript:

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya gelmesi ile oluşur. Bu özellik bütün yapısal dillerin (C, Fortran, Pascal,...) temelini oluşturur. Yapısal dillere hakim olmak için fonksiyon oluşturmayı ve kullanmayı iyi öğrenmek gerekir

Fonksiyonlar Fonksiyon, programcı tarafından seçilen bir kod bloğuna isim vermek için kullanılan araçtır. Fonksiyon ismi program içerisinde çağrıldığında fonksiyonun temsil ettiği kod çalıştırılır Örneğin bir sayının faktöriyelini hesaplayan aşağıdaki kod parçasını program içerisinde birçok defa yazmak yerine aynı işlemi gerçekleştiren bir fonksiyon tasarlayıp faktöriyel hesabına ihtiyaç duyulduğunda sadece bu fonksiyonun ismini yazmak çok daha pratik olacaktır

Fonksiyon Tanımlama

Değer döndüren fonksiyonlar

void fonksiyonlar

Math kütüphanesi fonksiyonları

Math kütüphanesi fonksiyonları

C Programının Genel Yapısı / Fonksiyonun Çağırılması

Fonksiyon İçerisindeki Değişkenler Fonksiyon ismi ile aynı isme sahip değişken tanımlanmamalıdır. Örneğin aşağıdaki kodda, faktoriyel ismi öncelikle bir fonksiyon olarak tanımlanırken daha sonra bir tam sayı değişkeni için kullanılmıştır. Bu işlemin ardından faktoriyel ismi ile bir fonksiyon çağrısı yapılmıştır. Fakat derleyici isim ezme kurallarını dikkate aldığı için faktoriyel ismini bir tam sayı değişken olarak algılar ve fonksiyon çağrısı yapılamayacağını belirten bir hata verir. İkinci durumda ise tam sayı değişkeni fonksiyon çağrısından sonra tanımlandığı için derleyici faktoriyel isminin bir fonksiyona ait olduğunu bilir ve bir hata görmez ve kodu derler. Sağdaki kod çalışmasına rağmen pratik açıdan büyük problemler doğurabilir. Fonksiyon isimleri ile değişken isimleri asla karıştırılmamalıdır.

return

Örnek

Parametreler Fonksiyonlar yapacakları işlemler için kullanıcıdan bilgi isteyebilirler. Örneğin faktöriyel fonksiyonu hangi sayının faktöriyelinin alınacağını çağırandan(yani programcıdan) parametre olarak beklemektedir. Fonksiyon tanımlanırken dışarıdan beklenen değerler göz önünde bulundurulmalı ve parametreler buna göre yazılmalıdır. Örneğin bir sayının üstünü alan fonksiyon tasarlamak istersek kullanıcıdan iki değer almamız gerekir. İlk parametre üstü alınacak sayı iken diğer parametre üst değeri olmalıdır

Parametreler Aşağıda üst alan bir fonksiyon verilmiştir. Fonksiyon iki parametre alacak şekilde tasarlanmıştır. Eğer dikkat ederseniz fonksiyonun gövdesinde alınan parametreler kullanılmaktadır. Fonksiyonu çağıran kişi iki parametre değeri girmek zorundadır yoksa derleyici hata verecektir. Çağrı yapılırken arka planda derleyici fonksiyonun tasarımına bakar ve fonksiyon çağırmak için gereken makine kodlarını oluşturur. Eğer fonksiyonu çağırırken eksik parametre girerseniz iki parametre almak üzere yazılmış olan makine kodları da yanlış sonuçlar verecektir. Bu yüzden derleyici parametre sayısı konusunda hata kabul etmez.

Parametreler

Fonksiyon Değişken Parametre ÖRNEK1!

Fonksiyon Değişken Parametre ÖRNEK2!

Örnek

Fonksiyon Prototipi

Blok Yapısı

Fonksiyon Dizi Örnek int toplam_hesapla(int n, int A[]) prototipinde bir dizinin elemanlarının toplamını hesaplayan bir fonksiyon yazınız.

Fonksiyon Dizi Örnek (Devam) #include <stdio.h> #include <conio.h> int toplam_hesapla(int n,int a[]) { int toplam=0; for(int i=0;i<n;i++) { toplam=toplam+a[i]; } } return toplam; int main() { int i,n,dizi[50]; printf("gireceginiz eleman sayisini belirtiniz(1 to 50): "); scanf("%d",&n); printf("\n"); for(i=0;i<n;i++) { scanf("%d",&dizi[i]); } printf("girdiginiz elemanlarin toplam = %d\n",toplam_hesapla(n,dizi)); getch(); return 0; }

Statik Değişkenler

rand() fonksiyonu C dilinde, stdlib.h dosyası içine konulan rand() fonksiyonu rasgele sayı üretir. Farklı C derleyicileri farklı algoritmalar kullanabilir. Ama, genellikle, her rand() fonksiyonu 0 ile RAND_MAX arasında bir sayı üretir. RAND_MAX, çoğu derleyicide 32767 olarak belirlenir ve RAND_MAX sabiti stdlib.h dosyası içine konulur Yazı-tura Oyunu: Yazı-tura oyununda tura== 0, yazı== 1 olmak üzere yalnızca 0 ile 1 sayılarından birisini rasgele üretmek için: rand() % 2

rand() fonksiyonu 1-100 aralığında 10 tane rasgele sayı üretmek için Her seferinde farklı rasgele sayılar elde edebilmenin bir yolu: srand(time(null))