lostyazilim
tr.link

C++ Sonsuz Çıkarma İşlemi Nasıl Yapılır ? [Soru]

9 Mesajlar 2.514 Okunma
lstbozum
tr.link

KaanGundovan KaanGundovan Kaan Gündovan Kullanıcı
  • Üyelik 22.01.2013
  • Yaş/Cinsiyet 28 / E
  • Meslek Özel Sektör / Bilgi İşlem
  • Konum İstanbul Anadolu
  • Ad Soyad A** G**
  • Mesajlar 520
  • Beğeniler 27 / 121
  • Ticaret 0, (%0)
Öncelikle merhabalar. Geçen gün canım sıkıldığı için biraz kod yazıp zaman öldüreyim diye bir işe kalkıştım. Kalkışmaz olaydım. Gecem gündüzüm bu sorun oldu. Altı üstü bir çıkarma işlemini yapamadım. Normalde toplama işlemi gayet güzel oluyor fakat çıkarma işleminde takılı kaldım.

Sorunum şu :

Sonsuz bir for döngüsü var. for(int i=1; i > 0; i++)
Kullanıcı istediği kadar sayı girecek. cout << "Sayi : ";
Sonuc diye bir değişkenim var. Çıkarılan sayılar buraya atılacak. int sonuc;
Sayılar girildiği zaman program bunları çıkaracak ve ekrana cout << sonuc; yazdırılacak. Fakat bir türlü girilen sayılar çıkartamıyorum. 50-40 = 10 oluyor, fakat sayı eksilere düştüğü zaman kafayı yiyor.
40 - 55 = -15
(-15) - 50 = -65
(-65) - 5 = 5

gibi sonuçlar veriyor. İnternette baya araştırdım ancak bir çözüm bulamadım. kütüphanesini kullanıyorum.
 

 

wmaraci
reklam

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
Yazdığınız kod bloğunu paylaşırmısınız.. Online bir editörde kontrol edebilirim. Sanmıyorum saçmalasın :) Vardır bir sıkıntı kodda bence.
 

 

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

KaanGundovan KaanGundovan Kaan Gündovan Kullanıcı
  • Üyelik 22.01.2013
  • Yaş/Cinsiyet 28 / E
  • Meslek Özel Sektör / Bilgi İşlem
  • Konum İstanbul Anadolu
  • Ad Soyad A** G**
  • Mesajlar 520
  • Beğeniler 27 / 121
  • Ticaret 0, (%0)

Turgay Can adlı üyeden alıntı

Yazdığınız kod bloğunu paylaşırmısınız.. Online bir editörde kontrol edebilirim. Sanmıyorum saçmalasın :) Vardır bir sıkıntı kodda bence.


Formattan dolayı elimde bir şey yok. Kod yazmada da sıkıntı yok sadece mantığını kavrayamadım. Bu konuda yardım istiyorum. Hata zaten kodlarda.
:)
 

 

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)

KaanGundovan adlı üyeden alıntı

Formattan dolayı elimde bir şey yok. Kod yazmada da sıkıntı yok sadece mantığını kavrayamadım. Bu konuda yardım istiyorum. Hata zaten kodlarda.
:)


Kodlarınızı paylaşın diyorum.. mantıksal hatanızı kod üzerinden beraber giderelim.

Format nedir bilemedim.. mesaj editörüne siz yapıştırın, yazım formatı ise kastınız sıkıntı etmeyin, bende online bir editöre yapıştıracağım. compile edip, çalıştıracağım :)
 

 

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)
wmaraci
wmaraci

KaanGundovan KaanGundovan Kaan Gündovan Kullanıcı
  • Üyelik 22.01.2013
  • Yaş/Cinsiyet 28 / E
  • Meslek Özel Sektör / Bilgi İşlem
  • Konum İstanbul Anadolu
  • Ad Soyad A** G**
  • Mesajlar 520
  • Beğeniler 27 / 121
  • Ticaret 0, (%0)

Turgay Can adlı üyeden alıntı

Kodlarınızı paylaşın diyorum.. mantıksal hatanızı kod üzerinden beraber giderelim.

Format nedir bilemedim.. mesaj editörüne siz yapıştırın, yazım formatı ise kastınız sıkıntı etmeyin, bende online bir editöre yapıştıracağım. compile edip, çalıştıracağım :)


Bilgisayara attığım formattan dolayı kodlar elimde yok demek istedim. Ama yarın sabah boş vaktimde tekrar yazmayı deneyeceğim ve büyük ihtimalle yine başaramayacağım. Eğer yine başaramazsam o zaman paylaşırım, sizde zahmet olmazsa o zaman yardımcı olursunuz. İlginize çok teşekkür ederim. :)

Ek Olarak: 1. Sayı : 50
2. Sayı : 40
Sonuç : 10
3. Sayı : 10
Sonuç : 0

Yani 50-40 = 10 ve 10-10 = 0

Buraya kadar doğru. Fakat bundan sonra programı yapamadım. Hangi sayı girersem gireyim hep 0 ile çıkarıyor. Mesela ;

0-60 = (-60)
(-60) - sayı = x

olması gerekirken

0-60 = (-60) ya,
girilen sonraki sayıyı veya sayıları hep "0" dan çıkarıyor. Benim isteğim;

0-60 = (-60)
(-60) - sayı = sonuc1
sonuc1 - sayı = sonuc2
sonuc2 - sayı = sonuc3

