Visual Basic Uygulamaları-4. Dİ Zİ LER (ARRAYS) ve Nesne Kü meleri



Benzer belgeler
HSancak Nesne Tabanlı Programlama I Ders Notları

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Uygulama 1) Tur sayısını 1 den klavyeden girilen n e kadar ekrana yazarak birikimli (kümülatif) toplam alan kaynak kodları yazınız.

MT 373 Visual Basic Programlama Dersi

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Uygulama 1) Aşağıdaki genel (global) değişken tanımlamalarını VB üzerinde yapınız. Süre 10 dak.

Diziler İndisli Değişkenler

-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

BPR152-Algoritma ve Programlama II Uygulama -13

Programlama Dilleri 3

DİZİLER. Bu ünitede yapılan örnekler Visual Studio 2010 programındaki Visual Basic programlama diliyle çözülmüştür.

Timer İle arka plan renk değişimi

KONTROL YAPILARI (CONTROL STRUCTURES)

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

C# Örnek Uygulamalar I

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Her Select Case bloğu, mutlaka End Select ile bitmek zorundadır.

JAVADA DİZİ İŞLEMLERİ

VISUAL BASIC STANDART KÜTÜPHANE FONKSİYONLARI

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

Uygulamalar 4 IsMissing Fonksiyonlar ve Alt Programlar Prosedür Parametreleri Public Function f(x,y,optional t, Optional k) End Function 1.

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

T.C. MİLLİ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) BİLİŞİM TEKNOLOJİLERİ

Uygulama 1) Sabit olarak belirlenen sayıda tekrar eden (5 kez) Visual Basic kaynak kodlarını yazınız.

UYGULAMALAR -2 Select case Yapısı: Select Case case case case case case is case Else End Select Örnek:

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Command Nesnelerini Kullanarak Tablolarda Değişiklik Yapmak:

BİL1001 Bilgisayar Bilimlerine Giriş 1

Matlab da Dizi ve Matrisler. Mustafa Coşar

D İ Z İ L E R A R R A Y S

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

Def bildiri deyimi projenin general,declarations bölümünde tanımlanmalıdır

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

Özyineleme (Recursion)

Uygulama1) Şart yapısının kullanımı CheckBox1 bileşeninin işaretlendiğinde ekranda Kutu işaretlendi mesajı veren kodları yazınız.

Karakter Değişkenlere İlişkin Komutlar

VB de Veri Türleri 1

Bilgisayar Programcılığı. Ögr. Gör. Cansu AYVAZ GÜVEN

BİLGİSAYAR PROGRAMLAMA DERSİ

INPUTBOX() ile Veri Girişi


ALGORİTMA VE PROGRAMLAMA I

De iflken = InputBox Görüntülenecek Metin Bafllık. InputBox tan gelecek cevap, bir de iflkene aktarılmalıdır. End Sub B R SAYI TUT

Diziler (Arrays) Çok Boyutlu Diziler

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

Durum Yönetimi. Olan sayfalar ekleyelim. BasitSayac.aspx

ALGORİTMA VE PROGRAMLAMA I

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

Ders 8: Metotlar. barisgokce.com

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI

PASCAL PROGRAMLAMA DİLİ YAPISI

DATA Deyimi. ii) DIMENSION NUM(5) DATA NUM / 1, 2, 3, 4, 5 / Bu durumda 5 elemanlı NUM dizisi, sırasıyla, 1'den 5'e kadar değerleri saklar.

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Görsel Programlama 1

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

Bölüm 6. Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler

İŞLEM SAYISI BELLİ OLAN DÖNGÜLER

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama

HSancak Nesne Tabanlı Programlama I Ders Notları

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

İNTERNET TABANLI PROGRAMLAMA

YZM 2105 Nesneye Yönelik Programlama

İnternet Programcılığı Dersi 2.Dönem Ders Notu

m=n şeklindeki matrislere kare matris adı verilir. şeklindeki matrislere ise sütun matrisi denir. şeklindeki A matrisi bir kare matristir.

Olimpiyat Soruları. sonuçları tekrar fonksiyonda yerine koyup çıkan tüm sonuçları toplayan program (iterasyon sayısı girilecek)

Diziler. Yukarıdaki bilgileri bilgisayar belleğinde saklamak için aşağıdaki gibi değişkenler tanımlanır ve değerler bu değişkenlere aktarılır :

