C de Detaylı Üs Alma Programı

Benzer belgeler
Algoritma ve Akış Şemaları

Akış Şeması (Flowchart) nedir? C Programlamaya giriş için yol haritası

C++ Dilinde Bazı Temel Algoritmalar

C++ Dosya İşlemleri. C++ da Vektörler. C++ Dosya İşlemleri. Hazırlayan:Muhammed Şamil Özer. Vektörler

PROGRAMLAMAYA GİRİŞ DERS 2

Bilgisayar Programlama. 1.Hafta

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

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

Hafta 13 Fonksiyonlar

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

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

Algoritmalar ve Programlama. Algoritma

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

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

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

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

Unsigned Char Veri Tipi

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

BMT 101 Algoritma ve Programlama I 2. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

Diziler (Arrays) Çok Boyutlu Diziler

Genel Programlama I Ders 6

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Algoritma ve Akış Diyagramları

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

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

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

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

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

Özyineleme (Recursion)

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

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

Genel Programlama I

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

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

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

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

Veri Yapıları ve Algoritmalar

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

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-7 C Programlama Diline Giriş

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

Lambda İfadeleri (Lambda Expressions)

Fonksiyonlar (Altprogram)

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

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

Dr. Fatih AY Tel: fatihay@fatihay.net

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

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

C Programlama Dilininin Basit Yapıları

1 PROGRAMLAMAYA GİRİŞ

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

Sunum İçeriği. Programlamaya Giriş

1.1. Yazılım Geliştirme Süreci

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

Genel Programlama II

GÖRSEL PROGRALAMA HAFTA 3 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

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

Algoritma ve Programlamaya Giriş

Örnek bir Algoritma. Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır.

Yrd. Doç. Dr. Caner ÖZCAN

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

ALGORİTMA VE PROGRAMLAMA I

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

Nesne Yönelimli Programlama

2. Dereceden Denklemin Köklerini Bulan Program

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

NESNEYE YÖNELİK PROGRAMLAMA

3. VERİ GİRİŞ-ÇIKIŞI (4ncü hafta)

BİL-142 Bilgisayar Programlama II

Algoritma ve Akış Diyagramları

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

C Dersi Bölüm 1. Bilgisayar Donanımı

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Dr. Fatih AY Tel:

Pointer Kavramı. Veri Yapıları

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I DERS#3

ALGORİTMA VE PROGRAMLAMA I

Yrd. Doç. Dr. Caner ÖZCAN

Temel Bilgisayar Programlama

BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

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

Veri Yapıları Laboratuvarı

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

C#(Sharp) Programlama Dili

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

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

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

C PROGRAMLAMA D İ L İ

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Transkript:

C de Detaylı Üs Alma Programı Bu uygulama yazısında C de pow() fonksiyonunu kullanmadan üs hesabı yapan programı yazmaya çalıştım. Başta tanımladığım float tipinde 2 fonksiyon sayesinde + lı ve li üs değerleriyle işlem yapabiliyor. Gelecek yazılarda görüşmek üzere [crayon-59df0ea96b648279373212/] Yazar : Ömer Can ESKİCİOĞLU C++ da Vektörler Vektörler Vektör standart isim uzayının (std::) bir parçasıdır ve aslında bir sınıf şablonudur. STL (Standart Şablon Kütüphanesi) in bir üyesidir ve dinamik bir dizidir. İçerisinde hemen hemen verileri ve nesneleri tutan bir dizi oluşturmak için kullanılabilir. C++ vektörü ve vektör fonksiyonları kullanabilmemiz için <vector> kütüphanesini #include etmemiz gerekir. C++ da vektörler şu şekilde tanımlanır. vector<değişken tipi>vektör değişkeni; [crayon-59df0ea96c9b3581283105/]

