Şimdi Ara

Notdefterinde standart sapma hesaplama.

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir - 3 Masaüstü
5 sn
25
Cevap
0
Favori
723
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Arkadaşlar not defterinde for-while gibi komutları kullanarak standart sapma hesaplamam gerekiyor yardımcı olur musunuz?



  • not defteri ide olmadığı derleme mekanizması olmadığı için normalde yapamazsın ancak neticede bütün programlar kodla yazıldığı için ilgili kodları yazarak yaparsın bu ne olur en basitinden vbscript olabilir sonuçta vbs. dosyasını wscript çalıştıracağından hesaplama yapılabilir veya hta dosyası oluşturularak ie temelli gui program yapılabilir ama düz not defterini kullanarak program yapmak hamallıktan başka bişey değil

    öncelikle standart sapma nasıl hesaplanır onu incelemek lazım peşine hangi dille yazılacaksa kodlaması yapılır
  • Gökşen PASLI G kullanıcısına yanıt
    Hocam şöyle anlatayım kodlamaya yeni başladık okulda ve hocamız ilk not defterinden çalışacağız dedi.Programlama hakkında fazla bilgim yok dediğim gibi.Ve bize böyle bir ödev verdi.Bende elimdeki bu kodlarla yapmaya çalışıyorum.İnternette örnekleri inceledim orada return,double,int gibi komutlar kullanıyor ama ben bunların hiçbirini bilmiyorum.Edindiğim başlangıç bilgileriyle yapmam lazım.
  • Bu arada not defterinden yazdığım kodun tarayıcıda direk çalışmasına gerek yok arkadaşlar algoritmasını oluştursamda yeterli.
  • yalnız her dilin kodlaması bazı kısımlar hariç farklıdır hangi dilde olacak orası önemli
  • Gökşen PASLI G kullanıcısına yanıt
    Java Scriptte.
  • Up.
  • Yapay Zeka’dan İlgili Konular
    Excel’de Yaş Hesaplama
    2 yıl önce açıldı
    Sistem 3 hesaplama
    geçen yıl açıldı
    Daha Fazla Göster
  • <script>
    var say1,say2,say3,ort,std,varyans;
    say1=Number(prompt("1.sayıyı giriniz"))
    say2=Number(prompt("2.sayıyı giriniz"))
    say3=Number(prompt("3.sayıyı giriniz"))
    ort=(say1+say2+say3)/3;
    varyans=(Math.pow((say1-ort),2)+Math.pow((say2-ort),2)+Math.pow((say3-ort),2))/2
    std=Math.sqrt(varyans)

    document.write("standart sapma =",std)
    </script>

    Bu şekilde yaptım arkadaşlar ve çalışıyor lazım olan kullansın.
  • Lagras kullanıcısına yanıt
    ... 
    var sayi,n,t1,t2,ort,std,varyans;
    n=Number(prompt("Örnek hacmi giriniz:"))
    t1=0; t2=0
    For i=1 To n
    sayi=Number(prompt(i & ".sayıyı giriniz"))
    t1=t1+sayi
    t2=t2+Math.pow(sayi,2)
    Next i
    ort=t1/n
    varyans=(t2-Math.pow(t1,2)/n)/(n-1)
    s=Math.sqrt(varyans)
    document.write("Aritmetik Ortalama =",ort)
    document.write("Standart Sapma =",s)
    ...



    < Bu mesaj bu kişi tarafından değiştirildi lterlemez -- 13 Ocak 2016; 9:05:07 >
  • Lagras kullanıcısına yanıt
    varyans=TOPLAM(x-mu)^2/(n-1)

    =TOPLAM(x^2-2*x*mu+mu^2)/(n-1)
    =[TOPLAM(x^2)-TOPLAM(2*mu*x)+TOPLAM(mu^2)]/(n-1)
    =[TOPLAM(x^2)-2*mu*TOPLAM(x)+n*mu^2]/(n-1)
    =[TOPALM(x^2)-2*mu*n*mu+n*mu^2]/(n-1)
    =[TOPLAM(x^2)-2*n*mu^2+n*mu^2]/(n-1)
    =[TOPLAM(x^2)-n*mu^2]/(n-1)
    =[TOPLAM(x^2]-n*(TOPLAM(x))^2/n^2)]/(n-1)
    =[TOPLAM(x^2)-(TOPLAM(x))^2/n]/(n-1)

    =(t2-t1^2/n)/(n-1) ->kodlamadaki eşitlik....

    Kolay gelsin...



    < Bu mesaj bu kişi tarafından değiştirildi lterlemez -- 13 Ocak 2016; 2:04:25 >
  • lterlemez L kullanıcısına yanıt
    Hocam bu soruyu 1'den N'ye kadar olan çift sayıların standart sapmasını hesaplayınız şeklinde değiştirsek nasıl yapıcaktık?
  • Lagras kullanıcısına yanıt
    İki şekilde yapabilirsin:
    1. Yol: Döngü sayacının, herhangi bir adımda aldığı değerin çift olup olmadığını IF...THEN yapısı ile sorgulayarak, sadece çift sayı olma şartını sağlayanları hesaba katarak,
    2. Yol: Döngü sayacını 2'den başlatıp, sayaç adımını 2'şer 2'şer almasını ve böylece IF...THEN kullanımdan feragat ederek.
    ---
    1. Yolu seçersen, bahsi geçen toplama işlemlerini, IF...THEN yapısı içinde gerçekleştirmelisin.

    İPUCU: i=1,2,...,N -> Eğer tam sayı(i/2)*2=i ise i tam sayıdır. Değil ise tek sayıdır. Bazı programlama dillerinde tam bölme işlemi yapan operatörler mevcut (ör: VB). Bunun dışında Mod alma işlemi ile de i'nin tam sayı olup olmadığını bulabilirsin (nasıl bulacağını sana bırakıyorum, birden fazla çözümün tamamını söylemem senin faydana olmaz). Ama yine de yardımcı olabilmesi için kodlamak yerine algoritmasını aşağıda yazıyorum. Sen algoritmadan çıkartırsın gerisini -Döngü yapısı IF...GOTO'ya göredir, kolaylıkla FOR...NEXT'e çevirebilirsin:

    1. Başla
    2. n'i gir
    3. i=1, t1=0, t2=0
    4. Eğer i tam sayı ise
        t1=t1+i
        t2=t2+i^2
    5. i=i+1
    6. Eğer i<=n ise 4'e git
    7. ort=t1/n
    8. std=karekök((t2-t1^2/n)/(n-1))
    9. Yaz ort, std
    10. Bitir.



    < Bu mesaj bu kişi tarafından değiştirildi lterlemez -- 16 Ocak 2016; 15:13:52 >




  • quote:

    Orijinalden alıntı: lterlemez

    İki şekilde yapabilirsin:
    1. Yol: Döngü sayacının, herhangi bir adımda aldığı değerin çift olup olmadığını IF...THEN yapısı ile sorgulayarak, sadece çift sayı olma şartını sağlayanları hesaba katarak,
    2. Yol: Döngü sayacını 2'den başlatıp, sayaç adımını 2'şer 2'şer almasını ve böylece IF...THEN kullanımdan feragat ederek.
    ---
    1. Yolu seçersen, bahsi geçen toplama işlemlerini, IF...THEN yapısı içinde gerçekleştirmelisin.

    İPUCU: i=1,2,...,N -> Eğer tam sayı(i/2)*2=i ise i tam sayıdır. Değil ise tek sayıdır. Bazı programlama dillerinde tam bölme işlemi yapan operatörler mevcut (ör: VB). Bunun dışında Mod alma işlemi ile de i'nin tam sayı olup olmadığını bulabilirsin (nasıl bulacağını sana bırakıyorum, birden fazla çözümün tamamını söylemem senin faydana olmaz). Ama yine de yardımcı olabilmesi için kodlamak yerine algoritmasını aşağıda yazıyorum. Sen algoritmadan çıkartırsın gerisini -Döngü yapısı IF...GOTO'ya göredir, kolaylıkla FOR...NEXT'e çevirebilirsin:

    1. Başla
    2. n'i gir
    3. i=1, t1=0, t2=0
    4. Eğer i tam sayı ise
        t1=t1+i
        t2=t2+i^2
    5. i=i+1
    6. Eğer i<=n ise 4'e git
    7. ort=t1/n
    8. std=karekök((t2-t1^2/n)/(n-1))
    9. Yaz ort, std
    10. Bitir.

    Sizin yazdığınız kodda yanlışlık yok mu?Mesela n'i 10 girdik.Ama çift sayılarınkini buldurmak istediğimizden for döngsünde yaparak 2,4,6,8,10 için standart sapma hesaplayacağız.Bu 5 sayısına karşılık gelir.Ama siz t1/n yaptırdığınızda t1/10 yaptırmış olmuyor musunuz?Bunu 5 e nasıl böldürebiliriz?



    < Bu mesaj bu kişi tarafından değiştirildi Lagras -- 16 Ocak 2016; 16:39:32 >




  • Lagras kullanıcısına yanıt
    Yanlışlık yok, eksik var. Pardon onu unutmuşum, güzel takip etmişsiniz. 3. Adıma, mesela n1 değişkeni tanımlayalım ve 0'den başlatalım. 4. Adım da ise, toplama işlemlerinden sonra, koşulu sağlayan kaçıncı sayı olduğunu belirlemek için n1=n1+1 ekleyelim. 7. ve 8. Adımlarda n'ler n1 ile değiştirelim.



    < Bu mesaj bu kişi tarafından değiştirildi lterlemez -- 17 Ocak 2016; 12:38:02 >
  • lterlemez L kullanıcısına yanıt
    <script>
    var i,N,ort,std,varyans,t1,t2,n1;
    N=Number(prompt("Bir Sayı Giriniz"));
    i=1; t1=0; t2=0; n1=0;
    for(i=1;i<=N;i++)
    if(i%2==0);
    t1=t1+i
    t2=t2+i^2
    n1=n1+1

    ort=t1/n1
    varyans=Math.pow((t2-ort),2))/(n1-1)
    std=Math.sqrt(varyans)
    document.write("standart sapma=",std)

    </script>

    Şöyle oluşturdum hocam kodlarla ama not defterinde .htm uzantılı farklı kaydedip tarayıcıda denemeye çalıştığımda çalışmıyor.Acaba noktalama işaretimi yapıyorum dediğim gibi yeni başladığım için çok hakim değilim kontrol edebilir misiniz?--
  • Lagras kullanıcısına yanıt
    1. t1, t2 ve n1 ile ilgili toplama işlemleri if bloğunun içinde olmalıdır. Çünkü eğer i tam sayı ise t1'i, t2'yi ve n1'i hesaplayacaksın.
    2. if bloğu ise for döngüsünün içinde olmalıdır. Çünkü 1'den N'e kadar tüm sayılar için if bloğunu çalıştıracaksın.

    Bu bilgiler ışığında, anladığım kadarıyla javascript kodlamaya çalışıyorsun (öncelikle html sayfasına scriptlerin nasıl eklendiğine bakmalısın-script tag'ının ekleri var), bu dilde if ve for bloklarının nasıl yazılması gerektiğine bir göz atmanı öneririm. İpucu da vereyim. Bu iki kontrol bloklarında if... {...}, for...{...} şeklinde kodlama yapman lazım. Yani if koşuluna bağlı birden fazla komut varsa, if...{komutlar} şeklinde olmalı, for için de benzer şekilde kodlama yapılır. Hatalı yazdığın aşağıdaki kodla karşılaştır. Ama benim cevabımla yetinme olur mu?

     
    <script>
    var i,N,ort,std,varyans,t1,t2,n1;
    N=Number(prompt("Bir Sayı Giriniz"));
    i=1; t1=0; t2=0; n1=0;
    for(i=1;i<=N;i++)
    {
    if(i%2==0)
    {
    t1=t1+i
    t2=t2+i^2
    n1=n1+1
    }
    }
    ort=t1/n1;
    varyans=(t2-Math.pow(ort,2)/n1)/(n1-1)
    std=Math.sqrt(varyans)
    document.write("<p>ort=" + ort+"</p>")
    document.write("<p>varyans="+varyans+"</p>")
    document.write("<p>standart sapma="+std+"</p>")
    </script>


    Bu arada, metin dosyasının içeriği şu şekilde olmalı diye biliyorum:

     
    html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Untitled Document</title>
    </head>
    <script>
    senin kaynak kodun burada olmalıdır.
    </script>
    <body>

    </body>
    </html>



    < Bu mesaj bu kişi tarafından değiştirildi lterlemez -- 18 Ocak 2016; 17:52:57 >




  • @
    lterlemez

    Sağolasın hocam hallettim.Not defterinde html,head,body kullanmasanda sadece script kullanıp .htm uzantılı kaydedince çalışıyor kodlar.Varyans alırken yanlışlık yapmışım.Sen düzeltmişsin teşekkürler.
  • @lterlemez
    Varyans hesaplamada hata var şimdi farkettim.Ama orayı tanımlatamıyorum.

    Standart sapma hesaplama aşağıdaki adımları takip edilerek yapılır. 1. ADIM) Verilerin aritmetik ortalaması bulunur. 2. ADIM) Her bir veri ile aritmetik ortalama arasındaki farkın kareleri toplanır. 3. ADIM) Bulunan toplam veri sayısının bir eksiğine bölünerek karekökü alınır.

    2 ile 4ün standart sapması mesela.
    Ort=3
    Varyans=((2-3)^2+(4-3)^2)/(2-1)=2
    Standart Sapma=Sqrt(2)
    Ama varyans kodları böyle çalışmıyor bunu nasıl tanımlatırız?
  • @lterlemez
    new Array komutuyla boş bir dizi oluştursak sonra push komutu ile o diziye eleman eklesek.Bu eklediğimiz elemanlarda i'ler olsun.Yani 1 den 10 a kadar çift sayıların standart sapmasını istiyor diyelim.For döngüsüyle 2,4,6,8,10 diye gidiyor.Bu 2,4,6,8 i diziye eklesek.Sonra varyansı bulurken
    (dizi[0]-ort)^2/(n1-1)+(dizi[1]-ort)^2/(n1-1)..........
    şeklinde yapabilir miyiz hocam bunu?Düşündüm düşündüm bu yöntem geldi aklıma.

    Edit:Kodlamasını da yaptım ama başarılı sonuç elde edemedim.



    < Bu mesaj bu kişi tarafından değiştirildi Lagras -- 18 Ocak 2016; 22:02:49 >
  • Lagras kullanıcısına yanıt
    Tabi ki yapabilirsiniz. Zaten dizin değişkenin (array) amacı odur. Matematiksel modeli de öyle değil midir? Düşünsenize, 1000 tane değeriniz var ama hem ortalama hem de varyans hesaplayacaksınız. Her seferinde 1000 tane değeri girecek misiniz? Benim size verdiğim kod, (t2-t1^2/n)/(n-1) eğer x'leri bir kere girmek istiyorsanız ve dizin değişken bilmiyorsan daha uygun. Ama dizin değişkeni biliyorsanız, orijinal varyans formülünden yararlanabilirsin, ayrıca ortalama ve varyans hesaplamalarını bir birinden ayırabilirsiniz (yani ikisini ayrı ayrı iki döngü ile gerçekleştirebilirsiniz).
  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.