ELN1001 BİLGİSAYAR PROGRAMLAMA I



Benzer belgeler
B02.8 Bölüm Değerlendirmeleri ve Özet

ENF-106 C Programlama Dili Ders İçeriği. Grafik fonksiyonları C Programlama Dili Ders Notları Dr. Oğuz ÜSTÜN

Dr. Fatih AY Tel:

Temel Giriş/Çıkış Fonksiyonları (Devam) Örnek :

CSD-OS İşletim Sistemi Projesi - Fonksiyon Açıklama Standardı

DERS SEÇME KOMUTLARI

B05.11 Faaliyet Alanı

int printf (const char *format [, argument,...]);

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUARI YÜZEY DOLDURMA TEKNİKLERİ

OPERATÖRLER BÖLÜM Giriş Aritmetik Operatörler

ENF TEMEL BİLGİSAYAR BİLİMLERİ Eğitim/Öğretim Yılı Bahar Dönemi DÖNEM SONU LAB. ÖDEV TESLİM DUYURUSU

SLCM - Modül (Ders) Yaratılması

SÜREÇ YÖNETİMİ VE SÜREÇ İYİLEŞTİRME H.Ömer Gülseren > ogulseren@gmail.com

Temel Bilgisayar Programlama

İKİ BOYUTLU GÖRSEL ARAÇLAR HARİTALAR

11. TASARIM ŞABLONU KULLANARAK SUNU HAZIRLAMAK

OYUN GELİŞTİRME AŞAMALARI-I. Oyununuzun senaryosunu kısaca tanıtınız/ amacınıda belirtiniz:

Cebir Notları. Bağıntı. 1. (9 x-3, 2) = (27, 3 y ) olduğuna göre x + y toplamı kaçtır? 2. (x 2 y 2, 2) = (8, x y) olduğuna göre x y çarpımı kaçtır?

Şekil 1.2:Programa giriş penceresi

BÖLÜM 7 BİLGİSAYAR UYGULAMALARI - 1

Proje konularından istediğiniz bir konuyu seçip, hazırlamalısınız.

Şekil İki girişli kod çözücünün blok şeması. Tablo İki girişli kod çözücünün doğruluk tablosu. Şekil İki girişli kod çözücü devre


1.0. OTOMATİK KONTROL VANALARI UYGULAMALARI

Kurulum talimatları hakkında genel bilgiler. Elektrik bağlantıları

uzman yaklaşımı Branş Analizi öğretim teknolojileri ve materyal tasarımı Dr. Levent VEZNEDAROĞLU

360- ÖDENECEK VERGİ VE FONLAR HESABINA (GELİR VERGİSİ KESİNTİSİ) İLİŞKİN say2000i UYGULAMASI

eğitim öğretim yılı için 9. sınıfa öğrenci kayıt kabul kriteri nedir?

BÖLÜM 3 FREKANS DAĞILIMLARI VE FREKANS TABLOLARININ HAZIRLANMASI

ARAYÜZÜN TEKNİK ÖZELLİKLERİ

DİKKAT! SORU KİTAPÇIĞINIZIN TÜRÜNÜ "A" OLARAK CEVAP KÂĞIDINA İŞARETLEMEYİ UNUTMAYINIZ. SAYISAL BÖLÜM SAYISAL-2 TESTİ

ÖĞRENCİ BİLGİ SİSTEMİ (OBS)

Merhaba! Fatih ALKAN Yasin UĞURLU Mehmet ÜZER. Biz buradayız çünkü sizi ve yazılımı seviyoruz. Bize ulaşabilirsiniz:

Algoritmalara Giriş 6.046J/18.401J

KATEGORİSEL VERİ ANALİZİ (χ 2 testi)

ŞEFKAT KOLEJİ İMFO SINIF MATEMATİK SORULARI

Veri Toplama Yöntemleri. Prof.Dr.Besti Üstün

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

Görsel Tasarım İlkelerinin BÖTE Bölümü Öğrencileri Tarafından Değerlendirilmesi

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

Çılgın Yıldızlar. Soru:

Her derecede yönetici aslında karar (lar) veren ve bunları uygulayan/uygulatan kişidir. Karar vermek birden çok seçenekten birini uygulamak demektir.

C Operatörler. Öğr. Gör. M. Ozan AKI. Rev 1.0

VEZNE PROGRAMINDA POSTA ÜCRETİ İLE İLGİLİ YAPILAN DÜZENLEMELER (Vezne Sürüm: )

En İyi Uygulamalar ve Kullanım Kılavuzu

Kursların Genel Görünümü

YSÖP KULLANIM KILAVUZU

Örgün Öğrenci Sistemi Anadolu Üniversitesinde öğretim elemanlarının verdikleri

DERS 1. ki De i kenli Do rusal Denklem Sistemleri ve Matrisler

Faaliyet Alanları. 22 Aralık Yıldız Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

Bilardo: Simetri ve Pisagor Teoremi

KILAVUZ SORU ÇÖZÜMLERİ Matematik

ALES / İLKBAHAR 2008 DİKKAT! SORU KİTAPÇIĞINIZIN TÜRÜNÜ "A" OLARAK CEVAP KÂĞIDINA İŞARETLEMEYİ UNUTMAYINIZ. SAYISAL BÖLÜM SAYISAL-2 TESTİ

Yandaki resimlerde Excel Pazartesi den başlayarak günleri otomatik olarak doldurmuştur.

Page 1. Page 3. Not: Doğrusal ölçüde uzunlukların ölçülendirilmesi şekildeki gibidir.

BÖLÜM 11. YAPISAL SORGULAMA DİLİ (SQL) Amaçlar:

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Yazılım Mühendisliği - 1 (BİL 305)

PROGRAMLAMA TEMELLER. C Program Yap s

Yürürlük Tarihi: 12/09/ Kodu: ED Rev. No/Tarihi: 00 1 / 33

2014 LYS MATEMATİK. P(x) x 2 x 3 polinomunda. 2b a ifade- x lü terimin. olduğuna göre, katsayısı kaçtır? değeri kaçtır? ifadesinin değeri kaçtır? 4.

MADDE 3 (1) Bu Yönetmelik, 4/11/1981 tarihli ve 2547 sayılı Yükseköğretim Kanununun 14 ve 49 uncu maddelerine dayanılarak hazırlanmıştır.

Test Geliştirme. Testin Amacı. Ölçülecek Özelliğin Belirlenmesi Yrd. Doç. Dr. Çetin ERDOĞAN

MİKRO İKTİSAT ÇALIŞMA SORULARI-10 TAM REKABET PİYASASI

ÖĞRENME FAALĠYETĠ GELĠġMĠġ ÖZELLĠKLER

for döngüsü while döngüsü Döngüler MATLAB

Olasılık ve İstatistik Dersinin Öğretiminde Deney ve Simülasyon

Yedi Karat Kullanım Klavuzu. Yedi Karat nedir? Neden Karat?

2013 YGS MATEMATİK Soruları

SQL Server'ı Uzaktan Bağlantı İçin Ayarlamak

Fonksiyonlar (Altprogram)

ÜNİTE 5 KESİKLİ RASSAL DEĞİŞKENLER VE OLASILIK DAĞILIMLARI

LABORATUVARIN DÖNER SERMAYE EK ÖDEME SİSTEMİNE ETKİSİ. Prof. Dr. Mehmet Tarakçıoğlu Gaziantep Üniversitesi

KAVRAMLAR. Büyüme ve Gelişme. Büyüme. Büyüme ile Gelişme birbirlerinden farklı kavramlardır.

Uzaktan Kumanda (Yalnızca Belirli Modellerde)

MICROSOFT EXCEL SOLVER PROGRAMI. Y. Doç. Dr. Y. İlker Topcu

Bölüm 3. Sentaks ve semantik tarifi ISBN


KolayOfis Başlangıç Rehberi Kısa Mesaj Yönetimi

Etkinliklere katılım, ücretli ve kontenjan ile sınırlıdır.

BISTEP nedir? BISTEP ne yapar?

Teftiş Kurulu Teftiş Modülü Kullanım Kılavuzu

MATEMATĠKSEL ĠġLEMLER