[crayon-59df0ea96c9c1194613526/] Vektör Fonksiyonları push_back() Veriyi vektörün arkasına ekler. pop_back() elemanını vektörden çıkarır. Son back() Vektördeki son elemanı döndürür. swap() Vektördeki verilerin tümünü bir başa vektördekilerle yer değiştirir. insert() Vektör içinde rastgele bir konuma bir eleman ekler veya çıkarır. erase() Belirtilen konumdan bir eleman çıkarır. size() Vektörün o anki değerini döndürür. begin() Vektörün başlangıcını gösteren bir iteratör döndürür. end() Vektörün sonunu gösteren bir iteratör döndürür. Vektörlerde iteratör kullanımı Vektörlerde iterator vektörün adresine göre işlem yapar. C deki pointer gibi düşünebiliriz. Çeşitli iterator

fonksiyonlarından yararlanabiliniz ve vektörü düzenlememizde yardımcı olurlar. C++ da iterator şu şekilde tanımlanır. vector<değişken tipi>::iterator değişken; [crayon-59df0ea96c9cf707974495/] C++ da Vektör Örnekleri Örnek 1: [crayon-59df0ea96c9d7763660472/] Örnek 2: [crayon-59df0ea96c9df091664584/] Örnek 3: [crayon-59df0ea96c9e8163897039/] *EK BİLGİ: Vektörlerde sıralama(sort) işlemi yapabilmemiz için #include <algorithm> yapmamız gerekir. Örnek 4: [crayon-59df0ea96c9f2678520194/] YAZAR: Ömer Can ESKİCİOĞLU

C Dilinde Wordlist Oluşturma 2 Geçen yazımda C de wordlist oluşturma programını geliştirerek bu programı oluşturdum. Wordlist havuzuna büyük harf, küçük harf ve sayılar eklenmiştir.oluşturulan wordlistlerde sondaki 3 sayı basamağı kullanıcının yapacağı ufak bir işleme göre değiştirilebilir. [crayon-59df0ea96d3db598271023/] Yazar : Ömer Can ESKİCİOĞLU C Dilinde Wordlist Oluşturma 1 Bu yazımda 25 elemanlı bir karakter dizisine rastgele harfler seçip istenilen harf sayısına ve istenilen kelime sayısı dahilinde wordlist oluşturmaya çalıştım. Eğer bu yazdığım kodu biraz daha geliştirebilirsem bundan sonraki c konsolunda bruteforce program denemesi yapacağım. Lütfen görüşlerinizi düşüncelerinizi yoruma eklemeyi unutmayın. [crayon-59df0ea96e346618424232/] Yazılan kod Windows işletim sisteminde Dev C++ editöründe denenmiştir. Eğer kodda hata devam ederse C sürümüne dikkat ediniz. Yazar :Ömer Can ESKİCİOĞLU e-posta:eskiciogluomer@gmail.com

C++ Kütüphanelerin Kullanım Alanları C++ Kütüphaneleri #include komutu C++ ın içinde gelen birtakım kütüphanelerin (library) başlık (header) dosyalarını programa ekleyerek bu kütüphanelerde yer alan bilgileri kullanmamızı sağlar. Bu header dosyaları.h uzantısına sahiptir. stdio.h, conio.h, math.h gibi C++ ın içerisinde gelen birtakım hazır kütüphane başlık dosyaları mevcuttur. Bunun yanısıra C programcısı kendi kütüphanesini kendisi de yaratabilir ya da büyük projelerde programın uzunluğundan dolayı tanımlamalar için başlık dosyalarını kullanmayı tercih edebilir. Dosya isminin iki yanına < ve > işaretleri koyarsak derleyici yalnızca kendi include klasöründeki başlık dosyalarını arayacaktır. Eğer <..> yerine tırnak işareti kullanacak olursak, derleyici öncelikle o anda bulunduğumuz projemize ait klasörün içinde belirttiğimiz dosyayı arayacak, bulamazsa o zaman kendi include klasörüne bakacaktır. Kısaca.. şeklindeki kullanımı kendi yarattığımız header dosyaları için kullanıyoruz. Örnek: #include <stdio.h> #include <conio.h> #include tanimlar.h C ve C++ arasındaki farklardan biri de C++ ın içerisinde standart C de gelenden daha fazla kütüphane fonksiyonu gelmesidir. Örneğin bundan önceki konudaki örnek programda kullandığımız stdio kütüphanesi bir C kütüphanesidir. C++, C nin tüm kütüphanelerini bulundururken, aynı zamanda onların

