Kod yazarken işlem yapamıyorum

Bana göre zor hiç bu mantıkları anlayamıyorum kimisi diyor ki bol bol soru cöz sonra cevaplarına bak kendı kodunla karşılaştır falan dıyor. Kimisi cok basit mantık yürüt diyor nevrim şaştı ne yapacağım bilmiyorum.
Senin sorunun programlama diliyle ilgili değil, problem çözme kabiliyetini geliştirmelisin. İlk soru için en basitinden mod almayı düşünebilmen gerekiyor, bu soruyu okuduğunda aklına gelmiş olmalı. Başlangıç olarak problemlerle ilgili bir matematik soru bankası alıp çözmeye başlayabilirsin.
 
Bana göre zor hiç bu mantıkları anlayamıyorum kimisi diyor ki bol bol soru cöz sonra cevaplarına bak kendı kodunla karşılaştır falan dıyor. Kimisi cok basit mantık yürüt diyor nevrim şaştı ne yapacağım bilmiyorum.
Mantık yürütmeyi öğrenmelisin o zaman. Matematik problemi gibi bir şey. Basit bir matematik problemi. Yazdığım gibi bir mantık yürütemiyorsan ne kadar dil çalışması yapsan da aman aman bir gelişim olmayacak. Önce mantık kurmayı öğren.

Önce tüm 1 liraları ayıklıyorum. En az dediği için böyle yapıyorum.

Şimdi temel matematik bu ama anlatayım yine de. Bir şeyi böldüğümde en az sayıda pay çıksın istiyorsam en büyük parçalara bölerim. Elimdeki en büyük parça 2 olurdu eğer euro kullanıyor olsak. Fakat TL kullandığımız için 1. 1000.85 TL'de bin tane 1 lira, bir tane 50 kuruş, bir tane 25 kuruş, bir tane 10 kuruş var. Bunu nasıl elde edebilirim programlamada kısmını düşünmeye başlayacaksın. Parayı 1'e bölüp kalanı alırsan, kalan senin kuruşların olacak. Kuruşları daha rahat hesap yapabilmek için 100le çarpıyorum. Daha sonrasında da artık ekleme kısmına geçiyorum. Kalan her 50 kuruşta ağırlığa 6.8 ekliyorum, kalan her bir 25 kuruş için ağırlığa 4 ekliyorum. 10 kuruş içinse 3.15. Ağırlıklar bu sefer bizim lehimizeydi o yüzden aşağıdaki kod çalışacak. Fakat normalde ağırlıkları farklı olacak durumda olsaydı tekrar kullanımlı olarak kullanmak için farklı bir algoritma kurmamız gerekecekti.

Verdiğim mantıkla kod şöyle bir şey oluyor;
C#:
double cevirkg(double para)
{
    /*
    1 TL = 8,2gr
    0.50 TL = 6,8 gr
    0.25 = 4 gr
    0.1 = 3,15 gr
    */
    if (para % 1 == 0)
    {
        return (para * 8.2) / 1000;
    }
    var artan = para % 1;
    var agirlik = (para - artan) * 8.2;
    artan = (int)(artan * 100);
    for (; artan > 0;)
    {
        if (artan >= 50)
        {
            agirlik += 6.8;
            artan -= 50;
            continue;
        }
        if (artan >= 25)
        {
            agirlik += 4;
            artan -= 25;
            continue;
        }
        agirlik += 3.15;
        artan -= 10;
    }
    return agirlik / 1000;
}
 
Senin sorunun programlama diliyle ilgili değil, problem çözme kabiliyetini geliştirmelisin. İlk soru için en basitinden mod almayı düşünebilmen gerekiyor, bu soruyu okuduğunda aklına gelmiş olmalı. Başlangıç olarak problemlerle ilgili bir matematik soru bankası alıp çözmeye başlayabilirsin.

