• Üyelikler Hakkında:

    SDN Forum üyelikleri yönetici onayına tabidir. Şüpheli işleme sahip üyelikler onaylanmayacaktır.

C#'ta bir problem

cheleby

Profesör
Katılım
8 Mayıs 2009
Mesajlar
2,717
Tepki puanı
227
Elimizde 3 adet pozitif çift tamsayı var. Bu sayıların çarpımlarını, toplamlarına bölünce 7
sayısını elde ediyoruz. Bu sayıları bulan kodu yazınız.

bu işlemi nasıl yapabiliriz.Ben bir yere kadar gittim ama bir yerde tıkandım :)

int sayi, sayi1, sayi2, sayi3, toplam;
sayi=7;
sayi1 = Convert.ToInt32(textBox1.Text);
sayi2 = Convert.ToInt32(textBox2.Text);
sayi3 = Convert.ToInt32(textBox3.Text);
sayi = ((sayi1 * sayi2 * sayi3) / (sayi1 + sayi2 + sayi3));
toplam = sayi;
MessageBox.Show("sonuç" + toplam);
 
Bu sayıları bulunuz demiş soruda ama sen sayıları textboxlara kendin girmişsin nasıl olacak o iş :)
 
Şöyle açıklayayım.Hoca birşey anlatmaz ise benimde yaptığım bukadar oluyor :)
 
Şimdi burada bi gariplik var, sorunun bu olduğuna emin misin, basamaklarının çarpımının toplamına bölümünü falan soruyor olmasın?
 
Random üret dedim sayıları 100e kadar koydum sınırı, 2 4 ve 24 buluyor her seferinde. Çift sayı demese daha çok sonuç çıkıyor.

Random sınırını 1000 yaptım 2 dakkadır uğraşıyor bulamadı birşey :)
 
class Program
{
public static void Main(string[] args)
{
for (int i = 0; i < 100; i = i + 2)
{
for (int j = 0; j < 100; j = j + 2)
{
for (int k = 0; k < 100; k = k + 2)
{
if( (i*j*k) == (7*(i+j+k) ))
{
Console.WriteLine(i + " " + j + " " + k );
}
}
}
}
}
}

http://pastebin.com/azx3rn8s
 
Şimdi sayıların üst sınırını vermemiş, ya teee milyonlarda varsa bu sayı, iç içe milyon tane döngü biraz zor biter bilgisayar bile olsa.

Sen arkadaşın verdiği gibi 100 al sınırı, 2 4 ve 42 den başka çıkmayacağına da eminim :mrgreen: Ben autoitte yaptığım için veremedim kod.
 
aynı soruyu tek kişilik yazılım evindede soran sensin herhalde ordada cevabını verdim burdan da vereyim
double sayi, sayi1, sayi2, sayi3, toplam;
sayi = 7;
sayi1 = Convert.ToDouble(textBox1.Text);
sayi2 = Convert.ToDouble(textBox2.Text);
sayi3 = Convert.ToDouble(textBox3.Text);
toplam = ((sayi1 * sayi2 * sayi3) / (sayi1 + sayi2 + sayi3));
if (sayi == toplam)
{
MessageBox.Show("sonuç 7");
}
else {
MessageBox.Show("sonuç "+toplam);
}




 
Evet bendim.Kusura bakmayın.Anlamamazlık insanı heryerden yardım almaya yöneltiyor.Cevaplarınız için çok teşekkür ederim.Sizleri yorduysam kusura bakmayın.
 
aynı soruyu tek kişilik yazılım evindede soran sensin herhalde ordada cevabını verdim burdan da vereyim
double sayi, sayi1, sayi2, sayi3, toplam;
sayi = 7;
sayi1 = Convert.ToDouble(textBox1.Text);
sayi2 = Convert.ToDouble(textBox2.Text);
sayi3 = Convert.ToDouble(textBox3.Text);
toplam = ((sayi1 * sayi2 * sayi3) / (sayi1 + sayi2 + sayi3));
if (sayi == toplam)
{
MessageBox.Show("sonuç 7");
}
else {
MessageBox.Show("sonuç "+toplam);
}

İlk mesaja dedim buna da diyeyim. Sayıları bulun diyor ama burada sayıları sen giriyorsun, nasıl bulacak ??
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ConsoleApplication1
{
class Program
{



static void Main(string[] args)
{


Random i = new Random();


int a = 1;


int b = 1;


int c = 1;


int t = 1;


while (true)
{


a = i.Next(1, 100);


b = i.Next(1, 100);


c = i.Next(1, 100);


t = (a * b * c) / (a + b + c);


if (t == 7)
{
Console.WriteLine(a.ToString() + " " + b.ToString() + " " + c.ToString() + " = " + t.ToString());
Console.WriteLine("Bulundu :):)");
break;
}
else
{
Console.WriteLine(a.ToString() + " " + b.ToString() + " " + c.ToString() + " = " + t.ToString());
}

}
Console.ReadLine();
}
}
}


