![]() |
| | #1 |
| * mIRC Fonksiyonel Hesap Makinesi * Hazırlayan : Feragat * Oluşum : 12.12.2013 * Güncelleme: 06.01.2014 İlk versiyonundan farklı olarak 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, x² 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 x, sonrasında x^y tuşuna basılır daha sonra üs sayısı yazılır y. Örnek: 5^3 - pi hesaplarken (örneğin 2 x pi); 2pi şeklinde yazıp = eşittir e basın. pi2 veya 2xpi gibi girişlerde 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öriyel (!) simgesine basıp sonra sayı yazılmalıdır. Örnek: !5 Not 1: 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. Not 2: 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. Örnek Görüntüler: 1- [Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...] 2- [Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...] Kod;#####################################
;# - mIRC Fonksiyonel Hesap Makinesi #
;# - Hazırlayan : Feragat #
;# - Oluşum : 12.12.2013 #
;# - Güncelleme: 06.01.2014 #
;#####################################
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
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\z/S) {
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\z/S) {
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-
alias -l shesap drawtext -rbo @Hesap $rgb(0,255,255) $rgb(0,0,0) Verdana 15 70 13 $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 return $calc($regsubex($regsubex($str(*,$1),/./g,\n),/(?<=\d(?=\d))/g,*))
;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
on *:dialog:hesap:*:*: {
if ($devent = init) {
did -c $dname 42
drw on
}
if ($devent = close) {
window -c @Hesap
.timerb off
}
if ($devent = sclick) {
if ($did = 20) {
if $did(1).text {
did -ra $dname 1 $left($did(1).text,-1)
}
}
if ($did isnum 11-19) || ($did = 23) {
did -a $dname 1 $did($did).text
}
if ($did = 21) {
did -r $dname 1
clear @Hesap
}
if ($did = 25) {
did -a $dname 1 .
}
if ($did = 24) {
did -a $dname 1 ,
}
if ($did = 30) {
did -a $dname 1 /
}
if ($did = 31) {
did -a $dname 1 -
}
if ($did = 32) {
did -a $dname 1 +
}
if ($did = 29) {
did -a $dname 1 x
}
if ($did = 38) {
did -a $dname 1 pi
}
if ($did = 41) {
$iif(!$did(1).text,did -a $dname 1 x2^)
}
if ($did = 40) {
$iif(!$did(1).text,did -a $dname 1 x3^)
}
if ($did = 39) {
$iif($$did(1).text,did -a $dname 1 ^)
}
if ($did = 26) {
$iif(!$did(1).text,did -a $dname 1 nCr)
}
if ($did = 27) {
$iif(!$did(1).text,did -a $dname 1 nPr)
}
if ($did = 28) {
$iif(!$did(1).text,did -a $dname 1 !)
}
if ($did = 34) {
$iif(!$did(1).text,did -a $dname 1 sqrt)
}
if ($did = 2) {
$iif(!$did(1).text, did -a $dname 1 sin, did -ra $dname 1 sin $+ $did(1).text)
}
if ($did = 3) {
$iif(!$did(1).text, did -a $dname 1 asin, did -ra $dname 1 asin $+ $did(1).text)
}
if ($did = 6) {
$iif(!$did(1).text, did -a $dname 1 acos, did -ra $dname 1 acos $+ $did(1).text)
}
if ($did = 9) {
$iif(!$did(1).text, did -a $dname 1 atan, did -ra $dname 1 atan $+ $did(1).text)
}
if ($did = 5) {
$iif(!$did(1).text, did -a $dname 1 cos, did -ra $dname 1 cos $+ $did(1).text)
}
if ($did = 8) {
$iif(!$did(1).text, did -a $dname 1 tan, did -ra $dname 1 tan $+ $did(1).text)
}
if ($did = 4) {
$iif(!$did(1).text, did -a $dname 1 cot, did -ra $dname 1 cot $+ $did(1).text)
}
if ($did = 7) {
$iif(!$did(1).text, did -a $dname 1 sec, did -ra $dname 1 sec $+ $did(1).text)
}
if ($did = 10) {
$iif(!$did(1).text, did -a $dname 1 csc, did -ra $dname 1 csc $+ $did(1).text)
}
if ($did = 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) $+ :
;Burada sonda bir parantez vardı
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)
}
}
}
} 👍 1
________________ The Ghost of Christmas Past.. i'm here sometimes Konu Feragat tarafından (08 Mayıs 2022 Saat 22:09 ) değiştirilmiştir.. Sebep: Faktöriyel güncellendi. | |
| |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |