+ Cevap Yaz
Toplam 2 sayfadan 1. sayfa
1 2 En SonEn Son
14 sonuçtan 1 ile 10 arası gösteriliyor

Konu: Hesap makinesi denemem de bir hata?

  1. #1
    c3r
    c3r hatta değil
    Usta olmak istiyorum c3r Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    11/2008
    Yer
    Monitörün karşısı
    Mesaj
    859

    Hesap makinesi denemem de bir hata?

    Arkadaşlar c++ öğrenme aşamasındayım,hesap makinesi yapmaya karar verdim.Aşağıdaki haline gelince acaba doğru gidiyor muyum diye deniyeyim dedim.Programda seçim yaptığım an yani 1'e bastğım an program hemen kayboluyor.Consoldan başlattım yine aynı sorun oluyor ve herhangi bir hata mesajı vermiyor?

    PHP Kodu:
    #include <iostream>
    using namespace std;
    double s1,s2,snc;
    int scm;

    int main(){
        
    cout<<"       HESAP MAKINESI        "<<'\n';
        
    cout<<""<<'\n';
        
    cout<<"       1.TOPLAMA"<<'\n';
        
    cout<<"       2.CIKARTMA"<<'\n';
        
    cout<<"       3.BOLME"<<'\n';
        
    cout<<"       4.CARPMA"<<'\n';
        
    cout<<""<<'\n';
        
    cout<<"Lutfen Yapmak Istediginiz Islemi Seciniz";
        switch(
    scm)
    {
        case 
    1:{
        
    cout<<"Birinci Sayiyi Giriniz"<<'\n';
        
    cin>>s1;
        
    cout<<"Ikinci Sayiyi Giriniz"<<'\n';
        
    cin>>s2;
        
    snc=s1+s2;
        
    cout<<"Toplama Islemi Sonucu:"<<snc;
        break;
        }
        default:
        
    cout<<"Hatali Islem";
    }
        
    system("pause");
        return 
    0;


  2. #2
    Ziraat Mühendisi _Onk@_ Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    09/2008
    Yer
    Ankara
    Mesaj
    702

    scm'nin değerini bir kullanıcıdan almayı unutmuşsun sanırım.
    Kod:
    #include <iostream>
    #include <cstdlib>
    
    using namespace std;
    
    int main(){
    double s1=0.0,s2=0.0,snc=0.0;
    int scm=0;
    
        cout<<'\t'<<"HESAP MAKINESI\n"<<endl;
        cout<<"\t1.TOPLAMA"<<endl;
        cout<<"\t2.CIKARTMA"<<endl;
        cout<<"\t3.BOLME"<<endl;
        cout<<"\t4.CARPMA\n"<<endl;
        cout<<"Lutfen Yapmak Istediginiz Islemi Seciniz: ";
    	
    	cin>>scm;
    	
    	switch(scm)
    	{
    		case 1:
    		cout<<"Birinci Sayiyi Giriniz"<<endl;
    		cin>>s1;
    		cout<<"Ikinci Sayiyi Giriniz"<<endl;
    		cin>>s2;
    		snc=s1+s2;
    		cout<<"Toplama Islemi Sonucu:"<<snc<<endl;
    		break;
    		
    		default:
    		cout<<"Hatali Islem";
    	}
    	
        system("pause");
        return 0;
    }
    

  3. #3
    Ali Çehreli
    Üyelik Tarihi
    10/2002
    Mesaj
    2,899

    scm'i kullanıcıdan almıyorsun. switch'ten önce:

    Kod:
        cin >> scm;
    
    Bu arada, normalde programlarda ilklenmemiş değişkenler kullanılmaz. Hepsine ilk değerlerini vermen gerekir.

    Ayrıca hiçbirisini evrensel alanda tanımlamana da gerek yok:

    Kod:
    int main(){
        double s1 = 0;
        double s2 = 0;
        double snc = 0;
        int scm = 0;
    
    Ali

  4. #4
    c3r
    c3r hatta değil
    Usta olmak istiyorum c3r Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    11/2008
    Yer
    Monitörün karşısı
    Mesaj
    859

    Alıntı _Onk@_, mesajından alıntı: Mesajı Gör
    scm'nin değerini bir kullanıcıdan almayı unutmuşsun sanırım.
    Evet abi hatam oradaymış teşekkür ederim,şimdi oldu
    Alıntı acehreli, mesajından alıntı: Mesajı Gör

    Bu arada, normalde programlarda ilklenmemiş değişkenler kullanılmaz. Hepsine ilk değerlerini vermen gerekir.

    Ayrıca hiçbirisini evrensel alanda tanımlamana da gerek yok:

    Ali
    Ali abi konu anlatımlarında genelde ilk değer verilmeden,sadece tür olarak tanımlanıyordu onun için öyle yapmıştım ancak bundan sonra gösterdiğiniz şekilde yapmaya gayret göstereceğim.Diğer söylediğiniz;Evrensel olarak tanımlanması daha avanatjlı değil mi her ihtiyacım olduğunda çağırırım (?)

  5. #5
    Ziraat Mühendisi _Onk@_ Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    09/2008
    Yer
    Ankara
    Mesaj
    702

    Alıntı c3r, mesajından alıntı: Mesajı Gör
    ...Diğer söylediğiniz;Evrensel olarak tanımlanması daha avanatjlı değil mi her ihtiyacım olduğunda çağırırım (?)
    Bu şekilde program boyunca işimiza yaramayacağı halde bellekte saklanacaktır. Değişkenleri gerçekten ihtiyacımız olduğu zaman evrensel (global) alanda tanımlamalıyız.

  6. #6
    c3r
    c3r hatta değil
    Usta olmak istiyorum c3r Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    11/2008
    Yer
    Monitörün karşısı
    Mesaj
    859

    Alıntı _Onk@_, mesajından alıntı: Mesajı Gör
    Bu şekilde program boyunca işimiza yaramayacağı halde bellekte saklanacaktır. Değişkenleri gerçekten ihtiyacımız olduğu zaman evrensel (global) alanda tanımlamalıyız.
    evet şimdi anlıyorum,yaptığım çok amatörce olmuş

  7. #7
    Ali Çehreli
    Üyelik Tarihi
    10/2002
    Mesaj
    2,899

    Alıntı c3r, mesajından alıntı: Mesajı Gör
    Evrensel olarak tanımlanması daha avanatjlı değil mi her ihtiyacım olduğunda çağırırım (?)
    Küçük programlarda öyle gelir ama program büyüdükçe bu yöntemin zararı hemen ortaya çıkar.

    _Onk@_'nın söylediklerine ek olarak:

    - Evrensel değişkenler, onları kullanan işlevlerin tek-girişli (non-reentrant) olmalarına neden olurlar

    - Evrensel değişkenleri hangi işlevin ne şekilde değiştirdiği denetlenemez

    Bu yüzden; değişkenler ve nesneler, kullanıldıkları noktaya en yakın yerde tanımlanırlar. Senin programın buna uygun olarak şöyle yazılabilir:

    Kod:
    #include <iostream>
    using namespace std;
    
    int main(){
        cout<<"       HESAP MAKINESI        "<<'\n';
        cout<<""<<'\n';
        cout<<"       1.TOPLAMA"<<'\n';
        cout<<"       2.CIKARTMA"<<'\n';
        cout<<"       3.BOLME"<<'\n';
        cout<<"       4.CARPMA"<<'\n';
        cout<<""<<'\n';
        cout<<"Lutfen Yapmak Istediginiz Islemi Seciniz";
    
        int scm = 0;
        cin >> scm;
    
        switch(scm)
        {
        case 1:{
            cout<<"Birinci Sayiyi Giriniz"<<'\n';
            double s1 = 0;
            cin>>s1;
    
            cout<<"Ikinci Sayiyi Giriniz"<<'\n';
            double s2 = 0;
            cin>>s2;
    
            double snc=s1+s2;
            cout<<"Toplama Islemi Sonucu:"<<snc;
            break;
        }
        default:
            cout<<"Hatali Islem";
        }
        system("pause");
        return 0;
    }
    
    Daha sonradan, diğer işlemleri programa eklerken, s1 ve s2'yi switch'ten önce tanımlamanın yararlı olup olmayacağına karar verebilirsin.

    Ali

  8. #8
    c3r
    c3r hatta değil
    Usta olmak istiyorum c3r Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    11/2008
    Yer
    Monitörün karşısı
    Mesaj
    859

    Ali abi tecrübelerinizden faydalanmak çok güzel oluyor,teşekkür ederim

  9. #9
    c3r
    c3r hatta değil
    Usta olmak istiyorum c3r Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    11/2008
    Yer
    Monitörün karşısı
    Mesaj
    859

    Alıntı acehreli, mesajından alıntı: Mesajı Gör
    scm'i kullanıcıdan almıyorsun. switch'ten önce:

    Kod:
        cin >> scm;
    
    Bu arada, normalde programlarda ilklenmemiş değişkenler kullanılmaz. Hepsine ilk değerlerini vermen gerekir.

    Ayrıca hiçbirisini evrensel alanda tanımlamana da gerek yok:

    Kod:
    int main(){
        double s1 = 0;
        double s2 = 0;
        double snc = 0;
        int scm = 0;
    
    Ali
    Ali abi siz ilklenmemiş değişkenler kullanılmaz dedikten sonra çalışmalarımda kullanmamaya başladım,ancak biraz önce class tanımlarken ilklendirmeye çalıştım hata verdi ilklendirmeyi kaldırınca programı sorunsuz derledi classlar için normalrmidir bu durum?

  10. #10
    Ali Çehreli
    Üyelik Tarihi
    10/2002
    Mesaj
    2,899

    Alıntı c3r, mesajından alıntı: Mesajı Gör
    classlar için normalrmidir bu durum?
    Bu durum, ilkleme için kullandığın yazımı göstermeni gerektiren bir durumdur...

    Normalde şöyle olur:

    Kod:
    Dikdortgen bahce(10, 20);
    
    Ali

+ Cevap Yaz

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Bookmarks

Mesaj Yazma Hakları

  • Yeni mesajgöndermezsiniz
  • Cevap yazamazsınız
  • Dosya ekleyemezsiniz
  • Mesajınızı düzenleyemezsiniz