1. #21

    Statü
    Grubu
    Moderatör
    İş
    11. sınıf

    Sponsorlu Bağlantılar

    Mühendislik bana göre değilmiş.Hiçbirisi ilgimi çekmiyorrr )

  2. #22

    Statü
    Grubu
    Üye
    İş
    Üniversite

    Sponsorlu Bağlantılar

    #include <iostream>
    #include <cmath>
    using namespace std;

    int main()
    {
    float girdi=0;
    float hassaslik=0.01;
    float yaklasim=1;
    float cikti=0;
    cout<<"bir sayi yaziniz:";
    cin>>girdi;
    float kok=1;
    while(kok<girdi/2)
    { kok=kok+hassaslik;
    if(fabs(kok*kok-girdi)<fabs(yaklasim))
    { cikti=kok;
    yaklasim=kok*kok-girdi;
    }

    }

    cout <<"yaklasik olarak=" <<cikti;
    cin>>girdi;


    }
    asagi yukarı anlatmak bu istediğim .ama belirteyim bu en kaba bulma yöntemi çok büyük sayilarda patlar program .
    ilgimi bunlar çekiyodu benim ama şartlar zaten eninde sonunda insani tipa itiyo Savaş.Seneye tercih yaparken hangisine gitsem daha az kötülük çıkar diye düşüneceksin .
    "Ne Mutlu Türküm Diyene"

  3. #23

    Statü
    Grubu
    Moderatör
    İş
    11. sınıf

    Sponsorlu Bağlantılar

    Tercih edeceğim alanlar belli zaten. Hepsi ilgimi çekiyor benim.Ama bu tür konulara hiç ilgim yok... Nedense.

  4. #24

    Statü
    Grubu
    Moderatör
    İş
    Diğer
    .C yapisal programlamayi kullanir,c++ nesneye yönelik programlama.C kolay ögrenilir veya programlama kolay ögreniliri kim demişşe yalan söylemiş.Assembly ve normal makine dilini saymazsak C insandan en uzak dildir .O yüzden ögrenmesi pekte kolay olmasa gerek .

    Üniversilerde derslere bakarsaniz ilk önce C işlenir sonra C++ diğer programlama dilleri genellikle seçmeli olur veya hiç olmaz.
    Tüm programlama dillerin bilmenin bir anlami yok amacinin ne oldugu önemli.Assemblye işletim sistemleri bazi kisimlari,C işletim sistemleri ve driver,C++ performans gereken programlar ve oyunlar ,Java küçük çapli programlar ve telefonlar için vb.
    Hazir kütüphane fonksiyonlari özenle yazilmiştir o yüzden onlarin yaptiği sqrt fonksiyonun elle yapilandan hizli olmasi normal .
    Kabaca aklima gelen sqrt fonsiyon söyle benim.
    Şimdi diyelim Float girdi diye bir değişken var ve 4 den büyük olan bir sayi girilmiş olsun.
    Birde float kök=1 diye bir değişken olsun.
    Ayrica float hassaslik olsun.Mesela hassaslik 0,01 olabilir,001 olabilir ne kadar küçültürsen o kadar yaklaşiriz
    ve son olarakta float yaklasim olsun.
    While döngüsü ile kök sayisi Girdi/2 den küçükken çalissin ve kök=kök+hassaslik iken kök sayisin karesini al ve yaklasim=girdi-kök*kök
    Birde if ifadesi ekle ve döngü işlerken yaklasimin mutlak degeri ne kadar küçük oluyosa o senin seçmen gereken sayidir.Çok berbat bir algoritma ama işine yarayabilir aklima daha iyiis gelmedi suan.
    kızma ama dediğin gibi gerçekten berbat bir algoritma
    arkadaşlar işi işlem yapmak diye bilgisayara eziyet etmeyin. algoritmalarınız hızlı olmalı
    nedir o öyle belli bir adım büyüklüğü belirleyip köke ulaşana kadar uygun adım marş.


    C# de şöyle bir şey yapılabilirmiş bir dene bakalım bunu.

    :
     Console.WriteLine("Bir sayı girin");
                double sayi = Convert.ToDouble(Console.ReadLine());
                long i, n = (long)sayi, t;
                double r = sayi;
                for (i = 0; i < n; i++)
                {
                    r = (r + (sayi / r)) * 0.5;
                    t = (long)r;
                    if ((t * t) < t)
                        break;
                }
                Math.Sqrt();
                Console.WriteLine("Sayının Karekökü =" + r.ToString());
                Console.ReadLine(); 
                }
    burada matematik devreye giriyor. sizleri bu bölümlere alırken matematik bilmenizi/öğrenmenizi bunun için istiyorlar. yukarıdaki algoritmada yapılansa her adımda eldeki mevcut bir kök değerine (kökü alınacak sayı)/(eldeki kök değeri) kadar bir sayı eklenip 2'ye bölünmesi ve yeni bir eldeki kök değeri elde edilmesi. kısaca kodu yazan Newton metoduyla köke yaklaşmayı düşünmüş, muhtemelen 5-6 adımla istediğiniz hassasiyette bir kök bulacaktır. daha iyi algoritmalar vardır muhakkak ama bu işinizi görüyor olmalı. ayrıca da sqrt() gibi fonksiyonların bunlardan çok daha iyi algoritmalarla çalıştığından emin olabilirsiniz .

  5. #25

    Statü
    Grubu
    Kıdemli Üye
    İş
    Diğer
    burada matematik devreye giriyor. sizleri bu bölümlere alırken matematik bilmenizi/öğrenmenizi bunun için istiyorlar. yukarıdaki algoritmada yapılansa her adımda eldeki mevcut bir kök değerine (kökü alınacak sayı)/(eldeki kök değeri) kadar bir sayı eklenip 2'ye bölünmesi ve yeni bir eldeki kök değeri elde edilmesi. kısaca kodu yazan Newton metoduyla köke yaklaşmayı düşünmüş, muhtemelen 5-6 adımla istediğiniz hassasiyette bir kök bulacaktır. daha iyi algoritmalar vardır muhakkak ama bu işinizi görüyor olmalı. ayrıca da sqrt() gibi fonksiyonların bunlardan çok daha iyi algoritmalarla çalıştığından emin olabilirsiniz .
    Öğretmenim Newton metodunu araştırdım sayenizde..Çok çok teşekkür ederim..Şimdi kodları gerçekten anladım,aslında Cengiz arkadaşımız sayesinde adamın bu kodlarla sürekli daha yakın bir değeri buldurmaya çalıştığını anlamıştım..Ama bu yolu nereden akıl ettiğini anlamamıştım,Newton metodundaki teğet açıklamasıyla bunu da anladım sayenizde.Bu arada aynı programı C++ ile yaptım,arada framework perdesi olmadığından gözle görülür bir şekilde sqrt() fonksiyonu ile aynı hızda buldu..(Yâni saniye olarak fark yok,ama salise ölçümünde fark olabilir)

    Bu algoritma hızlı..Newton metodundan daha hızlı bir yol olabilir mi öğretmenim ?
    İlginiz için teşekkür ederim..
    9⁵+2⁵+7⁵+2⁵+7⁵=92727 ... 9⁵+3⁵+0⁵+8⁵+4⁵=93084

  6. #26

    Statü
    Grubu
    Moderatör
    İş
    Diğer
    belki denediğiniz sayılarda sqrt() ile yakın sonuçlar vermiş olabilir ama Newton dan çok daha hızlı hesaplama yöntemleri eminim ki mevcuttur. şu an için kök bulmada daha efektif hangi metod var bilmiyorum, Newton-Raphson çok genel bir yöntem yani tüm fonksiyonlarda kullanılabildiği için direkt karekök bulma gibi çok dar bir kullanımda geri kalacağı kesin. C# veya C++ hangi algoritmaları kullanıyor onları da bilmiyorum açıkcası kodlardan anlamıyorum ama demek istediğim kök bulmak çok temel bir işlem bu yüzden kullandığınız dilin hazır fonksiyonu bırakın algoritma olarak değişken seçimlerinde bile optimize edilmiştir.

    burada esas mesele böyle temel işlemlerin yapılmasını sağlayan güzel algoritmaların olduğunu bilmekle beraber mümkünse hazır olanı kullanmaktır. bizim gelişim yapmaya çalışacağımız hazır olmayanı yazarken olmalı. hazır olanı geliştirmek programlama dilini yazanların problemi

  7. #27

    Statü
    Grubu
    Kıdemli Üye
    İş
    Diğer
    Haklısınız tabii,onların hazır fonksiyonu ile yarışmam mümkün değil..Hem uzman matematikçiler ve mühendisler çalışıyor,hem de bilgileri çok çok daha ileri seviyede..Benim amacım da dediğiniz gibi,hazır olmayanı yazmayı öğrenmek..Bunun için önüme gelen bütün problemleri çözmeye çalışıyorum ki,var olan bilgilerimle neler yapabilirim diye ufkum açılsın..Tekrar teşekkür ederim ilginiz için
    9⁵+2⁵+7⁵+2⁵+7⁵=92727 ... 9⁵+3⁵+0⁵+8⁵+4⁵=93084

  8. #28

    Statü
    Grubu
    Site sahibi
    İş
    Matematik Öğretmeni
    En meşhur algoritmalar Methods of computing square roots - Wikipedia, the free encyclopedia burda. Anlayabilirsen

  9. #29

    Statü
    Grubu
    Kıdemli Üye
    İş
    Diğer
    En meşhur algoritmalar Methods of computing square roots - Wikipedia, the free encyclopedia burda. Anlayabilirsen
    Türkçe'sini bile birkaç dk inceleyince anlıyorum..Sık kullanılanlara ekledim öğretmenim,İngilizce şart..Sözlük ile anlamaya çalışırım bol bir vakit bulduğumda..

    Teşekkür ederim..
    9⁵+2⁵+7⁵+2⁵+7⁵=92727 ... 9⁵+3⁵+0⁵+8⁵+4⁵=93084


 
1 2 3

  • Bu yazıyı beğenerek
    destek
    verebilirsiniz

    Foruma üye olmana gerek yok! Facebook hesabınla yorumlarını bekliyoruz!
  • Benzer konular

    1. Bölme Algoritması ve Öklid Algoritması (Euclid Algorithm)
      Admin, bu konuyu "Matematik Arşivi" forumunda açtı.
      : 1
      : 11 Ara 2011, 21:06
    2. türev alma
      fatmaözlem, bu konuyu "12. sınıf matematik soruları" forumunda açtı.
      : 4
      : 02 Haz 2011, 16:17
    3. Türev Alma
      mert46, bu konuyu "12. sınıf matematik soruları" forumunda açtı.
      : 6
      : 19 May 2011, 09:22
    4. Türev Alma
      mert46, bu konuyu "12. sınıf matematik soruları" forumunda açtı.
      : 6
      : 18 May 2011, 14:00
    5. Türev Alma
      mert46, bu konuyu "12. sınıf matematik soruları" forumunda açtı.
      : 7
      : 17 May 2011, 20:34
    Forum Kullanım ve Gizlilik Kuralları