Ben matematikten kaçmaya çalışıyorum matematik inadına üstüme geliyor. Aynen hiç mantık yürütemiyor kıt ve sabit bir şekilde kod yazıyorum büyük ihtimal bu dediğin sorunumu cozecek teşekkür ederim.

Mantık yürütmeyi öğrenmelisin o zaman. Matematik problemi gibi bir şey. Basit bir matematik problemi. Yazdığım gibi bir mantık yürütemiyorsan ne kadar dil çalışması yapsan da aman aman bir gelişim olmayacak. Önce mantık kurmayı öğren.

Önce tüm 1 liraları ayıklıyorum. En az dediği için böyle yapıyorum.

Şimdi temel matematik bu ama anlatayım yine de. Bir şeyi böldüğümde en az sayıda pay çıksın istiyorsam en büyük parçalara bölerim. Elimdeki en büyük parça 2 olurdu eğer euro kullanıyor olsak. Fakat TL kullandığımız için 1. 1000.85 TL'de bin tane 1 lira, bir tane 50 kuruş, bir tane 25 kuruş, bir tane 10 kuruş var. Bunu nasıl elde edebilirim programlamada kısmını düşünmeye başlayacaksın. Parayı 1'e bölüp kalanı alırsan, kalan senin kuruşların olacak. Kuruşları daha rahat hesap yapabilmek için 100le çarpıyorum. Daha sonrasında da artık ekleme kısmına geçiyorum. Kalan her 50 kuruşta ağırlığa 6.8 ekliyorum, kalan her bir 25 kuruş için ağırlığa 4 ekliyorum. 10 kuruş içinse 3.15. ağırlıklar bu sefer bizim lehimizeydi o yüzden aşağıdaki kod çalışacak. Fakat normalde ağırlıkları farklı olacak durumda olsaydı tekrar kullanımlı olarak kullanmak için farklı bir algoritma kurmamız gerekecekti.

Verdiğim mantıkla kod şöyle bir şey oluyor;
C#:
double cevirkg(double para)
{
 /*
 1 TL = 8,2gr
 0.50 TL = 6,8 gr.
 0.25 = 4 gr.
 0.1 = 3,15 gr.
 */
 if (para % 1 == 0)
 {
 return (para * 8.2) / 1000;
 }
 var artan = para % 1;
 var agirlik = (para - artan) * 8.2;
 artan = (int)(artan * 100);
 for (; artan > 0;)
 {
 if (artan >= 50)
 {
 agirlik += 6.8;
 artan -= 50;
 continue;
 }
 if (artan >= 25)
 {
 agirlik += 4;
 artan -= 25;
 continue;
 }
 agirlik += 3.15;
 artan -= 10;
 }
 return agirlik / 1000;
}

Aptala anlatır gibi anlatmışsınız olayın mantığını anladım gerçekten. Yazdığınız koda görede adım adım anlatmışsınız matematiğim gerçekten iyi değil. Farklı soruları çözebilmem için mantık kabiliyetimi güçlendirmem gerek bunu anladım. Çok teşekkür ederim yardımcı olduğunuz için.
 
Aptala anlatır gibi anlatmışsınız olayın mantığını anladım gerçekten. Yazdığınız koda görede adım adım anlatmışsınız matematiğim gerçekten iyi değil. Farklı soruları çözebilmem için mantık kabiliyetimi güçlendirmem gerek bunu anladım. Çok teşekkür ederim yardımcı olduğunuz için.
Estağfurullah. Bazı arkadaşların iddia ettiğinin aksine yazılımda matematik önemli. Matematiğin yanı sıra analitik düşünme becerisi önemli ve bunu da matematik sağlıyor.
 
Zihninin açık olması gerekir. Uykunu almış olmalısın ve zinde olmalısın. Çok oyun oynuyorsan veya uzun süre video izliyorsan uyku düzenin bözulur ve odaklanma yeteneğini yitirirsin. Hayat alışkanlıklarını kökten değiştirmelisin.

Tabi bir de beslenmene dikkat etmelisin.
 

Technopat Haberler

Geri
Yukarı