Arama butonu
Bu konudaki kullanıcılar: 1 misafir
5
Cevap
731
Tıklama
0
Öne Çıkarma
C++ Hakkında Yardım Lütfen
B
14 yıl
Yüzbaşı
Konu Sahibi

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?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



V
14 yıl
Binbaşı

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


Bu mesaja 1 cevap geldi.
B
14 yıl
Yüzbaşı
Konu Sahibi


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?


Bu mesaja 1 cevap geldi.
V
14 yıl
Binbaşı

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 >
Bu mesaja 1 cevap geldi.
B
14 yıl
Yüzbaşı
Konu Sahibi

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.


Bu mesaja 1 cevap geldi.
G
14 yıl
Yarbay

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.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.