Visual C# İle Karışık Dik Üçgen Hesabı(Yardım!)
-
attackatak bunu yazdı:
-----------------------------hocam seninkine bakarak düzenleyip şöyle bir şey yaptım:
for (int a = 0; a < 100;a++ )
bir buton ve textBox koydum.ayrıca sadece tamsayı olan sonuçlar isteniyor.aslında basit ama karışık bir problem :S{
for (int b = 0; b < 100; b++){
double c = (a * a + b * b);double d = Math.Sqrt(c);textBox1.Text = d.ToString();
}
}
bu tam olarak 140,007142674936 değerini verdi.
ilgilendiğin için teşekkürler hocam.
-----------------------------Hocam buraya kadar tmm bencede bide şöyle bişi yapsak ;
for( int i =0;i<100;i++)
{
for (int a = 0; a < 100;a++ )
{
for (int b = 0; b < 100; b++)
{
double c = (a * a + b * b);double d = Math.Sqrt(c);
if ( d*d == a*a+b*b )
textBox1.Text = d.ToString();
}
}
}
----------------
:) Yapmaya çalıştığım 100 e kadar eleman bi döndürsün tüm sayıları bakmak için sonda yapmaya çalıştığım şey ise virgüllü çıkan sonuçlarda tekrar karesini alırsanız o iki sayının kareleri toplamına eşit olmuyo,yakın oluyo sanırsam denemedim hemen aceleyle yazıyrm .Eğer eşitse zaten tam sayıdır ve textboxa yazdırır die düşünüyorum ama textboxa sadece bir değişken yazdırılmazmı
bunu listbox içine sıralasak ihtimalleri daha ei olmazmı hocam
-
wert bunu yazdı:
-----------------------------şuan hatırlamadığım şeyler var madem tamsayı istiyor
double c = (a * a + b * b);
double d = Math.Sqrt(c);
for (int a = 0; a < 100;a++ )
{
for (int b = 0; b < 100; b++)
{
double c = (a * a + b * b);double d = Math.Sqrt(c);
int e=convert.toint32(d);textBox1.Text = e.ToString();
}
}tam çingene hesabı oldu ama neyse ;)
-----------------------------
hocam bu olmaz :D yani virgülleri kaldırıp sayıyı tam sayı şeklinde yazmak :DComputerWolf bunu yazdı:
-----------------------------
Hoca soruda tek bir sonucmu isteniyor , benim anladigim a ve b degiskenleri icin 0-100 arasindaki olasiliklar degerlendirilip , hipotenus hesaplandiginda hipotenus'un degeri tamsayi olan a ve b degerlerini istiyor ...Yani mukemmel sayi hesaplamasi gibi dusunun. 1-1000 arasindaki kactane mukemmel sayi oldugunu hesaplamamiz icin kodumuzu yaziyoruz , ne oluyor mukemmel sayi bulmanin matematiksel islemlerini 1-1000 arasinda yaptiriyoruz , bize sonuclari listeliyor.Burada istenende 0-100 arasi a ve b degiskenlerine gelecek sonuclar dogrultusunda hipotenus hesaplanacak ancak ondalikli cikan hipotenus icin a ve b degerleri cikti olarak listelenmeyecek...Dogrumu anlamisim ?
-----------------------------
hocam şöyle yapalım tek bir sonuç olsun.olay şudur;a ve b aynı veya farklı birer sayı alacak.alacağı değerler 100ü geçmeyecek.yani for ile a ve b yi saydırıcaz.sürekli hipotenüs hesabı yapacak ve virgülsüz olan kaç tane sonuç varsa onu söyleyecek.5 tane var ya da 3 tane var gibi.
TxT hocam;
% işaretini kullanarak tamsayı olup olmadığını hesaplayabiliriz sanırım.
-
hocam şöyle yapalım tek bir sonuç olsun.olay şudur;
a ve b aynı veya farklı birer sayı alacak.alacağı değerler 100ü geçmeyecek.yani for ile a ve b yi saydırıcaz.sürekli hipotenüs hesabı yapacak ve virgülsüz olan kaç tane sonuç varsa onu söyleyecek.5 tane var ya da 3 tane var gibi.
-----------------------------int toplam=0;
for( int i =0;i<100;i++)
{
for (int a = 0; a < 100;a++ )
{
for (int b = 0; b < 100; b++)
{
double c = (a * a + b * b);double d = Math.Sqrt(c);
if ( d*d == a*a+b*b )
{
toplam=toplam+1
}
}
}
}
textBox1.Text = toplam.ToString();
--------------
:S
-
TxT bunu yazdı:
-----------------------------hocam şöyle yapalım tek bir sonuç olsun.olay şudur;
a ve b aynı veya farklı birer sayı alacak.alacağı değerler 100ü geçmeyecek.yani for ile a ve b yi saydırıcaz.sürekli hipotenüs hesabı yapacak ve virgülsüz olan kaç tane sonuç varsa onu söyleyecek.5 tane var ya da 3 tane var gibi.
-----------------------------int toplam=0;
for( int i =0;i<100;i++)
{
for (int a = 0; a < 100;a++ )
{
for (int b = 0; b < 100; b++)
{
double c = (a * a + b * b);double d = Math.Sqrt(c);
if ( d*d == a*a+b*b )
{
toplam=toplam+1
}
}
}
}
textBox1.Text = toplam.ToString();
--------------
:S
-----------------------------
olmuyor hocam :( -
{
int a,b;
for(a=1;a<=100;a++)
{
for (b = 1; b < 100; b++)
{
double c, d;
d = Convert.ToDouble(a * a + b * b);
c = Math.Sqrt(d);
if (c%1==0)
{
listBox1.Items.Add("a=" + Convert.ToString(a) + " & b=" + Convert.ToString(b) + " ise hipotenüs=" + Convert.ToString(c));
}
}
}
}
-
wert bunu yazdı:
-----------------------------
{
int a,b;
for(a=1;a<=100;a++)
{
for (b = 1; b < 100; b++)
{
double c, d;
d = Convert.ToDouble(a * a + b * b);
c = Math.Sqrt(d);
if (c%1==0)
{
listBox1.Items.Add("a=" + Convert.ToString(a) + " & b=" + Convert.ToString(b) + " ise hipotenüs=" + Convert.ToString(c));
}
}
}
}
-----------------------------
olmadı hocam :( -
ya şimdi bende deneyemiyorum pc im dede hocam bende takıldığımız yer şurası
biz bu iki elemanın karelerinin toplamının tam sayı old. nereden bileceğiz burası kırılma noktası
biz bu dalgayı dediğim gibi olmaz sa nasıl yapcaz ... Durdu beynim :) kesin çok tırt bişidir.
-
attackatak bunu yazdı:
-----------------------------
wert bunu yazdı:
-----------------------------
{
int a,b;
for(a=1;a<=100;a++)
{
for (b = 1; b < 100; b++)
{
double c, d;
d = Convert.ToDouble(a * a + b * b);
c = Math.Sqrt(d);
if (c%1==0)
{
listBox1.Items.Add("a=" + Convert.ToString(a) + " & b=" + Convert.ToString(b) + " ise hipotenüs=" + Convert.ToString(c));
}
}
}
}
-----------------------------
olmadı hocam :(
-----------------------------nasıl olmadı ben niye oluyor :S
ben listbox kullandım ona dikkat ettinmi :S
-
Tamam hoca mantığı çözdüm bak şimdi ;
biz double cinsinden yada fload olarak tan hipotenüse kadar sağlıklı buluyoruz değilmi ondan sonra biz bu double i int e çevirip sağlamasını yapacağız
örneğin..
a =3 , b=4 , c =?
double c=a*a+b*b ; double c=25 (sqrt)c=5 , int c = ? , int c =5 ;) sorun yok
ama
a=12,b=7 c =?
double c = 144 + 49 , double c = 193 , (sqrt) double = 13,892444 tür biz bu c yi integer formatına çevirdiğimizde
int c =13 olacaktır daha sonra biz bunun int olarak tekrar karesini alırsak ilk sayıya ulaşamayacağız.. ulaşsaydık bir sayaç çakardık araya ve en sonunda textboxa yazdırıp bitirirdik.
anlatabilmişimdir inş ..
-
wert bunu yazdı:
-----------------------------attackatak bunu yazdı:
-----------------------------
wert bunu yazdı:
-----------------------------
{
int a,b;
for(a=1;a<=100;a++)
{
for (b = 1; b < 100; b++)
{
double c, d;
d = Convert.ToDouble(a * a + b * b);
c = Math.Sqrt(d);
if (c%1==0)
{
listBox1.Items.Add("a=" + Convert.ToString(a) + " & b=" + Convert.ToString(b) + " ise hipotenüs=" + Convert.ToString(c));
}
}
}
}
-----------------------------
olmadı hocam :(
-----------------------------nasıl olmadı ben niye oluyor :S
ben listbox kullandım ona dikkat ettinmi :S
-----------------------------
aha olmuş :D hocam ben textBox da deniyordum onda olmuyor :DÇok sağol, Çok teşekkür ederim hocam :)
Yardım elini uzatan herkese ayrı ayrı teşekkür ederim.sağolun varolun beni çıldırmaktan kurtardınız :)