bazılarına alternatif kütüphaneler de içerir. Merhaba Dünya!!! örneğini stdio.h yerine bir C++ kütüphanesi olan iostream.h kullanarak da yazmamız mümkün. cassert : Makrolar ve programın hatalarının ayıklanmasına yardımcı olacak inceleme araçlarını eklemek için gerekli bilgileri içerir. Bu dosyanın eski adı assert.h idi. cctpye : Karakterlerin bazı özelliklerini test eden fonksiyonların prototiplerini içerir. Ayrıca küçük harfleri büyük harflere çevirmek ya da bunun tam tersini yapmak için kullanılır. Eski adı ctype.h idi. cfloat : Sistemin, float tipindeki sayılar için limitlerini içerir. Eski adı float.h idi. climits : İntegral limitlerini içerir. limits.h yerine kullanılır. cmath : Matematik kütüphane fonksiyonlarının prototiplerini içerir. math.h yerine kullanılır. cstdio: Standart giriş/çıkış kütüphane fonksiyonlarının prototiplerini ve bu fonksiyonlar tarafından kullanılan bilgileri içerir. stdio.h yerine kullanılır. cstdlib : Sayıları metne, metni sayılara çeviren, hafızada yer ayıran, rastgele sayılar üreten ve diğer çeşitli faydalı fonksiyonların prototiplerini içerir. stdlib.h yerine kullanılır. cstring : C tarzı string işleme fonksiyonlarının prototiplerini içerir. string.h yerine kullanılır. ctime : Zamanı ve tarihi yöneten fonksiyonların prototiplerini içerir. time.h yerine kullanılır. iostream : Standart giriş/çıkış fonksiyonlarının prototiplerini içerir. iostream.h yerine kullanılır. iomanip : Veri akışlarını biçimlendirme imkanı sağlayan, akış yönetim fonksiyonlarının prototiplerini içerir. iomanip.h

yerine kullanılır. fstream: Disk üzerindeki dosyalara giriş/çıkış işlemleri yapan fonksiyonların prototiplerini içerir. fstream.h yerine kullanılır. utility : Bir çok standart kütüphane öncü dosyasının kullandığı sınıfları ve fonksiyonları içerir. vector, list, deque, queue, stack, map, set, bitset, functional : Bu öncü dosyalar, standart kütüphane taşıyıcılarını sağlayan sınıfları içerir. Taşıyıcılar, programın çalışması sırasında verileri saklamak için kullanılır. functional : Standart kütüphane algoritmaları tarafından kullanılan sınıf ve fonksiyonları içerir. memory : Standart kütüphane taşıyıcılarına hafızada yer ayıran standart kütüphane tarafından kullanılan sınıfları içerir. iterator : Standart kütüphane taşıyıcıları içindeki veriye ulaşmak için kullanılan sınıfları içerir. algorithm : Standart kütüphane taşıyıcılarındaki bilgi üzerinde işlem yapan fonksiyonları içerir. exception : İstisnai durumları işleyen sınıfları içeren öncü dosyalardır. string : Standart kütüphanedeki string sınıfının tanımlanmasını içerir. sstream : Hafızadan string girişi alan veya hafızaya string gönderen fonksiyonların prototiplerini içerir. local: Farklı dillerin doğal hallerindeki bilgileri (para birimleri gibi) işlemek için kullanılan sınıf ve fonksiyonları içerir.

