Şimdi Ara

Temel Algoritma Bilgisi ve Programlamaya Giriş

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
44
Cevap
5
Favori
48.987
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 123
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Merhaba Arkadaşlar,
    Birkaç aydan beridir bu foruma takılıyorum. Şu ana kadar bu açtığım ikinci başlık olacak. Birincisi C/C++ Alt Forum Grubu idi. Sağolsun birkaç arkadaş dışında destek veren olmadı.
    Neyse artık asıl konumuza dönelim. Forum başlıklarının çoğu programlamaya nasıl başlarım, ne yapmam gerekiyor, c'mi öğreneceğim pascal mı, c# mı şeklinde. Bu yüzden böyle bir başlık çok yararlı olacak diye düşünüyorum. Yazacağım konuları birkaç başlık altında toplayacağım. Bu mesajlar ana sayfa olacak, sonraki mesajlarda önerileriniz ve sorularınız olacak. Başlıkları şu şekilde düşündüm:

    1-ALGORİTMA NEDİR? NE İŞE YARAR? PROGRAM YAZARKEN NELERE DİKKAT EDİLİR?
    2-DEVC++ KURULUMU ve KULLANIMI
    3-KULLANILACAK DİL ve ÖZELLİKLERİ
    4-SORULAR KISMI



    < Bu mesaj bu kişi tarafından değiştirildi bozcaa -- 6 Ağustos 2010; 8:29:50 >







  • 1-ALGORİTMA NEDİR? NE İŞE YARAR? PROGRAM YAZARKEN NELERE DİKKAT EDİLİR?


    Genelde sağda solda bu tür bilgilere çok rastlıyoruz. Onlardan da yararlanarak özet bilgi sunmaya çalışacağım. Bunun dışında kendi tecrübelerimden de faydalanmaya çalışacağım. Sizlerde kaynak gösterebilirsiniz. Onları da buradan paylaşabiliriz.



    1-1-ALGORİTMA TANIMI

    Belli bir problemi çözmek veya belirli bir amaca ulaşmak için çizilen yola algoritma denir.



    1-2-ALGORİTMA TARİHİ

    Algoritma kelimesinin kökeni Ebu Abdullah Muhammed İbn Musa el Harezmi isimli İranlı matematikçiden geldiği sanılmaktadır. Bu alim 9. yüzyılda cebir alanındaki algoritmik çalışmalarını kitaba dökerek matematiğe çok büyük bir katkı sağlamıştır. “Hisab el-cebir ve el-mukabele” kitabı dünyanın ilk cebir kitabı ve aynı zamanda ilk algoritma koleksiyonunu oluşturur. Latince çevirisi Avrupa’da çok ilgi görür – alimin ismini telaffuz edemeyen Avrupalılar “algorizm” sözcüğünü “Arap sayıları kullanarak aritmetik problemler çözme kuralları” manasında kullanırlar. Bu sözcük daha sonra “algoritma” ya dönüşür ve genel kapsamda kullanılır.



    1-3-TEMEL BİR ALGORİTMANIN ÖZELLİKLERİ

  • Girdi: Sıfır veya daha fazla değer dışarıdan verilmeli
  • Çıktı: En azından bir değer üretilmeli
  • Açıklık: Her işlem açık olmalı ve farklı anlamlar içermemeli
  • Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli
  • Etkinlik: Her komut kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır.

    Bu özellikler her algoritmada bulunacak diye bir şart yoktur. Örneğin her program için sonluluk özelliği geçerli değildir. Örneğin işletim sistemleri sonsuza dek çalışan programlara örnektir.



    1-4-SORU ÇÖZME ADIMLARI

    Bilgisayar ortamında bir problem çözülürken aşağıdaki adımlara dikkat edilmelidir.

    1-Soru Tanımlama: Her şeyden önce çözülecek soru tam olarak anlaşılmalıdır. Yanlış anlaşılmış bir sorunun çözümü yanlış olacak ve istenileni vermeyecektir.Bu adımda yapılacak en ufak bir hata daha sonraki adımların yeni baştan yapılmasını gerektirebilir. Sorunun tanımı yapılırken var olan bilgiler, anlamları ve birbirleri ile ilişkileri tanımlanmalıdır. Daha sonra istenenler belirlenmeli ve bunların var olan bilgiler ile ilişkileri öğrenilmelidir. Son olarak yapılacak işlemler belirlenir. Mümkün ise örnek veriler ile elde edilen sonuçlar değerlendirilmelidir.

    2-Algoritma Geliştirme: Algoritma bir sorunun çözümü için izlenecek yolun tanımıdır. Kısaca algoritma mevcut bilgilerden istenilenlere erişme yöntemidir. Soru tanımını tam olarak yaptıktan sonra, çözüm için yol aramak gerekir. Genellikle bir sorunun birden fazla çözüm yolu olabilir. Bunlardan en uygunu seçilmeye çalışılır. Soru ne kadar karışık olursa olsun, alt birimlere bölünür. Her birimin çözümü ayrı, ayrı yapılır. Bu yapılırken birimler arası ilişki sürekli olarak korunur.

    3-Girdi ve Çıktı Biçimi Belirleme: Sonuçların dış ortama, dolayısıyla insana aktarımı düzgün bir biçimde yapılmalıdır. Programcı program çıktısı olarak almak istediği dökümün biçimini tasarlar. Bir döküm biçimi tasarlanırken anlaşılır ve kullanılabilir olmasına özen gösterilmelidir. Genellikle programa, çözdüğü soruna ilişkin bazı verilerin dışarıdan verilmesi gerekir. Örneğin bir denklem takımının kökleri bulunacaksa, ilgili katsayıların programa verilmesi gibi.

    4-Akış Şemasını Çizme: Akış şeması belirli bir işin yapılabilmesi için, basit işlemlerle şema halinde gösterilmesidir. Kısaca algoritmanın şemalarla gösterilmesidir. Algortima geliştirildikten sonra, daha iyi anlaşılabilir olması ve programlama dillerine aktarımı daha kolay olması nedeniyle, akış şeması haline getirilir. Böylece sorunun çözüm basamakları, birbirleri ile ilişkileri ve bilgi akışı daha kolay görülebilir ve yanlışlıklar düzeltilebilir.

    5-Kodlama: Akış şemaları çizildikten sonra, sorunu yapısına uygun bir programlama dili seçilir. Bu dil ile akış şemaları dilin kurallarına uygun olarak bilgisayarın anlayabileceği duruma getirilir.

    6-Programı Sınama: Program yazıldıktan sonra, sonuçları daha önceden bilinen veriler girilerek, eldeki sonuçlarla çıkan sonuçlar karşılaştırılır. Programın doğru çalışıp çalışmadığı sınanır.
    Şimdi algoritma hazırlama işlemini daha ayrıntılı olarak inceleyelim.
    Çünkü programlamanın en önemli kısmı algoritma hazırlayabilmektir. Algoritma hazırlandıktan sonra hazırlanan algoritmanın herhangi bir programlama dilinde kodlanması işin en basit kısmıdır. Bu yüzden kullanılan dilin basic ya da başka bir programlama dili olması hiçbir şeyi değiştirmez. Yani burada önemli olan programlama dili değil problemin çözümü için algoritma geliştirebilmektir. Bu yüzden kullanılan programlama dilinin eski yada yeni bir programlama dili olması hiç önemli değildir.



    1-5-ÖRNEK BİR ALGORİTMA

    Ö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.

  • Evden dışarıya çık
  • Otobüs durağına yürü
  • Durakta gideceğin yöndeki otobüsü bekle
  • Otobüsün geldiğinde otobüse bin
  • Biletini bilet kumbarasına at
  • İneceğin yere yakınlaştığında arkaya yürü
  • İneceğini belirten ikaz lambasına bas
  • Otobüs durunca in
  • İşyerine doğru yürü
  • İş yeri giriş kapısından içeriye gir
  • Mesai arkadaşlarınla selamlaş
  • İş giysini giy
  • İşini yapmaya başla.



    1-6-DEĞİŞKEN KAVRAMI

    Temel algoritmaların özelliklerinden bahsederken girdi ve çıktı olayından bahsetmiştik. Bu girdi ve çıktıların bilgisayarda tutulabilmesi için belleklere ihtiyacımız olur. Bilgisayarda bir programı çalıştırdığımız zaman, programın daha hızlı çalışabilmesi için, program sabit diskten RAM'e çekilir. Merkezi işlemci bilgileri işlemek için RAM'e başvurur. Bizim de program yazarken RAM'de bir yer oluşturmamız gerekir. Bu yere de değişkenler (nesneler) yolu ile ulaşırız.
    Her dilde farklı farklı nesneler oluşturulabilir. Biz sadece tam sayı nesnesi olan int ile gerçek sayı nesnesi olan double ile program yazmaya çalışacağız.



    1-7-ATAMA OPERATÖRÜ

    Matematikteki = ile programlamadaki = aynı anlamda değildir. Programlamada = atama operatörü(işleci) olarak kullanılır. Yani örneğin a = b gibi bir ifade yazdığımızda bu normalde matematikte a sayısının b sayısına eşit olduğu anlamına gelir. Fakat programlamada bu a değişkenin içine b 'nin değerini at anlamına gelmektedir. Burada dikkat edilmesi gereken husus a değişkeni ifademiz. Kısaca anlatmak gerekirse atama operatörünün sol tarafında içerisine bir değer atabileceğimiz değişken olması gerekiyor. Yani şu şekilde bir atama çok saçma olur. 5 = a
    Çünkü 5 sabit bir sayıdır ve RAM'de 5 isimli bir değişkene ait yer olamaz. Bu yüzden a'nın değerini herhangi bir yerde saklayamayız ve bu kod saçma olduğu için derleyici bu koda hata verir.
    a=b ifadesinde atama yapıldığı zaman a'nın eski değeri kaybolur ve a değerinin içine b'nin değeri atılır. Eğer a'nın değeri saklanmak
    isteniyorsa da a'nın değerini saklamak için geçici bir değişken tanımlanmalıdır.



    1-8-AKIŞ ŞEMALARI

    Geliştirilecek olan yazılımın genel yapısının şematik gösterimine akış şeması veya blok diyagramı adı verilir. Akış diyagramları, yazılımı oluşturacak program parçalarını ve bu parçaların birbirleri ile olan ilişkilerini belirler. Bir bilgisayar programının oluşturulmasında akış diyagramlarının hazırlanması, algoritma oluşturma aşamasından sonra gelmektedir. Bilgisayar programının oluşturulması sırasında algoritma aşaması atlanarak, doğrudan akış diyagramlarının hazırlanmasına başlanabilir. Programlama tekniğinde önemli ölçüde yol almış kişiler bu aşamayı da atlayarak direkt olarak programın yazımına geçebilirler.Akış şemalarının algoritmadan farkı, adımların simgeler şeklinde kutular içinde yazılmış olması ve adımlar arasındaki ilişkilerin (iş akışı) oklar ile gösterilmesidir



    1-9-ATOM KAVRAMI

    Programın derleyiciye anlamlı gelen en küçük parçasına atom denir. Derleyici dilin standartlarına göre yazdığımız kodları kontrol ederek yanlış yaptığımızda yada bizim yanlış yapmış olabileceğimizi düşündüğünde bize uyarı(warning) veya hata(error) verir. Kısaca atom çeşitlerini yazarsak:

    1.Identifiers (İsimler): Program içerisinde sınıflara, fonksiyonlara verilen isimler bu atom grubunu oluşturur.
    • İsimler bir harf, $, - ile başlayabilir.
    • İsim içerisinde özel karakterler, noktalama, boşluk ve türkçe karakterler kullanılmaz.
    • Anahtar sözcükler isim olarak kullanılmazlar.
    • C++ programlama dili küçük-büyük harf duyarlıdır.
    • Birinci karakter olmamak şartı ile isim içerisinde sayı kullanılabilir.

    2.Keywords (Anahtar Sözcükler): Her dilin kendine ait anahtar sözcükleri vardır.

    3.Literals (Sabitler): 5, 7.23 gibi

    4.Operators (Operatörler): +, -, /, * , ., (), [] (Matematikteki kullanımlarıyla aynı) % mod işlemini gösterir. 20 % 3 = 2

    5.Seperators (Ayıraçlar): { } ( ) ;

    6.Boşluk Karakterleri: Enter, Tab, Spacebar (Boşluk karakterleri derleyici tarafından okunmaz. programın okunabilirliğini artırmak için kullanılır. )

    7.Açıklamalar (Comments): Yazdığımız programı daha sonra kolaylıkla anlayabilmemizi sağlayan yorum satırlarıdır. Derleyici tarafından dikkate alınmaz. // ile başlayan satırlar yada /* bu bir yorumdur */ karakterleri arasındaki ifadeler yorum satırıdır.

    8.Değişkenler (Variables): Bellekte bir yer gösteren sembolize isimlere denir.



    1-10-İFADE (EXPRESSION)

    Sabit, operatör ve değişkenlerin oluşturduğu kombinasyonlara denir. a=b , a<b gibi

    Deyim (Statement): Noktalı virgül ile sonlandırılan her bir satır deyimdir.

    Decleration Statement (Bildirim deyimi): Sadece derleyiciye bilgi vermek için yazılan deyimlerdir. int a; gibi

    Assignment Statement(Atama deyimi): değişken = ifade (sağ taraftaki ifadenin değeri hesaplanıp sol tarafa atanır. sol tarafta sabit bir değer yada bir ifade olamaz. ) Atama deyimi matematikteki eşittir ile karıştırılmamalıdır. Atama deyimi ile sol taraftaki değer sağdaki değişkene atılır. Matematikteki eşittir sembolü ise iki ifadenin birbirine eşit olduğunu ifade eder. Sol tarafın değişken (nesne) olması gibi bir zorunluluk yoktur.



    1-11-OKUNABİLİRLİK

    Program yazarken dikkat edilmesi gereken hususların en önemlilerinden biride okunabilirliktir. Programın okunabilir olması daha sonra oluşacak hataları düzeltmemizde bizim için çok yararlı olur. Program belli bir düzende yazılmazsa oluşan hataları bulmamız çok uzun süremizi alabilir. Unutulmamalıdır ki programcılıkta süre çok önemlidir.
    Kodun okunabilirliği için belli bir stil izlenmelidir. Biz aşağıdaki kodu Ritchie stiline göre yazdık. Kodun ne yaptığı önemli değil. Sadece nasıl yazıldığına dikkat ediniz.

     
    #include <stdio.h> // bildirimden sonra bir satır boşluk bırakılır.

    int main()
    { //blok başlangıçları ayrı yazılır
    int a, b, c = 10;
    int d = 10; //ilk atamalar diğerlerinden ayrı yazılır
    double k = 9.5;
    int i;
    /* iki operand alan atama (=) operatörü gibi operatörlerin sağında ve solunda birer boşluk bırakılır.*/

    while( c > 0){ // döngü parantezlerinin konulduğu yerler
    print(“%d ”, c);
    /************/ // döngü içindeki ifadeler bir tab içerden yazılır.
    c = c – 1;
    }
    //bir boşluk bırakılır.
    for(i = 0; i < 10; i++){
    printf(“%d “, i);
    }
    } // süslü parantez açılan süslü parantezin seviyesinde olmak zorunda




  • < Bu mesaj bu kişi tarafından değiştirildi bozcaa -- 16 Ağustos 2010; 14:06:22 >




  • 2-DEVC++ KURULUMU ve KULLANIMI



    2-1-DEV-C++ HAKKINDA

    Dev C++ GNU GPL altında dağıtılan bir tümleşik geliştirme ortamıdır. Dev C++' nin tüm arabirimi Delphi ile geliştirilmiş ve ilk çıktığı zaman oldukça popüler bir yazılım olmuştur. 2005 yılından beri geliştirilmemesine rağmen hala çok sayıda kullanıcı tarafından kullanılmaktadır. Kaynak

    DEVC++ ana sayfasına ulaşmak için tıklayınız.
    DevC++ IDE sini indirmek için tıklayınız.

    Dev-C++ Resimli Anlatımı:
    Forumda araştırdım daha önce resimli olarak kullanımı anlatılmış. İncelemek için tıklayınız.

    wxDev-C++

    quote:

    Orijinalden alıntı: atavratbraveheart
    DevC++ gelişimi 5 yıl önce durduruldu bu yüzden onun yerine wxDev-C++ var. Daha gelişmiş ve yeri geldikçe update ediliyor.
    Bunu kullanmanızı tavsiye ederim ücretsiz bir yazılımdır.
    İndirme Linki :http://sourceforge.net/projects/wxdsgn/files/wxDev-C%2B%2B/Version%207/wxdevcpp_7.3.1_full_setup.exe/download
    indirdikten sonra kurarken update etmek istediğinde HAYIR seçeneğini seçin(5-6 kere sorması lazım Hayır deyip geçin). Çünkü en son sürüm olduğu için update gerektirmiyor.

    Merhaba Arkadaşlar, denemedim ama bu programda kullanılabilir. Arkadaşa paylaşımlarından dolayı teşekkür ederiz.
    Merhaba, az önce programı denedim. Win7 'de hata verdi. Dev C++ üzerine geliştirilmiş görünüyor. Belki de Win 7 için ayrı bir sürümünü indirmek gerekiyordur.

    Karşılaşılabilecek Basit Hatalar:
    Programı çalıştırdığımda açılıp, hemen kapanıyor. Nedeni

    Başka bir IDE'de yazarken çalışıyordu, DEV-C++ da çalışmıyor. Nedeni ne olabilir? Bu linkde de biraz bahsetmiş. Farklı derleyicilerin farklı kütüphaneleri olur. Bu yüzden dilin standart kütüphaneleri dışında IDE'nin size sağlamış olduğu kütüphanelerdeki fonksiyonları kullanırsanız, farklı IDE'lerde kodunuz çalışmayabilir. Bu yüzden mecbur kalınmadıkça IDE'nin sağlamış olduğu standart olmayan kütüphaneler kullanılmamalıdır. Örneğin Visual Studio ticari olan ve yazılımcılara kod geliştirmesinde
    büyük destek sağlayan bir IDE. Ama bunu kendi araçları ile yapar. Siz bu kodları Dev-C++ da çalıştırmaya çalışırsanız, Dev-C++ bu araçlara sahip olmadığı için sizin kodunuzu çalıştırmaz.



    2-2-IDE KAVRAMI (Integrated Development Environment - Tümleşik Geliştirme Ortamı)

    IDE “integrated development environment”, “integrated design environment ” veya “integrated debugging environment” gibi açılımlara sahip yazılım geliştiricilerinin proje geliştirmesinde onlara yardımcı olan yazılımlara denir.

    Bir IDE yazılımını basit bir metin editöründen farklı kılan özelliklerin önemlilerini sıralayacak olursak.

    Kaynak kod editörü : Basit metin editörlerinden farklı olarak kodları kullandığınız dile göre belirten (highlight) bir editörtür.

    Derleyici ve Yorumlayıcı içermesi : Kaynak kodlarını bu sayede IDE üzerinde çalıştırabilirsiniz zamandan kazanmanız açısından size yardımcı olur.

    Debugger (Hata Ayıklayıcı): Adından da anlaşılacağı üzere programda herhangi bir hata var mı kontrol etmenize yarayan araç.

    Bazı IDE'lerde GUI oluşturabilmek için sürüm kontrol sistemleri(version control systems) ve çeşitli araçlar bulunmaktadır.

    Yeni modern IDE'lerde ise nesne-yönelimli yazılım geliştirme(object-oriented software development) için; sınıf tarayıcı (class browser), nesne denetimcisi (object inspector), ve sınıf hiyerarşi diyagramı gibi araçları barındırır. Kaynak

    Nesne denetimcisi(object inspector): Direk olarak kelime anlamı ile nesne denetimcisi anlamına geliyor. Yazılım yaparken kullanmış olduğunuz nesneleri bulmanızı ve özelliklerini değiştirmenizi sağlar. Nesne denetimcisi özellikler(properties), olaylar(events) ve favoriler (favourites) olarak üç ana bölüme ayrılır. Her bir bölümünün altında alt başlıklar bulunmaktadır. Nesne denetleyici programlarınızdaki hataları ayıklamak için de yararlı bir araçtır. Kaynak



    < Bu mesaj bu kişi tarafından değiştirildi bozcaa -- 27 Aralık 2013; 8:52:01 >




  • 3-KULLANILACAK DİL ve ÖZELLİKLERİ


    Dil olarak C++ kullanmayı düşünüyorum. Kullanımının kolay olması ve DevC++ gibi ücretsiz ve güçlü bir IDE'sinin bulunması diğer diller önünde C++ dilini biraz öne çıkarıyor. Biz Java dilinde programlamaya giriş eğitimi almıştık.

    Yalnız şunu da unutmayalım amacımız kesinlikle ve kesinlikle C++ öğrenmek değil. Temel algoritma bilgisi çalışırken bir dili kullanmak size o dili öğretmez. Sadece o dilin söz dizimine aşinalığınız olur. Amacımız C++ dilinin sınıf yapısını yada nesne yönelimli programlama tekniklerine verdiği desteği öğrenmek değil. Bu yüzden burayı C++ öğrenebileceğiniz bir başlık olarak algılamayın.



    3-1-MERHABA DÜNYA PROGRAMI

    Merhaba Dünya programı genel olarak bir programlama diline yeni başlayanların yazdığı ilk programdır. Bu program ilk defa C dilinin mucidi olan Kernighan ve Ritchie'nin C Programlama kitabında 1978 yılında yayınlanmıştır. Yayınlandıktan sonra da meşhur olmuş ve bilgisayarda yazılan ilk program olma ünvanını elinden bırakmamıştır. Merhaba Dünya programının çok farklı dillerde nasıl yazıldığına buradan göz atabilirsiniz. Biz Merhaba Dünya programını daha önceden de belirttiğimiz gibi C++ dilinde yazacağız. DevC++ IDE'mizi indirip bilgisayara kurduktan sonra yukarıda resimlerle anlatılan şekilde ilk projemizi oluşturalım. Sonrasında da aşağıdaki programı yazarak F9 tuşuna basarsak konsolda "Hello World!" yazısını görebiliriz.

     
    #include <cstdlib> //system fonksiyonu için cstdlib kütüphanesi eklenir
    #include <iostream> //cout nesnesi için iostream kütüphanesi eklenir

    using namespace std; //cout nesnesini kısa ve öz olarak kullanabilmek için ekledik.

    int main()
    {
    cout << "Hello World!" << endl;

    system("PAUSE");
    return EXIT_SUCCESS;
    }


    Programın ilk baş kısmındaki #include <cstdlib> , #include <iostream> önişlemci komutları ve using namespace std deyimine kafanızı yormanıza gerek yok. Amacımız C++ dilini öğrenmek değil sadece bir araç olarak kullanmak.

    Bu programda bilmemiz gereken; C++ derleyicisi programı ana fonksiyon olan main fonksiyonundan başlatır.

    Normalde main parantezinin içerisine DevC++ otomatik olarak "int argc, char *argv[]" değişkenlerini yerleştirir. Fakat biz bunları kullanmayacağız.

    Yazacağımız tüm deyimleri(kodları) main fonksiyonu içerisine yazacağız. Yani C++ dilindeki fonksiyon yapısını kullanmayacağız.

    cout << "Hello World!" << endl; deyimi ile c++ dili ile ekrana yazı yazdırılır. cout ekrana yazı yazdırırken, endl de enter tuşunun işlevini görür ve programın bir alt satırdan başlamasına sebep olur. Programı cout << "Hello World!"; şeklinde de yazabilirdik. Bu takdirde programımız bir alt satırdan devam etmemiş olurdu.

    system("PAUSE"); programın sizden bir tuşa basmanız için gerekli olan fonksiyondur. Eğer dos'da birkaç komut yazdıysanız pause komutunu da biliyorsunuzdur. Konsolda yazmış olduğunuz komutları çalıştırmak için system fonksiyonu kullanılır. Örneğin system("PAUSE"); yerine system("CLS"); deyimini yazıp sonrasındada tekrardan system("PAUSE"); deyimini yazarsanız Hello World yazısının kaybolduğunu göreceksiniz. Çünkü cls (clear screen) ekrandaki yazıları temizleyen komuttur.

    return EXIT_SUCCESS; deyimi, main fonksiyonumuz int bir değer döndürmesi gerektiği için kullanılır. Zorunlu değildir. Fakat işletim sistemleri programlardan başarı ile sonuçlanıp sonuçlanmadığına dair bilgi bekledikleri için tipik olarak c++ programları bu şekilde yazılır. EXIT_SUCCESS yerine C dilinde olduğu gibi direk 0 da yazabilirdik. İkisini arasında herhangi bir fark olmaz. Önişlemci sıra derleyiciye gelmeden önce EXIT_SUCCESS yerine 0 sabit sayısını yerleştirir. Önişlemci ve derleyici kavramlarından 2. başlık altında bahsedeceğim.



    3-2-C++ DİLİ İLE NESNE (DEĞİŞKEN) TANIMLAMA

    Daha öncede bahsettiğimiz üzere programlarımızı yazarken işlem yapmak için belleğe ihtiyaç duyarız. Biz temel algoritma dersimizde başlangıç olarak iki tür nesne ile çalışacağız. Bunlardan birisi tam sayıların yerini tutacak, diğeri de ondalıklı sayı dediğimiz gerçek sayıların yerini tutacak. C++ da bu nesneler için farklı türden nesneler tanımlanabilsede biz sadece ikisini kullanacağız. Kullanacağımız türler: int ve double

     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    int i = 10;
    double d = 3.124;

    cout << "i: " << i << endl;
    cout << "d: " << d << endl;

    i = 32;
    d = 2.12;

    cout << "i: " << i << endl;
    cout << "d: " << d << endl;

    system("pause");
    return EXIT_SUCCESS;
    }

    int ve double türden nesnelerimizi yukarıda olduğu gibi derleyiciye bildirebiliriz. i ve b nesnelerimizin isimleri olmak üzere, başlangıç değeri atanmasa da olurdu. Yani nesnelerimizi;

    int i;
    double d;

    i = 10;
    d = 3.124;

    şeklinde de tanımlayabilirdik. Nesnelerimizi (değişkenlerimizi) tanımlarken dikkat edeceğimiz bir diğer husus isimleri olan i ve d. Bu isimler yerine farklı isimlerde verebilirdik. İsimlendirmede dikkat edilmesi gereken farklı konular ve uyulabilecek farklı tarzlar var. Bunlardan daha sonra bahsedeceğiz. Uymamız gereken kurallardan, 1.9 nolu başlık altında isim başlığı altında incelemiştik. Bunun dışında, isimlendirme yaparken, değişken ismi, bize bu değişkenin ne tür amaç için kullanılacağı bilgisini vermelidir. Örneğin bu değişkende yil bilgisini tutacaksak, değişkeni
    int yil;
    şeklinde bir isimlendirme ile tanımlamalıyız.



    3-3-C++ DİLİNDE ARİTMETİK İŞLEMLER

    C++ dilinde aritmetik işlemler yapmak, karşılaştırma yapmak vb. işlemler için çeşit çeşit operatörler bulunmaktadır. Bu operatörler ile ilgili bilgi için lütfen tıklayınız.
    Burada başlangıç soruları için +, -, /, * ve % operatörlerinin kullanılmasını öğrenmeniz gerekiyor.

    Üslü ve köklü sayılar için C++ programlama dilindeki sqrt ve pow fonksiyonlarını kullanırız. Bu fonksiyonların kullanımı için programın başına #include<cmath.h> önbildirimini eklememiz gerekiyor. Örnek kullanımları:
     
    #include <cstdlib>
    #include <iostream>
    #include <cmath>

    using namespace std;

    int main()
    {

    cout << "3 ^ 2 = " << pow(3.0, 2.0) << endl;
    cout << "karakok(9) = " << sqrt(9) << endl;

    system("pause");
    return EXIT_SUCCESS;
    }




    3-4-C++ DİLİ İLE KLAVYEDEN GİRİŞ ALMA

    C++ dili ile ekrana yazı yazdırmayı görmüştük. Aynı şekilde klavyeden bir giriş almak da çok kolay. Aşağıdaki kodda klavyeden bir gerçek sayı ve tam sayı alınarak ekrana yazdırılıyor.

     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    int sayi1, sayi2;

    //Sayılar tek tek alınabilir
    cout << "Birinci sayiyi giriniz : ";
    cin >> sayi1;
    cout << "Ikinci sayiyi giriniz : ";
    cin >> sayi2;

    cout << "sayi1 : " << sayi1 << endl;
    cout << "sayi2 : " << sayi2 << endl;

    //Sayılar aynı kod satırında da alınabilir
    cout << "Lutfen iki sayi giriniz : ";
    cin >> sayi1 >> sayi2;

    cout << "sayi1 : " << sayi1 << endl;
    cout << "sayi2 : " << sayi2 << endl;

    system("pause");
    return EXIT_SUCCESS;
    }




    3-5-IF KONTROL DEYİMİ

    Program yazarken önümüzde farklı koşullar belirir. Bu koşulların doğru olup olmamasına göre program farklı işler yapar yada sonlanır. Programlama yaparken bilgisayara bir koşula göre farklı işlemler yaptıracaksak if deyimini kullanırız. C++ dilinde if deyiminin sentaksı aşağıdaki gibidir.

     

    if (a < 5) {
    deyim1;
    deyim2;
    ***
    }
    else {
    deyim3;
    deyim4;
    ***
    }

    Burada dikkat edilmesi gereken hususlardan biri, ikinci if şartında parantezleri kullanmadık. if deyimiyle bir koşula göre işlem yaptıracağımız zaman eğer sadece bir işlem yapılacaksa süslü parantez kullanmaya gerek yok. Fakat birden fazla işlem yapılacağı zaman süslü parantez içerisine alınması gerekiyor.

    if deyimi kullanılırken yapılan en sık yanlışlardan biri kontrol parantezinden sonra ; operatörünün kullanılmasıdır. Bu durumda if deyiminden sonra iki tane deyim kullanılmış olur. Bunlardan biri "; (boş deyim)" diğeride "deyim5" tir. Süslü parantez kullanılmadığı için if koşulu sağlanırsa boş deyim devreye alınır. deyim5 ise if bloğunun dışında olarak kabül edilir ve if şartı doğruda olsa yanlış da olsa çalışır.
     

    if (a > 3);
    ;

    Boş Deyim: Boş deyim C/C++ programlama dilinde çok kullanılan bir deyimdir. Örneğin bir şart sağlandığında programın hiçbir şey yapmaması gerekiyorsa boş deyim kullanırız. Örneğin a sayısı 3'ten büyükse hiçbirşey yapma. Bu program aşağıdaki gibi kodlanır.
     

    if (a > 3)
    ;



    < Bu mesaj bu kişi tarafından değiştirildi bozcaa -- 27 Eylül 2010; 9:29:15 >




  • 4-SORULAR KISMI

    Bu kısımda iki sayının toplanması gibi basit programlarla başlayıp, amiral battı oyunu gibi karmaşık programlara kadar gideceğiz. Tabi yeterli zaman ve destek olursa. Çünkü bu arada yaklaşık olarak 150-160 soru var.

    Not1: Amiral Battı oyunu derken aklınızdan görsel bir oyun yapacağımız geçmesin. Konumuz temel algoritma.
    Not2: Sorular anlatılan konuların içeriğine göre verilmiştir. Her yeni konunun soruları bir önceki konuda anlatılan bilgileri de kapsar. Bu yüzden sorular çözülürken sonraki konularda anlatılanlar kullanılmadan sorular çözülmelidir. Örneğin 3-1 nolu konunun 3. sorusunda for döngüsü kullanılmamalıdır.



    3-1-MERHABA DÜNYA PROGRAMI hakkında sorular

    I- Ekrana "Merhaba Dünya" yazdıran programı yazınız.
    II- "Merhaba Dünya" yazısının harflerini alt alta yazdıran programı yazınız.
    III- Ekrana 5 defa "Merhaba Dünya" yazısını veren programı yazınız.



    3-3-C++ İLE ARİTMETİK İŞLEMLER

    1. İki tam sayının toplamını bulan program
    2. Doğum yılı verilen kişinin yaşını bulan program (Örnek giriş: 1985, 2010 yılı için 25 değerini vermelidir)
    3. Dikdörtgenin alanını bulan program (Örnek giriş: kısa kenar= 3.5, uzun kenar=2.5, alan = 8.75)
    4. Yarıçapı r = 5 olan dairenin alanını bulan program (pi = 3.14 alabilirsiniz, alan = 78.5)
    5. İki tam sayının bölüm ve kalanını bulan program(büyük sayı = 12, küçük sayı = 5, bölüm = 2, kalan = 2)

    Not: Sorularda yapılan işlemlerde kullanılan herbir sayı için bir nesne tanımlamanız gerekiyor. Örneğin 1. soru için sayi1, sayi2 ve toplam nesnelerini tanımlamanız gerekiyor. Ayrıca türünün tam sayı olduğuna da dikkat etmelisiniz.



    3-4-C++ DİLİ İLE KLAVYEDEN GİRİŞ ALMA

    6. Klavyeden girilen 2 sayının toplamını bulan programı yazınız (Örn: 9 ve 6 sayıları için sonuç 15 olmalı)
    7. Klavyeden girilen 3 sayının aritmetik ortalamasını bulan programı yazınız. (Örn: 3, 4 ve 5 sayıları için sonuç 4 olmalı)
    8. Klavyeden girilen iki basamaklı bir sayının basamaklarının karelerinin toplamını bulan programı yazınız (Örn: 32 --> 3^2 + 2^2 = 13)



    3-5-IF KONTROL DEYİMİ

    9. Klavyeden girilen 2 sayıyı karşılaştırıp sonucu ekrana yazdıran programı yazınız. (3 ve 5 için çıktı 3 < 5, 8 ve 4 için 8 > 4 olmalıdır.)
    10. Klavyeden girilen bir sayının tek mi çift mi olduğunu gösteren program

    11. Bir uçak 15 dk boyunca düzgün hızlanarak hızı 480 km\s oluyor. Sonra 20 dak. Sabit hızla gidiyor ve 15 dk. boyunca düzgün yavaşlayarak hızı sıfır oluyor. Herhangi bir t anında hızı veren algoritma ve program.
    Çözüm yöntemi:
    t = 0-15 için, hız = t * 32
    t = 15-35 için, hız = 480
    t = 35-50 için, hız = 480 – (t - 35) * 32

    12. Klavyeden girilen Celsius değerinin Fahrenheit eşdeğerini bulan programı yazınız.
    C = (F – 32) / 180 * 100

    13. Klavyeden aynı anda girilen 2 sayıdan, küçük sayının büyük sayının tam böleni olup olmadığını bulan program. Öncelikle girilen sayılardan hangisinin daha büyük hangisinin daha küçük olduğu tespit edilmelidir.

    14. Klavyeden girilen sayının mutlak değerini alan program
    15. Klavyeden girilen saniye değerini, hh:mm:ss biçiminde formatlı olarak yazdıran programı yazınız. Örnek çıktı: 5200 sn --> 1:26:40
    16. 0 ile 1000 arasında girilen bir sayının kaç basamaklı olduğunu ekrana yazdıran program

    17. Klavyeden girilen 3 farklı sayıdan:
    a. En büyük sayıyı bulan programı,
    b. En küçük sayıyı bulan programı,
    c. Ortanca sayıyı bulan programı yazınız.
    Büyük sayı, küçük sayı ve ortanca sayı için ayrı ayrı programlar yazınız.

    18. İç açıları verilen bir üçgenin türünü belirleyen program (çeşitkenar, ikizkenar, eşkenar)

    19. Dört basamaklı sayılardan ilk iki basamağı ile son iki basamağının toplamının karesi, sayının kendisine eşit olan sayılara orijinal sayı denir. Girilen bir sayının orijinal olup olmadığını saptayan algoritma ve program. Örnek veriler: (9801, 3025, 2025)
    20. Artık yıl sınaması yapan programı yazınız.
    Artık yıl Coğrafya derslerinden gördüğümüz 4 senede bir Şubat ayının 29 çekmesi olayı. Çünkü bir yıl 365 gün 6 saat olduğu için bu 6 saat 4 yılda bir 24 saat ediyor ve Şubat ayı 29 gün oluyor. Yalnız bu her 4 yılda olmuyormuş.
    Yıl, 4'e tam bölünebiliyorsa artık yıldır. Örneğin; 2004, 2008, 2012, 2016 yılları artık yıllardır. Ancak, bir güneş yılının 365,25 günden daha az olmasından kaynaklanan, 4'e tam bölünebilmesine rağmen artık yıl olmayan yıllar vardır. 100'e tam bölünebilen bir yılın artık yıl olabilmesi için 400'e de tam bölünebilmesi gerekir. Örneğin; 1200, 1600, 2000, 2400, 2800 yılları artık yıllardır; ancak 1700, 1800, 1900, 2100, 2200 yılları artık yıl değillerdir.

    21. Klavyeden girilen 3 sayının arasındaki büyüklük-küçüklük ilişkisini küçükten büyüğe doğru < ve = simgeleriyle gösterin.
    22. Klavyeden alınan saat ve dakika bilgileriyle yelkovan ile akrep arasındaki açıyı bulan programı yazınız.
    Not: Aşağıdaki örnek değerler kullanılabilir.
    6:00 ve 18:00 için 180 derece
    9:00, 3:00 için 45 derece

    23. İkinci dereceden bir denklemin köklerini bulan program

    Not: Kök işlemi için math.h dosyasında tanımlı “sqrt()” fonksiyonunu kullanabilirsiniz. C++ programlama dilinde cmath içinde bulunur.



    3-6-FOR DÖNGÜSÜ

    24. Ekrana 5 defa Hello World yazdıran program
    25. 1’den 10’a kadar olan sayıları yazdıran program
    26. 1’den 20’ye kadar olan tek sayıları yazdıran program
    27. 10’dan 1’e doğru olan sayıları yazdıran program
    28. 1’den n’e kadar olan (n tek ise tek çift ise çift) sayıları yazdıran program
    29. Klavyeden girilen 2 sayı arasındaki sayıları yazdıran program
    30. Klavyeden girilen 2 sayı arasındaki 5’e bölünebilen sayıları yazdıran program
    31. 1 ile 10 arasındaki sayıların karelerini ve küplerini ekrana yan yana yazdıran program
    32. 1 ile 100 arasındaki 3, 4 veya 5’e bölünebilen sayılar
    33. 1’den n’e kadar olan sayıların toplamını bulan program
    34. Bir sayının faktöriyelini bulan program
    35. Bir sayının üssünü bulan program
    36. Bir sayının kaç basamaklı olduğunu bulan programı yazınız
    37. Bir sayının basamak değerlerinin toplamını bulan programı yazınız.
    38. Klavyeden girilen 5 sayının toplamını bulan program
    39. Klavyeden girilen bir sayının kendisi dışındaki bölenlerinin toplamını bulan program
    40. Bir gruptaki kişilerin en az iki tanesinin yaş günlerinin aynı güne gelme olasılığı
    1-[(366-2)/365*(366-3)/365*…*(366-N)/365]
    şeklindedir. Buna göre 60 kişilik bir grupta iki kişinin yaş günlerinin aynı olma olasılığını hesaplayan algoritma ve programı
    41. e sayısını bulan programı yazınız. e sayısını aşağıdaki seri yardımıyla bulabilirsiniz.
    e = 1 / 0! + 1 / 1! + 1 / 2! + 1 / 3! + 1 / 4! + 1 / 5!
    42. pi sayısını bulan programı yazınız. pi sayısını aşağıdaki seri yardımıyla bulabilirsiniz.
    pi / 4 = 1 / 1 – 1 / 3 + 1 / 5 – 1 / 7 + 1 / 9 ...



    3-7-FONKSİYONLAR

    43. Klavyeden girilen iki sayının dost sayı olup olmadığını bulan programı yazınız. (Dost sayılar: x ve y pozitif tamsayılar olmak üzere, eğer x sayısının çarpanları toplamı y sayısına ve y sayısının çarpanları toplamı x sayısına eşit ve x != y ise; x ve y arkadaş sayılardır.) Örnek dost sayılar: (220, 284) (1184, 1210) (2620, 2924) (5020, 5564) (6232, 6368)
    44. Verilen 2 tamsayı aralığında kaç tane Niven (Harshed) sayısı olduğunu bulan programı yazınız. (Bir sayının Niven sayısı olması için, basamakları toplamına tam olarak bölünmesi gerekir.)
    Not: Örneğin 1987000 ile 1988000 sayıları arasında 65 Niven sayısı vardır.
    45. Bir dost sayı çiftine konu tamsayıların ikisi de niven tamsayısı ise bu sayılar dost niven sayıları denir. Verilen iki sayının dost niven sayısı olup olmadığını bulan program
    46. Klavyeden girilen bir sayının asal sayı olup olmadığını bulan programı yazınız.
    47. Klavyeden girilen bir sayıdan küçük olup en büyük asal sayıyı bulan programı yazın.
    48. N 1’den büyük ya da 1’e eşit bir tam sayı olmak üzere n. asal sayıyı bulan programı yazınız.
    49. 1’den büyük asal olmayan bir tamsayının rakamlarının toplamı, sayı asal çarpanlarına ayrılarak yazıldığında bu yazılışta bulunan tüm asal sayıların rakamlarının toplamına eşit oluyorsa bu tür sayılara “smith sayısı” denir.
    Örneğin:
    728 = 2 * 2 * 2 * 7 * 13
    7 + 2 + 8 = 2 + 2 + 2 + 7 + 1 + 3
    Olduğunda 728 bir Smith sayısıdır.
    1 ile 10000 arasındaki tüm Smith sayılarını bularak ekrana yazdıran programı yazınız.
    Örnek değerler:
    4 22 27 58 85 94 121 166 202 265 274 319 346 355 378 382 391 ………



    3-8-DİZİLER

    50. 5 elemanlı a dizisine 2’den başlayıp çift elemanları atayan program

    int a[] = {4, 8, 3, 1, 18, 9, 21, 20, 5, 17};
    Aşağıdaki soruları bu a dizisine göre yapınız.

    51. a dizisinin elemanlarının toplamını ve ortalamasını bulan program
    52. a dizisindeki tek elemanların sayısını bulan ve tek elemanları yazdıran program
    53. Klavyeden girilen n tamsayısından(n tek ise tek, çift ise çift) küçük a dizisindeki elamanları yazdıran program
    54. “n” sayısının dizide olup olmadığını bulan program
    55. a dizisinin ilk n elemanını yazdıran program
    56. a dizisinin son n elemanını baştan sona ve sondan başa yazdıran program
    57. a dizisinin s nolu elemanından başlayarak n tane elemanını yazdıran program
    58. a dizisinin ilk n elemanını sona atayan baştakileride sıfırlayan program
    59. a dizisinin elemanlarını “n” defa sola kaydıran ve her seferinde baştaki elemanı sona atayan program
    a. dizi kullanarak
    b. dizi kullanmadan
    60. a dizisinin “s” nolu elemanından başlayarak “n” adet elemanını kendi içerisinde “k” defa öne kaydıran program ve baştaki elemanı sona atayan program
    61. a dizisini başka bir diziye sondan başa doğru atayan program
    62. a dizisini kendi içerisinde tersine atayan program
    63. a dizisinin s nolu elemanından başlayarak n adet elemanını kendi içerisinde tersine çeviren program
    64. a dizisindeki tek elemanları başka bir dizinin başına çiftlerini de sonuna atayan program
    65. a dizisindeki tek elemanları başa, çift elemanları da sona atayan program
    66. 47-29-34-11 dizisinden 11-43-92-74 dizisini elde eden algoritma ve programı
    67. Herhangi bir N sayısına göre 1 3 5 … N… 4 2 dizisini oluşturan algoritma ve programı
    68. a dizisindeki en büyük elemanı bulan ve yerini gösteren program



    < Bu mesaj bu kişi tarafından değiştirildi bozcaa -- 23 Kasım 2010; 9:45:39 >




  • 5-EK SORULAR KISMI


    1- Klavyeden girilen herhangi bir notun harf notu karşılığı veren programın kodunu yazınız. (90-100 A, 80-89 B, 70-79 C, 60-69 D, 0-59 F olacak şekilde kodlandığı varsayılacak)
     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    int sayi;

    cout << "Bir sayi giriniz : ";
    cin >> sayi;

    if (sayi >= 90)
    cout << "A" << endl;
    else if (sayi >= 80)
    cout << "B" << endl;
    else if (sayi >= 70)
    cout << "C" << endl;
    else if (sayi >= 60)
    cout << "D" << endl;
    else
    cout << "F" << endl;

    system("pause");
    return EXIT_SUCCESS;
    }


    2- Klavyeden girilen n adet sayıdan tek olan sayıların çarpımını çift olanlarıN toplamını bulan programın kodunu yazınız
     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    int adet, sayi, carpim = 1, toplam = 0;

    cout << "Kac sayi gireceksiniz: ";
    cin >> adet;

    for (int i = 0; i < adet; i++)
    {
    cout << "Lutfen bir sayi giriniz: ";
    cin >> sayi;

    if (sayi % 2 == 0)
    toplam += sayi;
    else
    carpim *= sayi;
    }

    cout << "Cift sayilar toplami: " << toplam << endl;
    cout << "Tek sayilar carpimi: " << carpim << endl;

    system("pause");
    return EXIT_SUCCESS;
    }



    < Bu mesaj bu kişi tarafından değiştirildi bozcaa -- 23 Kasım 2010; 7:43:04 >




  • 6-SİZDEN GELEN SORULAR

    Bu mesajı ileride gerek olur diye boş bırakmıştım. Bu kısma sizden gelen soruları yanıtlamaya çalışacağım. Diğer arkadaşlar da sorunun cevabını bulursa onlarınkini de paylaşabiliriz.

    1- Klavyeden girilen 20 adet sayıdan kaç tanesinin pozitif olduğunu bulan ve ekrana yazdıran programı hazırlayınız.
     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    #define INPUT_CNT 20 //Program içerisindeki sabit sayılar bu şekilde tanımlanmalı

    int main(int argc, char *argv[])
    {
    int pos_cnt = 0;

    for (int k = 0; k < INPUT_CNT; k++)
    {
    int number;

    cout << "Lutfen bir sayi giriniz: ";
    cin >> number;

    if (number > 0)
    pos_cnt++;
    }

    cout << "Girilen pozitif sayi adedi: " << pos_cnt << endl;

    system("PAUSE");
    return EXIT_SUCCESS;
    }


    2-



    < Bu mesaj bu kişi tarafından değiştirildi bozcaa -- 27 Aralık 2013; 8:59:15 >




  • kimse cevap vermemiş ama ne zaman başlıyoruz?
  • Güzel düşünce
  • düşünce güzelde bozcaa abim temel algoritmaya bahssedildiği gibi 1 yıl mı ayıracak merak ediyorum (!)
  • 4 başlıkta aynı anda devam ettirilebilirse her seviyeden kullanıcıların yararlanacağı bir platform oluşturabiliriz.
  • quote:

    Orjinalden alıntı: BluePage

    düşünce güzelde bozcaa abim temel algoritmaya bahssedildiği gibi 1 yıl mı ayıracak merak ediyorum (!)

    Ne kadar süreceğine dair kafamda tam bir süre yok. Normalde bu eğitim 3-4 ay süren bir eğitim. Zamanım kısıtlı olduğu için hemen başlayamadım zaten. Bu yüzden uzun da sürebilir. Özellikle sorular aşamasına geçtiğimizde bilgili olan arkadaşlarında konu ile ilgilenenlere yardımcı olması gerekiyor.

    quote:

    Orijinalden alıntı: qamyoncu

    4 başlıkta aynı anda devam ettirilebilirse her seviyeden kullanıcıların yararlanacağı bir platform oluşturabiliriz.

    Amacımız her seviyeden kullanıcıya hitap etmek değil başlangıç seviyesine inebilmek. Tabi belirli bir temel olmadan programlamaya başlamış olan arkadaşlarımızın da istifade edebileceği bilgiler ortaya çıkabilir



    < Bu mesaj bu kişi tarafından değiştirildi bozcaa -- 12 Ağustos 2010; 16:21:47 >




  • Geçen hafta içerisinde sormuş olduğum soruların cevabını aşağıda veriyorum. Umarım faydalı oluyorumdur ama herhangi bir destek yada eleştiri alamadım.

    MERHABA DÜNYA PROGRAMI hakkında sorular

    1- Ekrana "Merhaba Dünya" yazdıran programı yazınız. Bu program yukarıda örnek olarak verildi. Tekrar yazmayı gereksiz buluyorum.
    2- "Merhaba Dünya" yazısının harflerini alt alta yazdıran programı yazınız.
     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    cout << "H" << endl;
    cout << "e" << endl;
    cout << "l" << endl;
    cout << "l" << endl;
    cout << "o" << endl;
    cout << " " << endl;
    cout << "W" << endl;
    cout << "o" << endl;
    cout << "r" << endl;
    cout << "l" << endl;
    cout << "d" << endl;
    cout << "!" << endl;
    cout << "!" << endl;

    system("pause");
    return EXIT_SUCCESS;
    }


    3- Ekrana 5 defa "Merhaba Dünya" yazısını veren programı yazınız.
     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    cout << "Hello World!" << endl;
    cout << "Hello World!" << endl;
    cout << "Hello World!" << endl;
    cout << "Hello World!" << endl;
    cout << "Hello World!" << endl;

    system("pause");
    return EXIT_SUCCESS;
    }



    < Bu mesaj bu kişi tarafından değiştirildi bozcaa -- 16 Ağustos 2010; 13:00:31 >




  • DevC++ gelişimi 5 yıl önce durduruldu bu yüzden onun yerine wxDev-C++ var. Daha gelişmiş ve yeri geldikçe update ediliyor.
    Bunu kullanmanızı tavsiye ederim ücretsiz bir yazılımdır.
    İndirme Linki :http://sourceforge.net/projects/wxdsgn/files/wxDev-C%2B%2B/Version%207/wxdevcpp_7.3.1_full_setup.exe/download
    indirdikten sonra kurarken update etmek istediğinde HAYIR seçeneğini seçin(5-6 kere sorması lazım Hayır deyip geçin). Çünkü en son sürüm olduğu için update gerektirmiyor.




  • 3-3-C++ İLE ARİTMETİK İŞLEMLER

    1. İki tam sayının toplamını bulan program
     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    int sayi1 = 10;
    int sayi2 = 20;
    int toplam;

    toplam = sayi1 + sayi2;

    cout << sayi1 << " + " << sayi2 << " = " << toplam << endl;

    system("pause");
    return EXIT_SUCCESS;
    }

    2. Doğum yılı verilen kişinin yaşını bulan program (Örnek giriş: 1985, 2010 yılı için 25 değerini vermelidir)
     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    int dogumyili = 1985;
    int yil = 2010;
    int yas = yil - dogumyili;

    cout << dogumyili << " dogumlu bir kisinin yasi : " << yas << endl;

    system("pause");
    return EXIT_SUCCESS;
    }

    3. Dikdörtgenin alanını bulan program (Örnek giriş: kısa kenar= 3.5, uzun kenar=2.5, alan = 8.75)
     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    double uzunKenar = 3.5;
    double kisaKenar = 2.5;
    double alan;

    alan = uzunKenar * kisaKenar;

    cout << "Dikdortgenin Alani: " << alan << endl;

    system("pause");
    return EXIT_SUCCESS;
    }

    4. Yarıçapı r = 5 olan dairenin alanını bulan program (pi = 3.14 alabilirsiniz, alan = 78.5)
     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    double r = 5.0;
    double pi = 3.14;
    double alan;

    alan = pi * r * r;

    cout << "Dairenin Alani: " << alan << endl;

    system("pause");
    return EXIT_SUCCESS;
    }

    5. İki tam sayının bölüm ve kalanını bulan program(büyük sayı = 12, küçük sayı = 5, bölüm = 2, kalan = 2)
     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    int sayi1 = 12, sayi2 = 5;
    int bolum, kalan;

    bolum = sayi1 / sayi2;
    kalan = sayi1 % sayi2;

    cout << "Bolum : " << bolum << endl;
    cout << "Kalan : " << kalan << endl;

    system("pause");
    return EXIT_SUCCESS;
    }



    < Bu mesaj bu kişi tarafından değiştirildi bozcaa -- 27 Eylül 2010; 9:37:46 >




  • 3-4-C++ DİLİ İLE KLAVYEDEN GİRİŞ ALMA

    6. Klavyeden girilen 2 sayının toplamını bulan programı yazınız (Örn: 9 ve 6 sayıları için sonuç 15 olmalı)
     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    int sayi1, sayi2;
    int toplam;

    cout << "Birinci sayiyi giriniz : ";
    cin >> sayi1;
    cout << "Ikinci sayiyi giriniz : ";
    cin >> sayi2;

    toplam = sayi1 + sayi2;

    cout << sayi1 << " + " << sayi2 << " = " << toplam << endl;

    system("pause");
    return EXIT_SUCCESS;
    }


    7. Klavyeden girilen 3 sayının aritmetik ortalamasını bulan programı yazınız. (Örn: 3, 4 ve 5 sayıları için sonuç 4 olmalı)
     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    int sayi1, sayi2, sayi3;
    double ortalama;

    cout << "Uc tane sayi giriniz : ";
    cin >> sayi1 >> sayi2 >> sayi3;

    ortalama = (sayi1 + sayi2 + sayi3) / 3.0;

    cout << "Ortalama: " << ortalama << endl;

    system("pause");
    return EXIT_SUCCESS;
    }

    Burada dikkat edilmesi gereken ortalama hesaplanırken 3 tane sayının toplamı 3'e değil 3.0' a bölünmüştür. Bunun sebebi C++ dilindeki otomatik tür dönüşümüdür. "/" operatörü aldığı operandlara bakar. Eğer her ikisi de tam sayı ise bölümü tam sayı olarak hesaplar. Ama operandlarından en az bir tanesi gerçek sayı (double) ise bölümü gerçek sayı olarak hesaplar.

    8. Klavyeden girilen iki basamaklı bir sayının basamaklarının karelerinin toplamını bulan programı yazınız (Örn: 32 --> 3^2 + 2^2 = 13)
     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    int sayi;
    int basamak1, basamak2;
    int toplam;

    cout << "Bir sayi giriniz : ";
    cin >> sayi;

    basamak1 = sayi / 10;
    basamak2 = sayi % 10;

    toplam = (basamak1 * basamak1) + (basamak2 * basamak2);

    cout << sayi << " sayisinin basamaklarinin karesinin toplami " << toplam << endl;

    system("pause");
    return EXIT_SUCCESS;
    }



    < Bu mesaj bu kişi tarafından değiştirildi bozcaa -- 27 Eylül 2010; 9:38:17 >




  • 3-5-IF KONTROL DEYİMİ

    9. Klavyeden girilen 2 sayıyı karşılaştırıp sonucu ekrana yazdıran programı yazınız. (3 ve 5 için çıktı 3 < 5, 8 ve 4 için 8 > 4 olmalıdır.)
     
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    int sayi1, sayi2;

    cout << "Iki sayi giriniz:";
    cin >> sayi1 >> sayi2;

    if (sayi1 > sayi2)
    cout << sayi1 << " > " << sayi2 << endl;
    else if (sayi1 < sayi2)
    cout << sayi1 << " < " << sayi2 << endl;
    else
    cout << sayi1 << " = " << sayi2 << endl;

    system("pause");
    return EXIT_SUCCESS;
    }


    10. Klavyeden girilen bir sayının tek mi çift mi olduğunu gösteren program

    11. Bir uçak 15 dk boyunca düzgün hızlanarak hızı 480 km\s oluyor. Sonra 20 dak. Sabit hızla gidiyor ve 15 dk. boyunca düzgün yavaşlayarak hızı sıfır oluyor. Herhangi bir t anında hızı veren algoritma ve program.
    Çözüm yöntemi:
    t = 0-15 için, hız = t * 32
    t = 15-35 için, hız = 480
    t = 35-50 için, hız = 480 – (t - 35) * 32

    12. Klavyeden girilen Celsius değerinin Fahrenheit eşdeğerini bulan programı yazınız.
    C = (F – 32) / 180 * 100

    13. Klavyeden aynı anda girilen 2 sayıdan, küçük sayının büyük sayının tam böleni olup olmadığını bulan program. Öncelikle girilen sayılardan hangisinin daha büyük hangisinin daha küçük olduğu tespit edilmelidir.

    14. Klavyeden girilen sayının mutlak değerini alan program
    15. Klavyeden girilen saniye değerini, hh:mm:ss biçiminde formatlı olarak yazdıran programı yazınız. Örnek çıktı: 5200 sn --> 1:26:40
    16. 0 ile 1000 arasında girilen bir sayının kaç basamaklı olduğunu ekrana yazdıran program

    17. Klavyeden girilen 3 farklı sayıdan:
    a. En büyük sayıyı bulan programı,
    b. En küçük sayıyı bulan programı,
    c. Ortanca sayıyı bulan programı yazınız.
    Büyük sayı, küçük sayı ve ortanca sayı için ayrı ayrı programlar yazınız.

    18. İç açıları verilen bir üçgenin türünü belirleyen program (çeşitkenar, ikizkenar, eşkenar)

    19. Dört basamaklı sayılardan ilk iki basamağı ile son iki basamağının toplamının karesi, sayının kendisine eşit olan sayılara orijinal sayı denir. Girilen bir sayının orijinal olup olmadığını saptayan algoritma ve program. Örnek veriler: (9801, 3025, 2025)
    20. Artık yıl sınaması yapan programı yazınız.
    Artık yıl Coğrafya derslerinden gördüğümüz 4 senede bir Şubat ayının 29 çekmesi olayı. Çünkü bir yıl 365 gün 6 saat olduğu için bu 6 saat 4 yılda bir 24 saat ediyor ve Şubat ayı 29 gün oluyor. Yalnız bu her 4 yılda olmuyormuş.
    Yıl, 4'e tam bölünebiliyorsa artık yıldır. Örneğin; 2004, 2008, 2012, 2016 yılları artık yıllardır. Ancak, bir güneş yılının 365,25 günden daha az olmasından kaynaklanan, 4'e tam bölünebilmesine rağmen artık yıl olmayan yıllar vardır. 100'e tam bölünebilen bir yılın artık yıl olabilmesi için 400'e de tam bölünebilmesi gerekir. Örneğin; 1200, 1600, 2000, 2400, 2800 yılları artık yıllardır; ancak 1700, 1800, 1900, 2100, 2200 yılları artık yıl değillerdir.

    21. Klavyeden girilen 3 sayının arasındaki büyüklük-küçüklük ilişkisini küçükten büyüğe doğru < ve = simgeleriyle gösterin.
    22. Klavyeden alınan saat ve dakika bilgileriyle yelkovan ile akrep arasındaki açıyı bulan programı yazınız.
    Not: Aşağıdaki örnek değerler kullanılabilir.
    6:00 ve 18:00 için 180 derece
    9:00, 3:00 için 45 derece

    23. İkinci dereceden bir denklemin köklerini bulan program

    Not: Kök işlemi için math.h dosyasında tanımlı “sqrt()” fonksiyonunu kullanabilirsiniz. C++ programlama dilinde cmath içinde bulunur.



    < Bu mesaj bu kişi tarafından değiştirildi bozcaa -- 21 Ekim 2010; 15:06:23 >




  • 3-6-FOR DÖNGÜSÜ

    soruları eklendi
  • 3-7-FONKSİYONLAR

    soruları eklendi

    Not: Bazı soruların çözümü uzun olduğu için fonksiyon kullanmak zorunda kaldım. Üzerinde uğraşılarak fonksiyon kullanmadan yapmanız daha iyi olur.
  • 3-8-DİZİLER

    soruları eklendi.
  • 
Sayfa: 123
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.