mIRC Scripting

mIRC Scripting (https://www.mircscripting.net/)
-   Showcase - Hazır kodlar (https://www.mircscripting.net/showcase-hazyr-kodlar/)
-   -   Fonksiyonel Hesap Makinesi (https://www.mircscripting.net/showcase-hazyr-kodlar/675-fonksiyonel-hesap-makinesi.html)

Feragat 11 Aralık 2013 04:24

Fonksiyonel Hesap Makinesi
 
- mIRC Fonksiyonel Hesap Makinesi
- Hazırlayan : Feragat
- Oluşum : 12.12.2013
- Güncelleme: 06.01.2014
- mIRC Scripting


İsminden de anlaşılacağı üzere fonksiyonel hesaplar yapabilen bir hesap makinesidir.
mIRC'in kendi içerisinde $cos $sin $tan $acos $asin $atan $sqrt $pi tanımları bulunuyordu. Fakat sekant kosekant faktöriyel permütasyon kombinasyon vs. formül tanımları yoktu. Bunları matematiksel fonksiyonlarını inceleyerek kendim oluşturdum. Hiçbir yerden alıntı değildir. İlk versionundan farklı olarak Picture windows ile işlemlerin rahat görülebilmesi için bir pencere oluşturuldu.

Bazı Kullanım ipuçları:

- x^y isimli tuşa basıldığında x üzeri y hesabı yapar, gibi bir sembolü olmadığı için bu şekilde yapmak zorunda kaldım. Bu hesaplama yapılırken öncelikle; üssü hesaplanacak taban sayı yazılır yani x, sonrasında x^y tuşuna basılır daha sonra üs sayısı yazılır yani y. Örnek: 5^3

- pi hesaplarken örneğin 2 x pi; 2pi şeklinde yazıp = eşittir e basın. Yani pi2 veya 2xpi gibi yazımlarda işlem yapmayacaktır. Ayrıca (sin|cos|tan|sec) miktar pi işlemi de yapmaktadır. Örnek: sin2pi

- nPr(Permütasyon) ve nCr(Kombinasyon) hesaplarken kullanılacak format; Öncelikle nPr veya nCr tuşu sonrasında x yani 1. sayı, sonra vürgül ve y yani 2. sayı şeklinde olmalıdır. Örnek: nPr20,10

- Faktöriyel(!) Hesaplamasında öncelikle Faktöriye simgesine basıp sonra sayı yazılmalıdır. Örnek: !5

Değişen/Düzeltilen Bölümler:

- Arc(sin|cot|tan) hesaplamaları ile sqrt(kök) hesaplama işlemlerinde ki çakışma nedeniyle regex filtreleri yeniden düzenlendi ve sorun giderildi.

- Dialogu takip eden pencere alias'ını(Picture windows) farklı bir kodu inceleyerek oluşturdum.(Biraz esinlendim ve birkaç eklenti yaptım diyebilirim.) Diğer tüm bölümler özgün kodlamadır.

Not1:
Virgül(,) karakterinin; nPr(Permütasyon) ve nCr(Kombinasyon) işlemleri harici bir fonksiyonu bulunmamaktadır. Dört işlem vb. hesaplamalarda Nokta(.) karakterini kullanın.

Not2: Kullanmak isteyen kişilerin kodu sağlıklı çalışabilmesi için boş bir remote sayfasına eklemesini öneririm. mIRC'in herhangi bir ekranında sağ tık yapıp Hesap sekmesinden açabilirsiniz.

-Emeğe saygı açısından kaynak sitemizin adresini silmezseniz sevinirim. İyi forumlar.

Ekran görüntüleri:

http://i.hizliresim.com/wM9do9.jpg

http://i.hizliresim.com/xREnDa.jpg

http://i.hizliresim.com/KZ29Xk.jpg

http://i.hizliresim.com/wvYj6D.jpg

Kod:

;#####################################
;# - mIRC Fonksiyonel Hesap Makinesi #
;# - Hazırlayan : Feragat            #
;# - Oluşum : 12.12.2013            #
;# - Güncelleme: 06.01.2014          #
;# - www.mircscripting.net          #
;#####################################

menu * {
  .Hesap:/dialog -m hesap hesap
}

dialog hesap {
  title "Fonksiyonel Hesap Makinesi"
  size -1 -1 222 163
  option dbu
  edit "", 1, 10 56 201 10, multi autohs
  button "sin", 2, 10 73 21 12, flat
  button "asin", 3, 34 73 21 12, flat
  button "cot", 4, 58 73 21 12, flat
  button "cos", 5, 10 88 21 12, flat
  button "acos", 6, 34 88 21 12, flat
  button "sec", 7, 58 88 21 12, flat
  button "tan", 8, 10 102 21 12, flat
  button "atan", 9, 34 102 21 12, flat
  button "csc", 10, 58 102 21 12, flat
  button "7", 11, 115 73 17 12, flat
  button "8", 12, 135 73 17 12, flat
  button "4", 14, 115 88 17 12, flat
  button "5", 15, 135 88 17 12, flat
  button "6", 16, 155 88 17 12, flat
  button "1", 17, 115 103 17 12, flat
  button "2", 18, 135 103 17 12, flat
  button "3", 19, 155 103 17 12, flat
  button "<=", 20, 194 73 17 12, flat
  button "C", 21, 194 88 17 12, flat
  button "=", 22, 194 103 17 26, flat
  button "0", 23, 115 117 17 12, flat
  button ".", 25, 155 117 17 12, flat
  button "nCr", 26, 10 116 21 12, flat
  button "nPr", 27, 34 116 21 12, flat
  button "!", 28, 58 116 21 12, flat
  button "9", 13, 155 73 17 12, flat
  button "x", 29, 175 73 17 12, flat
  button "÷", 30, 175 88 17 12, flat
  button "-", 31, 175 103 17 12, flat
  button "+", 32, 175 117 17 12, flat
  button "pi", 38, 81 73 21 12, flat
  button "x^y", 39, 81 88 21 12, flat
  button "x³", 40, 81 116 21 12, flat
  button "x²", 41, 81 102 21 12, flat
  radio "Degree - (360°)", 42, 9 145 49 10
  radio "Radian - (2pi)", 43, 64 145 44 10
  link "www.mircscripting.net", 33, 158 146 55 8
  button ",", 24, 135 117 17 12, flat
  button "Kök(sqrt)", 34, 10 130 45 12, flat
  box "", 35, 10 4 201 47
}

;ALIAS'lar--------------------------------------------------

;Aktif pencere oluşum
alias -l drw {
  if !$isid && $regex($1,/on/AZS) {
    window -c @Hesap
    window -phdk0o +d @Hesap $calc($dialog(hesap).x + 30) $calc($dialog(hesap).y + 48) 388 70
    .timerb -ho 0 100 drw ref
  }
  if !$isid && $regex($1,/ref/AZS) {
    window $iif($dialog(hesap).active,-o,-u) @Hesap $calc($dialog(hesap).x + 30) $calc($dialog(hesap).y + 48) 388 70
  }
}

;Aktif pencere kısayol
alias -l chesap { clear @Hesap | drawtext -rbo @Hesap $rgb(255,255,255) $rgb(255,0,0) Verdana 15 8 13 $1- }
alias -l dhesap { drawtext -rbo @Hesap $rgb(0,255,255) $rgb(0,0,0) Verdana 12 8 42 $1- }

;Kotanjant
alias cot {
  if $isid && $prop == deg { return $calc(1 / $tan($1).deg) }
  elseif $isid && !$prop { return $calc(1 / $tan($1)) }
}

;Sekant
alias sec {
  if $isid && $prop == deg { return $calc(1 / $cos($1).deg) }
  elseif $isid && !$prop { return $calc(1 / $cos($1)) }
}

;Kosekant
alias csc {
  if $isid && $prop == deg { return $calc(1 / $sin($1).deg) }
  elseif $isid && !$prop { return $calc(1 / $sin($1)) }
}

;Faktöriyel
alias fac {
  unset %s
  var %a = 1,%b = $1
  while %a <= %b { %s = $addtok(%s,%a,32) | inc %a }
  $iif($isid,return,echo -a) $calc($replace(%s,$chr(32),$+($chr(32),*,$chr(32))))
}

;Permütasyon
alias per { $iif($isid,return,echo -a) $calc($fac($$1) / $fac($calc($$1 - $$2))) }

;Kombinasyon
alias cmb { $iif($isid,return,echo -a) $calc($fac($$1) / $calc($fac($calc($$1 - $$2)) * $fac($$2))) }

;x sayısının y üssü
alias üs { $iif($isid,return,echo -a) $calc($$1 ^ $$2) }

;x sayısının küpü
alias x3 { $iif($isid,return,echo -a) $calc($$1 ^ 3) }

;x sayısının karesi
alias x2 { $iif($isid,return,echo -a) $calc($$1 ^ 2) }


;EVENT'lar-----------------------------------------------

;Link
on *:dialog:hesap:dclick:33: { run $did(33).text }

;Dialog başladığında..
on *:dialog:hesap:init:*: {
  did -c $dname 42 | drw on
}

;Dialog kapandığında..
on *:dialog:hesap:close:*: { window -c @Hesap | .timerb off }

;Geri Tuşu
on *:dialog:hesap:sclick:20: { if $did(1).text { did -ra $dname 1 $left($did(1).text,-1) } }

;Rakamlar 0-9
on *:dialog:hesap:sclick:11-19,23: { did -a $dname 1 $did($did).text }

;Temizle (C)
on *:dialog:hesap:sclick:21: { did -r $dname 1 | clear @Hesap }

;Nokta
on *:dialog:hesap:sclick:25: { did -a $dname 1 . }

;Virgül
on *:dialog:hesap:sclick:24: { did -a $dname 1 , }

;Bölme
on *:dialog:hesap:sclick:30: { did -a $dname 1 / }

;Çıkarma
on *:dialog:hesap:sclick:31: { did -a $dname 1 - }

;Toplama
on *:dialog:hesap:sclick:32: { did -a $dname 1 + }

;Çarpma
on *:dialog:hesap:sclick:29: { did -a $dname 1 x }

;Pi
on *:dialog:hesap:sclick:38: { did -a $dname 1 pi }

;x2
on *:dialog:hesap:sclick:41: { $iif(!$did(1).text,did -a $dname 1 x2^) }

;x3
on *:dialog:hesap:sclick:40: { $iif(!$did(1).text,did -a $dname 1 x3^) }

;x üzeri y
on *:dialog:hesap:sclick:39: { $iif($$did(1).text,did -a $dname 1 ^) }

;nCr Kombinasyon
on *:dialog:hesap:sclick:26: { $iif(!$did(1).text,did -a $dname 1 nCr) }

;nPr Permütasyon
on *:dialog:hesap:sclick:27: { $iif(!$did(1).text,did -a $dname 1 nPr) }

;! Faktöriyel
on *:dialog:hesap:sclick:28: { $iif(!$did(1).text,did -a $dname 1 !) }

;Sqrt Kök
on *:dialog:hesap:sclick:34: { $iif(!$did(1).text,did -a $dname 1 sqrt) }


;Sinüs
on *:dialog:hesap:sclick:2: {
  if !$did(1).text { did -a $dname 1 sin }
  else { did -ra $dname 1 sin $+ $did(1).text }
}

;Asin
on *:dialog:hesap:sclick:3: {
  if !$did(1).text { did -a $dname 1 asin }
  else { did -ra $dname 1 asin $+ $did(1).text }
}

;Acos
on *:dialog:hesap:sclick:6: {
  if !$did(1).text { did -a $dname 1 acos }
  else { did -ra $dname 1 acos $+ $did(1).text }
}

;Atan
on *:dialog:hesap:sclick:9: {
  if !$did(1).text { did -a $dname 1 atan }
  else { did -ra $dname 1 atan $+ $did(1).text }
}

;Kosinüs
on *:dialog:hesap:sclick:5: {
  if !$did(1).text { did -a $dname 1 cos }
  else { did -ra $dname 1 cos $+ $did(1).text }
}

;Tanjant
on *:dialog:hesap:sclick:8: {
  if !$did(1).text { did -a $dname 1 tan }
  else { did -ra $dname 1 tan $+ $did(1).text }
}

;Kotanjant
on *:dialog:hesap:sclick:4: {
  if !$did(1).text { did -a $dname 1 cot }
  else { did -ra $dname 1 cot $+ $did(1).text }
}

;Sekant
on *:dialog:hesap:sclick:7: {
  if !$did(1).text { did -a $dname 1 sec }
  else { did -ra $dname 1 sec $+ $did(1).text }
}

;Kosekant
on *:dialog:hesap:sclick:10: {
  if !$did(1).text { did -a $dname 1 csc }
  else { did -ra $dname 1 csc $+ $did(1).text }
}


;Eşittir
on *:dialog:hesap:sclick:22: {
  if $did(42).state == 1 && $regex(h,$did(1).text,/^([a-z]{3})([-]\d+|[-]\d+\.\d+|\d+|\d+\.\d+|\d+pi|pi)$/) {
    if $regex(k,$regml(h,2),/(\d+pi)/) { var %ns = $+($gettok($regml(k,1),1,112),$chr(32),$chr(42),$chr(32),$chr(36),$chr(112),$gettok($regml(k,1),2,112)) | var %ns1 = [ [ %ns ] ] | did -ra $dname 1 [ [ $+($chr(36),$regml(h,1),$chr(40),%ns1,$chr(41),.deg) ] ]
      chesap $+($regml(h,1),$chr(40),$regml(h,2),$chr(41),:) | dhesap $+($gettok($regml(k,1),1,112),$chr(32),$chr(42),$chr(32),$chr(112),$gettok($regml(k,1),2,112)) $chr(61) [ [ $+($chr(36),$regml(h,1),$chr(40),%ns1,$chr(41),.deg) ] ]
    }
    elseif $regex(k,$regml(h,2),/(pi)/) { var %ns = $pi | did -ra $dname 1 [ [ $+($chr(36),$regml(h,1),$chr(40),%ns,$chr(41),.deg) ] ]
    chesap Pi: | dhesap $+($regml(h,1),$chr(40),%ns,$chr(41)) $chr(61) [ [ $+($chr(36),$regml(h,1),$chr(40),%ns,$chr(41),.deg) ] ] }
    else { var %h = $+($chr(36),$regml(h,1),$chr(40),$regml(h,2),$chr(41),.deg) | did -ra $dname 1 [ [ %h ] ]
    chesap $replace($regml(h,1),sin,Sinüs,cos,Kosinüs,tan,Tanjant,cot,Kotanjant,sec,Sekant,cos,Kosekant) $+ : | dhesap $+($regml(h,1),$chr(40),$regml(h,2),$chr(41)) $chr(61) [ [ %h ] ] }
  }
  elseif $did(43).state == 1 && $regex(h,$did(1).text,/^([a-z]{3})([-]\d+|[-]\d+\.\d+|\d+|\d+\.\d+|\d+pi|pi)$/) {
    if $regex(k,$regml(h,2),/(\d+pi)/) { var %ns = $+($gettok($regml(k,1),1,112),$chr(32),$chr(42),$chr(32),$chr(36),$chr(112),$gettok($regml(k,1),2,112)) | var %ns1 = [ [ %ns ] ] | did -ra $dname 1 [ [ $+($chr(36),$regml(h,1),$chr(40),%ns1,$chr(41)) ] ]
      chesap Pi:
    dhesap $+($gettok($regml(k,1),1,112),$chr(32),$chr(42),$chr(32),$chr(112),$gettok($regml(k,1),2,112)) $chr(61) [ [ $+($chr(36),$regml(h,1),$chr(40),%ns1,$chr(41)) ] ] }
    elseif $regex(k,$regml(h,2),/(pi)/) { var %ns = $pi | did -ra $dname 1 [ [ $+($chr(36),$regml(h,1),$chr(40),%ns,$chr(41)) ] ]
      chesap $replacecs($regml(h,1),pi,Pi) $+ : | dhesap regml(h,2) $+ $replacecs($regml(k,1),pi,Pi) $chr(61) [ [ $+($chr(36),$regml(h,1),$chr(40),%ns,$chr(41)) ] ] )
    }
    else { var %h = $+($chr(36),$regml(h,1),$chr(40),$regml(h,2),$chr(41)) | did -ra $dname 1 [ [ %h ] ]
    chesap $replacecs($regml(h,1),pi,Pi,sin,Sinüs,cos,Kosinüs,tan,Tanjant,cot,Kotanjant) $+ : | dhesap $+($regml(h,1),$chr(40),$regml(h,2),$chr(41)) $chr(61) [ [ %h ] ] }
  }
  elseif $did(42).state == 1 && $regex(s,$did(1).text,/^(asin|acot|atan)(\-1|\d|\d+\/\d+)$/) { var %sn = $+($gettok($regml(s,2),1,47),$chr(32),$chr(47),$chr(32),$gettok($regml(s,2),2,47)),%ss = $+($chr(36),$regml(s,1),$chr(40),%sn,$chr(41),.deg) | did -ra $dname 1 [ [ %ss ] ]
  chesap $replace($regml(s,1),asin,Arc Sinus,acot,Arc Kotanjant,atan,Arc Tanjant) $+ : | dhesap $regml(s,2) $chr(61) [ [ %ss ] ]  }
  elseif $did(43).state == 1 && $regex(s,$did(1).text,/^(asin|acot|atan)(\-1|\d|\d+\/\d+)$/) {
    if $regex($regml(s,2),/\//) { var %sn = $+($gettok($regml(s,2),1,47),$chr(32),$chr(47),$chr(32),$gettok($regml(s,2),2,47)),%ss = $+($chr(36),$regml(s,1),$chr(40),%sn,$chr(41)) | did -ra $dname 1 [ [ %ss ] ]
    chesap $replace($regml(s,1),asin,Arc Sinus,acot,Arc Kotanjant,atan,Arc Tanjant) $+ : | dhesap $regml(s,2) $chr(61) [ [ %ss ] ] }
    else { var %ss = $+($chr(36),$regml(s,1),$chr(40),$regml(s,2),$chr(41)) | did -ra $dname 1 [ [ %ss ] ]
    chesap $replace($regml(s,1),asin,Arc Sinus,acot,Arc Kotanjant,atan,Arc Tanjant) $+ : | dhesap $regml(s,2) $chr(61) [ [ %ss ] ] }
  }
  elseif $regex(x,$did(1).text,/^(\d+\x5E\d+|\d+\x2E\d+\x5E\d+|\d+\x5E\d+\x2E\d+|\d+\x2E\d+\x5E\d+\x2E\d+)$/) { did -ra $dname 1 $calc($regml(x,1))
  chesap x üssü y: | dhesap $regml(x,1) $chr(61) $calc($regml(x,1)) }
  elseif $regex(p,$did(1).text,/^(\d+pi|\d+\x2E\d+pi)$/) { var %p1 = $gettok($regml(p,1),1,112),%p2 = $calc($pi * %p1) | did -ra $dname 1 %p2
  chesap Pi: | dhesap %p1 $chr(61) %p2 }
  elseif $regex(u2,$did(1).text,/^(x2\x5E\d+|x2\x5E\d+\x2E\d+)$/) { var %u-2 = $regsubex(sc,$regml(u2,1),/^\w2\x5E(.+)$/,\1),%u_2 = $calc(%u-2 ^ 2) | did -ra $dname 1 %u_2
  chesap Kare: | dhesap  $chr(61) %u_2 }
  elseif $regex(u3,$did(1).text,/^(x3\x5E\d+|x3\x5E\d+\x2E\d+)$/) { var %u-3 = $regsubex(s3,$regml(u3,1),/^\w3\x5E(.+)$/,\1),%u_3 = $calc(%u-3 ^ 3) | did -ra $dname 1 %u_3
  chesap Küp: | dhesap  $chr(61) %u_3 }
  elseif $regex(c1,$did(1).text,/^(nCr\d+\x2C\d+)$/) { var %prm = $regsubex($regml(c1,1),/^nCr(.+)$/,\1) | did -ra $dname 1 [ [ $+($chr(36),cmb,$chr(40),%prm,$chr(41)) ] ]
  chesap Kombinasyon: | dhesap %prm $chr(61) [ [ $+($chr(36),cmb,$chr(40),%prm,$chr(41)) ] ] }
  elseif $regex(c1,$did(1).text,/^(nPr\d+\x2C\d+)$/) { var %prs = $regsubex($regml(c1,1),/^nPr(.+)$/,\1) | did -ra $dname 1 [ [ $+($chr(36),per,$chr(40),%prs,$chr(41)) ] ]
  chesap Permütasyon: | dhesap %prs $chr(61) [ [ $+($chr(36),per,$chr(40),%prs,$chr(41)) ] ] }
  elseif $regex(f1,$did(1).text,/^(\x21\d+|\x21\d+\x2E\d+)$/) { var %f1 = $regsubex($regml(f1,1),/\x21(.+)/,\1) | did -ra $dname 1 [ [ $fac(%f1) ] ]
  chesap Faktöriyel: | dhesap $chr(33) $+ %f1 $chr(61) [ [ $fac(%f1) ] ] }
  elseif $regex(q1,$did(1).text,/^(sqrt\d+|sqrt\d+\x2E\d+)$/) { var %q1 = $regsubex(qq,$regml(q1,1),/sqrt(.+)/,\1) | did -ra $dname 1 [ [ $sqrt(%q1) ] ]
  chesap Kök: | dhesap $regsubex(qq,$regml(q1,1),/sqrt(.+)/,\1) $chr(61) [ [ $sqrt(%q1) ] ] }
  elseif $regex(nm,$did(1).text,/^(\-?\d+[+-/x.]\d+|\-?\d+\x2E\d+[+-/x.]\d+|\-?\d+[+-/x.]\d+\x2E\d+)$/) { var %nm = $regsubex(rsn,$regml(nm,1),/(\-?\d+|\-?\d+\x2E\d+)(\+|\-|x|\/)(\d+|\d+\x2E\d+)/,\1 $replace(\2,x,*) \3) | did -ra $dname 1 $calc(%nm)
  chesap İşlem: | shesap $regml(rsn,1) $regml(rsn,2) $regml(rsn,3) | dhesap Sonuç: $calc(%nm) }
}


uFuK 11 Aralık 2013 19:00

Pi sayısının sonunu buluyormu :) Ekran görüntüsüne bakınca öyle bir izlenim veriyor insana

Eline sağlık güzel çalışma

Difuzyon 12 Aralık 2013 18:43

Ortaya güzel bir eser çıkmış, harikulade.


++ mIRCScripting.net hakkında kısaca:

mS; "Gayri resmi mIRC" kullanıcı ve tasarımcı topluluğudur.
2009 yılında kurulan mS; tasarımcı ve geliştiricileri bir araya getiren etkileşim ve iletişim sağlayan bir platformdur.
mS; tasarım, programlama, geliştirme, düzenleme vb. pek çok konu etrafında bir araya gelmiş "mIRC" meraklısı bir çok insan tarafından yaratılan içeriğiyle; kullanıcı dostu, özgün elit, nitelikli kişi ve konularla hizmet sunan mIRC Scripting platformudur.

Özgün içerikten onay almaksızın içeriği yaratan kullanıcılarımız tamamen yada kısmen sorumludur, aynı zamanda söz konusu içerik mS yetkilileri izni olmaksızın, kaynak gösterilse dahi(!) kopyalanamaz ve/ya paylaşılamaz.   Site/içerik hakkında görüş, öneri ve şikayetleriniz için sikayet[at]mircscripting[dot]net e-posta ve ya İletişim adresinden bizlere ulaştırabilirsiniz.



mIRC mIRC Orjinal mIRC İndir mIRC Download mIRC Tutorials mIRC Socket mIRC Commands mIRC Komutlar mIRC Yükle mIRC Dersler mIRC Hazır Kodlar mIRC Classentifier mIRC DLL mIRC Dialog mIRC IRC mIRC FTP mIRC Telnet mIRC Help
mIRC Yardım mIRC Iconlar mIRC Com Object mIRC Binary Files mIRC Picture Windows mIRC Unicode mIRC Forum mIRC Hazır Kodlar mIRC Kod mIRC Script mIRC File Handling mIRC Scripting Language mIRC Scripting Dili mIRC Scripting Info
mIRC Scripting Tutorials



User Alert System provided by Advanced User Tagging v3.1.3 (Lite) - vBulletin Mods & Addons Copyright © 2026 DragonByte Technologies Ltd. Runs best on HiVelocity Hosting.

1 2 13 14 16 17 18 19 21 22 23 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 49 50 51 52 54 55 56 57 58 59 60 61 62 63 67 68 69 70 71 72 73 74 75 76

SEO by vBSEO 3.6.1