limits : Her bilgisayar platformu üzerindeki sayısal veri tiplerinin limitlerini belirleyen sınıfları içerir. typeinfo : Çalışma anı tip yanıma yapmak için kullanılan sınıfları içerir (çalışma anındaki veri tiplerini belirler). Temel Kütüphaneler Ve Örnekleri cstring: strchr,strcmp,strcoll,strcpy,strcspn,strerror,strlen,strncat,s trncmp,strncpy,strpbrk,strrchr,strspn,strstr,strtok,strxfm fonksiyonları bu kütüphanede kullanılabilir. Örnek vermek gerekirse; [crayon-59df0ea96ed3e605384923/] ctime: asctime, clock,ctime,difftime,gmtime,localtime, mktime,strftime,time fonksiyonları bu kütüphanededir. Örnek vermek gerekirse; [crayon-59df0ea96ed4d306205496/] cmath : log,sin,cos,tan,ceil,floor,fabs,pow,fmax,fmin, fonksiyonları bu kütüphanededir.örnek vermek gerekirse; [crayon-59df0ea96ed5a985532852/] iostream: cin,cout,cerr,clog,wcin,wcout,wcerr,wclog fonksiyonları bu kütüphanededir. Örnek vermek gerekirse; [crayon-59df0ea96ed65448150063/] cstdio: rename,remove,tmpfile,tmpnam,fclose,fflush,fopen,freopen,setb uf,stvbuf,fprintf,fscanf,printf,scanf,snprintf,sprintf,sscanf, vfprintf,vfscanf,vprintf,vscanf,fgetc,fputs,fgets,getc,getchar,puts,putc,fread,fwrite,fseek,fgetpos,ferror,perror fonksiyonları bu kütüphanede vardır.örnek vermek gerekirse; [crayon-59df0ea96ed6f648106828/]

Yazar: Ömer Can ESKİCİĞLU Fonksiyonlar Fonksiyonlar C++ de çalışan alt program parçacıklarına fonksiyon denir. Fonksiyon karmaşık işlemleri daha kolaya indirgenmeye, kod okunurluğunu attırmaya, programda daha az kaynak kullanmaya yarar. Fonksiyonlar C++ dilinin temel yapıtaşlarındandır. Bir programda en az bir tane fonksiyon vardır. Fonksiyonların onları çağıran fonksiyonlardan aldıkları girdileri ve yine onları çağıran fonksiyonlara gönderdikleri çıktıları vardır. Fonksiyonlar parametre ve argümanlar alır. Fonksiyon çıktılarına geri dönüş değeri denir Fonksiyonlar temel olarak 2 amaçtan oluşur diyebiliriz. 1. Fonksiyon, çalışma süresince belli amaçları gerçekleştirir. (Belli işlemleri yapar) 2. Fonksiyon çalışma sonunda üreteceği bir değeri kendisini çağıran fonksiyona gönderebilir. Fonksiyonların Çağırılması Bir fonksiyonun ne iş yapacağının ve bu işi nasıl yapacağının C dilinin syntax(yazım) kurallarına uygun olarak anlatılmasına o fonksiyonun tanımlanması (definition) denir. Fonksiyonlar birtakım syntax kurallarına tabidir. Bir fonksiyonun çağırılması ise o fonksiyonun yapacağı işi çalışmaya davet edilmesi anlamına gelir. Fonksiyon çağırma ifadesi karşılığında derleyici, programın akışını fonksiyonun kodunun bulunduğu bölgeye aktaracak şekilde bir kod üretir. Programın akışı fonksiyonun kodu içinde bittiyse, yani fonksiyon çalıştığında, programın akışı yine fonksiyonun çağırıldığı noktaya geri dönecektir. Fonksiyon Tanımlaması