http://pastebin.com/raw.php?i=Xj7ZcJx4


b
unu geliştirmek sana kalmış 100 denemede filan buluyo bende

---------- Post added at 09:13 ---------- Previous post was at 08:51 ----------

sabah sabah bu konu ilgimi çekti ekmek almaya giderken şunları hesaplayıp bi yerde toplayayayım dedim bak ne kadar sonuç çıktı :D

http://pastebin.com/raw.php?i=P9ZyydNH

y
anlız bir sorun var bu sayıları hesap makinesinde hesaplarsa 7 küsür çıkıyor ama oda sorun olmaz heralde
 
İlk mesaja dedim buna da diyeyim. Sayıları bulun diyor ama burada sayıları sen giriyorsun, nasıl bulacak ??


aynı soruları başka bir yerde bende sordum ondan aldığım bilgilere göre yazdım bu programı aramızdaki konuşma şöyle




ben: öncelikle bu 3 sayı kullanıcıdan alınıp mı kontrol edilecek yoksa bilgisayar bu 3 sayıyı deneyerek kendisi mi bulacak buna göre devam edelim

o: Valla bilmiyorum.soru aynen böyle.İki şekilde de yapsak ?

ben: bilgisayarın bu sayıları denemesi 3 adet değişkeni üç tane iç içe döngü içinde istediğin sayıya kadar denersin ama bu algoritma hiç sağlıklı olmaz ama kullanıcıdan istersek bu 3 sayıyı sen çarpımlarını toplamlarına bölmüşsün bunu bir if ile 7 ye eşitmi diye kontrol et değilse sayıları değiştirmelerini söyle eşitse buldunuz de

o: şimdi ben bu if yapısını nasıl kullanabilirim.Neden bilmediğimi açıklardım ama gerek yok.Gerçekten yardımcı olabilirseniz sevinirim.Sizi yorduğum için kusura bakmayın.

en son programı yapıp attım
 
aynı soruları başka bir yerde bende sordum ondan aldığım bilgilere göre yazdım bu programı aramızdaki konuşma şöyle




ben: öncelikle bu 3 sayı kullanıcıdan alınıp mı kontrol edilecek yoksa bilgisayar bu 3 sayıyı deneyerek kendisi mi bulacak buna göre devam edelim

o: Valla bilmiyorum.soru aynen böyle.İki şekilde de yapsak ?

ben: bilgisayarın bu sayıları denemesi 3 adet değişkeni üç tane iç içe döngü içinde istediğin sayıya kadar denersin ama bu algoritma hiç sağlıklı olmaz ama kullanıcıdan istersek bu 3 sayıyı sen çarpımlarını toplamlarına bölmüşsün bunu bir if ile 7 ye eşitmi diye kontrol et değilse sayıları değiştirmelerini söyle eşitse buldunuz de

o: şimdi ben bu if yapısını nasıl kullanabilirim.Neden bilmediğimi açıklardım ama gerek yok.Gerçekten yardımcı olabilirseniz sevinirim.Sizi yorduğum için kusura bakmayın.

en son programı yapıp attım


benim yolladığım işine yaramıcakmı yani ?
 
[MENTION=17237]ozkan370[/MENTION] kendisinin girmesi mantıksız, çünkü sadece 2 4 ve 42 sayıları sağlıyor bunu. Bunu da bulsa bulsa [MENTION=158160]iz_[/MENTION] in verdiği algoritma bulur :) sayılara 100 sınırı verilirse problem olmaz çabuk biter, ben 1000 verdim bekledim bekledim bitmedi döngü, yok demek ki başka sayılar :)
 
using System;

namespace mat
{
class Program
{
public static void Main(string[] args)
{
double kacaKadar = 100d;
double hassaslik = 0.1d;

for (double i = 0.0d; i < kacaKadar; i = i + hassaslik)
{
for (double j = 0.0d; j < kacaKadar; j = j + hassaslik)
{
for (double k = 0.0d; k < kacaKadar; k = k + hassaslik)
{
if( (i*j*k) == (7*(i+j+k) ))
{
Console.WriteLine("Sayi1=" + i + " Sayi2= " + j + " Sayi3= " + k);
}
}
}
}
Console.WriteLine("bitti");
}
}
}

http://pastebin.com/ExFeRP1E
 
bence hard bir şekilde tek tek taramak yerine bir matematiksel işlem ile sayılar arasındaki bağlantıyı bulmak lazım.
 
Geri
Üst