İÇİNDEKİLER. Sunuş , 3 ve 4. Sınıflar ve 3. Sınıflar Sınıf , 6, 7 ve 8. Sınıflar Sınıf Sınıf...

Biçimli ve güzel bacaklara sahip olmak isteyen kadınlar, estetik cerrahların

VII. VELİLER İÇİN ANKET GİRİŞİ

ANALOG LABORATUARI İÇİN BAZI GEREKLİ BİLGİLER

Ölçme ve Kontrol Ders Notları

Çizelgeleme. Üretim Planlama ve Kontrol 2 Pamukkale Üniversitesi Endüstri Mühendisliği Bölümü. Üretim Planlama ve Kontrol 2

AKSARAY ÜNİVERSİTESİ. Amaç, Kapsam, Dayanak ve Tanımlar

Vektör Uzayları ÜNİTE. Amaçlar. İçindekiler. Yazar Öğr.Grv.Dr.Nevin ORHUN

AIMCO AIMCO. Kullanım Kılavuzu. Mayıs 2016

Bölüm 2 İşletim Sistemi Yapıları

M i m e d ö ğ r e n c i p r o j e l e r i y a r ı ş m a s ı soru ve cevapları

Davranışçı Yaklaşımda Öğrenme Kuramları

a) Birim sorumluları: Merkez çalışmalarının programlanmasından ve uygulanmasından sorumlu öğretim elemanlarını,

MAKÜ YAZ OKULU YARDIM DOKÜMANI 1. Yaz Okulu Ön Hazırlık İşlemleri (Yaz Dönemi Oidb tarafından aktifleştirildikten sonra) Son aktif ders kodlarının

SINIF GEÇME HESABI

-Bursa nın ciroları itibariyle büyük firmalarını belirlemek amacıyla düzenlenen bu çalışma onuncu kez gerçekleştirilmiştir.

Akademik Personel ve Lisansüstü Eğitimi Giriş Sınavı. ALES / Đlkbahar / Sayısal II / 22 Nisan Matematik Soruları ve Çözümleri

Bilgisayar Programlama I (COMPE 113) Ders Detayları

Transkript:

ELN1001 BİLGİSAYAR PROGRAMLAMA I Algoritmalar Sahte Kod, Akış Diyagramları, Kontrol Yapıları Koşullar ve Karar Verme, Seçim İfadeleri Fonksiyonlar Prosedürler Algoritma Herhangi bir problemin çözümü bir dizi eylemi doğru sıralamayla uygulamaktan geçer. Bir problemin çözümünü uygulanacak eylemler ve bu eylemlerin uygulanma sırası cinsinden ifade eden prosedüre algoritma adı verilmektedir. Algoritmalar sahte kod ile metinsel olarak, akış diyagramları ile grafiksel olarak ifade edilir. 1

Sahte Kod (Pseudocode) Sahte kod, işin akışını tarif etmek için yazılan sanal ve bilgi verici bir kod yazım türüdür. Günlük konuşma diliyle yazılarak hem yazması hem de anlaması kolay bir yapı sağlar. Özellikle, yapılandırılmış C kodunun yazımı için algoritma geliştirilmesinde kolaylık sağlar. Sahte kod programları bilgisayarlar üzerinde koşturulamaz. Onun yerine işin akışına bakarak düşünmeyi kolaylaştırır. Dikkatlice hazırlanmış bir sahte koddan gerçek C koduna geçiş yapmak son derece kolaydır. Sahte kod, yalnızca eylem ifadelerini içerir. Programlama dilindeki, örn. int i gibi tanımlamalar sahte kodda yer almaz. Buna rağmen sahte kodun en başında sahte kodda kullanılacak tüm değişkenler tarif edilebilir. Algoritma Sahte Kod İŞ: SINIFTAN ÇIKIP FOTOKOPİCİDEN DERS NOTLARINI ALMA Ayağa kalk Sınıftan dışarı çık Binadan Kapıdan dışarı gir çık Ana binaya kadar yürü Kapıdan Binadan dışarı gir çık Fotokopi odasına kadar yürü Ders notlarını al 2

