Bu bölümde genellikle okullarda sorulan bazı matematiksel algoritmaları bulabilirsiniz.
1. Faktoriyel Hesabı :
Tüm bilgisayar hocalarının kesinlikle sorduğu sorulardan biridir. Girilen bir sayının faktoriyelini veren program.
sayi = InputBox ("Faktöriyeli Alınacak Sayıyı Girin")
sonuc = 1
FOR i = sayi TO 1 STEP -1
sonuc = sonuc * i
NEXT
Msgbox sayi & "! = " & sonuc
2. Ortalama Hesabı :
Girilen 100 adet sayının ortalamasını hesaplayan program.
' Bilgiler sırayla alınırken...
toplam = 0
FOR i = 1 TO 100
sayi = InputBox (i & ". Sayiyi Girin")
toplam = toplam + sayi
NEXT
Msgbox "100 adet sayinin ortalamasi = " & ROUND(toplam / 100 , 1)
ikinci yol :
' Bilgiler bir A(100) dizisinden okunuyorsa...
toplam = 0
FOR i = 1 TO 100
toplam = toplam + A(i)
NEXT
Msgbox "100 adet sayinin ortalamasi = " & ROUND(toplam / 100 , 1)
3. Asal Sayı Programı :
A ve B sayıları arasında kalan asal sayıları bulan program.
FOR i = 2 TO ustsayi
asal = 1
FOR j = 2 TO ustsayi - 1
IF i <> j AND (Fix(i / j) * j = i) THEN
' sayı asal değildir. asal değişkeni 0 yapılır.
asal = 0
END IF
NEXT
IF i >= altsayi AND asal = 1 THEN PRINT i
NEXT
4. Matris Toplama Programı :
Bir A(i,j) matrisi ile bir B(i,j) matrisini toplayıp C(i,j) matrisini elde eden program.
' A( i , j ) ve B( i , j ) matrisleri önceden okunmuş olsun.
FOR x = 1 TO i
FOR y = 1 TO j
C ( x , y ) = A ( x , y ) + B ( x , y )
NEXT
NEXT
5. Matris Çarpım Programı :
Bir A(i,j) matrisi ile bir B(j,k) matrisini çarpıp C(i,k) matrisini elde eden program.
' A(i,j) ve B(j,k) matrisleri önceden okunmuş ve C(i,k) önceden oluşturulmuş olsun.
For X = 1 To i
For Y = 1 To j
toplam = 0
For Z = 1 To k
toplam = toplam + ( A ( X , Z ) * B ( Z , Y ) )
Next Z
C( X , Y ) = toplam
Next Y
Next X
6. Matrisin Transpozesi :
Bir A(6,4) matrisinin transpozesini alan program.
Dim A (4,6) As Integer
Dim B (6,4) As Integer
' A( 4 , 6 ) değerleri önceden girilmiş olsun.
For i = 1 To 4
For j = 1 To 6
B ( j , i ) = A ( i , j )
Next
Next
kaynak:gokhanca.com
ileri matematik - faktoriyel,ortalama,asal sayı,matris (vb)
- velociraptor
- Yottabyte4
- Mesajlar: 46474
- Kayıt: 14 Mar 2006, 02:33
- cinsiyet: Erkek
- Teşekkür etti: 4602 kez
- Teşekkür edildi: 3916 kez
- Mendenn
- Gigabyte2
- Mesajlar: 2353
- Kayıt: 19 Haz 2006, 18:01
- cinsiyet: Erkek
Re: ileri matematik - faktoriyel,ortalama,asal sayı,matris (vb)
üversitede iken bizde Qbasic ile program yazıyorduk. Şu Dim Komutu kullanıyordum. Ama çoğu zaman ezbere yapıyordum. Bir türlü ne işe yaradığı tam kavrayamadım. hocamızda anlamımıştı. oda ezbere yapıyordu hahaha
Dim Komutu ne işe yarar basit bir dil ile anlatacak olan var mı?
Dim Komutu ne işe yarar basit bir dil ile anlatacak olan var mı?
- velociraptor
- Yottabyte4
- Mesajlar: 46474
- Kayıt: 14 Mar 2006, 02:33
- cinsiyet: Erkek
- Teşekkür etti: 4602 kez
- Teşekkür edildi: 3916 kez
Re: ileri matematik - faktoriyel,ortalama,asal sayı,matris (vb)
Aramizda Programci oldugunu sanmama , olsa ilk benim isime yarardi
- Mendenn
- Gigabyte2
- Mesajlar: 2353
- Kayıt: 19 Haz 2006, 18:01
- cinsiyet: Erkek
Re: ileri matematik - faktoriyel,ortalama,asal sayı,matris (vb)
Fizik dersi ile ilgili bir çalışmam da Dim kullandığım yer... aradan uzun zaman geçti galiba sönünlü bir hareketi gösteriyor.
V: hız
X: alınan yok
A:ivme
W0: sabit
DT ve DT2 belirli süreler arasındaki zaman farkı (Delta)
V: hız
X: alınan yok
A:ivme
W0: sabit
DT ve DT2 belirli süreler arasındaki zaman farkı (Delta)
Kod: Tümünü seç
CLS
SCREEN 8
DIM X(21), V(21), A(21), X0(21), VO(21), A0(21)
INPUT " SD: "; SD
INPUT "KIP: "; KIP
T = 0: N = SD + 1
FOR I = 1 TO N
V(I) = 0: X(I) = .5 * SIN(KIP * 22 / 7 * I / N)
NEXT I
X(0) = 0: X(N) = 0: W0 = 2: DT = .01: DT2 = .5 * T
FOR J = 1 TO 12000
FOR I = 1 TO N - 1
A(I) = W0 * (X(I + 1) - X(I - 1)) - W0 * (X(I) - X(I - 1))
VO(I) = V(I) + A(I) * DT2
X0(I) = X(I) + V(I) * DT2
A0(I) = W0 * (X0(I + 1) - X0(I)) - W0 * (X0(I) - X0(I - 1))
V(I) = V(I) + A0(I) * DT
X(I) = X(I) + VO(I) * DT
NEXT I
FOR I = 1 TO N - 1
PSET (20 + 5 * T, I * 20 - 10 * X(I)), I
NEXT I
T = T + DT
NEXT J
END
- yasarcik
- Byte3
- Mesajlar: 106
- Kayıt: 28 Haz 2006, 19:11
Re: ileri matematik - faktoriyel,ortalama,asal sayı,matris (vb)
Dim, xBasic dillerinde değişken tanımı için kullanılır.
QBasic, Gwbasic,Turbo Basic veya Visual Basic'de 'de değişken tanımı yapılması gerekmese de örneğin Visual Basic'de
Dim x as String (x alfabetik-numerik bir değer alabilir.)
Dim y as Integer (y sayısal bir değer alabilir, Max 32767 olabilir)
Dim z as Double (z sayısal bir değer alabilir. max sınırı yok sayabilirsiniz)
gibi tanımlamalar yapılabilir.
Dim komutu ile yukarıdaki örneklerinde array (dizin tanımı) için kullanılmış
Dim x(21) komutu ile x değişkeninin 21 farklı değer alabileceği gösterilmiş örn.
x(1)=56
x(2)=25
x(3)=100 gibi
Programınızda benzer nitelikte ve çok sayıda değişken kullanmanız gerektiğinde işe yarar. Sayı sıralama, mod, varyans, medyan faktöryel vs bulma gibi istatistiksel hesaplarda elzemdir. Varyans hesabı için elinizde 50 adet sayı varsa, 50 ayrı değişken tanımlamak yerine dim x(50) yazmanız yeterlidir. 50 ayrı sayıyı da x değişkenine atayabilirsiniz.
dim x(50)
for i=1 to 50
x(i)=inputbox("Sayı giriniz")
next
bu aşamadan sonra 50 adet sayı diziye alınmış olur. Artık üzerinde istediğiniz işlemi yapabilirsiniz.
Matris gibi iki boyutlu dizilerde ise iki boyutlu tanımlama yapılabilir
dim z(4,5)
bu işlem 4 x 5 ebatlarında z isimli bir dizi tanımlar
for i=1 to 4
for j=1 to 5
z(i,j)=inputbox("Sayı giriniz")
next j
next i
komutları ile matrise girişi sağlanır
inputbox satırını; z(i,j)=inputbox(i & "-" & j & " Sayısını giriniz") şeklinde yazarsanız ekrana 1-1 sayısını giriniz veya 3-4 sayısını giriniz şeklinde görüntülenir ki matrisin hangi elemanını girdiğinizi daha rahat görebilirsiniz.
Kısaca Dim özellikle sayı dizilerinin işlenmesi için kullanılır. Bir de pek bilinmeyen ve kullanılmayan dizi-matris şekli vardır ki bu da 3 boyutlu matristir.
dim x(6,4,5) şekilinde tanımlanır. Burada anlayabileceğiniz gibi 6 birim satır, 4birim sütun ve 5 birim derinliği olan bir matris tanıtırsınız. Alabileceği azami değer sayısı ise 6*4*5=120'dir.
3 boyutlu bu matrisin veri girişi aşağıdaki gibi sağlanır.
for i=1 to 6
for j=1 to 4
for k=1 to 5
x(i,j,k) = inputbox("Sayı giriniz")
next k
next j
next i
Excel VB Script ve Visual Basic dilinde Dim ile yapılan tanımlamaların tümünde kullanılacak değerin niteliği ayrıca isteğe bağlı olarak belirlenebilir.
Dim x(10) as String tanımlaması yapılırsa yalnızca alfa-nümeric veriler girilebilir.
Dim z(20) as Integer tanımlamasında 32767 sayısından büyük sayı yazamazsınız
Dim a(59) as Double tanımlamasında 300 basamaklı sayıya kadar kullanabilirsiniz.
Herhangi bir ayrıntılı tanımlama yapmadan
Dim k(19) şeklinde bırakılırsa girilen her türlü veriyi kabul edecektir.
Aramızda programcı var ama artık ofiste Excel Makrolarından başka program yazmıyor. Bazen de eşe dosta VB ile basit veri tabanı programları yazıyor. :oops:
QBasic, Gwbasic,Turbo Basic veya Visual Basic'de 'de değişken tanımı yapılması gerekmese de örneğin Visual Basic'de
Dim x as String (x alfabetik-numerik bir değer alabilir.)
Dim y as Integer (y sayısal bir değer alabilir, Max 32767 olabilir)
Dim z as Double (z sayısal bir değer alabilir. max sınırı yok sayabilirsiniz)
gibi tanımlamalar yapılabilir.
Dim komutu ile yukarıdaki örneklerinde array (dizin tanımı) için kullanılmış
Dim x(21) komutu ile x değişkeninin 21 farklı değer alabileceği gösterilmiş örn.
x(1)=56
x(2)=25
x(3)=100 gibi
Programınızda benzer nitelikte ve çok sayıda değişken kullanmanız gerektiğinde işe yarar. Sayı sıralama, mod, varyans, medyan faktöryel vs bulma gibi istatistiksel hesaplarda elzemdir. Varyans hesabı için elinizde 50 adet sayı varsa, 50 ayrı değişken tanımlamak yerine dim x(50) yazmanız yeterlidir. 50 ayrı sayıyı da x değişkenine atayabilirsiniz.
dim x(50)
for i=1 to 50
x(i)=inputbox("Sayı giriniz")
next
bu aşamadan sonra 50 adet sayı diziye alınmış olur. Artık üzerinde istediğiniz işlemi yapabilirsiniz.
Matris gibi iki boyutlu dizilerde ise iki boyutlu tanımlama yapılabilir
dim z(4,5)
bu işlem 4 x 5 ebatlarında z isimli bir dizi tanımlar
for i=1 to 4
for j=1 to 5
z(i,j)=inputbox("Sayı giriniz")
next j
next i
komutları ile matrise girişi sağlanır
inputbox satırını; z(i,j)=inputbox(i & "-" & j & " Sayısını giriniz") şeklinde yazarsanız ekrana 1-1 sayısını giriniz veya 3-4 sayısını giriniz şeklinde görüntülenir ki matrisin hangi elemanını girdiğinizi daha rahat görebilirsiniz.
Kısaca Dim özellikle sayı dizilerinin işlenmesi için kullanılır. Bir de pek bilinmeyen ve kullanılmayan dizi-matris şekli vardır ki bu da 3 boyutlu matristir.
dim x(6,4,5) şekilinde tanımlanır. Burada anlayabileceğiniz gibi 6 birim satır, 4birim sütun ve 5 birim derinliği olan bir matris tanıtırsınız. Alabileceği azami değer sayısı ise 6*4*5=120'dir.
3 boyutlu bu matrisin veri girişi aşağıdaki gibi sağlanır.
for i=1 to 6
for j=1 to 4
for k=1 to 5
x(i,j,k) = inputbox("Sayı giriniz")
next k
next j
next i
Excel VB Script ve Visual Basic dilinde Dim ile yapılan tanımlamaların tümünde kullanılacak değerin niteliği ayrıca isteğe bağlı olarak belirlenebilir.
Dim x(10) as String tanımlaması yapılırsa yalnızca alfa-nümeric veriler girilebilir.
Dim z(20) as Integer tanımlamasında 32767 sayısından büyük sayı yazamazsınız
Dim a(59) as Double tanımlamasında 300 basamaklı sayıya kadar kullanabilirsiniz.
Herhangi bir ayrıntılı tanımlama yapmadan
Dim k(19) şeklinde bırakılırsa girilen her türlü veriyi kabul edecektir.
Aramızda programcı var ama artık ofiste Excel Makrolarından başka program yazmıyor. Bazen de eşe dosta VB ile basit veri tabanı programları yazıyor. :oops:
- Mendenn
- Gigabyte2
- Mesajlar: 2353
- Kayıt: 19 Haz 2006, 18:01
- cinsiyet: Erkek
Re: ileri matematik - faktoriyel,ortalama,asal sayı,matris (vb)
nette arayıpta bulduğum bilgiler bu kadar açıklayıcı değildi. Sağol. Karanlıkta nokta kalmadı.
- velociraptor
- Yottabyte4
- Mesajlar: 46474
- Kayıt: 14 Mar 2006, 02:33
- cinsiyet: Erkek
- Teşekkür etti: 4602 kez
- Teşekkür edildi: 3916 kez
Re: ileri matematik - faktoriyel,ortalama,asal sayı,matris (vb)
Onlari bende yapabiliyorum , bana Coder lazim :)yasarcik yazdı:Aramızda programcı var ama artık ofiste Excel Makrolarından başka program yazmıyor. Bazen de eşe dosta VB ile basit veri tabanı programları yazıyor. :oops:
-
- Terabyte1
- Mesajlar: 3527
- Kayıt: 10 Tem 2007, 11:47
- cinsiyet: Erkek
- Teşekkür edildi: 18 kez
- İletişim:
Re: ileri matematik - faktoriyel,ortalama,asal sayı,matris (vb)
Algoritma çok gerekli oluyor.Programcılıkta en sıkıcı ve uğraştırıcı o oluyor.Komutları öğrendiğim halde bunun mantığını halen kavramadım.Ancak exel de bazı işlemler yapabiliyorum.
teşekkürler
teşekkürler