$rr(N.N) Verilen Sayı Aralıklarını Yansıtmak

Aytac

Developer
Yönetici
Developer
Katılım
4 Şub 2020
Mesajlar
373
Tepkime puanı
17
Puanları
18
Konum
ircland
Web sitesi
www.ircalem.net
Parça kodlarla uğraşırken ortaya çıkan bir kombinasyonu paylaşmak istedim. Bunları yapmak için; "uğraşırken keyif alıyor olmak" yeterli diye düşünüyorum. Kod'un illa önemli bir amacı olması gerekmiyor, keyifli ve eğlenceli yanları olması yeterli bence. (Ayrıca: düzgün bir işlevi olan her kod bana göre anlamlı/öğretici/faydalıdır.)

Amaç:
1- mS'ye renk katması.
2- Eğlenmek/Yapım aşamasında keyif almak.
3- İlham verici bazı yönleri olması ümidi.

Kullanımı: $rr(Sayı1.Sayı2)
Örnek: //echo -a $rr(10.20) veya //echo -a $rr(20.10)

Açıklama: 1. Sayı ile 2. Sayı arasındaki sayıları sıralar.
- Eğer 1. Sayı küçük ve 2. Sayı büyük ise; Küçükten büyüğe doğru sıralar.
- Eğer 1. Sayı büyük ve 2. Sayı küçük ise; Büyükten küçüğe doğru sıralar.

Test1:
1. Sayı küçük 2. Sayı büyük;

Kod:
//echo -a $rr(10.20)

Sonuç: 10 11 12 13 14 15 16 17 18 19 20

Test2:
1. Sayı büyük 2. Sayı küçük;

Kod:
//echo -a $rr(20.10)

Sonuç: 20 19 18 17 16 15 14 13 12 11 10

Kod:
alias rr { 
  if $regex($$1,^\d+\.\d+$) {
    var %b = $gettok($1,1,46), %c = $gettok($1,2,46),%v,%z
    %v = $iif(%b > %c, $abs($calc(%b - %c)), $abs($calc(%c - %b)))
    %z = $regsubex(x,$str(*,%v),/./g,$calc($iif(%b > %c, %c, %b) + \n) $chr(32))
    return $iif(%b > %c, $sorttok(%z,32,nr) %c, %b %z)
  }
  else { return Format Hatası! - Doğru format: $!rr(rakam(N.N) - Örnek: $!rr(10.15) }
}

Not: Çok büyük sayı aralıkları verirseniz kod hata verecektir. Ayrıca kod pek çok farklı (kısa veya uzun) yolla da yapılabilir..
İyi forumlar.
 
Üst