C++ da fonksiyon tanımlama genellikle şöyledir : [Geri dönüş değerinin türü] ([parametreler]) { } Fonksiyon bu şekilde işler ancak yapacağı işlevleri yazdığınız programa göre belirlemeniz gerekir. Fonksiyona atacağınız değerleri int main() fonksiyonu içinde yazarız. Fonksiyonun adının yanına fonksiyon hangi parametreleri alıyorsa parantez içinde araya virgül(,) koyarak yukarıdaki fonksiyona döndürürüz. Kısa bir örnek verelim. [crayon-59df0ea96fd7a261462525/] Yukarıdaki kod dizisinde; Fonksiyon değişkeni Fonksiyonumuzun adı Fonksiyondaki değişkenler : intager : topla : a,b Ana fonksiyondaki değişkenler : sayi1,sayi2 Fonksiyon Türü döndüren : Geri değer Fonksiyon değişkeni fonksiyonun türüne göre float,char,double olarak değiştirilebilir. Yukarıda ki fonksiyon aldığı değerleri geri döndürebilen türden bir fonksiyondur. Void Anahtar Sözcüğü Bir fonksiyonun parametre değişkeni ya da geri dönüş değeri olmak zorunda değildir. Bir fonksiyonun parametre değişkeni olmadığı iki şekilde belirtilebilir:

1. Fonksiyon parametre parantezinin içi boş bırakılır, yani buraya hiçbirşey yazılmaz. 2. Fonksiyon parametre parantezinin içine void anahtar sözcüğü yazılır. fonk() fonk(void) { { } } Yukarıdaki tanımlamalar C de aynı anlama gelmiyor. Geri dönüş değerine ihtiyaç duyulmadığı durumlarda da geri dönüş değerinin türü yerine void anahtar sözcüğü yerleştirilir. Örneğin: void sample(void) { } Yukarıda tanımlanan sample fonksiyonu parametre almamakta ve bir geri dönüş değeri de üretmemektedir. Fonksiyon tanımlarken geri dönüş değeri yazılmayabilir. Bu durum geri dönüş türünün olmadığı anlamına gelmez. Eğer geri dönüş değeri yazılmazsa, C derleyicileri tanımlanan fonksiyonun int türden bir geri dönüş değerine sahip olduğunu varsayarlar. Kısa bir void kod örneği: [crayon-59df0ea96fd92895235775/] Yukarıdaki kod dizisinde; Fonksiyon değişkeni :

Fonksiyonumuzun adı : bas Fonksiyondaki değişkenler : Ana fonksiyondaki değişkenler : Fonksiyon Türü döndürmeyen : Geri değer Fonksiyonlarda geri değer döndürme çoğu zaman return komutuyla gerçekleşir. Diziler bu komut parçacığından dolayı 2 farklı amaca hizmet eder. Kullanışlı bir komuttur. Fonksiyon Örnekleri [crayon-59df0ea96fd9e791275910/] [crayon-59df0ea96fda8155445045/] [crayon-59df0ea96fdb2252902750/] [crayon-59df0ea96fdbc072402621/] Yazar : Ömer Can ESKİCİOĞLU C Diline Giriş C Tarihi AT&T Bell laboratuvarlarında, Ken Thompson ve Dennis Ritchie tarafından UNIX İşletim Sistemi ni geliştirebilmek amacıyla B dilinden türetilmiş yapısal bir programlama dilidir. Geliştirilme tarihi 1972 olmasına rağmen yayılıp yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan C Programlama Dili kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin (Microsoft Windows, GNU/Linux, *BSD, Minix) yapımında %95 lere varan oranda kullanılmış, halen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir

dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir. C Diline Giriş C diline geçmeden önce algoritma ve akış şemalarını tam anlamıyla bilmemiz gerekir. Öncelikle C diline başlarken ilk ihtiyacımız olan şey editörlerdir. Tavsiye edilen editörler ; Windows için; -DEV C/C++ -Codeblocks -Visual Studio Linux için; -Netbeans -Codeblocks -Geany Bahsedilen editörlerden işletim sisteminize uygun olanını seçip yükleyiniz. Açıkçası Windows için DEV C/C++ ya da Linux için Netbeans ı tercih ederim. İlk başta kütüphanelerden başlayalım ve programlama dünyasına kocaman bir merhaba diyerek ilk programımızı yazalım. [crayon-59df0ea970a5f881032413/]