Bilgisayar Programlama MATLAB

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-10 Diziler. Yrd. Doç. Dr. Ümit ATİLA

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Yukardaki gibi sonsuz döngülü programlara Ctrl+Break tuş takımı ile müdahale edilmesi gerekir, aksi halde program sonsuz döngüye girer.

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

Programlama Dilleri 1. Ders 4: Diziler

6. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

1. Her marka için 3 aylık satış toplamı nedir? (Tablodaki satır toplamları)

NESNEYE YÖNELİK PROGRAMLAMA

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Vbnet Vbne access bağ ba lant lan ı t s ı ı s, ekleme, güncelleme,,silme

Visual Basic. Dosya İşlemleri

Örnek...3 : Aşağıdaki ifadelerden hangileri bir dizinin genel terim i olabilir? Örnek...4 : Genel terimi w n. Örnek...1 : Örnek...5 : Genel terimi r n

Sınav Dağılım & IMKB Endeks

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Örnek...3 : Aşağıdaki ifadelerden hangileri bir dizinin genel terim i olabilir?

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

VISUAL BASIC DE İŞLETİM SİSTEMİ DENETİM KOMUTLARI VE FONKSİYONLARI

Bu gün dersimizde değişik web kontrollerinin kullanımını gösteren birkaç web sitesi hazırlayacağız. Önce Visual Studio 2005 i açalım.

Sunum İçeriği. Programlamaya Giriş

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Transkript:

Visual Basic Uygulamaları-4 Dİ Zİ LER (ARRAYS) ve Nesne Kü meleri Bellekte sürekli yer kaplayan aynı türden verilerin oluşturduğu kümeye dizi denir. Tanımdan da anlaşılacağı üzere bir dizinin dizi olabilmesi için; 1 Bellekte yer kaplaması 2 Aynı tür elemanlardan oluşmuş olması gerekir. Dizilerin her elemanı ayrı bir nesne gibi ele alınmalıdır. Dizi tanımlarken; o dizinin adını ve dizi içerisindeki elemanlara erişmek amacıyla onun kaçıncı eleman olduğunu belirten indisini ( index, subscript) yazmak gerekir. Visual Basic de diziler Boyut Aç anlamında, DIM komutu ile tanımlanırlar. Genelde dizilerin ilk elemanı 0. indisli elemanıdır. İçerisinde sayıları sakladığımız 5 elemanlı A dizisini aşağıdaki gibi gösterebiliriz: A( ) 4 2 9 10 1 0 1 2 3 4 A(4) ifadesi A Dizisinin 4 numaralı elemanı şeklinde okunabilir ve değeri bu örnek için 1 dır. A(2) ifadesi A dizisinin 2. indisli elemanı şeklinde okunabilir ve değeri bu örnek için 9 dur. Ve bu diziyi tanımlamak için VB dilinde Boyut aç A (4) anlamında DIM A(4) ifadesini kullanırız. Bu ifade ile bellekte birbiri ardına sıralanmış 5 adet sayısal türde değişken tanımlanmış olur. Değişken tanımlamada kullandığımız Dim deyimini dizi tanımlamada da kullanıyoruz. Dizi tanımlamak için DIM deyimi aşağıdaki şekilde; kullanılır. DIM Dizi_adı ( Dizinin eleman sayısı ) AS veri tipi

