Güncelleme: 29 Aralık 2021
Matemetiksel İşlem Sembolleri
Matematiksel işlemlerde öncelik sırası
- Parantez içi. a = (5 + 10) * 3 ' 45
- Üs alma işlemi (^). a = 10 + 2 ^ 3 ' 18
- Negatife dönüştürme (-) a = 10 - -30 - -5 ' 45
- Çarpma ve Bölme(* , /). a = 20 + 30 / 2 ' 35
- Kalansız bölme (\) a= 30 - 16 \ 3 ' 25
- MOD işlemi. a = 10 + 11 MOD 3 ' 12
- Toplama, Çıkarma (+ , -) a = 10 + 5 * 2 - 20 / (2 + 3) ^ 2 ' ' 19.2
PRINT 5 ^ 2 ' 25 (Karesi) PRINT 5 ^ -2 '.04 PRINT 1 / 5 ^ 2 '.04 PRINT 25 ^ 1 / 2 '12.5 PRINT (25 ^ 1) / 2 '12.5 PRINT 25 ^ (1 / 2) '5 (Karekök) PRINT 25 ^ .5 '5 (Karekök) PRINT 27 ^ (1 / 3) ' 3 (Küpkök) PRINT 3 + 6 / 12 * 3 - 2' 2.5 PRINT 6 / 12 + 2 ^ 4 ' 0.5 PRINT 5 + .5 * 3' 1.5 PRINT 3 + 9 / 3' 4.5 PRINT 4.5 - 9 / 5 ' 2.5
ABS
Verilen sayının mutlak(ABSolute) değerini verir.Sayı negatif ya da pozitif olsa da sonuç pozitif olur.
PRINT ABS(-127) '127 PRINT ABS(254) '254
INT
Verilen sayıyı aşağı yuvarlar.Sayı negatif ise bir küçük sayıyı verir.
PRINT INT(12.86) '12 PRINT INT(14.13) '14 PRINT INT(-12.86) '-13 PRINT INT(-14.13) '-15
FIX
Sayının tam kısmını verir. Küsurat atılır.PRINT FIX(45.9) '45 PRINT FIX(45.1) '45 PRINT FIX(-45.1) '-45 PRINT FIX(-45.8) '-45
RND
PRINT RND '0 - 1 arası küsurlu bir sayı PRINT RND(1) PRINT INT(RND * 10) + 1 '0-9 arası tam sayıRND komutu program her çalıştırılmasında aynı sayıları üretir.
Bundan kurtulmak için aşağıda verilen örnekte olduğu gibi RND komutundan önce RANDOMIZE TIMER kullanılır.
TIMER, saat 00:00:00'dan o anki saate kadar geçen süreyi saniye cinsinden verir.
Rastgele sayı aralıklarını belirlemek için şu formül kullanılır:
SAYI = INT(RND * (büyüksayı - küçüksayı + 1) + küçüksayı)Örnek: 20 ile 35 arası bir sayı için:
SAYI = INT(RND * ( 35 - 20 + 1)) + 20 SAYI = INT(RND * 16) + 20 ' 20 - 35 arası bir sayı
RANDOMIZE
Rastgele sayı üreticisini hazırlar.Örnek 1:
RANDOMIZE TIMER
DO
rgs% = INT(RND * 11) + 2 '(2-12 arası rastgele sayı)
PRINT rgs%;
SLEEP
LOOP UNTIL INKEY$ = CHR$(27) 'ESC : Çıkış
Örnek 2: Sayı tahmin oyunu' **** SAYI TAHMİN OYUNU ****
' ©2020 Mesut Akcan
' 28/05/2020
' mesutakcan.blogspot.com
DEFINT A-Z
DIM SHARED sayi, a
RANDOMIZE TIMER
CLS
cr$ = CHR$(10)
CALL rastgeleSayi
DO
a = a + 1
IF a > 5 THEN
COLOR 12
PRINT cr$; "Tahmin hakkınız bitti!"
CALL tekrar
ELSE
COLOR 14
PRINT "Tahmin:"; a; "-";
INPUT tahmin
IF tahmin = sayi THEN
COLOR 26
PRINT cr$; "Tebrikler "; a; " denemede bildiniz..."
COLOR 10
CALL tekrar
ELSEIF tahmin < 1 OR tahmin > 10 THEN
COLOR 28
PRINT "!! sayı 1 - 10 arasında !!"
ELSE
COLOR 13
PRINT "Bilemediniz, Kalan tahmin hakkınız:"; 5 - a
END IF
END IF
LOOP
SUB rastgeleSayi
sayi = RND * 10 + 1
COLOR 11
CLS
PRINT "Bilgisayar 1 - 10 arası bir sayı tuttu."
PRINT "Bu sayıyı tahmin edin"
END SUB
SUB tekrar
PRINT "Tekrar oynamak ister misiniz? (E/H)"
c$ = INPUT$(1)
IF UCASE$(c$) = "H" THEN
END
ELSE
CALL rastgeleSayi
END IF
a = 0
END SUB
Örnek 3
'Mesut Akcan CLS RANDOMIZE TIMER FOR c = 191 TO 196 COLOR c - 191 + 10 FOR n = 1 TO 80 * 24 PRINT CHR$(c + RND); NEXT SLEEP NEXT
DÖNÜŞTÜRME FONKSİYONLARI
Bellekte değişken değeri olarak tutulan sayıyı farklı formatlara dönüştürmek için kullanılan fonksiyonlar:CDBL
Sayıyı DOUBLE formata dönüştürür.A% = 15454 ' Bellekte 2 baytlık yer tutuyor B# = CDBL(A%) ' Şimdi 8 baytlık Double formata dönüştü ve B değişkenine aktarıldı PRINT LEN(A%), LEN(B#)
CINT
Sayıyı INTEGER formata dönüştürür.Sayı küsurlu ise; küsur .4 den büyükse yukarı değilse aşağı yuvarlanır ve küsur atılır.
A = 1245.85 : PRINT CINT(A) '12346
CLNG
Sayıyı LONG formata dönüştürür. Sayı küsurlu ise CINT gibi.CSNG
Sayıyı SINGLE formata dönüştürürMATEMATİKSEL FONKSİYONLAR
TAN
Radyan olarak verilen açının TANjantını verir.ATN
Radyan olarak verilen açının ArkTaNjantını verir.PI = 4 * ATN(1) PRINT PI ' 3.141593 (Pi sayısı)
COS
Radyan olarak verilen açının kosinüsünü verir.SIN
Radyan olarak verilen açının sinüsünü verir.Dereceyi radyana dönüştürmek için: sayı * (pi / 180)
Örnekler:
pi# = 4 * ATN(1) 'pi sayısı d = 30 'derece r = d * (pi# / 180) 'radyan PRINT SIN(r) '.5 PRINT COS(r) '.8660254 PRINT TAN(r) '.5773503 PRINT ATN(r) '.4823479
Türetilmiş Trigonometrik fonksiyonlar
ArkTanjant (Arctangent)
ATN
Arksinüs (arcsine)
Arcsin = Atn(X / Sqr(-X * X + 1))
Sekant (secant)
Sec = 1 /
Cos(X)
Kosekant (cosecant)
Cosec = 1 / Sin(X)
Kotanjant
(cotangent)
Cotan = 1 / Tan(X)
Arkkosinüs (arccosine)
Arccos
= Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
Arksekant (arcsecant)
Arcsec
= Atn(X / Sqr(X * X – 1)) + Sgn((X) – 1) * (2 * Atn(1))
Arkkosekant
(arccosecant)
Arccosec = Atn(X / Sqr(X * X - 1)) + (Sgn(X) – 1) * (2
* Atn(1))
Arkkotanjant (arccotangent)
Arccotan = Atn(X) + 2 *
Atn(1)
Hiperbolik Sinüs
HSin = (Exp(X) – Exp(-X)) / 2
Hiperbolik
Kosinüs
HCos = (Exp(X) + Exp(-X)) / 2
Hiperbolik Tanjant
HTan
= (Exp(X) – Exp(-X)) / (Exp(X) + Exp(-X))
Hiperbolik Sekant
HSec
= 2 / (Exp(X) + Exp(-X))
Hiperbolik Kosekant
HCosec = 2 /
(Exp(X) – Exp(-X))
Hiperbolik Kotanjant
HCotan = (Exp(X) +
Exp(-X)) / (Exp(X) – Exp(-X))
ArkHiperbolik Sinüs
HArcsin =
Log(X + Sqr(X * X + 1))
ArkHiperbolik Kosinüs
HArccos = Log(X +
Sqr(X * X – 1))
ArkHiperbolik Tanjant
HArctan = Log((1 + X) / (1
– X)) / 2
ArkHiperbolik Kosekant
HArcsec = Log((Sqr(-X * X + 1)
+ 1) / X)
ArkHiperbolik Kosekant
HArccosec = Log((Sgn(X) * Sqr(X
* X + 1) + 1) / X)
ArkHiperbolik Kotanjant
HArccotan = Log((X +
1) / (X – 1)) / 2
N tabanına logaritma
LogN = Log(X) / Log(N)
sayi
= 1000
taban = 10
logn = LOG(sayi) / LOG(taban) ' 1000 sayısının 10 tabanına göre logaritması PRINT logn '3
EXP
e sabitinin (~ = 2.718282) üstünü alırINPUT "Başlangıç bakteri miktarı"; c
INPUT "Günlük çoğalma oranı"; oran
r = oran / 100
PRINT
PRINT "Gün", "Çoğalma"
FOR t = 0 TO 15 STEP 3
PRINT USING "##"; t;
PRINT USING "###,###,###,###"; c * EXP(r * t)
NEXT
LOG
Sayının doğal LOGaritmasını hesaplar.'e tabanına göre 1000 sayısının logaritması (doğal logaritma) PRINT LOG(1000) '6.907755
MOD
İki sayının bölümü sonucunda kalanı verir.A = 11 PRINT A MOD 3 ' 11 in 3 e bölümünde kalan sayı: 2Örnek: 1-20 arası çift sayıların toplamı
FOR n = 1 TO 20
IF (n MOD 2) = 0 THEN toplam = toplam + n
NEXT
PRINT toplam
SGN
Sayının işaretini belirtir. Sayı; 0 ise 0, pozitif ise 1, negatif ise -1 değerini verir.PRINT SGN(-28) ' -1 PRINT SGN(18) ' 1 PRINT SGN(0) ' 0 PRINT SGN(20-10) ' 1 PRINT SGN(-20-10) ' -1 PRINT SGN(-2*-10) ' 1 PRINT SGN(10/-2) ' -1 PRINT SGN(10+12-5-4/2-17) ' -1
SQR
Sayını karekökünü verir.PRINT SQR(81) '9 'Alternatif: PRINT 81 ^ .5 '9 PRINT 81 ^ (1/2) '9
8'lik ve 16'lık sayı sistemlerini kullanma
PRINT &HFF ' 255 A = &H1FA9 PRINT A ' 8105
PRINT &O77 ' 63 A = &O5402 PRINT A ' 2818
HEX$
Verilen sayıyı 16'lık sayı sistemine(HEXadecimal) dönüştürürHEX$(sayı)
PRINT HEX$(2001) ' 7D1
OCT$
PRINT OCT$(2001) ' 3721Problem 1:
FUNCTION DEC2BIN(s AS INTEGER) .. .. END FUNCTION
FUNCTION BIN2DEC(s AS STRING) .. .. END FUNCTION
LEN
Önceki bölümde LEN komutunun verilen metnin karakter uzunluğunu verdiğini görmüştük.LEN komutuyla sayısal değişkenin bellekte kapladığı alanı bayt cinsinden öğrenebiliriz.
a% = 1 PRINT LEN(a%) ' 2 - INTEGERSayı 1 olduğu halde sonucun 2 çıktığına dikkat ediniz. Integer sayı değişkeni bellekte 2 bayt alan kaplar. Sayı 0 da olsa 32767 de olsa sonuç 2 olur.
d& = 2 ^ 30: PRINT LEN(d&) '4 - LONG b! = 3.1415: PRINT LEN(b!) '4 - SINGLE c# = .5: PRINT LEN(c#) '8 - DOUBLE TYPE kayit adi AS STRING * 15 '15 dyili AS INTEGER '2 boyu AS SINGLE '4 END TYPE 'toplam: 21 DIM personel AS kayit PRINT LEN(personel) '21
SAYIYI STRING'E DÖNÜŞTÜRME
STR$
a = 4.5 b$ = STR$(a)
| Önceki Bölüm: 8: Karakterlerle ilgili işlemler | Sonraki Bölüm: 10: Dosya İşlemleri-1 |


Hiç yorum yok:
Yorum Gönder