Would you like to react to this message? Create an account in a few clicks or log in to continue.

2 posters

    C Ve C++ Programlama Diline Giriş

    avatar
    azdur05


    Mesaj Sayısı : 9
    Kayıt tarihi : 20/02/13

    C Ve C++ Programlama Diline Giriş Empty C Ve C++ Programlama Diline Giriş

    Mesaj tarafından azdur05 Perş. Mart 21, 2013 9:42 am

    Merhaba;

    Sanırım, C ve C++ adını bilgisayarla az çok haşır neşir olan herkes en az bir kez
    duymuştur. Sizde bu isimleri duyanlardansanız ve nedir, ne değildir,
    nasıl kullanılır gibi birçok soruya yanıt arıyorsanız, doğru yerdesiniz.
    Çünkü bu yazıyla başlayarak C ve C++ ile programlamaya gireceğiz.
    Önce C ile yolumuza koyulup, belli bir olgunluğa ulaştıktan sonra C++ ile devam
    edeceğiz.

    Okuyucularımızın genelini düşünerek, konuyu en temelden almayı daha doğru buldum.
    Yani hedefimiz, programlamayı hiç bilmeyen bir insanın burada okuduklarıyla belli bir
    yerlere ulaşması. İleri derece de olanlarsa sıkılmamak için biraz beklemeli. Lafı fazla
    uzatmadan başlayalım.


    Bilgisayar ve Programlama nedir?


    Bilgisayar çok basit düşündüğümüzde üç ana görevi yerine getiren bir makinedir.
    Girilen bilgiyi alır (INPUT), işler (PROCESSING) ve bu işlenmiş veriden
    bir sonuç (OUTPUT) çıkarır. Bilgisayar, sadece donanım olarak çalışmaz.
    Çünkü yazılım olmadan, donanım ne yapacağını bilemez. Bilgisayar donanımına ne
    yapacağını söyleyecek bir komutlar dizisi gerekir. Yapacağı görevleri, ona anlatan
    komutlara program diyebiliriz. Yani donanıma “sen şunu yap, sonra bulduğun sonucu
    şöyle şuraya ekle” gibisinden işler yaptırmak programın veya bir başka deyişle
    yazılımın işidir. Bir programcı olarak bundan fazlasını bilmek elbette ki avantajdır.
    Ama bilgisayarın bütün özelliklerini bilmeniz gerekmez. Yani yazacağınız bir program
    için o bilgisayarın özelliklerini bilmeseniz de olur.

    Bilgisayarın anladığı tek dil, Makine Dilidir. Bu 16’lık (Hexadecimal) sistemden
    oluşan bir programlama tipidir. Makine dilini anlamak çok zordur ve bu dili kullanmak
    için o bilgisayarın donanım özelliklerini mutlaka bilmeniz gerekir. C de ekrana yazı
    yazmanızı sağlayan “printf();” gibi çok basit bir fonksiyon, makine dilinde
    1A BB 0D BC D5 FF C2 F7... gibi çok daha karmaşık ve hiçbir anlam ifade etmeyen bir
    hâle dönüşür. Makine dili programlama dilleri arasında en alt seviyedir.

    Makine dilinden sonra Assembler Dili gelir. Makine dilini kullanmanın zorluğu ve
    karmaşası üzerine geliştirilen Assembler, daha basit bir yapıdadır. Ama yine de C ile
    mukayese ederseniz çok daha zordur ve kullandığınız bilgisayarın donanımına dair
    hâlen bilgiye gereksinim duyarsınız. Assembler aşağıdaki gibi karmaşık bir
    yapıdadır.

    SEGMENT COM WORD PUBLIC ‘CODE’
    ASSUME CS : COMDS : COM
    ORG 100H
    ENTRY: MOV DVX,OFFSET MSG
    MOV AH,g
    .
    .
    .

    Şuan bunu anlamaya çalışıp, hiç zamanınızı harcamayın. Çünkü öğreneceğimiz dil C,
    işlerimizi ve dolayısıyla hayatımızı çok daha kolaylaştırmaktadır. C, orta seviye
    bir programlama dilidir. Bunun anlamı, hem yazması kolay, hemde üst seviye dillere
    göre daha çok erişim hakkınızın olduğudur. Üst seviye programlama dilleri ise BASIC,
    PASCAL, gibi dillerdir. Üst seviye dillerde, yazması göreceli olarak daha kolay
    olsa da C ile yapabileceklerimiz daha çoktur.


    Program yazmak için ne gerekir?


    Program yazabilmek için hiçbir şeye ihtiyacınız yoktur.
    Program yazmak için Windows’un not defterini veya Linux'da Gedit, Kwrite gibi bir program
    bile kullanabilirsiniz. Önemli olan yazılan programın derlenmesidir. Derlemeye
    “compile” ve derleme işini yapan derleyiciyeyse “compiler” denir. C için internet
    üzerinden birçok Compiler bulabilirsiniz. Ben, program uygulamalarını
    GCC üzerinden
    yapacağım. Aynı şekilde bu derleyiciyi kurmanızı tavsiye ederim. GCC gelmiş geçmiş en
    iyi derleyicilerden biri olduğu gibi, özgür bir yazılımdır! Richard Stallman
    tarafından açık kaynak koduyla sunulmuştur ve arzu ettiğiniz takdirde, sonuna kadar
    değişiklik yapma imkanınız vardır.


    Şayet Windows işletim sisteminiz varsa GCC'yi kurmanız biraz sıkıntılı olabilir.
    Basit bir Google araştırmasıyla,
    Bloodshed Dev-C++ adında bir
    program buldum. GCC üzerine kurulmuş bir yapısı varmış. GCC ile uğraşmak istemeyen
    Windows kullanıcıları, bu programı deneyebilir.


    Algoritma Geliştirmek


    C dilini ve komutlarını öğrenmek, programlamaya başlamak için şarttır ama algoritma
    oluşturamadığımız sürece bir program oluşturmazsınız. Algoritma, mantıktır. Yani neyi,
    nasıl yapacağınızı belirtir. Algoritma türetmek için geliştirilmiş bir metot yok.
    Her program için o metodu sizin bulmanız gerekiyor. Ama hiç merak etmeyin, yazdığınız
    program sayısı arttıkça, algoritma kurmanız daha kolaylaşır.


    Algoritma, programlamanın bel kemiğidir. C dilinde kullanılan komutlar, BASIC veya
    FORTRAN gibi başka dillerde işe yaramaz. Fakat programlama mantığını bir kere
    oturttursanız, C komutlarının yerine pekâlâ başka dillere ait komutları da
    öğrenebilir ve büyük bir zorluk çekmeden diğer dillerde de program yazabilirsiniz.


    Basit bir örnek üzerinden düşünelim. Bir markete gittiniz, kasada ki görevliye
    aldığınız ürünü gösterdiniz, parayı uzattınız, paranın üstünü aldınız. Günlük hayatta
    gayet normal olan bu durumu biraz değiştirelim. Karşınızda insan değil, elektronik bir
    kasiyer olsun. Ona göre bir algoritma geliştirirsek,


    1-) Ürüne bak;
    2-) Ürün Fiyatını bul;
    3-) Parayı al;
    4-) Alınan paradan ürün fiyatını çıkar;
    5-) Kalan parayı ver.


    İnsan zekasının otomatik hâle getirdiği eylemleri, ne yazık ki bilgisayar bilmez
    ve ona biz öğretmek zorundayız. Öğretirken de hata yapma hakkımız yoktur,
    çünkü yanlış öğreti yanlış programlamayla sonuçlanır.


    C Programlama Dili


    Temel Giriş/Çıkış İşlemleri (BASIC I/O):


    C ile ilgili olarak bu ve önümüzdeki yazılarda birçok
    komut/fonksiyon göreceğiz. Ama hep kullanacağımız ve ilk öğrenmemiz
    gerekenler temel giriş çıkış fonksiyonlarıdır. C de klavyeden bir değer
    alabilmek için scanf(); fonksiyonunu kullanırız. Ekrana herhangi bir şey
    yazdırmak içinse printf(); fonksiyonu kullanılır.

    Bir örnekle görelim;
    #include
    int main( void )
    {
    printf("Hello World");
    }

    Eğer bunu derleyicinizde yazıp derlerseniz ve sonrasında çalıştırırsanız ekrana
    Hello World yazılacaktır. #include, standart giriş çıkış başlık dosyasını,
    programa dahil et gibi bir anlam taşır. C'de (ve hemen hemen bütün diğer programlama
    dillerinde) bir kütüphaneyi dahil etmek son derece rutin bir iştir. Aksi halde
    giriş-çıkış fonksiyonlarını dahi her seferinde bizim baştan tanımlamamız gerekirdi.


    main( ), bir programdaki ana fonksyiondur. Ondan sonra gelen ayraç standarttır. Bir bloğu temsil eder.
    İki ayraç işareti arasındaki alan main fonksiyonuna ait bir bloğu oluşturur. printf ise
    yazdığımız metini, ekrana bastırmaya yarayan, standart bir fonksiyonudur.
    Çift tırnak işaretleri içersine yazdığınız herşey printf sayesinde ekrana basılır.


    Dikkat ettiyseniz, her satır sonuna noktalı virgül koyduk. Aslında her satır değil,
    her komutan sonra noktalı virgül koyduğumuzu söylemek daha doğru olacak. Çünkü noktalı
    virgül C dilinde komut ayracı anlamına gelir.

    Şimdi yukarıda yazdığımız basit programı, biraz daha geliştirelim:

    #include
    int main( void )
    {
    printf("Hello World\n");
    printf("Merhaba Dünya");
    return 0;
    }

    Birkaç yeni satır görüyorsunuz. Sırayla ne olduklarını açıklayalım. Az evvel yazdığımız
    "Hello World" yazısının sonuna "\n" ekledik. "\n" bir alt satıra geç anlamına geliyor.
    Eğer "\n" yazmazsak, ekranda "Hello WorldMerhaba Dünya" şeklinde bir yazı çıkar.
    "\n" kullanırsak, "Hello World" yazıldıktan sonra, bir alt satıra geçilir ve ikinci
    satırda "Merhaba Dünya" yazdırılır. En altta "return 0;" adında
    yeni bir komut fark etmişsinizdir. Bunu eklemezseniz, program yine çalışır;
    ancak uyarı verir. Çünkü main fonksiyonu, geriye bir tam sayının dönmesini beklemektedir.
    Yazmış olduğumuz return ifadesiyle bu uyarılardan kurtulabilirsiniz. Detayına girmek
    için henüz erken, return konusuna ileride değineceğiz.


    Yukarıda ki programın aynısını şöyle de yazabilirdik:

    #include
    int main( void )
    {
    printf("Hello World");
    printf("\nMerhaba Dünya");
    return 0;
    }

    Bir önce ve şimdi yazdığımız programların ekran çıktısı aynıdır. Bu örnekle anlatmak
    istediğim, printf( ) fonksiyonunda '\n' konulan yerden sonrasının
    bir alt satıra düşeceğidir.


    #include
    int main( void )
    {
    printf("Hello World\nMerhaba Dünya");
    return 0;
    }

    Gördüğünüz gibi tek bir printf( ); kullanarak aynı işlemi yaptırdık.

    Varsayalım, ekrana çok uzun bir cümle yazmamız gerekti. Örneğin;

    #include
    int main( void )
    {
    printf("Benim adım Çağatay ÇEBİ ve Yazılım Mühendisiyim.\n");
    return 0;
    }

    Bu yazdığımız program hata vermemesine karşın, çalışma verimini azaltır.
    Çünkü yazacaklarınız editör penceresine sığmazsa, yazılanı okumak
    daha zahmetli olur. Önemsiz bir detay gibi gelebilir, ama kod yazma verimini
    ciddi oranda düşüreceğinden emin olabilirsiniz.


    Bu programı aşağıdaki gibi yazmamız daha uygundur:

    #include
    int main( void )
    {
    printf("Benim adım "
    "Çağatay ÇEBİ"
    "ve Yazılım Mühendisiyim.\n");
    return 0;
    }

    Tek bir printf( ); fonksiyonu kullanılmıştır. Ancak alt alta yazarak, metini
    tek seferde görülebilir hâle getirdik. Programı derleyip çalıştırırsanız, alt alta üç
    satır yazılmaz. Cümle bütün olarak gösterilir ve bir önceki örnekle tamamen aynıdır.
    (Satırların alt alta görünmesini isteseydik; daha önce bahsettiğimiz gibi '\n'
    koymamız gerekirdi.)


    Ekrana, Ali: "Naber, nasılsın?" dedi. şeklinde bir yazı yazdırmamız gerekiyor diyelim.
    Bu konuda ufak bir problem yaşayacağız. Çünkü printf( ); fonksiyonu gördüğü ilk iki çift
    tırnak üzerinden işlem yapar. Böyle bir şeyi ekrana yazdırmak için aşağıdaki gibi bir
    program yazmamız gerekir:


    #include
    int main( void )
    {
    printf("Ali: "Naber, nasılsın?" dedi.\n");
    return 0;
    }

    printf( ); fonksiyonunu kullanmayı sanırım iyice anladınız. printf( yazıp,
    sonra çift tırnak açıyor, yazmak istediklerimizi yazıyor, çift tırnağı sonra da
    parantezi kapatıyor, sonuna noktalı virgül ekliyoruz. Alt satıra geçmek içinse,
    yazdıklarımızın sonuna '\n' ekliyoruz. Çift tırnaklı bir şey kullanmak
    içinse \“ ... \” kullanıyoruz. Hepsi bu!


    scanf(); fonksiyonuna gelince, bu başında bahsettiğimiz gibi bizim giriş (Input)
    fonksiyonumuzdur. Ancak yazımı burada noktalıyorum. Çünkü değişkenler işin içine
    girmekte ve onları anlatmam uzun sürecek. Gelecek haftaki yazımda kaldığımız yerden
    devam edeceğiz. Yazdıklarımla ilgili öneri, eleştiri veya sorunuz varsa, bana
    ulaşabilirsiniz.
    avatar
    azdur05


    Mesaj Sayısı : 9
    Kayıt tarihi : 20/02/13

    C Ve C++ Programlama Diline Giriş Empty Geri: C Ve C++ Programlama Diline Giriş

    Mesaj tarafından azdur05 Perş. Mart 21, 2013 9:57 am

    Çok teşekkür ederim hocam konularımı sabitlediğiniz için
    Admin
    Admin
    Admin
    Admin


    Mesaj Sayısı : 77
    Kayıt tarihi : 25/06/10
    Yaş : 30
    Nerden : Amasya

    C Ve C++ Programlama Diline Giriş Empty Geri: C Ve C++ Programlama Diline Giriş

    Mesaj tarafından Admin Perş. Mart 21, 2013 9:58 am

    Sabitlenebilecek Güzel Bir Konu Seçip Paylaştığın İçin Ben Teşekkür Ederim

      Similar topics

      -

      Forum Saati Ptsi Mayıs 20, 2024 11:53 am