Akış Diyagramı Akış diyagramı algoritmanın veya algoritma parçasının grafiksel gösterimidir. Grafiksel gösterim için dikdörtgen, oval, elmas ve küçük daireler gibi özel amaçlı geometrik semboller kullanmaktadırlar. Sembolleri birbirine bağlayan çizgilere akış çizgileri adı verilmektedir. Sahte kod gibi, akış diyagramları da algoritma geliştirme ve gösterme konusunda programcıya kolaylıklar sağlamaktadır. İkisinden biri tercih edilebilir. Akış diyagramları kontrol yapılarının nasıl çalıştığını çok net bir şekilde göstermektedir. Dikdörtgen Oval Elmas Küçük daire Akış Diyagramı Oval Dikdörtgen Oval, tüm algoritma çizildiğinde algoritmanın başlangıcını başla ve algoritmanın sonunu bitir olarak belirler. Dikdörtgen, herhangi tipte bir eylemi, hesaplama, giriş/çıkış eylemi gibi, gösteren eylem sembolüdür. Elmas En önemli akış diyagramı ifadesi, elmas sembolü veya diğer adıyla karar sembolüdür, o noktada bir kararın verileceğinin göstergesidir. Küçük Daire Akış diyagramı çizilen algoritmanın aslında daha büyük bir algoritmanın parçası olduğunu göstermek için küçük daire sembolü veya diğer adıyla bağlantı sembolü kullanılmaktadır. Notu toplam nota ekle Sayıcıyı bir arttır 3

Algoritma Akış Diyagramı İŞ: SINIFTAN ÇIKIP FOTOKOPİCİDEN DERS NOTLARINI ALMA Başlat Ayağa kalk Sınıftan dışarı çık Binadan dışarı çık Ana binaya kadar yürü Kapıdan gir Fotokopi odasına kadar yürü Ders notlarını al Bitir Koşullar ve Karar Verme Seçim İfadeleri Kontrol Yapıları Tekil Seçim İfadesi İkili Seçim İfadesi Çoklu Seçim İfadesi 4

Kontrol Yapıları Normalde, bir kod içindeki ifadeler, yazıldığı sıralamayla arka arkaya yürütülür. Buna sıralı yürütme adı da verilmektedir. İşin akışı gereği, bazı durumlarda, bir sonraki satırdaki değil, daha farklı bir satırdaki programın çalıştırılmasına ihtiyaç duyulabilir. Buna transferin kontrolü adı verilmiştir. Bohm ve Jacopini nin çalışmasına göre, tüm programlar üç farklı kontrol yapısıyla oluşturulabilir: Sıralı Yapı Seçimli Yapı Tekil Seçimli Yapı İkili Seçimli Yapı Çoklu Seçimli Yapı Tekrarlamalı Yapı Şu ana kadar yalnızca sıralı yapıda yazılmış programlar üzerinde durduk. Bu aşamada seçimli yapı üzerinde duracağız. Tekil Seçim İfadesi Tek bir eylem üzerinde işlem yapar. Koşuluna göre kod satırındaki bir eylemin yürütülmesine, veya kod satırındaki eylem yürütülmeden o satırın atlanmasına karar verir. Tekil seçim ifadesi if seçim ifadesidir. 5

Tekil Seçim İfadesi - if Bir sahte kod yazalım: Eğer öğrencinin notu 60 tan büyükse Ekrana başarılı yazılsın Burada öğrencinin notunun 60 tan büyük olması ekrana başarılı yazılmasının koşuludur. Eğer koşul gerçekleşirse(true), koşuldan bir sonraki satırda yer alan eylem gerçekleştirilir. Koşul gerçekleşmezse(false), program bir sonraki satırda yer alan eylemi gerçekleştirmeksizin, ondan sonraki satıra atlar. İyi bir programcının önem vereceği konulardan biri de boşluk bırakma konusudur. Dikkat edileceği gibi, koşullu eylemlerde koşuldan sonra gerçekleşen eyleme dikkat çekmek için boşluk bırakılmıştır. Okunabilir program (kod veya sahte kod) yazmanın anahtar noktalarından biri de düzenli olarak gereken satır önlerinde uygun boşlukların bırakılmasıdır. Derleyici, derleme esnasında bu boşlukları ihmal eder. Tekil Seçim İfadesi - if Sahte kod Eğer öğrencinin notu 60 tan büyükse Ekrana başarılı yazılsın C Kodu if (not >= 60) printf( Basarili\n ); Akış Diyagramı not >= 60 doğru Ekrana başarılı yaz 6

