- x
Temel Algoritma Bilgisi ve Programlamaya Giriş
42 Cevap33146 Görüntüleme6 Favori
Bu konudaki kullanıcılar: hiç
  Seçkin Yorumlar Yazdır
Sayfa: [1]
Giriş
Mesaj


 
238 Mesaj
6 Ağustos 2010; 8:12:27 
Bu mesajla ilgili şikayetinizi bu icon a tıklayarak yapabilirsiniz. Şikayet PM

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 >


_____________________________



 
238 Mesaj
6 Ağustos 2010; 8:15:02 

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 >


    _____________________________



     
    238 Mesaj
    6 Ağustos 2010; 8:19:12 

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


    _____________________________



     
    238 Mesaj
    6 Ağustos 2010; 8:22:37 

    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 >


    _____________________________



     
    238 Mesaj
    6 Ağustos 2010; 8:24:41 

    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 >


    _____________________________



     
    238 Mesaj
    6 Ağustos 2010; 8:29:51 

    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 >


    _____________________________



     
    238 Mesaj
    6 Ağustos 2010; 8:32:24 

    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 >


    _____________________________



     
    2166 Mesaj
    6 Ağustos 2010; 10:23:46 

    kimse cevap vermemiş ama ne zaman başlıyoruz?


    _____________________________

    Gerek yok her sözü, laf ile beyana.. Bir bakış bin söz eder, bakıştan anlayana...
    Hz. Mevlana


     
    74 Mesaj
    7 Ağustos 2010; 21:56:55 

    Güzel düşünce


    _____________________________



     
    2166 Mesaj
    7 Ağustos 2010; 22:10:27 

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


    _____________________________

    Gerek yok her sözü, laf ile beyana.. Bir bakış bin söz eder, bakıştan anlayana...
    Hz. Mevlana


     
    436 Mesaj
    10 Ağustos 2010; 12:42:58 

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


    _____________________________

    Yanmışsam, külümden doğacak bir hisar vardır.


     
    238 Mesaj
    11 Ağustos 2010; 13:38:45 

    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 >


    _____________________________



     
    238 Mesaj
    16 Ağustos 2010; 8:44:59 

    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 >


    _____________________________



     
    206 Mesaj
    16 Ağustos 2010; 12:59:23 

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


    _____________________________

    Nokta kadar menfaat için virgül kadar eğilme.


     
    238 Mesaj
    19 Ağustos 2010; 10:34:20 

    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 >


    _____________________________



     
    238 Mesaj
    24 Ağustos 2010; 9:39:24 

    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 >


    _____________________________



     
    238 Mesaj
    27 Eylül 2010; 9:39:59 

    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 >


    _____________________________



     
    238 Mesaj
    23 Kasım 2010; 9:47:16 

    3-6-FOR DÖNGÜSÜ

    soruları eklendi


    _____________________________



     
    238 Mesaj
    23 Kasım 2010; 9:49:49 

    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.


    _____________________________



     
    238 Mesaj
    23 Kasım 2010; 9:52:08 

    3-8-DİZİLER

    soruları eklendi.


    _____________________________



     
    13 Mesaj
    31 Mart 2012; 17:41:35 

    nereye ekledınız


    _____________________________



     
    13 Mesaj
    31 Mart 2012; 17:44:58 

    bu sorunun cevabını arıyorum yardımcı olurmusunuz.ekledıklerınız arasında var gozukuyor.

    Bir odada bulunan kişi sayısına göre, odadaki herhangi iki kişinin doğum günlerinin aynı olma ihtimali aşağıdaki gibi hesaplanır:

    N = odadaki kişi sayısı olmak üzere

    Olasılık =1-(365/366)*(364/366)*(363/366)*.....*(366-N+1)/366

    Klavyeden girilen kişi sayısına göre olasılığı hesaplayıp ekrana yazdıran bir C programı geliştiriniz




    _____________________________



    1321 Mesaj
    31 Mart 2012; 22:05:40 

    quote:

    Orijinalden alıntı: anılmrt

    nereye ekledınız

    10-15 sene daha beklerseniz belki koyar. O zaman bir daha sorun.


    _____________________________



     
    13 Mesaj
    1 Nisan 2012; 10:19:01 

    siz cevaplarmısınız o zaman .


    _____________________________



    301 Mesaj
    2 Nisan 2012; 1:20:10 

    quote:

    Orijinalden alıntı: anılmrt

    bu sorunun cevabını arıyorum yardımcı olurmusunuz.ekledıklerınız arasında var gozukuyor.

    Bir odada bulunan kişi sayısına göre, odadaki herhangi iki kişinin doğum günlerinin aynı olma ihtimali aşağıdaki gibi hesaplanır:

    N = odadaki kişi sayısı olmak üzere

    Olasılık =1-(365/366)*(364/366)*(363/366)*.....*(366-N+1)/366

    Klavyeden girilen kişi sayısına göre olasılığı hesaplayıp ekrana yazdıran bir C programı geliştiriniz




    Sağlamasını yapmadım ama doğru sonuçtur umarım. 99 dan fazla kişi varsa olasılık 1 oluyordu o yüzden eğer sayi 99 dan büyükse hiç hesaplamadan cevabı yazıyor.
    #include <stdio.h>
    
    int main()
    {
        int n;
        double o = 1, i = 365;
    
        while (1)
        {
            printf("Kisi sayisini girin: ");
            scanf("%d", &n);
            if(n > 99)
            {
                printf("\nOlasilik = 1\n");
                return 0;
            }
            else if(n > 1) break;
            printf("hata: kisi sayisi 1 den buyuk bir tam sayi olmalidir.\n\n");
        }
    
        n = 367 - n;
        while (i > n) o *= (i-- / 366);
        o = 1 - o;
    
        printf("\nOlasilik = %f\n", o);
    
        return 0;
    }
    


     
    238 Mesaj
    2 Nisan 2012; 8:04:13 

    quote:

    Orijinalden alıntı: strahd_von_zarovich


    10-15 sene daha beklerseniz belki koyar. O zaman bir daha sorun.

    Arkadaşlar bahsedilen kısım yukarıda var. Konu bütünlüğünün bozulmaması açısından ilk yazılan 5-6 mesajı düzeltme amaçlı olarak kendime ayırmıştım.
    Yeteri kadar ilgi olmadığını görünce bu kısımda paylaşım yapmayı bırakmıştım. Ama yavaş yavaş hareketlendirebiliriz isterseniz.


     
    13 Mesaj
    2 Nisan 2012; 11:02:56 

    program için çok tesekür ederim . eğer 99 dan büyük girerse kullanıcı bunun için düşündüğünüz baska bir algoritma yapısı war mı?


    _____________________________



     
    13 Mesaj
    2 Nisan 2012; 11:06:43 

    Klavyeden sıfır (0) girilene kadar okunan her sayısının tersini ekrana yazan bir C programı geliştiriniz.
    NOT: Girilen sayıların basamak sayıları farklı olabilir! İç-içe döngü kullanmak zorunludur!

    Örnek Çıktı:
    Bir sayı giriniz (Çıkmak için 0 giriniz): 172
    Sayının tersi = 271
    Bir sayı giriniz (Çıkmak için 0 giriniz): 6721
    Sayının tersi = 1276
    Bir sayı giriniz (Çıkmak için 0 giriniz): -83
    Sayının tersi = -38
    Bir sayı giriniz (Çıkmak için 0 giriniz): 0
    Program sonlandı!

    bu program hakkında da bana yardım edebilir misiniz ?


    _____________________________



     
    13 Mesaj
    2 Nisan 2012; 11:09:40 

    hocam yavas yavas hareketlendirebiliriz demissiniz yardımcı olursanız sevinirim ..


    _____________________________



     
    238 Mesaj
    2 Nisan 2012; 14:31:05 

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    	int sayi;
    	
    	while (true)
    	{
    		cout << "Lutfen bir sayi giriniz: ";
    		cin >> sayi;
    		
    		if (sayi == 0)
    			break;
    		
    		int sayininTersi = 0;
    		
    		while (sayi != 0)
    		{
    			if (sayininTersi != 0)
    				sayininTersi *= 10;
    			sayininTersi += sayi % 10;
    			sayi /= 10;
    		}
    		
    		if (sayi < 0)
    			sayininTersi *= -1;
    		
    		cout << "Sayının tersi: " << sayininTersi << endl;
    	}
    	
    	system("PAUSE");
    	return EXIT_SUCCESS;
    }
    
    


     
    13 Mesaj
    2 Nisan 2012; 15:25:14 

    hocam siz bunu sanırım c++ ile yazmıssınız ben çok fazla bilmiyorum daha c diline yeni basladım .bu programı c dili ile yazmam mümkün mü .orada bazı terimlerin c dilindeki karsılıklarına baktım çalıştırmayı denedim ama olmuyo .bu konuda bana bir yol gösterebilir misiniz ?


    _____________________________



     
    238 Mesaj
    2 Nisan 2012; 17:15:50 

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

    yerine

    print("Lütfen bir sayi giriniz");
    scanf("%d", &sayi);

    yeterli olur

    tabi baş tarafa include <stdio.h> vb. eklemen gerekiyor. birde sonda return EXIT_SUCCESS; bunun yerine return 0; yazman gerekiyor. EXIT_SUCCESS c de yoktu herhalde.
    çoktandır c/c++ da kod yazmıyorum. biraz unutmuşum.


     
    13 Mesaj
    2 Nisan 2012; 17:59:08 

    tesekür ederim dediğiniz gibi yazdım program çalışıyor ama sayıların tersini vermiyor tekrar kullanıcıdan sayı istiyor.. genede ilginizden dolayı tekrar tesekür ederim ..


    _____________________________



     
    238 Mesaj
    3 Nisan 2012; 11:07:40 

    quote:

    Orijinalden alıntı: anılmrt

    tesekür ederim dediğiniz gibi yazdım program çalışıyor ama sayıların tersini vermiyor tekrar kullanıcıdan sayı istiyor.. genede ilginizden dolayı tekrar tesekür ederim ..

    alttaki cout kısmını da printf ile yazdırman gerekiyor belki onu düzeltmemişsindir

    yani

    cout << "Sayının tersi: " << sayininTersi << endl;

    yerine

    printf("Sayinin tersi: %d", sayininTersi);

    şeklinde yazdırman gerekiyor.

    sorularda C kullanacaksan en azından printf ve scanf fonksiyonlarının kullanımını öğrenmen gerekiyor. C++ da %d, %f gibi kullanımlar gerekmediğinden daha kolay olur diye kullandım.


     
    13 Mesaj
    3 Nisan 2012; 13:18:46 

    #include <stdio.h>



    int main( )
    {
    int sayi;

    while (1)
    {
    printf( "Lutfen bir sayi giriniz:");
    scanf("%d",&sayi);

    if (sayi == 0)
    break;

    int sayininTersi = 0;

    while (sayi != 0)
    {
    if (sayininTersi != 0)
    sayininTersi *= 10;
    sayininTersi += sayi % 10;
    sayi /= 10;
    }

    if (sayi < 0)
    sayininTersi *= -1;

    printf( "Sayının tersi: ",sayininTersi);
    }

    system("PAUSE");
    return 0;
    }




    bu şekilde yazdım programda sorun yok çalışıyor ama tersini vermiyor .sürekli kullanıcıdan sayi istiyor .


    _____________________________



     
    238 Mesaj
    3 Nisan 2012; 15:10:41 

    printf( "Sayının tersi: %d \n", sayininTersi);

    printf de %d kısmını unutmuşsun birde \n koyduğun zaman bir alt satıra geçirir. program çıktısını daha rahat okuyabilirsin


     
    13 Mesaj
    3 Nisan 2012; 18:16:41 

    oleyyy çalıstıı çok tesekür ederim..


    _____________________________



    1576 Mesaj
    3 Nisan 2012; 22:55:55 

    Bu sayının tersini yazma mantığı nasıl oluyor. ?Pythonda yapmayı deniyecem .



    < Bu ileti mobil sürüm kullanılarak atıldı >


    _____________________________


    SAMSUNG GALAXY S III
    4.8" Super AMOLED 720p HD Gorilla Glass 2 Ekran | Exynos 4412 Quad Chipset | Quad-core 1.4 GHz Cortex-A9 İşlemci | Mali-400MP GPU | 16/32/64 GB Depolama | 64 GB kadar MicroSD ile Arttırılabilir Hafıza | 1 GB RAM | Bluetooth v4.0 A2DP, EDR | 8 MP 3264x2448 pixels, Autofocus, LED Flash Kamera | 1080p HD Video Kayıt | TV - Out MHL | Android OS, v4.1.2 (Jelly Bean) İşletim Sistemi


     
    238 Mesaj
    4 Nisan 2012; 13:16:06 

    quote:

    Orijinalden alıntı: OMéR

    Bu sayının tersini yazma mantığı nasıl oluyor. ?Pythonda yapmayı deniyecem .

    örneğin elimide 123 sayısı var bu sayının 10 göre modunu alırsan 3 ü elde edersin. sonrasında bu sayıyı 10'a bölersen elinde 12 sayısı kalır. aynı şekilde bununda 10' a göre modunu alırsan 2 yi elde edersin ve sonrada aynı şekilde 1 i elde edersin.

    sırası ile elinde 3 2 ve 1 numaraları var.
    sayının tersi ilk başta 0 olmalı
    her ekleyeceğn numara sayının değerini hem kendi değeri kadar arttırır sonrasında da 10 katına çıkarır.
    (bu arada if (sayininTersi != 0) kısmı fazla olmuş gibi görünüyor yazdığım kodda :)) )
    sayinin tersi:0
    3 elde edildi
    0*10 = 0, 0+3=3
    sayinin tersi:3
    2 elde edildi
    3*10 = 30, 30+2=32
    sayinin tersi: 32
    1 elde edildi
    32*10=320, 320+1=321
    sayini tersi: 321




    1576 Mesaj
    4 Nisan 2012; 17:55:31 

    Hocam oldukça amatörüm Üstte dediklerinizin karşılığı altta nasıl oluyor kavrayamadım. Yardımcı olabilir misiniz?
    if (sayi == 0)
    break; int sayininTersi = 0; while (sayi != 0)
    {
    if (sayininTersi != 0)
    sayininTersi *= 10;
    sayininTersi += sayi % 10;
    sayi /= 10; } if (sayi < 0)
    sayininTersi *= -1;

    Kodların yanına # ile açıklama yaparsanız sevinirim.



    < Bu ileti mobil sürüm kullanılarak atıldı >


    _____________________________


    SAMSUNG GALAXY S III
    4.8" Super AMOLED 720p HD Gorilla Glass 2 Ekran | Exynos 4412 Quad Chipset | Quad-core 1.4 GHz Cortex-A9 İşlemci | Mali-400MP GPU | 16/32/64 GB Depolama | 64 GB kadar MicroSD ile Arttırılabilir Hafıza | 1 GB RAM | Bluetooth v4.0 A2DP, EDR | 8 MP 3264x2448 pixels, Autofocus, LED Flash Kamera | 1080p HD Video Kayıt | TV - Out MHL | Android OS, v4.1.2 (Jelly Bean) İşletim Sistemi


     
    1 Mesaj
    23 Kasım 2012; 12:21:47 

    bozcaa öncelikle teşekkür ederim önemli bir konuya güzel bir giriş yapmışsın soruların cevaplarını vakit bulupda paylaşabilirsen çok memnun olurum..


    _____________________________



     
    577 Mesaj
    24 Kasım 2012; 21:24:34 

    paylaşımlar güzel olmuş .


    _____________________________



    3648 Mesaj
    25 Kasım 2012; 1:10:06 

    Teşekkürler, çok faydalı bir konu olmuş, anlatım benim gibi yeni başlayanlar için açıklayıcı, ayrıntılı. Konuyu okumaya başladım, kodlarıda uygulamaya başlıycam, takipteyiim.


    _____________________________

    Bir kedim bile yok...[/url]
    Sayfa:   [1]
    Tüm forumlar » [Web Tasarım - Programlama] » Yazılım Geliştirme » Delphi / C++ /Vb » Temel Algoritma Bilgisi ve Programlamaya Giriş
    Sayfa: [1]
    Foruma Git
    Bölümde Ara
    Başa Dön


     
    Reklamlar


    DH VİDEO

     



    Forum Software powered by ASP Playground Advanced Edition 2.3
    Copyright © 2000 - 2006 ASPPlayground.NET

    Bu sayfanın mobil sürümü / tablet sürümü / mini sürümü.



    1.045