Şimdi Ara

C++ Hakkında Yardım Lütfen

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
625
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar c++ hakkında çok fazla bilgim yok ve kendi uğraşmalarımla basit bir program yapmaya çalışıyorum.
    İçinden çıkamadığım ve araştırmalarıma rağmen bulamadığım bir sorunum var.
    Yardımcı olursanız sevinirim...

    Yapmak istediğim ekrana girilen karakterleri sayıya çevirerek bu sayıları toplamak.

    char renk1[10],renk2[10];

    char mor = '1';

    char mavi = '2';

    Olarak belirliyorum

    İstediğim mor yazıldığında 1 --- mavi yazıldığında 2
    olarak algılayıp bunları toplaması.

    Bu şekilde tüm renklere sayısal değer atayarak girilen renklerin sayısal değerlerini toplamak istiyorum.

    char yaptığım zaman toplama işlemini yaptırırken

    char renk1[10],renk2[10];

    renk1 + renk2 yaparsam karakteri toplayamadığı için hata veriyor.


    int yaptığım zaman

    int renk1,renk2;

    toplama işleminde problem yok ama bu sefer de ekrana rengi yazdığım zaman 2. rengi sormadan program sonlanıyor.

    Yardımcı olabilirmisiniz lütfen?







  • quote:

    Orijinalden alıntı: byakman

    Arkadaşlar c++ hakkında çok fazla bilgim yok ve kendi uğraşmalarımla basit bir program yapmaya çalışıyorum.
    İçinden çıkamadığım ve araştırmalarıma rağmen bulamadığım bir sorunum var.
    Yardımcı olursanız sevinirim...

    Yapmak istediğim ekrana girilen karakterleri sayıya çevirerek bu sayıları toplamak.

    char renk1[10],renk2[10];

    char mor = '1';

    char mavi = '2';

    Olarak belirliyorum

    İstediğim mor yazıldığında 1 --- mavi yazıldığında 2
    olarak algılayıp bunları toplaması.

    Bu şekilde tüm renklere sayısal değer atayarak girilen renklerin sayısal değerlerini toplamak istiyorum.

    char yaptığım zaman toplama işlemini yaptırırken

    char renk1[10],renk2[10];

    renk1 + renk2 yaparsam karakteri toplayamadığı için hata veriyor.


    int yaptığım zaman

    int renk1,renk2;

    toplama işleminde problem yok ama bu sefer de ekrana rengi yazdığım zaman 2. rengi sormadan program sonlanıyor.

    Yardımcı olabilirmisiniz lütfen?

    Enum konusunu arastirabilirsin, renkleri bir enumda tutarsin, toplarsin, ama ekrana bastirmak icin enum degerine gore string e cevirmek gerekir, biraz yaz yardimci olmaya calisayim





  • Enum konusunu arastirabilirsin, renkleri bir enumda tutarsin, toplarsin, ama ekrana bastirmak icin enum degerine gore string e cevirmek gerekir, biraz yaz yardimci olmaya calisayim





    Enum konusunu biraz araştırdım ama açıkçası çok acemi olduğum için pek çözemedim.

    Benim hazırladığım şuana kadar olan kodlarım şu şekilde:



        char renk1[10],renk2[10],renk3[10]; 
    char siyah = '0';
    char kahverengi = '1';
    char kirmizi = '2';
    char turuncu = '3';
    char sari = '4';
    char yesil = '5';
    char mavi = '6';
    char mor = '7';
    char gri = '8';
    char beyaz = '9';
    char Siyah = '1';
    char Kahverengi = '10';
    char Kirmizi = '100';
    char Turuncu = '1000';
    char Sari = '10000';
    char Yesil = '100000';
    char Mavi = '1000000';
    char Mor = '10000000';
    char Gri = '100000000';
    char Beyaz = '1000000000';

    int sonuc1,sonuc2,sonuc3;


    cout<<"1. Rengi Giriniz : "<<endl;
    cin>>renk1;

    cout<<"2. Rengi Giriniz : "<<endl;
    cin>>renk2;

    cout<<"3. Rengi Giriniz : "<<endl;
    cin>>renk3;

    sonuc1 =(renk1*10);
    sonuc2 =(sonuc1+renk2);
    sonuc3 =(sonuc2*renk3);



    system("PAUSE");
    return EXIT_SUCCESS;
    }




    Burada

    sonuc1 =(renk1*10);

    Satırında hata veriyor. Nedeni ne olabilir acaba?




  • quote:

    Orijinalden alıntı: byakman


    Enum konusunu arastirabilirsin, renkleri bir enumda tutarsin, toplarsin, ama ekrana bastirmak icin enum degerine gore string e cevirmek gerekir, biraz yaz yardimci olmaya calisayim





    Enum konusunu biraz araştırdım ama açıkçası çok acemi olduğum için pek çözemedim.

    Benim hazırladığım şuana kadar olan kodlarım şu şekilde:



        char renk1[10],renk2[10],renk3[10]; 
    char siyah = '0';
    char kahverengi = '1';
    char kirmizi = '2';
    char turuncu = '3';
    char sari = '4';
    char yesil = '5';
    char mavi = '6';
    char mor = '7';
    char gri = '8';
    char beyaz = '9';
    char Siyah = '1';
    char Kahverengi = '10';
    char Kirmizi = '100';
    char Turuncu = '1000';
    char Sari = '10000';
    char Yesil = '100000';
    char Mavi = '1000000';
    char Mor = '10000000';
    char Gri = '100000000';
    char Beyaz = '1000000000';

    int sonuc1,sonuc2,sonuc3;


    cout<<"1. Rengi Giriniz : "<<endl;
    cin>>renk1;

    cout<<"2. Rengi Giriniz : "<<endl;
    cin>>renk2;

    cout<<"3. Rengi Giriniz : "<<endl;
    cin>>renk3;

    sonuc1 =(renk1*10);
    sonuc2 =(sonuc1+renk2);
    sonuc3 =(sonuc2*renk3);



    system("PAUSE");
    return EXIT_SUCCESS;
    }




    Burada

    sonuc1 =(renk1*10);

    Satırında hata veriyor. Nedeni ne olabilir acaba?
    Dostum burada baska hatalarda var mesela, kahverenginden sonrakiler, char adi ustunde karakterdir, 10 100 falan diyemezsin.

    renk1 dedigin character array idir, onu da renk1*10 diye secemezsin, orada ne yaptin bilmiorum ama renk[1], renk[3] gibi kullanabilirsin,



    < Bu mesaj bu kişi tarafından değiştirildi venomvenom -- 6 Aralık 2011; 18:12:31 >




  • quote:

    Orijinalden alıntı: venomvenom

    Dostum burada baska hatalarda var mesela, kahverenginden sonrakiler, char adi ustunde karakterdir, 10 100 falan diyemezsin.

    renk1 dedigin character array idir, onu da renk1*10 diye secemezsin, orada ne yaptin bilmiorum ama renk[1], renk[3] gibi kullanabilirsin,

    Oradaki renk1[10] değerini koymamdaki amaç ekranda renk yazıldığında max 10 karaktere izin vermek.

    O şekilde belirtmediğimde program çalışırken hata veriyor.

    Örneğin ekrana mavi yazıldığında son satıra kadar devam ediyor ve renk2 ve renk3 girilmesine izin vermiyor.


    Senin dediğin gibi karakter olduğu için de renk1*10 yapmama izin vermiyor.

    char değerini int değerine çevirerek renk1*10 yapmam gerekli ama bende bunu nasıl yapabileceğimi bilmiyorum.
  • Ekrana bir renk yazacaksın ve karşılığı olan sayıları elde ediceksin öylemi? Eğer dil c++ ise gayet basit.
    Bi kere char dizisini falan boşver, string diye bir nesne var, bununla bir renk dizisi oluşturalım ve renkleri teker teker girelim.

    string renk[ADET];

    renk[0] = "siyah"; // Dikkat çift tırnak, tek değil!
    renk[1] = "kahverengi";
    renk[2] = "kirmizi"; // Türkçe karakterler sorun çıkarabilir.
    ...

    Sonra klavyeden giris yapalım ve bu rengi renk numarasını veren bir fonksiyona gönderelim.

    string giris;
    int sonuc1, sonuc2;

    cin >> giris;
    sonuc1 = renkNo(renk, ADET, giris);

    Bu fonksiyon istediğin gibi renk numarasını verir. Onuda yazayım, sen derleyip toparlarsın.

    int renkNo(string renk[], int adet, string giris)
    {
    for(int i = 0; i < adet; i++) {
    if(giris == renk[ i])
    return i;
    }
    }

    İstersen renk dizisini ve ADET sabitini global bölgeye (en tepeye) taşıyıp fonksiyonu tek parametreli hale çevirebilirsin, diziyi ve adetini kendisi görebilir.




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.