İkili Seçim İfadesi Bir sahte kod yazalım: Eğer öğrencinin notu 60 tan büyükse Ekrana başarılı yazılsın Değilse Ekrana başarısız yazılsın Burada öğrencinin notunun 60 tan büyük olması ekrana başarılı yazılmasının koşuludur. Koşul gerçekleşmediği takdirde, ekrana başarısız yazılacaktır. Eğer koşul gerçekleşirse(true), koşuldan bir sonraki satırda yer alan eylem gerçekleştirilir. Koşul gerçekleşmezse(false), program belirlenen diğer bir eylemi yürütecektir. İkili Seçim İfadesi if else Sahte kod Eğer öğrencinin notu 60 tan büyükse Ekrana başarılı yazılsın Değilse Ekrana başarısız yazılsın C Kodu Operatör Karşılığı -? if (not >= 60) printf( Basarili\n ); veya else printf( Basarisiz\n ); Akış Diyagramı not >= 60? printf( Basarili\n ) : printf( basarisiz\n ); printf( %s\n, not >= 60? Basarili : Basarisiz ); Ekrana başarısız yaz not >= 60 doğru Ekrana başarılı yaz 7

İçiçe if else ifadeleri Sahte kod Eğer öğrencinin notu 90 a eşitse veya büyükse Ekrana A yazılsın Değilse Eğer öğrencinin notu 80 e eşitse veya büyükse Ekrana B yazılsın Değilse Eğer öğrencinin notu 70 e eşitse veya büyükse Ekrana C yazılsın Değilse Eğer öğrencinin notu 60 a eşitse veya büyükse Ekrana D yazılsın Değilse Ekrana F yazılsın İçiçe if else ifadeleri Algoritma not >= 90 not >= 80 not >= 70 not >= 60 Ekrana F yaz doğru doğru doğru doğru Ekrana A yaz Ekrana B yaz Ekrana C yaz Ekrana D yaz 8

İçiçe if else ifadeleri C Kodu C Kodu - 2 if (not >= 90) printf( A\n ); else if (not >=80) printf( B\n ); else if (not >= 70) printf( C\n ); else if (not >= 60) printf( D\n ); else printf( F\n ); if (not >= 90) printf( A\n ); else if (not >= 80) printf( B\n ); else if (not >= 70) printf( C\n ) elseif (not >= 60) printf( D\n ); else printf( F\n ); Bileşik ifade - Blok if seçim ifadesi, gövdesinde yalnızca bir ifadeyi yürütebilir. Eğer bir if gövdesine birden fazla ifade yerleştirilmek isteniyorsa, bu ifadeler küme parantezleri { } içerisinde bir blok olarak yerleştirilmelidir. Bu şekilde, tek satırlık ifadenin yazılabileceği her noktaya, bileşik bir ifade yerleştirilebilir. if (not >= 60) printf( Basarili. \n ); else { printf( Basarisiz. \n ); printf( Daha çok calismaniz gerekiyor. \n ); } ÖNEMLİ 9