Visual Basic dilinde Dizinin başlangıç indisini bulmak için LBOUND, son indisini bulmak için de UBOUND deyimleri kullanılır. Bu deyimlerin kullanım şekilleri aşağıdaki gibidir; LBound ( dizi, [ boyut ] ) UBound ( dizi, [ boyut ] ) Örneğin; LBound(A) ifadesi A dizisinin ilk elemanını, UBound(A) ifadesi ise A dizisinin son elemanını ile verir. Dizi tanımlama şekilleri kullanılan programlama dillerine göre farklılık gösterse de temel mantık aynıdır. Yani dizinin adı, eleman sayısı (boyutu) ve tipi belirtilir. Visual Basic dilinde 10 elemanlı bir A dizisi farklı şekillerde tanımlanabilir; Dim A(9) Dim A (0 to 9) as integer 10 elemanlı variant türünde bir A dizisi. 10 elemanlı integer türünde bir A dizisi Ayrıca, Değişken tanımlamalarında olduğu gibi dizilerde de tanımlama sırasında ilk değerlerin verilmesi mümkündür. Örneğin aşağıdaki dizi tanımlamasında dizinin tüm değerleri tanımlama sırasında verilmektedir. Dim A() As Integer= {8, 9, 12, 4, 5, 7, 1, 0, 6, 11} Örnek 5.1. 8, 9, 12, 4, 5, 7, 1, 0, 6, 11 sayılarını A dizisine aktarıp ekranda gösteren programı yazınız. VB Dilinde Kodlanması (Visual Basic 2010 a göre); Dim A() As Integer= {8, 9, 12, 4, 5, 7, 1, 0, 6, 11} Dim i as Integer Console.WriteLine(" A dizisinin elemanları..:") For i = LBound(A) To UBound(A) For i= 0 to A.Length-1 Console.WriteLine(A(i)) Console.ReadKey() REDIM Deyimi: Dizinin eleman sayısı belli ise bu tip dizilere statik dizi denir ve Dim komutu ile tanımlanır. Eğer dizinin boyutu (eleman sayısı) programın her çalışmasında değişiyorsa bu tip dizilere dinamik dizi denir ve Dim komutu ile tanımlandıktan sonra ReDim komutu ile yeniden tanımlanırlar. Dizinin ne kadar büyüyeceğini bilemediğimiz durumlarda dinamik dizi tanımlaması kullanılır. Dizinin boyutunu ReDim komutu ile değiştirebiliriz fakat tipini değiştiremeyiz.

Bir dizinin boyutları değiştirilirken verileri korumakta kullandığınız Preserve anahtar sözcüğü kullanılır. Preserve anahtar sözcüğünün söz dizimi aşağıdaki gibidir. ReDim Preserve DiziAdı (Dim1Öğeler, Dim2Öğeler...) Aşağıdaki örnekler bir dinamik dizideki son boyutun büyüklüğünü dizide var olan verileri silmeden Preserve kullanarak nasıl artırabileceğinizi göstermektedir. Dim M ( ) As String M adlı bir dizinin üstte verildiği şekilde bildirimini daha önce yaptıysanız aşağıdakine benzer bir kod kullanarak diziyi yeniden boyutlandırıp veri eklemesi yapabilirsiniz. ReDim M ( 200 ) M( 200 ) = Ali Mutlu Aşağıdaki söz dizimini kullanarak M dizisinin büyüklüğünü 401 öğeye (0-400) genişletebilir ve var olan içeriğini koruyabilirsiniz. ReDim Preserve M (400) Örnek 5.5. Dışarıdan girilen N elemanlı bir dizinin tüm elemanlarını toplayan programı yazınız. Çözüm: Dizinin eleman sayısı belli olmadığı için (N değeri) dinamik dizidir ve ReDim komutu ile tanımlanır. VB Dilinde Kodlanması (Visual Basic 2010 a göre); Dim n, A() As Integer, toplam As Integer n = Val(InputBox("dizinin eleman sayısı")) ReDim A(n) toplam = 0 For i = 0 To n 1 'For i=lbound(a) To UBound(A) - 1 A(i) = Val(InputBox("dizinin elemanlarını giriniz")) toplam = toplam + A(i) Console.WriteLine("Dizi elemanlarının toplamı=" & toplam) Console.ReadKey() Örnek 5.6. N elemanlı bir A dizisini ters sırada B dizisine aktaran programı yazınız. Çözüm: Dizinin ters sırada aktarılması; baştan ve sondan karşılıklı gelen elemanlarının yerdeğiştirilmesi işlemidir. Yani dizinin 10. elemanı 1. elemanı ile, 9. elemanı 2. elemanı ile yerdeğiştirilecek ve oluşan yeni dizi, B dizisine aktarılacak. N elemanlı bir dizide bu işlemi B(I) = A( N+1 I ) şeklinde formülleştirebiliriz.

