[Çözüldü] C++ if kullanımıyla ilgili sorun

Başlatan Elias, 22 Aralık 2017 - 23:47:48

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Elias

Merhaba
c++ ile ilgili bir sorunum var (beginner düzeyiyim tam kavrayamadığım noktalar var ) şimdi:

#include <iostream>
using namespace std ;

main () {
     
     int x,y;
     bool sonuc,tmsonuc;
     char w,z;
     cout << "Topla" << endl <<  "10" << endl<<"+" << endl<<"2" << endl;
     cin >> x;
     y= 12;
     z= 'D';
     sonuc = (x==y);
     tmsonuc = (w == z);
     if (sonuc == 1)
                {
                cout << "Matemeatik bolumu"<< endl;
                }
     else
          {
               cout << "Yanlis !! Asagidaki soruyu cevaplayınız"<< endl; 
          }
   
     cout << "Turkiyenin en buyuk dagi Agri Dagi'dir" << endl << "Dogru ise (D) Yanlis ise (Y) ' ye basınız"<<endl ;
     cin >> w;
     if (tmsonuc = true)
        cout <<"Cografya Bolumu";
     else
         cout << "Beceriksiz" ;       
     cin >> x;
       
     }


Yukarıdaki örnekte kullanıcı başarılı bir şekilde matematik işlemini gerçekleştirebiliyor fakat aşağıdaki gibi coğrafya kısmını çıkarınca matematik işlemini yapamıyor. Göremedim nerede hata yaptığımı. Biliyorum "Neden çok fazla değişken atıyorsun ki bu kadar karışık yapmana gerek yok." diyorsunuzdur.Yukarıda belirttiğim gibi daha çok yeniyim ve açıklamalarınızı bekliyorum

#include <iostream>
using namespace std ;

main () {
     
     
     int x,y;
     bool sonuc;
     y= 12;
     sonuc = (y==x);
     cout << "Topla" << endl <<  "10" << endl<<"+" << endl<<"2" << endl;
     cin >> x;
     
     if (sonuc == 1)
        cout <<"Matematik Bolumu";
       
     else
        cout << "Beceriksiz" ;   
     cin >> y;   
     }

ALGAN

c++ hiç kodlamadım ve bakmadımda ama c yi iyi kötü biliyorum paylaştığın kodların yarısını yani deyimlerin anlamlarını bilmiyorum ama anladığım kadarıyla cin kodu klavyeden değer almak için ve sen x değerini klayveden alıyorsun galiba ve ilk kod da      sonuc = (x==y);  değeri alıp sonra içine atıyorsun sonuc un ama ikinci kod da önce içine atıyorsun sonra x değerini klavyeden alıyorsun kod sıralamasında sorun var galiba (emin değilim C den anladığım çıkara bildiğim kadarıyla)

Elias

Alıntı yapılan: ALGAN - 22 Aralık 2017 - 23:58:31
c++ hiç kodlamadım ve bakmadımda ama c yi iyi kötü biliyorum paylaştığın kodların yarısını yani deyimlerin anlamlarını bilmiyorum ama anladığım kadarıyla cin kodu klavyeden değer almak için ve sen x değerini klayveden alıyorsun galiba ve ilk kod da      sonuc = (x==y);  değeri alıp sonra içine atıyorsun sonuc un ama ikinci kod da önce içine atıyorsun sonra x değerini klavyeden alıyorsun kod sıralamasında sorun var galiba (emin değilim C den anladığım çıkara bildiğim kadarıyla)
Yanıtınız için teşekkürler tespitiniz güzel bundan sonra sıralamaya dikkat edeceğim fakat sıralama hatası var diyelim 2.kodda if'in içindek iki tane eşittirden birini silip sonucu da "true" ye eşitlersek yani if(sonuc = true) yaptığım takdirde sorun ortadan kalkıyor o kısmını anlayamadım bir türlü

ALGAN

valla açıkcası bende tam olarak bilmiyorum true 1 değerine eşittir belki ondan dolayı olabilir diyeceğim ama zaten orda sonuc==1 ise diyor emin değilim tam olarak program ismini mesela faktöryel programı gibi veya ne yapmaya çalıştığınızı c++ etiketi ile google aratırsanız elbet bir sonuç bulursunuz ben hep öyle yapmıştım :)

Elias

#4
Alıntı yapılan: ALGAN - 23 Aralık 2017 - 00:28:17
valla açıkcası bende tam olarak bilmiyorum true 1 değerine eşittir belki ondan dolayı olabilir diyeceğim ama zaten orda sonuc==1 ise diyor emin değilim tam olarak program ismini mesela faktöryel programı gibi veya ne yapmaya çalıştığınızı c++ etiketi ile google aratırsanız elbet bir sonuç bulursunuz ben hep öyle yapmıştım :)

algan maalesef bulamadım tandığın bilgisine güvendiğin bir arkadaşın var ise sorar mısın ? örneklere bakıyorum hepsi bildiğim şeyler hayır şöyle diyeceğim if içine yazılan değişken olduğu için == kullanamıyoruz ve rakamsal değer değilde direkt true yazmamız gerekiyor diye düşündüm ama adamlar gayette değişkeni bir rakamla kıyaslamış if'in içinde mesela aşağıdaki örnek

//sinav.cpp
// alt alta if-else
#include
main()
{
int not;
cout<< "Not`u giriniz:";
cin >> not;
if (not >= 50)
cout << "Geçtiniz!";
else
{
cout <<"Bütten alınan not:";
cin >>not;
if( not>=60 )
cout << "Geçtiniz!";
else
cout <<"Kaldınız!";
}
}



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 23 Aralık 2017 - 08:58:48

konu kapatılabilir sorun çözüldü ikisinde de arkadaşın dediği gibi sıralama hatası yapmışım karşılaştırdığım değerlerden birini karşılaştırdıktan sonra değişkene değer yazdırdığım için sorun çıkıyormuş

edge35



Sorunlarımı çözerken her şeyiyle öğrenmeye çalışıyorum. Bana balık verenden Allah razı olsun, ama bana balık tutmayı öğretenden Allah daha çok razı olsun :)