gibi gitmesi. Fakat her zaman ilk sonuçtan çıkarıyor.

sonuc = int türünden bir değişken. Sabah kesin kodları paylaşacağım. Hala program üzerinde mantık kurmaya çalışıyorum.
 

 

YazilimciHoroz YazilimciHoroz Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 24.12.2014
  • Yaş/Cinsiyet 28 / E
  • Meslek Yazılım
  • Konum İstanbul Avrupa
  • Ad Soyad E** Ç**
  • Mesajlar 422
  • Beğeniler 25 / 98
  • Ticaret 3, (%100)
Siz kodu paylamadikca biz yardim edemeyiz. Nasip bir kod duzeniyle ilerliyorsunuz nereden bilelim. Yardim istiyorsaniz kodu paylaşın.
 

 

KaanGundovan KaanGundovan Kaan Gündovan Kullanıcı
  • Üyelik 22.01.2013
  • Yaş/Cinsiyet 28 / E
  • Meslek Özel Sektör / Bilgi İşlem
  • Konum İstanbul Anadolu
  • Ad Soyad A** G**
  • Mesajlar 520
  • Beğeniler 27 / 121
  • Ticaret 0, (%0)

Yazilimci Horoz adlı üyeden alıntı

Siz kodu paylamadikca biz yardim edemeyiz. Nasip bir kod duzeniyle ilerliyorsunuz nereden bilelim. Yardim istiyorsaniz kodu paylaşın.



#include
#include

using namespace std;

int main()
{
int x,y;
int sonuc = 0;
cout << "Sayi : ";
cin >> x;
cout << "Sayi : ";
cin >> y;
sonuc = x-y;
cout << sonuc << endl;
for(int i = 1; i > 0; i++)
{
cout << "Sayi : ";
cin >> x;
sonuc = sonuc - x;
cout << sonuc << endl;
}
system("PAUSE");
}


Yaptım galiba :) Kodları tekrar yazıp yanlışımı size göstermek için yazmaya başladım. Şu an denemelerim de hep doğru çıkıyor.
 

 

Batuhan Batuhan Kendine webmaster Kullanıcı
  • Üyelik 08.05.2011
  • Yaş/Cinsiyet 28 / E
  • Meslek Öğrenci
  • Konum Ankara
  • Ad Soyad B** B**
  • Mesajlar 3455
  • Beğeniler 783 / 1009
  • Ticaret 1, (%100)
Aynı dil değil ancak örnek olması açısından paylaşayım, algoritmayı anlama konusunda yardımcı olacağını düşünüyorum:


static void Main(string[] args)
{
Console.Title = "Sonsuz sayı çıkarma işlemi";
Console.Clear(); // Program yeniden başladığında ekran temizlensin

int sonuc = 0;
int sayi = 0;

Console.Write("Başlamak için bir sayı girin: ");
sonuc = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Çıkartma işlemi başladı, çıkmak için 0 giriniz \n");

while (true) // for döngüsündeki 'i' değerine ihtiyacımız yok, while (true) bunun sonsuz bir döngü olmasını sağlar
{
Console.Write("[{0} - ?]: ", sonuc);
sayi = Convert.ToInt32(Console.ReadLine());

if (sayi > 0)
{
sayi = 0 + sayi;
sonuc -= sayi; // Girilen sayı pozitifse sonuçtan çıkartırız
}
else
{
sayi = 0 - sayi;
sonuc += sayi; // Girilen sayı negatifse sonuçla toplarız
}

if (sayi == 0) { break; } // 0 girilirse dööngüyü kır
}

Main(null); // Programı yeniden başlat (null = parametre yok)
}


 

 

KaanGundovan KaanGundovan Kaan Gündovan Kullanıcı
  • Üyelik 22.01.2013
  • Yaş/Cinsiyet 28 / E
  • Meslek Özel Sektör / Bilgi İşlem
  • Konum İstanbul Anadolu
  • Ad Soyad A** G**
  • Mesajlar 520
  • Beğeniler 27 / 121
  • Ticaret 0, (%0)

Batuhan adlı üyeden alıntı

Aynı dil değil ancak örnek olması açısından paylaşayım, algoritmayı anlama konusunda yardımcı olacağını düşünüyorum:


static void Main(string[] args)
{
Console.Title = "Sonsuz sayı çıkarma işlemi";
Console.Clear(); // Program yeniden başladığında ekran temizlensin

int sonuc = 0;
int sayi = 0;

Console.Write("Başlamak için bir sayı girin: ");
sonuc = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Çıkartma işlemi başladı, çıkmak için 0 giriniz \n");

while (true) // for döngüsündeki 'i' değerine ihtiyacımız yok, while (true) bunun sonsuz bir döngü olmasını sağlar
{
Console.Write("[{0} - ?]: ", sonuc);
sayi = Convert.ToInt32(Console.ReadLine());

if (sayi > 0)
{
sayi = 0 + sayi;
sonuc -= sayi; // Girilen sayı pozitifse sonuçtan çıkartırız
}
else
{
sayi = 0 - sayi;
sonuc += sayi; // Girilen sayı negatifse sonuçla toplarız
}

if (sayi == 0) { break; } // 0 girilirse dööngüyü kır
}

Main(null); // Programı yeniden başlat (null = parametre yok)
}




Hocam çok sağolun, teşekkür ederim.
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al