Asp Ortalama Alma
Efenim yeni bir iş üzerindeyim asp de ve bunun için bir şeye ihtiyacım oldu. Mesela 10 tane quiz olacaz normalde ortalamasını almak için 10 tanesini toplayıp 10 a bölmek yeterdi. Ama benim yapmak istediğim kaç tane sınava girdiysen onun ortalamasını almaktı. Yani 5 tane quize girdiysen 5ini toplayıp 5 e böldürmek istedim. Tabii söylerken kolay geliyor ama bilgisayarın seni anlaması okadar kolay olmadı. Bayağı uğraştım ve daha işimi tam olarak çözmesede bir kod yazdım, işe yarıyacak bir şey olduğu için sizlerlede paylaşayım dedim.
<%
QuizSayisi = 10
Toplam = 0
sayi = 0
For i = 1 To QuizSayisi
if CInt(Request.Form(”quiz”& i)) <> 0 Then
Toplam = Toplam + CInt(Request.Form(”quiz”& i))
sayi = sayi + 1
End if
Next
bol = Toplam / sayi
Response.Write “Ortalama: “& bol
%>
Text Boxlarınız name kısımlarını quiz1, quiz2… value lerinide “0″ yaparsanız çalışır. Çalışma mantığıda döngü oluşturuyor. 0 olmayan quizleri topluyor ve sayi değişkenine 1 ekliyor. 0 olanları hiç saymıyor. En son döngü bittiğinde Toplam ı sayıya bölüyor. Şimdilik bir eksiği var kodun oda öğrenci 0 alırsa mantık tamamen çökecek. Onuda tam olarak değiştirdiğimde buraya yazacağım. Hiç Bu kadar detaya girmek istemiyorsanız direk ortalama almak istiyorsanız şu kodu kullanabilirsiniz;
<%
QuizSayisi = 10
Toplam = 0
For i = 1 To QuizSayisi
Toplam = Toplam + CInt(Request.Form(”quiz”& i))
Next
Response.Write “Ortalama: “& Toplam / QuizSayisi
%>
Benden şimdilik bu kadar. Sorularınız olursa çekinmeden sorabilirsiniz.


Alisko | 6 Kas 2007 15:05 | Cevap Ver
Üst Taraftaki verdiğim kodda bir yanlışlık vardı belirtmiştim, 0 alırsa öğrenci tüm sistem çöküyordu. bir kod yazdım ve sorunu çözdüm ordaki.
<%
QuizSayisi = 5
Toplam = 0
sayi = 0
For i = 1 To QuizSayisi
if IsNumeric(Request.Form("quiz"& i)) False Then
Toplam = Toplam + CInt(Request.Form("quiz"& i))
sayi = sayi + 1
End if
Next
bol = Toplam / sayi
Response.Write "Ortalama :"& bol
%>
Burada boşluk olursa onu dikkate almıyor 0 ları dikkate alıyor.