VB Dilinde Kodlanması (Visual Basic 2010); Sub Main() Dim A(), B(), N, i As Integer N = Val(InputBox(" N değerini giriniz : ")) ReDim A(N), B(N) Console.WriteLine(" A dizisi") For i = 1 To N A(i) = Val(InputBox("A dizisinin" & i & ".elemanı")) Console.Write(A(i) & " ") Console.WriteLine() Console.WriteLine(" B Dizisi") For i = 1 To N B(i) = A(N + 1 - i) Console.Write(B(i) & " ") Console.ReadKey() Programın ekran çıktısı: Örnek 5.7. n elemanlı bir dizinin elemanlarını Küçükten büyüğe doğru sıralayan programı yazınız (Visual Basic 2010). Sub Main() Dim A(), N, i As Integer N = Val(InputBox(" N değerini giriniz : ")) ReDim A(N) Console.WriteLine(" A dizisi") For i = 1 To N A(i) = Val(InputBox("A dizisinin" & i & ".elemanı")) Console.Write(A(i) & " ") Console.WriteLine() Console.WriteLine(" A Dizisinin Sıralı Hali ") Array.Sort(A) For i = 1 To N Console.Write(A(i) & " ") Console.ReadKey() Örnek 5.10. Bilgisayarın rasgele ürettiği 10 kişinin boy uzunluklarının (100 ile 200 cm arası) ortalamasını alan ve boy ortalamasına eşit, boy ortalamasından küçük ve büyük kişilerin sayısını veren programı yazınız.

Çözüm: (Visual Basic 2010 a göre) Sub Main() Dim SAY(10) As Integer Dim ortalama As Integer = 0 Dim toplam As Integer = 0 Dim ORTA As Integer = 0 Dim Bboy, Kboy As Integer For i = 1 To 10 SAY(i) = CInt(100 + Rnd() * 100) Console.WriteLine(SAY(i)) toplam = toplam + SAY(i) Console.WriteLine() ORTALAMA = toplam / 10 Console.WriteLine("BOY ORTALAMALARI=" & ortalama) For i = 1 To 10 If SAY(i) < ORTALAMA Then KBOY = KBOY + 1 ElseIf SAY(i) > ORTALAMA Then BBOY = BBOY + 1 ElseIf SAY(i) = ORTALAMA Then ORTA = ORTA + 1 End If Console.WriteLine("Ortalamadan Büyük Olan Boyların Sayısı:" & Bboy) Console.WriteLine("Ortalamadan Küçük Olan Boyların Sayısı:" & Kboy) Console.WriteLine("Ortalamaya Eşit Olan Boyların Sayısı:" & ORTA) Length, Rank, GetUpperBound, GetLength, BinarySearch, Sort Komutları Diziler array sınıfında tanımlanır, böylece array sınıfının tüm özellikleri diziler üzerinde kullanılabilir. Array sınıfının metotlarını kullanarak diziler üzerinde arama,sıralama gibi işlemleri gerçekleştirebiliriz. Bunları görmek için dizi adından sonra noktaya. basarak fonksiyonun özellikleri penceresine ulaşabilirsiniz. Length: Dizinin eleman sayısını verir. Son elemana ulaşmak için DiziAdi.length-1 yapısı kullanılır. Rank : Dizinin kaç boyutlu olduğunu verir. GetUpperBound : Dizinin en büyük indeksli elemanının indeks bilgisini verir. GetLength : Dizinin belirtilen boyutundaki eleman sayısını verir. BinarySearch : Dizide bir elemanı aramak için bu metodu kullanabiliriz. A dizisinde kemal elemanını aramak için; Array.BinarySearch(A, kemal ) Sort : Diziyi sıralamak için bu metodu kullanırız. Örneğin A dizisini sıralamak için; Array.Sort(A) yazılır.

İ Kİ BOYUTLU Dİ Zİ LER (MATRİ SLER) Bellekte ard arda sıralanmış satır ve sütunlardan oluşan yapıya iki boyutlu dizi ya da matris adı verilir. İki boyutlu dizileri aşağıdaki şekilde gösteririz. - 3 satır ve 5 sütundan oluşan bir A matrisini DIM A(3,5) deyimi ile tanımlarız Örnek 5.12. Aşağıdaki A matrisini oluşturup ekranda gösteren programı yazınız. 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Çözüm: Daha önce de belirttiğimiz gibi matrislerle işlem yaparken ya satır içinde sütunlarda dolaşılır ya da sütun içinde satırlarda dolaşılır. Bu örneğimizde I satırları, J sütunları gösterirse, matris elemanlarının alacağı değerleri inceleyelim; Dikkat edersek A(i,j) = j değerini almaktadır. VB Dilinde Kodlanması (Visual Basic 2010 a göre) Sub Main() Dim A(3, 5) As Integer Dim i As Integer Console.WriteLine(" A matrisinin elemanları..:") For i = 1 To 3 For j = 1 To 5 A(i, j) = j Console.Write(A(i, j) & " ") Next j Console.WriteLine() Console.ReadKey() Programın ekran çıktısı: I J A(I,J) 1 1, 2, 3, 4, 5 1, 2, 3, 4, 5 2 1, 2, 3, 4, 5 1, 2, 3, 4, 5 3 1, 2, 3, 4, 5 1, 2, 3, 4, 5