Çoklu Seçim İfadesi Bir sahte kod yazalım: Harf notuna göre, harf notu A ise ekrana Not: 90-100 arasında yazılsın B ise ekrana Not: 80-90 arasında yazılsın C ise ekrana Not: 70-80 arasında yazılsın D ise ekrana Not: 60-70 arasında yazılsın E ise ekrana Not: 50-60 arasında yazılsın F ise ekrana Not: 50 nin altında yazılsın Burada öğrencinin harf notuna göre sayısal karşılığı seçilecektir. Her harf notunun bir sayısal aralık karşılığı vardır. Hangi harf notu girilirse, onun karşılığı olan sayısal not aralığı seçilecek ve ilgili kod satırı yürütülecektir. Çoklu seçim ifadesi switch case ile gerçekleştirilmektedir. while tekrarlama ifadesi Problem: Öğrenci sayısı 10 olan bir sınıfta, her program çalıştırıldığında, 10 adet notu alarak işleyecek ve ortalamayı hesaplayacak program. Bir sahte kod yazalım: Not toplamını sıfırla Not sayacını 1 yap Not sayacı 10 dan küçük veya 10 a eşit olduğu sürece aşağıdaki kod bloğunu çalıştır Not girişi al Girilen notu not toplamına ekle Not sayacını 1 arttır Not toplamını 10 a bölerek sınıf ortalamasını bul Sınıf ortalamasını ekrana yazdır Not sayıcısı 10 olana kadar not girişi devam etmelidir. 10 kişilik bir sınıfta, girilen not sayıcısı 10 a gelirse, sınıf mevcudunun tamamının notu girilmiş demektir. Not sayıcısı 10 sayısına ulaştığında, sonlandırma koşulu oluşmuş demektir. Not sayıcısı 10 sayısına ulaştığında, döngü sonlandırılarak, ortalama bulunması ve ekrana yazdırılması eylemlerine geçilir. 10

Örnek Problem 1 - Akış Diyagramı Başlat toplam = 0 sayac=1 sayac<= 10? doğru Not girişini al toplam = toplam + not sayac= sayac+ 1 ortalama = toplam / 10 ortalamayı ekrana yazdır Bitir Örnek Program - 1 #include<stdio.h> #include<conio.h> int main(void) { int sayac=1; int not; int toplam=0; float ortalama; while (sayac <= 10) { printf( Notu giriniz: ); scanf( %d,&not); toplam = toplam+not; sayac++; } ortalama = (float) toplam / 10; printf( Sınıf ortalaması %.1f \n, ortalama); getch(); return 0; } sayac not toplam ortalama 11 2345678910 51 45 73 84 99 13 66 92 70 55 125 070 217 283 296 395 479 552 597 648 64.8 11

Örnek Program 2 Sonlandırıcı dizi Problem: Öğrenci sayısı belli olmayan bir sınıfta, her program çalıştırıldığında, rasgele sayıda notu alarak işleyecek ve ortalamayı hesaplayacak program. Sahte Kod: Not toplamını sıfırla Not sayacını 0 yap İlk not girişini al Kullanıcı tarafından girilen değer sonlandırıcı dizi olmadığı sürece aşağıdaki bloğu çalıştır Notu yürüyen toplama ekle Not sayacını 1 arttır Bir sonraki not girişini al (Sonlandırıcı dizi de olabilir) Eğer not sayacı 0 değilse Not toplamını not sayacına bölerek sınıf ortalamasını bul Sınıf ortalamasını ekrana yazdır Eğer not sayacı 0 ise Ekrana Hiç not girilmedi yazdır Örnek Problem 2 Akış Diyagramı Başlat toplam = 0 sayac=0 doğru sayac= 0? not = 101? toplam = toplam + not sayac= sayac+ 1 not girişini al ortalama = toplam / sayac ortalamayı ekrana yazdır ekrana hiç not girilmediği bilgisini yazdır Bitir 12

Örnek Program - 2 #include<stdio.h> #include<conio.h> int main(void) { int sayac=0; int not; int toplam=0; float ortalama; printf( Notu giriniz (Bitirmek için 101): \n ); scanf( %d,&not); while (not!= 101) { toplam = toplam+not; sayac++; printf( Notu giriniz (Bitirmek için 101): \n ); scanf( %d,&not); } if (sayac!= 0) { ortalama = ( float ) toplam / sayac; printf( Sınıf ortalaması %.1f \n, ortalama); } else printf( Hiç not girilmedi!\n ); getch(); return 0; } Fonksiyonlar ve Prosedürel Soyutlama Fonksiyonlar Prosedürler 13