Hadi yaptığımız programı ele alalım. İlk başta kullanacağımız kütüphanelerden bahsedelim. Bu yazmış olduğumuz programda stdio.h kütüphanesi kullandık. Bu kütüphane standart giriş çıkış fonksiyonları için kullanılır. Eğer kütüphane yazmadan programı derlemeye çalışırsak programımız kütüphanemiz olmadığı için hata verecektir bu yüzden tanımlamamız gerekecektir. Yazacağımız programlarda int main() adında ana bir fonksiyon tanımlarız ve programımızı bu fonksiyonun içerisine yazarız. İlerideki fonksiyonlar dersimiz de bu konuyu daha detaylı ele alacağız. int main() ana fonksiyonumuzu tanımlarken { } programımızın başlangıç ve bitişine koymamız gerekir aksi halde programımız çalışmayacaktır. Ana fonksiyonumuzu tanımladıktan sonra printf komutu kullanıp ekrana Merhaba Dünya çıkışı verecektir ve return(0) komutu ile programımız sonlanacaktır. C de komutların sonuna ( ; ) işareti getirilir. Ancak bu konu hakkında istisnalar da vardır.bu istisnalardan bazıları; bazı döngü yapıları, karar yapısı vs. İlk programımızda dikkat etmemiz gereken önemli noktalar vardır. Şöyle ki noktalı virgül( ; ), süslü parantez( { } ), kütüphane ekleme gibi durumları unutmamamız gerekir. C de yazacağımız programın ihtiyacı doğrultusunda kütüphane seçimi yapılır. Öncelikle C de kütüphane tanımlarken çalışmamızın başına #include<kütüphane ismi> yazılır ve tanımlanır. Başlarken genellikle kullanacağımız kütüphanelerden bahsedeyim; stdio.h conio.h Standart giriş/çıkış fonksiyonları DOS destekli giriş/çıkış fonksiyonları

math.h stdlib.h graphics.h dos.h Matematiksel fonksiyonlar Dönüşüm sıralama fonksiyonları Grafik fonksiyonları DOS Fonksiyonları ctype.h Karakter dönüşüm ve sınıflandırma string.h Alfa sayısal Genellikle bu kütüphaneler üzerinden işlemler yapacağız. İlerideki derslerde yavaş yavaş ilk basit hesap makinesini operatörler dersimizde yapacağız. Sonraki derse görüşmek üzere Yazar : Ömer Can Eskicioğlu Algoritma ve Akış Şemaları Algoritma : Bir sorunu çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı düzenli mantıksal adımlara algoritma denir. Algoritma aslında bir işi optimum düzeye minimize ederek en iyi şekilde çalıştırmayıda amaçlar. Algoritmanın başlangıcı ve bitişi belli olmalıdır. Açık ve anlaşılır olmalıdır. Günlük yaşantımızda yaptığımız işler sırasında sıklıkla kullandığımız bir yöntemdir. Örneğin ; Algoritma Örneği 1 : /* Otobüse binme algoritması tasarlayınız. (BURDUR için) */ A1: Başla