Örnek 5.15. Bir matrisin satırları ile sütunlarını yer değiştiren programı yazınız. { Matematikte bu işlem transpose olarak adlandırılır ve A matrisinin transposesi A T ile gösterilir. } Çözüm: A(4,5) şeklindeki bir matrisin transposesi B(5,4) şeklinde görülür. VB Dilinde Kodlanması (Visual Basic 6.0); Private Sub Command1_Click() Cls Dim A(4, 5) As Integer Dim B(5, 4) As Integer For I = 1 To 4 For J = 1 To 5 A(I, J) = Val (InputBox("A Matrisinin elemanları")) B(J, I) = A(I, J) Bu satırda A matrisinin transposesi alınıyor Next J Next I For I = 1 To 5 For J = 1 To 4 Print B(I, J); Next J Print Next I Örnek 5.20. A ve B matrislerinin çarpımlarını C matrisine atan ve elemanlarını ekranda gösteren programı yazınız. { A 3*2 * B 2*3 = C 3*3 } Çözüm (Visual Basic 6.0): İki matrisin birbiri ile çarpılabilmesi için birincinin sütun sayısı ikincinin satır sayısına eşit olmalıdır. Eşit değilse çarpım belirsizdir. Eğer A matrisi m*n ve B matrisi n*p elemanlı ise çarpım matris C, m*p boyutunda olur. Matrislerin çarpımı aşağıdaki şekilde gerçekleşir.

VB Dilinde Kodlanması; Private Sub Command1_Click() Cls Dim A(3,3) As Integer, B(3, 3) As Integer, C(3, 3) As Integer For i = 1 To 3 For j = 1 To 2 A(i, j) = Val(InputBox("A matrisi")) Print A(i, j); Next j Print For i = 1 To 2 For j = 1 To 3 B(i, j) = Val(InputBox("B Matrisi")) Print B(i, j); Next j Print Print For i = 1 To 3 For j = 1 To 3 C(i, j) = 0 For k = 1 To 3 C(i, j) = C(i, j) + A(i, k) * B(k, j) Next k Next j For i = 1 To 3 For j = 1 To 3 Print C(i, j); Next j Print

NOT: Birinci For - Next döngüsü ile A(3,2) matrisinin elemanları girilip, ekranda gösterilirken, ikinci For Next döngüsü ile B(2,3) matrisinin elemanları girilip ekranda gösteriliyor. İç içe For Next döngüsü ile A matrisi ile B matrisinin çarpılmasından C(3,3) matrisi elde edilirken En son ki iç içe For Next döngüsü ile de Çarpım matrisi { C (3,3) } ekrana yazdırılıyor. Örnek 5.24. Bilgisayarın rasgele ürettiği 10 öğrencinin numarası ile vize ve final notlarını dizilerde tutarak; En yüksek ve en düşük not ortalaması ile sınıfın not ortalamasını hesaplayan programı yazınız. { vize notunun %30 u, final notunun ise %70 i alınacaktır} Çözüm: (Visual Basic 2010 a göre) Sub Main() Randomize() Dim nt(10, 2) As Integer, nu(10) As Integer, ort(10) As Integer Dim OrtSnf, toplam As Single, i, Enb, Enk As Integer Console.WriteLine("Öğrenci no " & "Vize Notu " & "Final Notu " & " Ortalaması ") For i = 1 To 10 nu(i) = i 'Val(InputBox("öğrencinin numarası")) nt(i, 0) = CInt(Rnd() * 100) ' Val(InputBox("öğrencinin vize notu")) nt(i, 1) = CInt(Rnd() * 100) ' Val(InputBox("öğrencinin final notu")) ort(i) = nt(i, 0) * 0.3 + nt(i, 1) * 0.7 Console.WriteLine(nu(i) & Space(11) & nt(i, 0) & Space(11) & nt(i, 1) & Space(11) & ort(i)) Console.WriteLine() Enb = ort(1) : enk = ort(1) : toplam = 0 For i = 1 To 10 If Enb < ort(i) Then Enb = ort(i) End If If Enk > ort(i) Then Enk = ort(i) End If toplam = toplam + ort(i) OrtSnf = toplam / 10 Console.WriteLine("en yüksek notu alan öğrenci=" & Enb) Console.WriteLine("en düşük notu alan öğrenci=" & Enk) Console.WriteLine("sınıf ortalaması =" & OrtSnf) Programın ekran çıktısı:

ÇOK BOYUTLU Dİ Zİ LER Günlük yaşamda karşılaştığımız problemleri çözmek için sadece tek ve çift boyutlu dizileri kullanmak yetersiz kalabilir. Bu durumda 3,4,5,., n boyutlu dizler tanımlanabilir. Çoğu durumda çok boyutlu dizi kullanımında üç boyutlu diziler yaygın olarak kullanılmaktadır. Çok boyutlu dizilerin tanımında aşağıdaki yapı kullanılır; DIM Dizi_adı ( Satır sayısı, Sütun Sayısı, Matris sayısı ) As Veri Türü Örnek olarak 3 boyutlu A dizisini DIM A(4, 5, 3) şeklinde tanımlarız. Bu ifade 4 satır, 5 sütunu olan 3 adet iki boyutlu matris için yer aç şeklinde okunur. A dizisi 4*5*3 (=60) elemana sahiptir. NOT: Üç boyutlu dizi, birden çok iki boyutlu matrisin ardı ardına gelerek oluşturduğu yapıdır.. Nesne Kü meleri Form üzerindeki tüm nesneleri içeren kümeye denetim kümesi adı verilir ve Controls olarak isimlendirilir. Form üzerindeki nesnelere toplu işlem yapmak gerektiğinde for each döngü yapısı kullanılır. For Each degisken In Controls İşlemler Next degisken Bir kümenin bir ya da daha fazla üyesinin üzerinde diğerlerinden farklı bir işlem yapmak istediğinizde o nesnenin Tag özelliğini kullanabilirsiniz. Örnek_ Nesne 1: Şekildeki gibi bir grup nesneyi butona bastığımızda sağa doğru hareket ettiren kodu yazınız.

Çözüm: Tasarım aşamasında sağa doğru gitmeyecek olan Buton nesnesinin Tag özelliği Buton yapılmıştır. Visual Basic Kodu: Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click For Each a In Controls If a.tag <> "Buton" Then a.left = a.left + 20 '20 twip sağa taşır End If Next a Örnek_ Nesne 2: Butona bastıkça ay nesnesi sola giderken diğer nesneleri sağa kaydıran program Çözüm: Tasarım aşamasında sağa doğru gidecek olan nesnelerin Tag özelliği b, sola gidecek olanlar ay yapılmıştır. For Each a In Controls If a.tag = "b" Then a.left = a.left + 20 ElseIf a.tag = "ay" Then a.left = a.left - 20 End If Next a Not: 1 twip = 1/20 point veya 20 twips = 1 point 1 twip = 1/567 centimeter veya 567 twips = 1 centimeter 1 twip = 1/1440 inch veya 1440 twips = 1 inch TIMER NESNESİ Timer nesnesi belirli zaman aralıklarında bazı olayların tekrarlanması (örneğin animasyonlar gibi) veya belli bir bekleme zamanı için kullanılır. Zaman dolunca Enabled özelliği False yapılarak, Timer kontrolü devre dışı bırakılır. İki önemli özelliği vardır;

Enabled Interval Timer ın çalışmasını ON/OFF yapar. Eğer True ise Timer, False değerini alıncaya kadar çalışacaktır. Timer kontrolünün milisaniye cinsinden zaman periyodu (1000 milisaniye = 1 saniye). Not: Timer nesnesi form üzerinde gözükmez Örnek: Kalp atışını ve sayısal saati gösteren bir program Çözüm: Tasarımda kullanılan nesneler: İki Timer, bir Label VB Kodu: Public Class Form1 Dim a As Double Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.Timer1.Enabled = True Me.Timer2.Enabled = True Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick Me.Label1.Text = TimeOfDay Me.PictureBox1.Width = 100 Me.PictureBox1.Height = 100 Me.Timer2.Enabled = True Private Sub Timer2_Tick(sender As System.Object, e As System.EventArgs) Handles Timer2.Tick Me.PictureBox1.Width = 300 Me.PictureBox1.Height = 300 Me.Timer1.Enabled = True End Class