Fonksiyonlar C programlama dilindeki modüllere fonksiyon adı verilmektedir. Fonksiyonlar, bir fonksiyon çağrısı ile çalıştırılır. Bu fonksiyon çağrısı, fonksiyonun adıyla, fonksiyonun çalışabilmek için ihtiyaç duyduğu bilgiyi(argümanlar) içerir. Yönetici (çağıran fonksiyon veya çağıran), çalışanından (fonksiyon) bir görevi tamamlamasını ve görev tamamlandığında kendisini bilgilendirmesini(return) ister. Örneğin, ekrana bilgi yazdırmak isteyen bir yönetici ana fonksiyon, printf çalışanını çağırır, printf görevini tamamlar ve görevini tamamladığına dair bilgiyi, yönetici ana fonksiyona raporlar(return). Math kütüphanesi fonksiyonları sqrt(x) x in karekökü sqrt (900.0) = 30 exp(x) e x exponensiyel fonksiyonu exp(1) = 2.718282 log(x) x in doğal logaritması log(2.718282) = 1 log10(x) x in 10 tabanlı logaritması log(100.0) = 2.0 fabs(x) x in mutlak değeri fabs(-5.0) = 5 ceil(x) x i yukarı yuvarlar ceil(9.2) = 10 floor(x) x i aşağı yuvarlar floor(9.2) = 9 pow(x,y) x in y kuvveti x y pow(2,4) = 16 fmod(x,y) x/y bölümünün float kalanı fmod(13.657,2.333) = 1.992 sin(x) sin(x) x radyan cinsinden sin(0.0) = 0 cos(x) cos(x) x radyan cinsinden cos(0.0) = 1 tan(x) tan(x) x radyan cinsinden tan(0.0) = 0 14

Fonksiyonlar Fonksiyonlar, modülerlik kavramı açısından çok önemlidir. Programın modülarize edilmesini sağlar. Program daha yönetilebilir hale gelir. Yazılım kod parçalarının yeniden kullanılabilirliğine izin verir. Yeniden kullanılabilirlik, nesneye dayalı programlama açısından çok önemlidir. Prosedürel Soyutlama İyi bir isimlendirme ve tanımlanmayla programlar, kişiselleştirilmiş kod kullanmak yerine, belirli görevleri gerçekleştirmek için standart fonksiyonlardan oluşturulabilir. Bu tekniğe prosedürel soyutlama adı verilmektedir. Her printf, scanf veya pow gibi fonksiyonlar kullanıldığında, soyutlama tekniği kullanılmaktadır. Prosedürel soyutlama ile kod tekrarlarından kurtulmak da mümkün olmaktadır. 15

Fonksiyon tanımlaması Return-dönüş-değeri fonksiyon-adı(değişken listesi) { tanımlamalar ifadeler } Tanımlamasında return değeri belirtilmiş bir fonksiyon içinde return komutu kullanarak değer döndürmemek hataya sebep olur. void return değerine sahip fonksiyondan bir değer döndürmek hataya sebep olur. Boş geçilen bir return değer alanı normal olarak int değerine atanır: Fonksiyon_adı(void) Değişken listesi, fonksiyon çağrıldığı zaman fonksiyon tarafından alınan değişkenleri belirleyen virgülle ayrılmış bir listedir. Parametrenin tipi açıkça belirtilmelidir. Belirtilmediği zaman int olduğu kabul edilir. Fonksiyon_adi(dg1,dg2) Fonksiyon Tanımlaması Örneğin fonksiyon değişken listesinde double x,y olarak iki double değişkeni tanımlamak programınızda hataya sebep olacaktır. x double olarak kabul edilecek, y ise int tipinde olacaktır Bir fonksiyon değişkenini, fonksiyon içinde tekrar değişken olarak tanımlamak hataya sebep olacaktır. Bir fonksiyon içinde başka bir fonksiyon tanımlamak hataya sebep olacaktır. Anlamlı fonksiyon ve değişken isimleri seçmek, programı çok daha okunabilir ve anlaşılabilir yapacaktır. Programlar, küçük fonksiyonların birleştirilmesiyle yazılmalıdır. Bu programın çok daha kolay yazılmasını, hataların kolay bulunmasını, bakımının ve geliştirilmesinin kolay olmasını sağlar. Fonksiyon prototipi, fonksiyon başlığı ve fonksiyon çağrısı, hep aynı yapıda olmalıdır. 16

SORULAR? 17