A2: Evden çıkmak için hazırlan A3: Evden çık A4: Durağa yürü A5: Durakta otobüsü bekle A6: Eğer otobüs durağa geldiyse bin değilse beklemeye devam et A7: Eğer kartında para var ise kartını okut değilse ücreti nakit olarak öde A8: Eğer etrafta boş yer varsa otur değilse ayakta bekle A9: Eğer otobüs durağa yaklaşırsa düğmeye bas değilse bekle A10: Eğer otobüs gideceğin durağa vardıysa in değilse ineceğin yere gitmesini bekle A11: Otobüsten düğmeye bastığın kapıdan in A12: Bitir Algoritma Örneği 2 : /* iki sayının toplamını yapan algoritmayı tasarlayınız. */ A1: Başla A2: a,b,sonuc Oku A3: sonuc = a + b ; A4: sonuc u yaz A5: Bitir Algoritma Örneği 3 : /*Dışarıdan okunan iki sayıdan büyük olanının tek sayı mı, çift sayı mı olduğunu belirleyen bir işin algoritmasını tasarlayınız*/

A1:Başla A2:a,b Oku A3:Eğer a>b ise A4 git, Değilse A5 ya git A4:Eğer a%2==0 ise cift yaz, Değilse tek yaz A5:Eğer b%2==0 ise cift yaz, Değilse tek yaz A6:Bitir Algoritma Örneği 4 : /* Hesap makinesi algoritmasını tasarlayınız. */ A1: Başla A2: a,b,toplama,cikarma,bolme,carpma Oku A3: toplama = a + b A4: cikarma = a b A5: carpma = a * b A6: bolme = a / b A7: toplama Yaz A8: cikarma Yaz A9: carpma Yaz A10: bolme Yaz A11: Bitir Algoritma Kriterleri: Etkinlik Anlaşılır, basit, kesin olmalı

Sonluluk Başla bitiş noktası olmalı Kesinlik Aynı veri için her yeni çalıştırımda aynı sonucu vermeli Giriş/Çıkış Giriş / Çıkış değerleri olmalı Başarım/Performans Çalışma süresi az başarım ve performansı yüksek olmalı Algoritma 2 şekilde ifade edilir; 1. 2. Metin olarak Pseudo Code (Kaba Kod) olarak Sonuç olarak algoritmayı hayatımızın bir parçası olarak kullanmaktayız. Yaptığımız işler düzenli ve sıralı olarak mantık çerçevesinde yapmaktayız. Algoritmayı da tasarlarken amacınız basit, anlaşılabilir, düzenli, sıralı bir algoritma yapmaktır. Akış Şeması Akış şemaları algoritmalarda verilen her adımın görsel olarak anlatılması amacıyla kullanılan yöntemlerden birisidir. Başla : Programın nereden başlayacağını belirtir. Dur/Bitir : Programın nerede sonlanacağını gösterir. Giriş Simgeleri : Klavye, kart okuyucu gibi birimler üzerinden program içerisine veri/bilgi aktarmak için kullanılır. Çeşitli giriş simgeleri vardır. Çıkış Simgeleri : Ekranda göstermek, yazıcıdan kağıda çıkış almak gibi işlemlerde kullanılır. İşlem Simgesi : Dikdörtgen şeklindeki simgenin içine yapılacak işlemler yazılır.

Karşılaştırma Simgesi : Koşullu ifade simgesidir. Koşula göre farklı işlem yapılacağı zaman kullanılır. Simgenin içine koşul yazılır ve evet ve hayır olmak üzere 2 yöne dallanır. Döngü Simgesi : Belirli bir grup işin birden çok sayıda yinelenmesi gerektiğinde kullanılır. Yapılacak işlem simgenin içine yazılır. Fonksiyon Çağırma : Daha önce yazılmış algoritmaların, o andaki algoritmanın içerisine koyulmadan kullanılması için kullanılır. Dosyayı Saklama Simgeleri : Elde edilen bilgi cd, bellek, harddisk gibi saklama birimlerinde saklanması veya daha önceden saklanmış birimleri okunması için kullanılır. Akış Yönü : Bir işlem bittikten sonra program akışının nereye dallanacağını belirtir. Bağlantı Simgeleri : Akış şema çizimi yapılırken sayfaya sığmazsa çizimin başka bir yerden devam edilmesi için kullanılır. İlk C dersimizde görüşmek üzere Yazar : Ömer Can Eskicioğlu