TBT110 TEMEL BİLGİSAYAR BİLİMLERİ DERSİ

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "TBT110 TEMEL BİLGİSAYAR BİLİMLERİ DERSİ"

Transkript

1 T.C. PAMUKKALE ÜNİVERSİTESİ İNŞAAT MÜHENDİSLİĞİ BÖLÜMÜ TBT110 TEMEL BİLGİSAYAR BİLİMLERİ DERSİ VISUAL BASIC DERS NOTLARI Yrd. Doç. Dr. M. Tamer AYVAZ Bu ders notlarının her hakkı Sakarya Üniversitesi Endüstri Mühendisliği Bölümü öğretim üyesi Yrd. Doç. Dr. Gültekin ÇAĞIL a aittir. Bu ders kapsamında ilgili hocanın izni doğrultusunda kullanılmaktadır. Denizli 2010

2 BÖLÜM 1 1-1

3 Bilgisayar Programlama Programlama nedir? Bilgisayar; Yazılım ve Donanım olarak temel anlamda ikiye ayrılır. Ekran, disk, klavye, ram vbg donanım birimleri bu dersin kapsamı dışındadır. Ne kadar iyi donanıma sahip olursanız olun, yazılım olmadan bilgisayar bir anlam ifade etmeyecektir. Windows, Linux gibi herhangibir işletim sistemi, Word gibi bir kelime işlem veya Excel gibi bir hesap tablosu programı, bu dersin konusu olan Visual Basic programlama dili yazılıma verilebilecek örneklerdendir. Yazılım; "bilgisayarın donanım kısmına yaşam veren komutlardır" [1] veya komutları da içeren satırlardır şeklinde tanımlanabilir. Burada vurgulanan; eğer bilgisayarda bir iş yapacaksak, onu gerçekleştirmek için program yazmamız gerektiğidir. Örneğin, derslerimizin kayıtlarını ve notlarımızı ya da müşterilerimizin kayıtlarını tutmak istiyorsak bir programa gereksinimimiz vardır. Bunu Microsoft Excel gibi bir program aracılığıyla da yapabilirsiniz. Ancak program yazabilmek, bu işler için özel bir çözüm ya da uygulama geliştirmek anlamına gelir. İşte bu nedenle da yazılım yerine daha çok uygulama geliştirme (development) terimi kullanılır. Program, öncelikle bir işletim sistemi ya da platform için yazılır. Örneğin Windows XP için yazılan bir program Linux işletim sisteminde çalışmayacaktır. Platformun ardından Visual Basic ya da C++ gibi programın yazılacağı dil seçilir. Bu diller, bizim programımızı yazmamızı sağlarlar. Bizim anlaşılabilir şekilde program geliştirmemizi ve geliştirdiğimiz programı bilgisayarın doğrudan çalıştırabileceği makine diline çevirirler. İşte, kabaca bu sürece programlama denir [1]. Program nasıl yazılır? Konunun daha iyi anlaşılması için bazı terimlerin ve ifadelerin anlaşılması gerekmektedir. Konu ile mesleğimiz gereği program ve programcılık dışında çok detaylı bilgi sahibi olmadığımızdan (olmamamız gerektiğinden) dolayı, konunun daha iyi anlaşılması için bu terimleri daha iyi anlatan bireve bölüm (2 numaralı kaynak) aşağıya alınmıştır. Bilgisayarlar işlemlerin kendi anlayacağı dilde (makine dili) açıkça yazılmasını isterler. Ancak bu işlemlerin makine dilinde bir programcı tarafından yapılması yerine programlamanın yapısal biçimde bir dil aracılığıyla yapılmasını ve daha sonra çevrilerek bilgisayara anlatılması işlemini programlama dilleri üstlenirler. Bu çevirme işlemine derleme (compile) ya da yorumlama (interpriting) denir. Programlama; kullanıcıların isteklerini karşılayacak muhasebe, stok, oyun, işletim sistemi gibi programları oluşturacak alt yapıyı (kodları) hazırlamaktır. Bu alt yapıyı oluşturan kişilere programcı denir. Bir programın çalışması demek, Mikroişlemciye daha önceden hazırlanmış bir kod yığınının gönderilmesi demektir. Bu kodlar, işlemcinin anlayacağı ASM dilinde (makine dilinde) 1-2

4 yazılmış kısa kodlardır, ASM en hızlı programlama dili olmakla beraber, kullanılması en zor programlama dilidir. ASM dilinde kullanılan tüm komutlar sadece işlemciye ve donanıma hitap etmektedir ve programı yazan kişinin tüm donanımı bilmesi gerekmektedir. Örnek vermek gerekirse A markalı bir ekran kartı için yazılmış bir program B markaları bir ekran kartında çalışmaz, çünkü donanımsal olarak farklılıklar vardır. ASM dili için kısaca bilgisayarın anadili diyebiliriz, çünkü CPU (Merkezi İşlem Birimi İşlemci) sadece ASM kodlarını anlayacak bir yapıya sahiptir. Bilgisayar işlemcilerinin ilk çıktığı günlerde sadece ASM dili olduğu için, program yazmak gerçekten çok zordu. Her değişen donanım ya da işlemci için tekrar program yazılması gerekiyordu, donanımsal zorluklar dışında yazılımsal zorluklarda vardı, Ekrana sadece A yazmak için bile bol miktarda kod yazılıyordu. Bu tip sorunları kaldırmak için kullanılması kolay alt seviye programlama dilleri oluşturuldu (C, Basic, Pascal, Cobol v.s.). Alt Seviye programlama dilleri ile yazılan kodlar işlemci tarafından anlaşılamayan kodlardır, bu kodlar Compiler (Derleyici) tarafından işlenerek CPU nun anlayacağı kodlara (ASM) çevrilir. Örnek: ASM ve BASIC Dilinde yazılmış Ekrana A harfi yazan program ASM (Üst Seviye Dil) : 1. ORG MOV AX,CS 3. MOV DS,AX 4. MOV ES,AX 5. MOV AX, B800 (Renkli Ekran Kartının Bellek Adresi (Her Ekran Kartında Değişebilir)) 6. MOV DS,AX 7. MOV SI,0 ( A Harfinin Belleğe Yerleşeceği Alan ) 8. MOV AL, 41 (A Harfinin ASCII Kodu Hex olarak) 9. MOV DS: [SI],AL ( Ekrana A Harfinin basılma anı) BASIC (Alt Seviye Dil): 1. PRINT A Örnekte görüldüğü gibi Alt Seviye bir dilde ekrana A yazmak için tek bir komut yeterlidir, Üst seviye dilde ise çok daha fazla kod yazılması gerekir. Alt Seviye Dillerde yazılan programların 1-3

5 kodları her ne kadar kısa görünsene derlenip çalışan duruma getirildiklerinde boyutları, Üst Seviye Dilde yazılan programdan daha büyük olurlar. Sebep ise ASM dili ile yazılan programda hedefe direk (çok hızlı) ulaşılırken, Alt Seviye dilde derleme esnasında kod içine donanım ve işlemciyi tespit eden v.s. kodların eklenmesidir. Bu yüzden alt seviyede yazılan programlar ASM dilinde yazılan programdan çok daha yavaş çalışırlar. Alt seviye programla dilleri, yukarıdaki örneklerden de, anlaşıldığı gibi sadece bir çeviri aracıdır, tek programlama dili ASM dir. Fakat ASM diline C gibi yakın olan programlama dilleri de bazı kaynaklarda üst seviye dil olarak geçer. Programlama dillerinin sınıflandırılması En temel anlamda programlama dilleri; genel ve özel amaçlı programlama dilleri olarak ikiye ayrılır; 1 Özel Amaçlı Programlama Dilleri: Bu tür programlama dilleri ile aklınıza gelen her şeyi programlayamazsınız, bu diller sadece üretildikleri amaca uygun işler (programlar) yazmak için kullanılabilirler. Bilgisayar ortamında çizim işlemleri için geliştirilmiş olan Autocad programı genel amaçlı bir programlama dili ile (örneğin C veya Visual Basic) yazılmıştır, ama Autocad programına uygun bir işlem yaptırılacaksa bu işin bu dile özgü dil ile yazılması gerekir, dolayısıyla bu dil ile örneğin bilgisayarınızdaki müziklerin çalınabilmesi programını yazamazsınız, ama yarıçapı verilen bir daireyi otomatik olarak çizdirilmesine uygun bir program yazabilirsiniz. CNC (Sayısal Kontrollü Tezgah) tezgahlarının yapacağı işlerin programları da bu işe uygun programlar ile yazılır, çünkü bu tür cihazlar ile delik delme, çapak alma gibi özel işler yapılabilir. Yine bilgisayardaki yazma işlemleri (kelime işlem) için kullandığımız Word programına yaptırılabilecek işlemler de yine bu dil için geliştirilmiş programlama dili (VBA) ile yazılabilir. Çünkü Word programı sadece yazma işlemleri (rapor, dilekçe, kitap vbg yazma işlemleri) için geliştirilmiş olan bir paket programdır. 2 Genel Amaçlı Programlama Dilleri: İsminden de anlaşılacağı gibi bu tip programlama dilleri ile her tür program yazılabilir. Çizim programı, muhasebe programı, bilgisayarınızdaki müzikleri çalan program, ikinci dereceden bir denklemin köklerini bulan program genel amaçlı programlama dilleri ile yazılabilecek programlara örnek olarak verilebilir. Bu tür dillerin en yaygın olarak kullanılanları; C ( si olarak okunur), C# ( si şarp olarak okunur), Java, Visual Basic, Fortran, Pascal vbg. olarak verilebilir. Bu derste Genel Amaçlı Programlama Dillerinden Visual Basic Programlama Dili anlatılacak ve bu dil ile nasıl program yazılacağı anlatılmaya çalışılacaktır. 1-4

6 Programlama Dilleri Arasındaki Farklar Programlama dilleri aynen konuştuğumuz dile benzer. C, Visual Basic veya Fortran bilgisayar programlama dilleri arasındaki fark, Türkçe, İngilizce, Arapça, Hintçe konuşma dilleri arasındaki farka benzer. Konuşma dilleri arasındaki farkları şu şekilde açıklayabiliriz; her dilin kendine has özellikleri vardır. Bazı diller bazı özel durumları açıklayabilmek için kendilerini geliştirmişlerdir, dolayısıyla bu diller o olayları daha kolay anlatırlar. Örneğin Afrika dillerinde av, hayvan, tarım gibi o dillerin geliştiği yerlere özgü ifade, atasözü, deyim gibi konuşma diline has özellikler daha fazla gelişmiştir. Aynı şekilde Avrupa dilleri, teknoloji türevi söz, atasözü ve deyimlere daha fazla gelişmiştir ve bu diller bu tür olayları daha kolay ifade edebilirler. Bu, diğer dillerin gelişmemiş taraflarını açıklayamaz anlamında anlaşılmamalıdır. Açıklayabilir, ama aynı işlemi daha fazla cümle kurarak yapabilir. Halbuki o dilin özellikle kendi alanına has durumları anlatması daha kolay ve daha kısa olabilir, çünkü sözkonusu dil avantajlı olduğu olaylara göre kendisini geliştirmiştir. Atasözlerinin anlatılmak istenen durumu daha etkili anlatmayı başarabildiği, daha fazla cümle kurmaya gerek bırakmadığı aşikardır. Bu durumu şu şekilde örneklendirebiliriz; bildiğiniz gibi millet olarak biz (Türkler) misafirperverlikleri ile tanınırız, dolayısıyla konuşma dilimizde Tanrı misafiri denilen bir deyim vardır, bu deyim anlatmak istediğini fazla cümleye gerek bırakmadan anlatabilir. Bu deyim Türkçe ye has bir deyimdir, aynı anlamı bir başka dilde, örneğin İngilizce de birkaç cümle veya paragraf ile açıklayabilirsiniz. Aynı durumu programlama dilleri açısından şu şekilde düşünebiliriz: her programlama dilinin daha başarılı olduğu, daha kolay yapabildiği, kabiliyetli olduğu taraflar vardır. Örneğin Fortran programlama dili matematiksel işlemleri daha kolay yapabilmektedir, dolayısıyla matematik yoğun (örneğin matris işlemleri) işlemleri Fortran çok daha kolay yapabilir. C programlama dili hazır kütüphaneleri ile daha öne çıkmaktadır, dolayısıyla bir diğer programlama dilinin sayfalarla yapabildiği aynı işi, C dili hazır programları ile çok daha az satır ile gerçekleştirebilir. C dilinin bu özelliğini, konuşma dilindeki atasözlerine benzetebiliriz. Konu ile ilgili son örneğimizi Visual Basic dilinden verelim. Bu dil öğrenmesi ve öğretilmesi diğer dillere göre daha kolay olan bir dildir, dolayısıyla bu anlamda İngilizce konuşma diline benzetilebilir. Hangi Programlama Dilini Öğrenmeliyiz? Bu soruya, ne olmak istediğinize karar vererek cevap vermeniz daha doğru olur. Çünkü bilgi ve öğrenmek güzeldir, ama insanın kısa ömründe her şeyi öğrenmesi mümkün değildir, özellikle daha sonra kullanmayacağı bir şeyi, sadece herkes öğreniyor, çok işe yarıyormuş diyerek öğrenmesi tamamen zaman kaybıdır. Bilgisayar programlama, bilgisayar ile ilgili yapılacak işlerin en zor olanlarından birisidir. Bu iş hazır bir programı (Word, Excel vbg. hazır bir programı) kullanmaya benzemez, onun yerine bilgisayara derdinizi anlatma işlemidir ki, bir anlamda bilgisayara problemi öğretmek, onu o işi yapabilir hale getirmek demektir. Yani karşınızda elektrik ile çalışan ve her şeyi yerli yerinde noksansız isteyen makineye 1-5

7 (bilgisayara) bir şey öğretmek demektir, bu makinenin herhangi bir esnekliği yoktur, virgül koymanız gereken yerde bunu unuttuğunuzda orada onu düzelmenizi bekleyen ve bir adım daha ileriye gitmeyen bir makine ile muhatap olduğunuzu bilmeniz gerekir. Dolayısıyla kişi, zeki bile olsa, programlamaya karşı merakı ve kabiliyeti yoksa bilgisayar programcısı olamaz. Bilgisayar programcılığı kendi başına bir meslektir, aynı zamanda özellikle mühendislerin kendi mesleklerini yürütebilmeleri için bilmelerinde faydası olacak bir artı özelliktir. Peki her mühendis mutlaka herhangi bir programlama dilini bilmelimidir?. Buna şu şekilde cevap verebiliriz, mühendis olarak iki tür yerde çalışabilirsiniz; Her şeyin yerli yerinde olduğu, herkesin yetki ve sorumluluklarının belli, kurumsal bir işletmede (örneğin Toyota, Vestel vbg) çalışabilir veya her işi herkesin yaptığı, yetki ve sorumluluk karmaşasının olduğu ve ülkemiz sanayisinin büyük çoğunluğunun içinde bulunduğu bir işletmede. Çalışanların ne ile sorumlu olduğunun belli olduğu birinci tür işletmelerde, çok büyük bir ihtimalle Bilgi İşlem Departmaları da vardır. Dolayısıyla istediğiniz bir programı mühendis olarak (gerekirse) sistem analistliğini yaparak Bilgi İşlem Departmanından istersiniz. Onlarda gerekirse söz konusu programı yazarak veya piyasadan satın alarak problemi giderirler. Bu şekildeki çalışan bir mühendisin genel anlamda (genel mantığı ile, dil ayrımı olmadan, o veya şu programlama dili demeden) programcılığı bilmesi bu tür işlerini görebilmesi açısından yeterlidir. Belki bazı küçük çaplı programları yazabilmesi için temel anlamda bir programlama dilini bilmesi iyi olacaktır. Visual Basic yukarıda anlatmaya çalıştığımız mühendisin (çalışanın) işini fazlası ile görecektir. Visual Basic daha önce de bahsedildiği gibi genel amaçlı programlama dillerinden birisidir, yani bu dil ile programcılık anlamında her şeyi bilgisayara programlayabilirsiniz. Öğrenmesi diğer dillere göre (özellikle C diline göre) çok daha kolaydır, ama (yine C diline göre) biraz yavaş çalışmaktadır. Herkesin her işi yapabildiği bir işletmede çalışıyorsanız, her şeyi bilmeniz patronun gözünden düşmemeniz açısından iyi olacaktır, aynı zamanda programcılıktan da anlamanız, gerekirse yazdırılması (veya satın alınması) gereken programın sizin tarafınızdan yazılabilmesi demektir ki, işte böyle durumlarda en az bir tane programlama dilini iyi derecede (program yazabilecek derecede) bilmeniz sizin açınızdan iyi olacaktır. Bilgisayar mühendisliği dışındaki mühendislerden özellikle Endüstri mühendisleri, kendi alanları dışında bilgisayar programcılığı da yapabilmektedirler. Bu şekilde çalışmayı düşünenlerin özellikle C dilini bilmelerinin ortaya koyacakları ürünün daha kolay ve hızlı çalışması açısından avantajlı olduğunu, C# gibi şu anda popular olan bir dili iyi derecede bilmenin de işlerini kolaylaştıracağını unutmamaları gerekir. Bu konuda son olarak en temel anlamda Visual Basic ile C dilini kıyaslamak gerekirse şunu söyleyebiliriz; Visual Basic öğrenmesi C diline göre daha kolaydır, C dili ile daha fazla ayrıntılara inilebilir, öğrenmesi çok daha zordur, Visual Basic diline göre, makine diline daha yakın olduğu için daha hızlı çalışır. Yapılan bir araştırma mühendislerin iş ortamında en çok 1-6

8 Excel programını kullandıklarını göstermiştir. Visual Basic, Excel programının makro programlama dilidir, yani Visual Basic bilerek hem kendi başına bir programlama dilini öğrenmiş hem de Excel ortamında program yazarak Excel i daha fonksiyonel kullanmış olursunuz. Zamanımızın ve Geleceğin Mesleği Olarak Programcılık Geleceğin Meslekleri anahtar cümlesi ile internette arama yaptığınızda sonuçlardan büyük bir kısmının bilgisayar programcılığı, bilişim türü meslekler olduğunu göreceksiniz. Bilgisayar programcılığını; zeki, akıllı ve birçok yeteneği olan kişilerin bile bu konuda isteği merakı ve kabiliyeti yoksa başaramayacağını daha önce söylemiştik. Bugün batılı toplumlarda en fazla ihtiyaç duyulan iş kollardan birisi bilişim sektörüdür. Almanya, Kanada, Avustralya gibi gelişmiş ülkeler bu kabiliyete sahip olan kişileri vatandaş olarak kabul etmektedir. Bu yeteneğe sahip olanlar arayan eleman yerine aranan eleman olmaktadırlar. Çalışma Soruları 1. Makinelerin, örneğin bir otomobil veya bir saatin nasıl çalıştığını merak eder misiniz?, bunun için bir saatin içini açıp karıştırır mısınız?. Bu tür özelliğe sahip bir kişi ile bilgisayar programcılığı arasında sizce bir ortak yan var mıdır?, açıklamaya çalışınız. 2. C, Visual Basic, C# isimlerini daha önce duydunuz mu?, yapabiliyorsanız bu ifadeleri açıklayabilir misiniz? 3. Word programı ile Bilgisayar Programcılığını kısaca karşılaştırın, sizce aralarındaki farklar nelerdir? 4. İleride ne olacağınıza karar verdiniz mi?, gelecekte çalışmak istediğiniz meslekte bilgisayar ve bilgisayar programcılığının önemini ve ağırlığını anlatmaya çalışınız. Kaynaklar [1] [2] 1-7

9 BÖLÜM 2 2-1

10 Visual Basic Programlama Diline Giriş Visual Studio Ürünleri Microsoft firmasının ürünü olan Visual Studio, aşağıdaki paketlerden oluşmaktadır. İlk iki paket ücretlidir, üçüncü paket ilk iki pakete göre bazı kısıtlamalara sahiptir fakat kayıt - register- olmak şartıyla ücretsiz olarak indirilip kullanılabilmektedir (bir MSN hesabına sahip iseniz, msn kullanıcı ismi ve şifreniz ile Visual Studio Express Edition sürümüne kayıt olabilirsiniz, aksi halde bu ürünü kısıtlı bir sürede kullanabilirsiniz). Not1: Ücretsiz olarak indirilip kurulabildiğinden, bundan sonraki anlatımlar Visual Basic Express Edition esas alınarak yapılacaktır. Not2: Express Editon ile oluşturulan programlar Professional ve Standart Edition sürümlerinde problemsiz çalışabilmektedir. Not3: Şu anda Visual Studio 2008 sürümü kullanımdadır. Anlatacaklarımız açısından 2005 sürümü ile 2008 sürümü arasında herhangi bir fark bulunmamaktadır. Bundan sonra anlatılacaklar 2005 sürümü üzerinde yapılacaktır fakat anlatılanların hepsi 2008 sürümünde de problemsiz kullanılabilir. Visual Studio 2005 Professional Edition Visual Studio 2005 Standard Edition Visual Studio 2005 Express Edition: Visual Studio 2005 Express ürünleri, öğrencilerin, hobi olarak bu işi yapanların ve sektöre yeni girenlerin Microsoft.NET Framework üzerinde programlamayı öğrenebilmeleri için geliştirilmiştir. Express Edition, Windows programları ve dinamik web siteleri yapabilmek için, diğer Visual Studio ürünlerine göre kullanımı kolay olan (kısıtlı) araçları üzerinde bulundurmaktadır. Web ortamı Visual Web Developer 2005 Express Edition: Bu sürüm, yalnızca web uygulamaları üzerine yoğunlaşmış olup Asp.NET ile birlikte Visual Basic, C#, veya J# dillerinden birini kullanabilirsiniz. Veritabanı SQL Server 2005 Express Edition: Bu sürüm ile, başlangıç düzeyinde veritabanı uygulamaları geliştirebilirsiniz. Windows ortamı: Aşağıdaki programlama dillerinden herbiri, windows form uygulamaları (Windows ortamında çalışacak programlar) geliştirmek için kullanılabilirler. Visual Basic 2005 Express Edition Visual C# 2005 Express Edition Visual C Express Edition Visual J# 2005 Express Edition (Java Programlama Dili) 2-2

11 .NET Framework Nedir? Grafik, Visual Basic 2005 for Dummies (2006) kitabından alınmıştır..net framework açıklamaları, ve adresinden alınmıştır. Bir çok uygulama geliştirme dili ve bu dillerle yazılmış uygulamaları çalıştırmak için ise farklı platformlar vardır..net Framework, windows tabanlı uygulamalar geliştirebilmek için farklı programlama dillerinin birlikte çalışabileceği ortak bir geliştirme ortamıdır. Bu ortam hem yazılımları geliştirmek hem de çalıştırmak için gereklidir..net Framework bileşen yönelimli uygulamaların geliştirilmesini ve yürütülmesini destekleyen bir ortam tanımlamaktadır. Bu sayede; farklı programlama dilleri, farklı işletim sistemleri ile çalışabilme özelliğine sahiptir..net Framework aşağıdaki bileşenlerden oluşur: The Common Language Runtime (CLR), Ortak Dil Çalışma Zamanı: Uygulamaların çalışabilmesi ve yönetilmesine yardımcı olan, dilden bağımsız bir yazılım geliştirme ve çalışma ortamıdır. Programların çalışmasını idare eden, programların taşınabilirliğini sağlayan, aynı zamanda diğer avantajlarının dışında karışık dilde programlamayı destekleyen ve güvenliği sağlayan parçadır. The Framework Class Libraries (FCL), Framework sınıf kütüphaneleri: Framework çatısı altındaki dillerin ortak kullanabilecekleri kütüphaneleri barındırır..net Framework Özellikleri Standart ağ protokollerine ve standartlarına destek: TCP/IP, SOAP, XML, HTTP gibi standart internet protokolleri ve standartlarına destek verir. Farklı programlama dillerine destek: Programcılara istedikleri dilde geliştirme özgürlüğü sunan.net bünyesinde bir çok programlama dilini barındırır. Farklı dillerde geliştirilen programlama kütüphanelerine destek:.net Framework, farklı dillerde oluşturulmuş programlama dillerinde oluşturulmuş program kütüphanelerine destek verir. Kütüphaneler uygulama geliştirmeyi kolaylaştıran bir kere yazılmış bir program parçasını tekrar tekrar yazmaktan kurtaran yapılardır. Farklı platformlara destek:.net Framework bütün windows platformları için mevcuttur. Farklı bilgi işlem platformlarından insanları, sistemleri ve cihazları birbirine bağlar. Meselâ, Windows XP gibi bir masaüstü platformunu kullanan insanlar veya Windows CE kullanan gezgin bir platformu kullanan insanlar Windows 2003 Server gibi bir sunucu sistemine bağlanabilir. Visual Basic (VB) 2005 Express Edition (VBEE) Visual Basic 2005 Express Edition bir programlama arabirimidir. Kullanıcılar için arayüz geliştirme, kod yazma, yazılan kodun hatalarını ayıklama, derleme vb. fonksiyonlarıyla yazılımcıların çözüm geliştirmelerini sağlar. Visual Basic programlama dilinin en son sürümü olan Visual Studio 2005 üzerinde çalışır (yukarıda da değinildiği gibi şu anda 2008 sürümü mevcuttur). Profesyonel 2-3

12 programcıların program geliştirme yöntemi olarak kullandıkları Nesne Yönelimli Programlamayı tam olarak destekleyen Visual Basic 2005, profesyonel uygulamalar geliştirmek için kullanılan bir dildir. VBEE de bu dilin tüm özelliklerini destekler. Diğer taraftan sihirbazlar, sürükle-bırak, hazır programcıklar ve akıllı etiketler sayesinde çok kısa zamanda, çok daha az kod yazarak başarımı yüksek uygulamalar geliştirmeye zemin sağlar (Kaynak: Pcworld dergisi). VB 2008 Express Edition, Microsoft firmasının, internet adresinden şimdilik ücretsiz olarak indirilebilmektedir. İndirilen dosyanın içinde; VB 2008 Express Edition,.Net Framework 3.5, MSDN Express Library 2008, Microsoft SQL Server 2008 Express Edition bulunmaktadır. Bu programların istenirse hepsi aynı anda bilgisayarınıza kurulabileceği gibi, sadece bir veya birkaçı da, o anda veya daha sonra kurulabilir. VBEE ı çalıştırabilmek için bilgisayarınızda bulunması gereken asgari şartlar şunlardır: İşlemci: 600 MHz veya daha hızlı (Tavsiye edilen: 1 GHz veya daha hızlı). RAM: Minimum: 192 MB (Tavsiye edilen: 256 MB, eğer VBEE ile birlikte SQL Express yüklendiyse, 512 MB veya daha fazlası). Hard Disk: Sabit diskinizde en az 500 MB. Boş yeriniz olmalı. Tam kurulum: VBEE kurulum programının tamamını (VB 2008 Express Edition,.Net Framework 3.5, MSDN Express Library 2008, Microsoft SQL Server 2008 Express Edition) bilgisayarınıza yüklemek isterseniz, sabit diskinizde 1.3 GB. Boş alana ihtiyacınız olacaktır. Uyarılar : VBEE nin bilgisayarınızda çalışabilmesi için,.net Framework 3.5 bilgisayarınıza kurulu olmalıdır. VBEE Hakkında Temel Bilgiler Event (Olay): VB Olay Sürümlü (Event-Driven) bir programlama dilidir. VB de Olay için tıklama, yazı kutusuna bir harf yazma örnekleri verilebilir. Olay Sürümlü ifadesi, olay işlemi olmadan Windows un hiçbirşey yapmadan kullanıcıyı beklemesi anlamındadır. Proje: VBEE programının kodları (program satırları), formları, kontrolleri, nesneleri, yardımcı program parçaları vbg. olan bütün bileşenleridir. Yani bir VB programından bahsederken aslında bir VB projesinden bahsetmiş oluyoruz. Bir projede bulunabilecek dosyalar ve uzantılarının anlamları Dosya İsmi.uzantısı Solution İsmi.sln Solution İsmi.suo Proje İsmi.vbproj Dosyanın anlamı Solution dosyası Solution seçimlik dosyası Proje dosyası Çözümdeki her bir proje için bir tane 2-4

13 Proje İsmi.vbproj.user Form İsmi.Designer.vb Form İsmi.vb Form İsmi.resx Bir başka proje dosyası Çözümdeki her bir proje için bir tane Form designer dosyası her bir form için bir tane Formu oluşturan program satırları-kod satırları dosyası her bir form için bir tane Form kaynakları dosyası her bir form için bir tane VBEE nin çalıştırılması Eğer VBEE kurulumunuzu problemsiz bir şekilde gerçekleştirdiyseniz; Başlat-Programlar-Microsoft Visual Basic 2005 Express Edition yolunu takip ederek VBEE yi çalıştırabilirsiniz. Sonradan açılış ile ilgili bazı değişiklikler yapmadıysanız (bu işlemi; VBEE editörüne girdiğinizde, Tools-Options (bu pencerede en alttaki Show all settings seçili olmalı)-environment-startup-at startup yolu ile değiştirebilirsiniz) büyük bir ihtimalle aşağıdaki açılış ekranı ile karşılaşırsınız. Bu ekrandaki; Recent Projects pencerindeki Open ifadesinin yanındaki Project seçeneği; daha önce üzerinde çalıştığınız bir VBEE projesini tekrar açmak için kullanılır. Create ifadesinin yanındaki Project seçeneği; ilk defa oluşturacağınız (başlayacağınız) bir VBEE projesini açmak için kullanılır. 2-5

14 Diğer pencerelerde, VBEE ile ilgili son haberler, yeni kullanıcılar için yardım bölümleri vbg. Linkler bulunmaktadır. Yeni bir projeyi başlatma Açılış ekranından Create Project seçeneği tercih edilirse, aşağıdaki açılış ekranı ile karşılaşılır. Windows Applications: Bu derste Windows Uygulamaları üzerinde çalışılacağından, Tempalates kısmından Windows Applications seçeneği tercih edilmeli ve pencerenin altındaki Name kutusunda (istenirse) projeye bir isim verilmelidir (projeye isim verme işlemini bu pencerede yapmak zorunda değilsiniz, isterseniz sonraki adımlarda da bu işlemi gerçekleştirebilirsiniz). VBEE Çalışma Ortamı Çalışma ortamında üç halde bulunabilirsiniz; 1-Design modu: projenizi geliştirme, tasarlama durumunda çalıştığınız ortamdır (aşağıdaki ekran görüntüsündeki; Form1.vb [Design] sekmesine dikkat edin, bu ifade kullanıcının şu anda tasarım (design) durumunda olduğunu göstermektedir). 2-Run modu: tasarladığınız projeyi çalıştırdığınız durumdur. 3-Debug modu: projenizi çalıştırma sırasında, sonlandırmadan (proje sonlanmadan) hataları ayıklamak (bulmak) için bulunulan durumdur (projenizin sonlanmadan hangi satırda duracağını siz belirlersiniz, bu durum projenizden uygun değerleri elde edemediğiniz durumlarda ve özellikle programın hangi aşamasında hangi değerler elde ediliyor sorusu için çok kullanışlıdır). 2-6

15 Form Penceresi: Projemizi tasarladığımız penceredir (nesne-kontrol-obje dir), dolayısıyla projeyi oluşturan nesneleri üzerinde bulundurur. Aksi belirtilmediği sürece projemizi çalıştırdığımızda karşımıza gelecek ilk ekrandır. Bundan dolayı bu pencerenin üzerine yerleştirilenler aynı zamanda başlangıç görüntümüz olur. Form penceresine, ekranın sağındaki Solution Explorer penceresindeki Form1.vb ifadesine tıklanarak da ulaşılabilir. Toolbox Penceresi: Projemizi tasarlarken kullanabileceğimiz nesneleri üzerinde bulunduran penceredir. Toolbox üzerinde bulunan nesneler form penceresine taşınarak projeler oluşturulur. Yeri gelmişken şunu da belirtelim; Nesne-Obje- Kontrol ifadeleri VBEE de benzer ifadelerdir ve VBEE nesne yönelimli (object-oriented language) bir programlama dilidir. Properties Penceresi: Form penceresine taşınan nesnelerin özelliklerini ve olaylarını (event) üzerinde bulunduran penceredir. Bu pencere sayesinde projemizde kullanacağımız nesnelerin; boyutları, rengi, üzerinde bulunmasını istediğimiz yazı, büyüklüğü, resmi vbg. özelliklerini değiştirebiliriz ve sözkonusu nesnenin hangi olaylarının kullanılabilir olduğu ve hangilerinin kullanıldığını Properties penceresi sayesinde görebiliriz. Solution Explorer: Projeyi oluşturan bütün program parçalarını üzerinde bulunduran ve bu programlara istediğimiz anda ulaşmamızı sağlayan penceredir. Projede kaç tane form, module, sınıf vs. kullanılmış, bu pencere sayesinde öğrenebiliriz. 2-7

16 En sık kullanılan nesneler Button: Windows ortamında herhangi bir tuşa basma işlemi için kullanılabilecek durumlarda düşünülebilir. Örneğin; göster, gizle, programdan giriş, çıkış, bitir, son, hesapla vbg. işlemler. CheckBox: Birden fazla seçeneğin olduğu ve bu birden fazla seçeneğin de aynı anda seçilebildiği durumlarda kullanılabilir. Örneğin; Lokantada onlarca yemek seçeneğinden birkaç tanesini (birden fazlasını) seçebilme durumunda bu nesne kullanılabilir. RadioButton: Birden fazla seçeneğin olduğu fakat bu birden fazla seçeneğin içinde sadece bir tanesinin seçilebildiği durumlarda kullanılır. Örneğin; Hangi sınıfta okuyorsunuz? sorusuna verilebilecek sadece bir tane cevap vardır. ComboBox: Yerden tasarruf etmek amacıyla, birden fazla seçeneğin açılır bir metin kutusunda toplandığı durumlarda kullanılır. Birden fazla seçeneğin olduğu bütün uygulamalarda kullanılabilir. ListBox: ComboBox nesnesine benzer, tek farkı seçeneklerin bu nesne içinde bir veya birden fazla satırlık alanda listelenebilmesidir. Label: Sonuç, İsminiz nedir?, Sakarya Üniversitesi, Birinci Sayı gibi diğer nesneleri tamamlayıcı (tanımlayıcı) ifadeleri form gibi nesneler üzerinde tanımlayabilmek (yazabilmek) için kullanılır. PictureBox: Form gibi nesneler üzerinde resim gösterebilmek için kullanılır. 2-8

17 TextBox: Metin ifadelerin ekranda gösterilmesi için kullanılır. Örneğin; programın çalışması sırasında elde edilen bir sonucun gösterilmesi, program içinde kullanılacak bilinmeyenlerin sordurulması gibi durumlar için uygundur. İlk VB Programının anlatılması ve çalıştırılması Resim Göster-Gizle programı: Bu program ile; form nesnesi üzerinde tasarım yapabilme, hazırlanan projenin çalıştırılması, kaydedilmesi, geri çağırılması, nesneler üzerinde işlemler, nesnelerin properties işlemlerinin yapılabilmesi, form_load özelliğinin anlatılması, nesnelerin visible özelliğinin gösterilmesi, ilk komutun tanıtılması (end komutu) amaçlanmıştır. Form nesnesinin üzerinde bir adet resim (Picturebox) nesnesi ve üç adet komut (command) butonu olmalıdır. Resim nesnesine bilgisayardaki uygun bir resim atanmalıdır. Komut butonlarının birincisinin üzerinde Göster (nesnenin caption özelliği) Komut butonlarının ikincisinin üzerinde Gizle Komut butonlarının üçüncüsünün üzerinde Programdan Çıkış ifadesi yazılmalıdır Form üzerindeki dört nesne form penceresine uygun bir şekilde yerleştirilir. Proje çalıştırıldığında (F5 tuşu çalıştırma için kullanılabilir), ilk karşılama ekranında resim görülmemeli (resim nesnesinin visible özelliğinin false yapılması), üzerinde Göster yazan komut butonu ve Programdan Çıkış butonu görünür olmalıdır. Göster butonuna basıldığında resim görünür hale gelmeli, Göster butonu görünmemeli, Gizle butonu görünür hale gelmelidir. Gizle butonuna basıldığında resim görünmez hale gelmeli, Göster butonu görünmeli, Gizle butonu görünmez hale gelmelidir. Program birkaç kez Göster Gizle butonlarına basılarak çalıştırılır Programdan Çıkış butonuna basılarak programdan Tasarım ekranına dönülür. Açılış ekranı değiştirilir; ilk karşılama ekranında resim görülmeli (resim nesnesinin visible özelliğinin true yapılması), üzerinde Gizle yazan komut butonu ve Programdan Çıkış butonu görünür olmalıdır. Program birkaç kez Göster Gizle butonlarına basılarak çalıştırılır Programdan Çıkış butonuna basılarak programdan Tasarım ekranına dönülür. Form_Load: Özel bir yordamdır (yordamın ne olduğu ileride anlatılacaktır) Aksi belirtilmediği sürece, bir projenin form ekranının form_load yordamı, diğer yordamlardan önce çalışır. Dolayısıyla bir projenin öncelikle ilk açılış ekranın nasıl olması isteniyorsa, form_load yordamının içine o amaca uygun satırların yazılması gerekir. Bir nesnenin Visible özelliği: Bir nesnenin görünüp görünmeyeceğini belirleyen özelliktir. İki durumu vardır; true olduğunda nesne görünür, false olduğu durumda nesne görünmez. Textbox1.Visible=false Textbox1 isimli nesne görünmez Commandbutton1.Visible=true Commandbutton1 isimli nesne görünür End Komutu: Projenin sonlandırılması için kullanılır 2-9

18 BÖLÜM 3 3-1

19 Temel Veri Tipleri Aşağıda VBEE de temel olarak kullanılan veri tipleri listelenmiştir. VBEE de, burada verilen veri tiplerinden çok daha fazlası kullanılmaktadır, sözkonusu veri tiplerine, ilgili kitaplardan ve yardım dosyalarından ulaşılabilir. İsim Bellekte kapladığı alan (byte) Alt ve Üst Sınır Örnek Boolean Kullanıldığı platforma göre değişir True veya False True Byte (Tamsayı) 1 0 ile 255 arasında 10 sayısı Char (Tek String karakter) 2 0 ile arasında R harfi veya 5 sayısı Date (Tarih) 8 1 Ocak 0001 ile 31 Aralık 9999 arasında Double (Ondalıklı Sayı) 8-1.7E+308 ile 1.7E+308 arasında Integer (Tamsayı) 4-2,147,483,648 ile 2,147,483,647 arasında Herhangi bir tarih 3.45 veya -24 sayısı 234 veya -78 sayısı String Kullanıldığı platforma göre değişir 0 2 Milyar arası Deneme ifadesi veya 345 sayısı İpucu: Yukarıdaki tanımlamalarda string ve char tipindeki değerlerin, değişkenlere çift tırnak işareti içinde eşitlendiğine, aynı durumun, byte, integer, double gibi sayı tipindeki değerlerin tırnak işareti olmadan yazıldığına (eşitlendiğine) dikkat edin. İpucu: Yukarıdaki tabloda string tanımlama tipinin örneği için hem sayı hem de isim türü değerlerin verildiğine dikkat edin. Sayılar hem sayı olarak (integer, byte, double vbg.) hem de string veri tipinde tanımlanabilir. String veri tipinde tanımlanan sayılara, dört işleme girmeyen; telefon, kapı, öğrenci, emekli sicil numarası gibi örnekler verilebilir. İpucu: Yukarıdaki durum, string tanımlama türünün alt tipi olan char tanımlama şeklinde de geçerlidir. İpucu: Double tipi, ondalıklı sayıların tanımlanmasında kullanılır. Ondalıklı sayılar yapıları gereği tamsayıları da kapsar. Örneğin 2 sayısının karşılığı olacak bir değişken, hem byte, hem integer hem de double olarak tanımlanabilir. Fakat 2 sayısının alacağı bir değerin tanımlanacağı değişkeni byte tipi olarak tanımlamak daha uygundur. Çünkü 2 sayısı double olarak tanımlanırsa hafızada 8, integer olarak tanımlanırsa 4, byte olarak tanımlanırsa 1 byte lik yer tutar. Bundan dolayı 2 değerinin karşılığı olabilecek bir değişkenin byte olarak tanımlanması gerekir. Örnek: 70 öğrencisi olan bir sınıftaki öğrencilerin sayısını hafızada tutacak değişkenin, hangi veri tipinde tanımlanması en uygundur? 3-2

20 Örnek: 8200 öğrencisi olan bir fakültedeki öğrencilerin sayısını hafızada tutacak değişkenin, hangi veri tipinde tanımlanması en uygundur? Örnek: Dünya nüfusunu hafızada tutacak değişkenin, hangi veri tipinde tanımlanması en uygundur? Değişkenler ve Tanımlanmaları Değişkenler, program içinde değeri değişebilen/değiştirilebilen ifadelerdir. Visual Basic te değişken tanımlanırken; Dim komutundan faydalanılır. Genel kullanılışı Dim değişken adı [ as değişken tipi ] Değişkenin tanımlanması, ayrılacak hafıza miktarının belirli olmasını sağlar. Yukarıdaki yazılışta köşeli parantez içindeki kısma dikkat edin. Bu kısmı yazmak zorunlu değildir. Yazılırsa değişken tipi mutlaka belirtilmelidir, yazılmazsa sözkonusu değişkenin Variant tipinde olduğu kabul edilir, bu durum hafızada gereksiz yer kaybına sebep olur. Çünkü variant veri tipi, değişken tipinin belirtilmediği durumlarda VB tarafından değişkene atanan bir tiptir ve değişkenin aldığı değere göre doğrudan ilgili değişken tipine benzetilir (örneği aşağıdadır). Dolayısıyla Variant tanımlama (yani dim satırındaki değişken tipi kısmına hiçbirşey yazmama) iyi bir programcılık tekniği değildir. İpucu: Değişkenlerin büyük veya küçük harf ile yazılmaları önemli değildir ve aynı şekilde işleme girer. Örneğin abc değişkeni aşağıdaki yazılışların hepsinde aynı şekilde işleme girecektir. Abc (baştaki harf büyük), abc (ikinci harf büyük) abc (son harf büyük) abc (son iki harf büyük).. Örnekler Dim A as char Dim A as integer Dim A as double Dim A A değişkeni char veri tipinde işlem görecektir. A değişkeni sadece tek harf veri kabul edecektir, birden fazla karakteri olan bir değer girildiğinde soldaki ilk karakter bu değişkenin hafızadaki karşılığı olur. A= K hafızadaki karşılığı K A= SAU hafızadaki karşılığı ilk karakter olan S karakteridir A değişkeni integer veri tipinde işleme girecektir. Bu değişkene atanabilecek değer sınırları, yukarıdaki tabloda da belirtildiği gibi -2,147,483,648 ile 2,147,483,647 arasındadır. Bu sınırlar dışında bu değişkene atanacak bir değer programın hata vermesine neden olur. Ayrıca integer olarak tanımlanmış bir değişkene ondalıklı bir değer girilirse, bu değer tamsayıya dönüştürülür. A değişkeni double veri tipinde işleme girecektir. Double sayı tanımlamaları arasında en geniş tanımlama aralığıdır, çünkü ondalıklı sayılar tamsayıları kapsar. Dolayısıyla hafızada hangi değişken ne kadar yer işgal etmektedir? diye bir düşünce olmadan program yapılacaksa, bütün sayılar double olarak tanımlanabilir. A değişkeni variant veri tipinde işleme girecektir. Bunun anlamı şudur; programın çalışması sırasında A değişkenine hangi değer 3-3

21 atanırsa, VB bu değişkene, hafızada, atandığı tipin en yüksek aralığını tahsis eder. Örneğin A değişkenin aldığı değer 5 ise integer olarak işleme sokar, halbuki kullanıcı 5 değerinin atandığı değişkeni byte olarak belirtilebilirdi. Dim A as string, B as string, C as integer Bu satırda 3 farklı değişken sadece bir Dim satırında tanımlanmak istenmiştir. Aynı amaç, aşağıdaki gibi 3 farklı Dim satırı yazılarak da gerçekleştirilebilirdi. Dim A as string Dim B as string Dim C as integer Veri Tiplerine (değişkenlere) başlangıç değeri atama İstenirse değişkenlere, Dim komutu ile tanımlama sırasında, aşağıdaki şekilde başlangıç değerleri atanabilir. Genel kullanılışı Dim değişken adı [ as değişken tipi ]=Başlangıç değeri Örnekler Dim A as double=3.5 Dim A=5 Dim A as string= deneme A değişkeni double veri tipinde ve 3.5 başlangıç değeri ile işleme girecektir. A değişkeni variant veri tipinde ve 5 (integer-neden integer olduğu yukarıdaki örneklerde anlatıldı) işleme girecektir. A değişkeni string veri tipinde ve deneme başlangıç değeri ile işleme girecektir. Veri Tiplerine (değişkenlere) başlangıç değeri atanmamışsa!!! Sayı değişken tipleri için (byte, integer, double vbg.) sıfır (O sayısı). String değişken tipleri için (char, string vbg.) "" değeridir, bu değerin yazı olarak ifadesi şudur: çift tırnak işareti açılır ve arada boşluk olmadan kapatılır. Boolean mantıksal değişken tanımlama tipinde False değeridir. Date değişken tanımlama tipinde "00:00:00" değeridir. Option Explicit Komutu Option Explicit komutu, değişkenlerin tanımlanmasını zorunlu hale getirmek veya değişkenleri tanımlama zorunluluğunu ortadan kaldırmak için kullanılır. Bu komutun kullanılma mecburiyeti yoktur, kullanılmazsa, değişkenleri mutlaka tanımlamak zorundasınız demektir (option explicit on), aksi durumda, yani değişkenlerin kullanılma zorunluluğu ortadan kaldırılmak istenirse kullanılması mecburidir. Kullanılış şekli; Option Explicit On (Kullandığınız değişkenleri tanımlamak zorundasınız). Option Explicit Off (Kullandığınız değişkenleri tanımlamak zorunda değilsiniz) 3-4

22 General Declerations Bölümü Option Explicit komutu kullanılmak istenirse, VB editörünün sadece General Declerations bölümüne yazılması gerekir, aksi halde VB hata mesajı verir. General Declerations bölümü; bütün yordamların ve program satırlarının en üstündeki satırdır, aşağıdaki örnekte bu bölümün yeri gösterilmektedir. Option Explicit komutunun yazıldığı yere dikkat edin, bu komutun bu programda yazıldığı yer General Declerations yeridir, ayrıca bu örnekte (option explicit komutu) on durumunda olduğundan kullanılmasa da olurdu. İpucu: VB program satırları genel olarak yordamların arasına yazılır. Bu durumun istisnalarından birisi General Declerations kısmına yazılan satırlardır. Giriş Çıkış Komutları inputbox Komutu Bilgisayar programlamada problemi çözen bilgisayardır, dolayısıyla çözenin bilmediklerini öğrenmesi gerekir. inputbox komutu problemin çözülmesi için bilinmeyenlerin kullanıcıya sordurulması ve bu bilinmeyenleri problemi çözen olarak bilgisayarın öğrenmesi için kullanılır. Basit gösterimiyle inputbox komutunun kullanımı aşağıdaki gibidir (bu komutun daha ayrıntılı kullanım şekli vardır, ayrıntı için daha geniş açıklamaların gösterildiği kaynaklara bakabilirsiniz) Değişken ismi=inputbox(. ) Yukarıdaki gösterimde. olarak gösterilen yere değişkenin ekranda görülmesi istenen açıklaması yazılmalıdır. Örnek: İsim=inputbox ( İsminizi veriniz ) Msgbox Komutu Programın çalışması sırasında veya sonunda, elde edilen sonuçların veya ifadelerin ekranda gösterilmesi için kullanılır. Basit gösterimiyle msgbox komutunun kullanımı aşağıdaki gibidir (bu komutun daha ayrıntılı kullanım şekli vardır, ayrıntı için daha geniş açıklamaların gösterildiği kaynaklara bakabilirsiniz) Msgbox(. ) veya Msgbox (değişken ismi) 3-5

23 Yukarıdaki gösterimde. olarak gösterilen yere, ekrana üzerinde işlem yapılmadan gösterilecek şey (sayı veya ifadeler) yazılmalıdır. İkinci gösterimdeki değişken ismi ifadesi, program içinde bir değer alan değişkene karşılık gelir ve bu değer ekranda gösterilir. İkinci gösterimdeki değişken ismi ifadesinin çift tırnak içinde yazılmamış olmasına dikkat edin. Örnek: Msgbox ( Endüstri Mühendisliği ) Msgbox isim Birinci örnekte ekrana Endüstri Mühendisliği yazılır, ikinci örnekte ekrana, isim değişkeninin hafızadaki karşılığı yazılır (isim yazılmaz, karşılığı ne ise o yazılır, dikkat!!!). Değişkenlerin tanımlandıklara yere göre durumları Değişkenler iki yere göre tanımlanırlar: Genel tanımlamalar: Yordamların üzerinde yapılan tanımlamadır. Bu şekilde yapılan tanımlar yordamlar üstü olduğu için, Class içindeki bir veya birden fazla yordam içinde bu tanımlar geçerli olacaktır. Özel tanımlar: Yordamların içinde yapılan tanımlardır. Bu şekilde yapılan tanımlar yordam içinde olduğundan, sadece tanımlandığı yordamlarda geçerli olacaktır, program akışı ilgili yordamın dışına çıktığında, yordam içinde yapılan tanımlar geçersiz olacaktır. Aşağıdaki örnek, iki tür tanımlamayı da içermektedir. Öncelikle bu programın Option Explicit On satırından dolayı çalışmayacağını belirtmek gerekir. Bu programın hatasız çalışması için Option Explicit On satırının Option Explicit Off haline getirilmesi gerekir. Çünkü bu örnek tanımlamaları göstermek için özellikle bu şekilde düşünülmüştür. Bu satır, program içinde kullanılan bütün değişkenlerin tanımlanmasını zorunlu hale getiriyor Bu satırda a değişkeni genel olarak ve 12 başlangıç değeri ile tanımlanmıştır. Genel tanımlaması, CLASS satırından sonra ve 2 SUB yordamın üzerinde olmasından anlaşılmaktadır. Bu tanıma göre a değişken değerine Sub Form1_Load ve Sub Button1_Click yordamlarından ulaşılabilir. Bu yordamdaki b değişken tanımlaması sadece bu yordam içinde geçerlidir. Bu yordamın içinde a ve b değişken değerleri tanımlıdır, c değişken değeri tanımsız olarak işlem görür. Bu yordamdaki c değişken tanımlaması sadece bu yordam içinde geçerlidir ve deneme başlangıç değeri ile tanımlanmıştır. Bu yordamın içinde a ve c değişken değerleri tanımlıdır, b değişken değeri tanımsız olarak işlem görür. 3-6

24 Aşağıdaki örnekte a değişkeni önce genel olarak integer sayı tipinde ve 12 başlangıç değeri ile tanımlanmış, ancak daha sonra Form1_Load yordamının içinde aynı değişken özel tanımlamaya, string değişken tipine ve Ali başlangıç değerine döndürülmüştür. Buna göre Form1_Load yordamının içinde a değişken değeri, tipi string e ve başlangıç değeri de Ali ifadesine döndürülür, bu kullanımda Form1_Load yordamının içinde a değişken değeri Ali olarak işleme girer. Ama buna karşın deneme yordamının içinde a değişkeni ile ilgili bir değişiklik yapılmadığı için bu yordamın içinde a değişken değeri integer ve 12 olarak işleme girer. Değişkenlere İsim Verme Kuralları Değişkenleri isimlendirirken daha sonra baktığınızda akılda kalabilecek ve anlamlı bir isim veriniz. Örneğin kalem sayısı ile bir değer için, kalem değişkenini kullanmanız programı daha sonra incelediğinizde anlamanız için daha mantıklı olacaktır. Tanımlanacak değişkenlerin ilk karakteri mutlaka bir harf (büyük veya küçük harf olması önemli değildir) ile başlamalıdır ( a... veya h... gibi). Geri kalan karakterler; harflerden, rakamlardan, alt çizgi karakterinden ( _ ) oluşabilir. Değişken isimlerinde noktalama işaretlerini (., ; :? vbg.), matematiksel (+ - * / \ vbg.) ve mantıksal ve karşılaştırma operatörleri (< > = vbg.) kullanmayız. Değişken isimleri 40 karaktere kadar olabilir. Değişken ismi Visual Basic deyimlerinden birisi olamaz (inputbox, msgbox, vbg.). Değişken isimlendirirken Türkçe karakterler (ğüşiöçı, ĞÜŞİÖÇİ) kullanmayınız. Geçerli değişken isimleri için örnekler: Adi, yasi, Maas98a, SANAT_DALI Geçersiz değişken isimleri için örnekler: 2ADI, ad soyad, Mal+Bildirimi 2ADI : İlk karakter bir sayı ile başlamış. Ad soyad : Değişken isminde boşluk kullanılmış. Mal+Bildirimi : Değişken isminde geçersiz bir karakter kullanılmış. 3-7

25 Yanlış değişken tanımlama sırasında Visual Basic kullanıcıyı bir uyarır. hata mesajı ile Yordamlar (Prosedür ler) Programlama işlemlerini küçük mantıksal parçalara bölerek kolaylaştırabilirsiniz. Yordamlar, yoğun olarak yinelenen ve ortak kullanılan; hesaplamalar, metin ve veri girişleri gibi görevler için kullanışlıdır. Yordam kullanarak program yazmanın iki önemli özelliği vardır: Yordamlar program kodunu daha küçük parçalara böler, böylece hata ayıklama daha kolay olur. Bir program için yazılan yordam, farklı programlar için de kullanılabilir. Visual Basic de kullanılan Yordam türlerinden bazıları: SUB Yordamlar: Değer üretmezler. FUNCTION Yordamlar: Değer üretirler. SUB Yordamlar Genel yazılışı Sub YordamAdı ([argüman listesi])... (Yordam içindeki satırlar) YordamAdı Sub yordamın adıdır, argüman listesi yordamın aldığı, yani çağrıldığında yordama geçirilebilen argümanlar listesidir. Argüman listesi seçimliktir, çünkü bazı yordamlar hiç argüman almazlar. Ancak yordam adını izleyen parantezler ( ) seçimlik değildir; yordam argüman alsa da almasada parantezlerin kullanılması zorunludur. Argüman listesindeki argümanların herbiri için yazım kuralı şöyledir: Örnek: Değişken ismi [as değişken tipi] Private Sub Form1_Load() Yenioyun (2, 3) Sub Yenioyun(oyuncu_sayisi as integer, seviye) MsgBox ( Bu oyunda & oyuncu_sayisi & oyuncu var ) MsgBox ( Oyunun seviyesi: & seviye) Yenioyun yordamı iki argüman alır; oyuncu_sayisi (integer) ve seviye (variant). 3-8

26 Bir Sub Yordamın Çağırılması Genel yazılışı YordamAdı [Argümanlar] YordamAdı Sub yordamın adıdır, Argümanlar yordama yolladığınız argümanlardır ve kullanılması zorunlu değildir. Eğer yordam argüman almadan çalışacak şekilde tasarlanmışsa bu durumda sadece Yordamadı yazılmalıdır. Birden fazla argüman varsa, bu argümanlar birbirinden virgül ile ayrılmalıdır. Örnek: Yukarıdaki örnekte yazılmış olan yordam şu şekilde çağrılabilir. Yenioyun (2,5) Bu program satırı Yenioyun isimli yordamı çağırır (çalıştırır) ve ona iki argüman yollar; 2, oyuncu_sayisi değişkeniyle gösterilen oyuncu sayısıdır, 5 ise oyunun seviyesini temsil etmektedir. Örnek: Sonucubul() Bu program satırı Sonucubul yordamını çalıştırır ve ona argüman yollamaz. Bir Sub Yordamın Nesne ile Kullanılması (İlişkilendirilmesi) Form ekranında oluşturulmuş herhangibir nesnenin üzerine çift tıklanırsa; bu nesne ile ilgili olay ve olaya bağlı olarak yapılacakların programlanacağı satırların yazılabilmesi için VB tarafından bir alt yordam oluşturulur. Örneğin Button nesnesi form ekranında oluşturulur (Resim a) ve Button nesnesinin üzerine çift tıklanırsa (Resim b), hazırlanan Form çalıştırıldığında, Button düğmesine bir kez basıldığında yapılması istenenlerin arasına yazılabileceği bir Sub ve yordamı otomatik olarak VB tarafından açılır. Resim a Resim b Nesne ile ilişkilendirilmiş bir Sub yordamın genel yazılışı aşağıdaki gibidir. [Private] Sub Nesne İsmi_Olay İsmi(Nesne ile ilgili argümanlar) Nesne ile ilgili olay gerçekleştiğinde yapılması istenenler (VB program satırları) Yukarıdaki genel yazılışda Private (Özel) ifadesi seçimliktir ve sözkonusu yordamın sadece ilgili form içinde kullanılabileceğini ifade etmektedir. 3-9

27 Örnek: Private Sub Button1_Click() A=5 Yukarıdaki Genel Yazılışa göre açıklamalar: Nesne İsmi: Button1 Olay İsmi: Click Nesne ile ilgili olay gerçekleştiğinde yapılması istenenler (VB program satırları): A değişkenine 5 sayı değerinin atanması Amaç: Button1 nesnesine bir kez tıklanırsa, A değişkenine 5 sayı değerini atanmasını sağlayan bir yordamdır. Laboratuar Uygulaması 1: Bilgisayar ile tanışma programının yazılması. Program; inputbox, msgbox komutuları ve değişken kullanımına ait bir örnektir. Bilgisayar kendisini tanıtmalı daha sonra kullanıcıya adını sormalı ve son olarak memnun oldum (kullanıcının ismi) demelidir. Laboratuar Uygulaması 2: İki sayının textbox nesnesinin içine yazılacağı, iki sayının arasında label nesnesi ile + işaretinin olacağı ve sonuç değerinin hesapla butonu ile üçüncü textbox nesnesinin içine yazılacağı programın tasarlanması ve yazılması. Bu program sayesinde kademeli olarak hesap makinesi yazma programına gidilmesi amaçlanmaktadır. 3-10

28 BÖLÜM 4 4-1

29 Matematiksel Operatörler Genel olarak matematiksel işlemlerde kullanılan operatörlerdir. Operatör Anlamı Örnek Açıklama ^ Üs Alma C^3 Matematikdeki üs operatörüdür. Verilen ilk sayının ikinci sayı kadar kuvvetini (üssünü) alır. * Çarpma 2*A Matematikdeki çarpma operatörüdür / Bölme A=10/ Matematikdeki bölme operatörüdür. Verilen ilk sayıyı ikinci sayıya böler \ Tamsayı Bölme + Toplama veya Kaynaştırma İçin kullanılır B=10\3 3 C=13.5\5 2 Toplama olarak: A+B veya 5+3 Kaynaştırma olarak: A="Ebru" K= Kaya N=Ad+Soyad ise sonuç şu şekilde olur: N= Ebru Kaya Matematikdeki bölme operatörüdür. Verilen ilk sayıyı ikinci sayıya böler. Ancak sonuc mutlaka bir tam sayı değeridir. Bölüm küsüratlı ise sayının kusuratını atar (int komutunun pozitif sayılardaki sonucunu bulur) Bu operatör ile verilen iki veya daha fazla ifade toplanabilir. Eğer A ve B string türünde veriler ise + operatörü kaynaştırma yapar. Yani B yi A nın sonuna ekler. + operatörü sayı ile sayıyı veya string ile string ifadeyi toplar veya kaynaştırır (aynı veri tiplerini toplar, farklı veri tiplerinde hata verir). Sayı + string hatalı sonuç verir. a + 5 doğrudur, a +5 yanlıştır. - Çıkarma A-10 Matematik de kullanılan çıkarma operatörüdür Mod Matematikteki 5 Mod 2 1 İlk sayının modunu ikinci mod alma işlemidir 4 Mod 6 4 sayıya göre almak için kullanılır & Kaynaştırma S=34 & D= 60 & A=5.4 & E="Hakan" & " Ayşe" "Hakan Ayşe" String türü ifadelerle matematiksel ifadeleri kaynaştırmada kullanılabilir Aynı veya farklı veri tipleri kaynaştırılabilir. Sayı & String Sayı & Sayı String & String Problemsiz kullanılabilir. 4-2

30 Matematiksel işlemlerin öncelik sıraları 1. Üs alma işlemi (^) 2. Çarpma (*) ve Bölme işlemi (/) 3. Tam bölme işlemi (\) 4. Mod alma işlemi 5. Toplama (+) ve Çıkarma (-) işlemi Yukarıdaki sıralamada, ortak öncelikte gösterilenlerin öncelikleri, solda bulunan işlemin önce yapılacak olma kuralına bağlıdır. Örneğin toplama ve çıkarma işlemi yukarıdaki tabloda aynı sırada gösterilmiştir. Buna göre aynı işlemde yan yana hem toplama ve hem de çıkarma işlemi varsa, bunlardan solda olanı önce işlem görür. Ayrıca bu sıralamadan farklı olarak parantez içine alınmış olan işlemler her zaman önce işlem görür, parantez içine alınmış yan yana iki işlem varsa, bunlardan da solda olan parantezli işlem önce işleme girer. Matematiksel Eşitliklerin Visual Basic de Yazılışları Matematiksel eşitlikler yukarıda verilen matematiksel operatörler yardımıyla yazılırlar. Burada dikkat edilmesi gereken husus, açılan parantezlerin mutlaka kapatılması gerektiğidir. Eşitliklerin gösterilmesinde mutlaka yuvarlak parantez ( ) kullanılmalıdır, köşeli parantez [ ] kullanılmamalıdır. Matematiksel gösterim A = 3xY E 3 RT HY = 23 Visual Basic gösterimi A=(3*Y)/E HY=(RT^3)/23 Mantıksal Operatörler Mantıksal Operatörler iki veya daha fazla ifade arasında kullanılırlar. Sonucun True (Doğru) veya False (Yanlış) olması durumuna göre programın akışı yönlendirilir. And Operatörü Mantıksal (Lojik) iki ifadenin karşılaştırılması için kullanılır. Sonucun True (Doğru) olması için iki ifadenin de mutlaka doğru olması gereklidir. İfade1 İfade2 İfade1 And İfade2 Örnek False False False 5>7 and a = b False False True False 5>7 and a = a False True False False 5>3 and a = b False True True True 5>3 and a = a True 4-3

31 Or Operatörü Mantıksal iki ifadenin karşılaştırılması için kullanılır. Sonucun True (Doğru) olması için iki ifadeden yalnızca birinin doğru olması yeterlidir. İfade1 İfade2 İfade1 Or İfade2 Örnek False False False 4>9 or 10>13 False False True True 4>9 or 10<13 True True False True 4<9 or 10>13 True True True True 4<9 or 10<13 True Not Operatörü Mantıksal ifadenin tersini (değilini) almak için kullanılır. Not( 5>3 ) Not( 4>9 or 10>13 ) Not( Not (Not (6<2) ) ) Not( True) False True True False Karşılaştırma Operatörleri Bu operatörler ile verilen ifadeler arasında karşılaştırmalar yapılır. Çoğunlukla bir karşılaştırma komutu olan IF ile birlikte kullanılır. Genel karşılaştırma operatörleri aşağıda verilmiştir. Operatör Anlamı Mantıksal İşlemlerde Sonuç Örnek (Mantıksal) = Eşit Boolean Sonuc=(100=345) Sonuc=False > Büyük Boolean Sonuc=(200>134) Sonuc=True >= Büyük Eşit Boolean Sonuc=(39>=67) Sonuc=False < Küçük Boolean Sonuc=(23<205) Sonuc=True <= Küçük Eşit Boolean Sonuc=(400<=400) Sonuc=True <> Eşit Değil Boolean Sonuc=(42<>30) Sonuc=True Örnek (Matematiksel) A=B*10 (A^2)>3 X*Y>=G X<Y 35<=D DF<>(T*56) 4-4

32 Akış Diyagramı Bir akış diyagramı, özel geometrik sembollerin oklarla birbirine bağlanması ile oluşturulur ve yazılmaya çalışılan veya yazılmış programın şekillerle gösterilerek anlaşılmasını kolaylaştırır. Akış diyagramlarında kullanılan belli başlı semboller aşağıda gösterilmiştir, daha fazla sembol için ilgili kitaplara bakılabilir. Sembol İsmi Kullanılışı Ok Sembolleri birbirine bağlamak ve mantıksal akışı (akış yönünü) göstermek için kullanılır. Örnek Sembol İsmi Kullanılışı Başla/Bitir Başlangıç ve bitişi göstermek için kullanılır. Örnek Başla Programa Başla Start Bitiş Son Sembol İsmi Kullanılışı Giriş/Çıkış Programa giriş ve programdan çıkış değerlerini göstermek için kullanılır. Giriş genellikle sorgu ve değişken/sabit değerlerin programa verilişi için, Çıkış ise genellikle ekrana veya bir dosyaya yazılan değerler için kullanılır. Örnek A değerini sor U=5 Yarıçap=? H,p,r değerlerini girin W değerini ekrana yaz Dosyaya q,n ve isim değerlerini yaz Sembol İsmi Kullanılışı İşlem Genellikle matematiksel işlemleri göstermek için kullanılır. Örnek Alan eşitliğini hesapla Kare=a*a X1=(b^2)-(4*a*c) 4-5

33 Sembol İsmi Kullanılışı Karar Karar verme durumlarında kullanılır. Bu sembole bir geliş ve evet ve hayır cevabıyla iki çıkış mantıksal işlem durumlarında kullanılır. Örnek hayır A=3? evet d<>u? evet hayır Sembol İsmi Kullanılışı Örnek Birleştirici Farklı sembollerden gelen okları birbiriyle birleştirmek için kullanılır. Ekrana çözüm yok yaz Ekrana TOPLAM sonucunu yaz son Visual Basic'de Kontrol Komutları Kontrol komutları, programcılar tarafından sıkça kullanılan belirli ifadeleri veya bazı şartların gerçekleşip gerçekleşmediğini kontrol etmek amacıyla kullanılan komutlardır. If Komutu: if ile then arasına yazılan ifade, koşul veya koşulların true (doğru) veya false (yanlış) olmasına göre program akışını yönlendiren komut yapısıdır. If Koşul veya ifade Then Koşul doğru ise yapılması istenen işlemler. Endif Örnek: Kullandığımız her If kontrolu için mutlaka bir Endif kullanmalıyız. Bu, kontrol yapısının sonlandığını belirtir. If ad="fatih" Then Maas= Endif 4-6

34 Eğer koşul gerçekleşmemiş ve yapılması istenen bazı işlemler varsa o zaman şu şekilde bir kontrol yapısını kullanabiliriz. If koşul veya ifade Then Birinci Adım Else Seçimlik İkinci Adım Endif Şekil: If bloğu için genel bir akış diyagramı Örnek : Private Sub Form1_Load() cesitli = InputBox("a değerini verin") If cesitli = "a" Then MsgBox ("sonuç a") Else MsgBox ("sonuç a değil") End If Aynı anda bir kaç koşul için karşılaştırma yapılmak istenirse; If Koşul1 veya ifade1 Then Koşul1 veya ifade1 doğru ise yapılması istenen işlemler. Elseif Koşul2 veya ifade2 Then Seçimlik Kosul1 veya ifade1 yanlış, Kosul2 veya ifade2 doğru ise yapılması istenen işlemler. Elseif Koşul3 veya ifade3 Then Seçimlik Kosul1 veya ifade1 yanlış, Kosul2 veya ifade2 yanlış, Kosul3 veya ifade3 doğru ise yapılması istenen işlemler. Else Seçimlik Bütün koşullar veya ifadeler yanlış ise yapılması istenen işlemler. Endif yapısı kullanılır. Bu yapıda mutlaka Else bloğunun bulunmasına gerek yoktur. Koşul1 doğru ise ilk Then den sonraki satırlar çalıştırılarak Elseif ifadesine kadar icra edilirler. Daha sonra Endif ifadesinden sonraki satır icra edilir. Eğer Koşul1 yanlış ise Kosul2 ifadesi kontrol edilir. Doğru ise buradaki then ifadesinden sonraki satırlar çalıştırılır. Yanlış ise Kosul3 e bakılır. Eğer bu koşul da yanlış ise Else ifadesinden sonraki satırlar çalıştırılır. 4-7

35 İpucu: if ile then arasındaki koşul veya koşullar, ifade veya ifadeler, koşul veya ifade karışımları ne kadar az veya ne kadar çok olursa olsun, if komutu, yapısı gereği, if veya then arasında yazılanlardan bir true veya false sonucu çıkarır. if ile then arasında en az koşul veya ifade için; if d then.. Endif şeklinde bir örnek verilebilir (d örnek değişkendir). if ile then arasında en çok koşul veya ifade için; if (5>3 and 4<>1) or ( gh = kkj or a = A ) then.. Endif şeklinde bir örnek verilebilir. Örnek : Sub Form1_Load() dd = InputBox("dd değerini verin") If dd = "a" Then MsgBox ("sonuç a") ElseIf dd = "b" Then MsgBox ("sonuç b") ElseIf dd = "c" Then MsgBox ("sonuç c") ElseIf dd = "d" Then MsgBox ("sonuç d") Else MsgBox ("sonuç a,b,c,d değil") End If Örnek : Bolen=inputbox( Bolen Degerini Verin ) Sayi=inputbox( Bolunen Degeri Verin ) If Bolen=0 Then MsgBox ( Bolen sayı sıfır olamaz") Else Sonuc= Sayi / Bolen MsgBox (Sonuc) Endif Örnek : Örnek : If Isim= Ali Then Maas=Maas * 1.2 Elseif Isım= Murat Then Maas=Maas * 1.4 Elseif Isım= Kemal Then Maas=Maas * 1.1 Endif If name="ali" AND no=" " Then Not=4 ElseIf name="ahmet" AND no=" " Then Not=3 ElseIf name="hakan" AND no=" " Then Not=2 ElseIf name="hatice" AND no=" " Then Not=7 Endif 4-8

36 Hazırlanan bir projenin (programın) kaydedilmesi 1. Projeyi hazırlayın 2. Hard disk (C veya D) veya disket sürücüdeki disketin (A) herhangi bir yerinde programı kaydedeceğiniz bir klasör açın 3. VB ekranındaki menü çubuğunda bulunan File menüsünden Save All seçeneğini seçin 4. Ekrana kaydetme penceresi gelecektir. Name ifadesinin karşısına projeye vereceğiniz ismi yazın. Location kısmına projeyi kaydedeceğiniz konumu yazın veya Browse düğmesi ile projenin kaydedileceği yeri belirtin. Create directory for solution ifadesi, solution dosyalarının farklı bir klasörde veya seçtiğiniz klasörün ana bölgesinde olup olmamasını istemediğiniz durum için sorulmaktadır, uygulama için bu seçeneği tıklamadan projenizi kaydedin, diğer seferde bu seçeneği tıklayarak projenizi kaydedin. Aradaki fark, sadece solution dosyaları için farklı bir klasör açılmasıdır Kaydedilen bir projenin VB ye alınması 1. VB ekranındaki menü çubuğunda bulunan File menüsünden Open Project seçeneğini seçin 2. Ekrana gelen pencereden daha önce kaydettiğiniz projenin bulunduğu klasörü, Konum ifadesinin yanındaki kısımdan seçin 3. Klasör içindeki VB ile hazırlanmış bütün dosyaları (daha önce kaydettiğiniz bütün dosyaları) tek tek VB ye alabilirsiniz. Fakat Projenin tamamını VB ye almak istiyorsanız uzantısı sln olan dosyayı seçmeniz uygun olacaktır (bu durumda birden fazla dosyayı tek tek açmak yerine, projenin tamamı bir defada açılmış olmaktadır). 4. Open düğmesine basın ve seçtiğiniz dosyayı VB ye alın. Hazırlanan projenin EXE dosyası getirilmesi Aslında bunun için VB nin bu versiyonunda bir şey yapmanıza gerek yok. Yukarıda anlatıldığı şekilde projenizi kaydederseniz, projenizin bir adet de exe uzantılı dosyası, sizin için seçtiğiniz klasörün içinde bin klasörü oluşturularak doğrudan hazırlanmış oluyor. Sizin yapmanız gereken, bin klasörünü bulup exe dosyasına oradan ulaşmak. Laboratuar Uygulaması 1: Bilgisayara verilen iki sayının bölümünün bulunması ve ekrana yazdırılması programının yazılması (Not: sıfır değerine bölme durumuna dikkat edilmeli, böylece programcının, gerekirse bütün ihtimalleri düşünmesi gerektiği bu örnek ile ortaya konması amaçlanmaktadır). Laboratuar Uygulaması 2: İkinci dereceden kök hesap eden programın yazılması ve varsa uygun köklerin ekrana yazdırılması programı. 4-9

37 BÖLÜM 5 5-1

38 Select Case Komutu: VB de karar sürecinde kullanılan komutlardandır. Bu yapı ile sadece bir değişkenin durum kontrolü yapılır. Kontrolü yapılacak değişkenin genel olarak alabileceği değerler belirli ise bu yapının kullanılması If yapısına göre daha avantajlıdır. Yazılış biçimi genel olarak aşağıdaki şekildeki gibidir. Select Case Degisken Case Deger1 Degisken=Deger1 olduğu durumda yapılması istenen işlemler Case Deger2 To Deger3 Degisken Degeri, Deger2 ile Deger 3 arasında olduğu durumda yapılması istenen işlemler (Deger2 ve Deger3 karşılaştırmaya dahildir) Case Is Karşılaştırma Operatörü Deger4 (Is < 3 veya Is >= 12 gibi) Degisken Degeri Deger4 ile karşılaştırıldığında yapılacak işlemler, Case Else Degisken yukarıdaki değerler den hicbirine eşit değil ise yapılacak işlemler End Select Her Select Case bloğu, mutlaka End Select ile bitmek zorundadır. Select Case değişen Case durum1.. End Select If ve Select Case blokları programın karar verme sürecinde kullanılırlar. Bu iki komut arasındaki en önemli fark; Select Case sadece bir değişkenin durumu için kullanılırken, if komutu birden fazla değişkenin durumunu aynı anda değerlendirebilir. Select Case (sa>3 and se= Sakarya ) if (sa>3 and se= Sakarya ) then Sayı 10 ile 20 arasında olduğunda ifadesi Select Case komutu ile if komutuna göre daha kolay yazılır. Select Case Sayi Case 10 to 20 if Sayi>=10 and Sayi<=20 Then 5-2

39 Şekil: Select Case bloğu için genel bir akış diyagramı Örnek Dim Nm As Integer Dim isim As String Nm = InputBox("Öğrenci Numarasını verin") Select Case Nm Case 1304 isim ="Murat Tuna" Case 1306 isim ="Ayse Sinem" Case 1307 isim = Hakan Kaya Case 1312 isim = Abdullah Kahyalı Case 1324 isim ="Hatice Uygun" Case Else MsgBox ( Verdiğiniz Numara Yanlış ) End Select 5-3

40 Örnek Dim a as double a = InputBox("Bir sayı verin") Select Case a Case 100 MsgBox ("Verdiğiniz sayı 100 dür") Case Is > 100 MsgBox ("Verdiğiniz sayı 100 den büyüktür") Case Is < 100 MsgBox ("Verdiğiniz sayı 100 den küçüktür") Case Else MsgBox ("Bu satır hiçbir zaman işlem görmez") End Select End 'bu satır programı sona erdirir Örnek Sub Form1_Load() Dim sayi As Integer sayi = InputBox("Bir sayı verin") Select Case sayi Case 10 To 20 MsgBox ("verdiğiniz sayı 10 ile 20 arasındadır") Case Else MsgBox ("Verdiğiniz sayı 10 dan küçük veya 20 den büyüktür") End Select End Örnek Aşağıdaki örnek; sayı girilmesi gereken değişken değerine, yanlışlıkla harf girilmesini kontrol etmektedir. Dim Sayi as string Sayi=inputbox( Sayıyı verin ) Select case Sayi Case a to z Msgbox ( Sayı girmelisiniz ) Case A to Z Msgbox ( Sayı girmelisiniz ) End select 5-4

41 İkinci Dereceden bir denklemin köklerinin olup olmadığının araştırılması programının SELECT CASE komutu ile yazılması ve akış diyagramının hazırlanması Dim a, b, c, delta, x1, x2 As Double a = InputBox("a katsayısını verin") b = InputBox("b katsayısını verin") c = InputBox("c katsayısını verin") delta = (b ^ 2) - (4 * a * c) Select Case delta Case Is < 0 Başla MsgBox("Kök yok") Case 0 MsgBox("İki çakışık kök var") a katsayısını verin x1 = -b / (2 * a) MsgBox("Çakışık kökler=" & x1) Case Is > 0 MsgBox("iki farklı kök var") b katsayısı? x1 = (-b - delta ^ (1 / 2)) / (2 * a) x2 = (-b + delta ^ 0.5) / (2 * a) MsgBox("Birinci Kök=" & x1) c nedir? MsgBox("İkinci Kök=" & x2) End Select Evet delta=0? Hayır delta<0? Evet Ekrana İki Çakışık Kök var yaz Hayır Ekrana İki farklı Kök var yaz Ekrana Kök Yok yaz X1=-b/(2.a) x1=(-b-delta^(1/2))/(2xa) hesapla X1 değerini ekrana yaz x2=(-b+delta^(1/2))/(2xa) hesapla X1 ve X2 değerlerini ekrana yaz Program Sonu 5-5

42 İkinci Dereceden bir denklemin köklerinin olup olmadığının araştırılması programının IF komutu ile yazılması Dim a, b, c, delta, x1, x2 As Double a = InputBox("a katsayısını verin") b = InputBox("b katsayısını verin") c = InputBox("c katsayısını verin") delta = (b ^ 2) - (4 * a * c) If delta < 0 Then MsgBox("Kök yok") ElseIf delta = 0 Then MsgBox("İki çakışık kök var") x1 = -b / (2 * a) MsgBox("Çakışık kökler=" & x1) ElseIf delta > 0 Then MsgBox("iki farklı kök var") x1 = (-b - delta ^ (1 / 2)) / (2 * a) x2 = (-b + delta ^ 0.5) / (2 * a) MsgBox("Birinci Kök=" & x1) MsgBox("İkinci Kök=" & x2) End If Bir programın nesnelerle ve ayrıca basit halde (nesne kullanmadan) ayrı ayrı yazılması Örnek: Bilgisayara girilen iki sayının toplanıp sonucunun ekrana yazdırılması Programın basit olarak (nesne kullanmadan) yazılması Bunun için bilinmeyenlerin (birinci ve ikinci sayı) inputbox komutu ile sordurulup, bulunan toplam sonucunun msgbox komutu ile ekrana yazdırılması yeterlidir. Sub Form1_Load() Dim birincisayi As Double, ikincisayi As Double birincisayi = InputBox("Birinci sayıyı verin") ikincisayi = InputBox("İkinci sayıyı verin") MsgBox (birincisayi + ikincisayi) Programın nesne kullanılarak yazılması Nesne kullanılarak programın yazılabilmesi için öncelikle form ekranında programın tasarımının (veriler nerede nasıl girilecek, çıktılar nereye yazdırılacak vs.) yapılması gerekir. Yandaki Form ekranı sözkonusu programın tasarım form ekranıdır. Bu ekranda Label1; Birinci sayı ifadesi için, Label2; İkinci sayı ifadesi için, Label3; Sonuç ifadesi için, Text1; Birinci sayının girileceği yer, Text2; İkinci sayının girileceği yer ve Text3; girilen iki sayının toplamının yazılacağı yer olarak düşünülmüştür. 5-6

43 Daha sonra, önceki adımda ekrana yerleştirilen nesnelerin başlıklarının (ekranda görünen isimlerinin) programa uygun olarak değiştirilmesi gerekir. Bu işlemi iki şekilde yapabilirsiniz. 1. İlgili nesneyi form ekranında sadece bir kez tıklayıp seçili duruma getirerek properties (VB ekranının sağ alt tarafında görülen özellikler penceresi. Bu pencereyi ekranda göremiyorsanız, F4 tuşuna basarak görünür hale getirebilirsiniz) penceresinde ilgili özelliği bulunup değiştirilmek suretiyle, nesnenin görünür başlığı değiştirilebilir. Örneğimizde Label1 nesnesi tıklanarak özellikler penceresinden Text (Metin) özelliği bulunur ve Text ifadesinin karşılığı olan Label1, Birinci Sayı ifadesi ile değiştirilir. Aynı işlem Label2 için İkinci Sayı ve Label3 için Sonuç olarak tekrar edilmelidir. 2. Yukarıdaki işlemlerin hiçbiri yapılamadan aynı sonuç elde edilmek istenirse (istenen sonuç: yukarıdaki ikinci form ekranındaki görüntü) bu durumda form ekranında nesnelerin istenen özelliklerinin değiştirilmesi için form ekranının yüklenmesi sırasında bu işlemler bir komut satırı olarak verilmesi gerekir. Bunun için form1_load yordamının aşağıdaki şekilde olması gerekir: Private Sub Form1_Load() Label1.Text = "Birinci Sayı" Label2.Text = "İkinci Sayı" Label3.Text = "Sonuç" Daha sonra ilgili nesnelerin çift tıklanması ve program kodlarının yazılması gerekir. Bu programda sayılar text nesnesine girileceği için bu nesnede bir değişiklik olduğunda ne olması isteniyorsa onun ile ilgili satırların ilgili yere yazılması gerekir. Dolayısıyla birinci textbox nesnesine bir sayı girildiğinde bu nesnede bir değişiklik olacak ve bu değişiklik textbox3 nesnesine yansıyacaktır. İlgili işlemin tam ifadesi şu şekilde olmalıdır: Textbox1 nesnesinde bir değişiklik olduğunda [yani bu nesneye biz bir sayı girdiğimizde (bu VB için bir olay (event) dır VB ce karşılığı change ifadesidir)] bu değişiklik textbox3 nesnesine toplam olarak yansımalıdır. Aynı işlem textbox2 nesnesi için de geçerlidir. Bu işlemin VB satırı olarak yazılması şu şekilde olmalıdır: Textbox3.Text = Val(Textbox1.Text) + Val(Textbox2.Text). Bu satır form ekranında iken textbox1 nesnesi çift tıklanarak ekrana gelen kod yazma nesnesinde Private Sub TextBox1_TextChanged ( ) End sub Satırları arasına yazılmalıdır. Yukarıdaki yordamın açılaması: textbox1 nesnesinde bir değişiklik olduğunda şu satırları işleme sok (private ile başlayan ve end ile biten satırların arasındaki satırları işleme sok). Not: Textbox nesnesinin çıktısı string olduğundan ve bu örneğimizde sayılarla uğraşıldığından, textbox1.text satırı Val komut ile işleme sokularak, textbox nesnesine girilen sayının dört işleme girer (sayısal) hale getirilmesi sağlanmıştır. Programın son hali ve örnek iki sayı ile çalıştırılmış form ekranı aşağıdaki gibidir: 5-7

44 Private Sub TextBox1_TextChanged() TextBox3.Text = Val(TextBox1.Text) + Val(TextBox2.Text) Private Sub TextBox2_TextChanged() TextBox3.Text = Val(TextBox1.Text) + Val(TextBox2.Text) 5-8

45 BÖLÜM 6 6-1

46 Sayaçlar Düzenli olarak artan (+) veya azalan (-) sayı veya string ifadeler elde etmek için kullanılırlar. Eşitliğin her iki tarafındaki değişken isminin aynı olmasına dikkat edin. Bu durum matematik olarak mümkün olmamasına rağmen, bilgisayar için doğrudur. Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken] Genel Kullanılış 2: [değişken ismi] [işlem] = [sayı veya string ifade veya değişken] İşlem= +, veya, veya *, veya /, veya \, veya &, veya ^ olabilir Örnekler Genel Kullanılış 1 Genel Kullanılış 2 Operatör Açıklaması abc=abc+1 abc +=1 Sayısal Bu sayaç: abc değişken değerinin ilk Toplam değeri sıfır olduğu düşünülürse; 1,2,3,4,5... sayılarının elde edilmesinde kullanılır. sayi=sayi+2 sayi +=2 Sayısal Ikişer ikişer artan (2,4,6,8,... gibi) Toplam ardışık sayılar elde edilmesi için kullanılır. sinif=sinif-3 sinif -=3 Çıkarma Üçer üçer azalan (6,3,0,-3,-6,... gibi) ardışık sayılar elde edilmesi için kullanılır. isimler=isimler+ad veya isimler=isimler&ad isimler +=ad veya isimler &=ad String Toplam a=a*b a *=b Çarpma Ardışık çarpma ad değişkeni ile verilen string ifadeleri birleştirmek için kullanılır. Örneğin, bu sayaç satırı 3 defa işlem görse ve sırasıyla "ayşe", "hasan", "fatma" değerleri ad değişkeninin karşılığı olarak bilgisayara verilse; isimler değişkeninin alacağı son değer, bu 3 ismin birleştirilmiş hali olacaktır (isimler= ayşehasanfatma ). Not: Bu kullanımda + işlemi için string sayılar verilmelidir, aksi halde toplama işlemi yapılır. a=a/b a /=b Bölme Ardışık bölme a=a\b a \=b Tam Bölme Ardışık tam bölme a=a^b a ^=b Üs alma Ardışık üs alma 6-2

47 Herhangi bir sayacın eşitlikten sonraki değişkeni, değişkenin o ana kadarki işlemini (toplamını, çarpımını vbg.) gösterir. Döngüler Döngüler belirli işlemleri (satırları, blokları vbg.) belirli sayıda veya herhangi bir şart sağlanana kadar tekrarlamak amacı ile kullanılırlar. Bu komutlar aşağıda verilmiştir. For - Next Döngüsü Do - Loop Döngüsü (şartsız Do döngüsü) Do While - Loop Döngüsü Do - Loop While Döngüsü Do Until - Loop Döngüsü Do - Loop Until Döngüsü For Next Döngüsü Neredeyse bütün programlama dillerinde bulunan döngü yapısıdır. Genel kullanılış şekli aşağıdaki gibidir. değişkenin değişkenin değişken For = başlangıç To bitiş Step adı değeri değeri değişkenin her adımdaki artış veya azalış değeri Döngü içindeki ara işlemler.... Next değişken adı FOR döngüsü mutlaka NEXT komutu ile bitmek zorundadır, aksi halde hata mesajı ile karşılaşılır. 6-3

48 Yukarıda gösterilen For döngüsü genel yapısında; Step ifadesi ve sonrasında yazılması gereken sayı değeri seçimliktir, kullanılmazsa döngünün her adımda birer birer artacağı varsayılır. Next ifadesinin yanındaki değişken ismi seçimliktir. Next ifadesinden sonra değişken ismi kullanılırsa, ilk satırdaki For ifadesinin yanına yazılı olan değişken ismi ile aynı olmak zorundadır, aksi halde hata mesajı ile karşılaşılır. For döngüsü nasıl çalışır? For döngüsünde gizli bir IF komutu vardır. İşlem sırası her defasında for satırına geldiğinde, değişkenin o aşamada almış olduğu değerin, alması gerenek son değeri aşıp aşmadığı sürekli olarak kontrol edilir. Bundan dolayı for satırında aslında görünmeyen bir IF komutu vardır. For komutu, step ifadesinin yanındaki artım değerinin pozitif veya negatif olmasına göre farklı çalışır. Step ifadesinin yanındaki sayı (veya sayı olabilecek değişken) POZİTİF ise; değişkenin o aşamada almış olduğu değer alması gereken son değerden büyük olup olmadığı kıyaslaması yapılır. Aşmışsa program next satırından sonraki ilk satırdan çalışmasına devam eder, Aşmamışsa döngü içindeki satırlar işlem görür. Step ifadesinin yanındaki sayı (veya sayı olabilecek değişken) NEGATİF ise; değişkenin o aşamada almış olduğu değer alması gereken son değerden küçük olup olmadığı kıyaslaması yapılır. Küçük ise, program next satırından sonraki ilk satırdan çalışmasına devam eder, küçük değil ise döngü içindeki satırlar işlem görür. Next komutu işlem sırasını tekrar for satırına yönlendirmek için kullanılır. İşlem sırası for satırına geldiğinde, for satırında kullanılan değişken, step ifadesinin yanındaki sayının (veya sayı karşılığı olabilecek değişkenin) pozitif veya negatif olup olmadığına göre, alması gereken son değer ile kıyaslanır. Bu kıyaslama işlemi; döngü içinde mi kalınacak veya döngü dışına mı çıkılacak kararını vermek için yapılır. Step ifadesinin yanındaki değer ister pozitif, isterse negatif olsun, for döngüsündeki değişken mutlaka ilk değerini alır (şartlar ne olursa olsun, for döngüsündeki değişken başlangıç değerini mutlaka alır). 6-4

49 Şekil: Pozitif değere sahip step ifadesi için genel bir For-Next döngüsü akış diyagramı Örnek: Bu örnekte step değeri verilmediği için, i değişkeni her bir döngüde 1 artacaktır. For i=1 to 10 Ara işlemler Next i Örnek: Bu örnekte step değeri -2 verildiği için, i değişkeni her bir döngüde -2 azalacaktır. For i=20 to 1 Step 2 Ara işlemler Next i Örnek: Aşağıdaki örnek, Next değişkenin for satırındaki değişkenden farklı olması dolayısıyla çalışmaz (hata verir). For i=1 to 10 Ara işlemler Next k Örnek: Aşağıdaki örnekte hem next ifadesinin yanında değişken kullanılmamıştır. Bu durum seçimlik olduğu için program hatasız çalışır. For i=1 to 10 Ara işlemler Next SORU Sıfır (0), sayısının işareti nedir? (sıfır, pozitifmi yoksa negatifmidir?). 6-5

50 Örnek: Aşağıdaki örnekte, step ifadesinin yanındaki değer negatif olarak işlem görür. Çünkü step ifadesinin yanındaki işlem negatif sonuç vermektedir. Dim a As Integer = 2, k As Integer Dim b As Integer = -5 Dim c As Integer = -7 For k = 1 To 2 Step a + b + c MsgBox(k) Next MsgBox(k) Örnek: Aşağıdaki örnekte, step ifadesinin yanındaki değer pozitif olarak işlem görür. Çünkü step ifadesinin yanındaki işlem pozitif sonuç vermektedir. Dim a As Integer = 2, k As Integer Dim b As Integer = -5 Dim c As Integer = 7 For k = 1 To 2 Step a + b + c MsgBox(k) Next MsgBox(k) Örnek: Bu örnekte programa vermiş olduğunuz pozitif sayının faktoriyeli hesaplanmaktadır. Dim Sayi,i as integer Dim Fact as Double Sayi=inputbox( Faktöriyeli Hesaplanacak Sayıyı Verin ) Fact=1 For i=1 To Sayi Fact= Fact * i Next i MsgBox (Sayi & Sayısınının Faktöriyeli : & Fact) İç İçe For döngüleri İç içe for döngüleri aynen normal For döngülerine benzer. Ancak burada şu hususa dikkat edilmelidir; en son başlatılan For döngüsü ilk önce bitirilmelidir (döngülerin birbirini kesmemesi gerekir). For degisken1=basla1 To son1 Ara işlemler For dgisken2=basla2 To son2 Ara işlemler Next degisken2 Next degisken1 Yukarıdaki açıklamadan dolayı, aşağıdaki şekildeki gibi bir kullanım hatalıdır. For degisken1=basla1 To son1 Ara işlemler For degisken2=basla2 To son2 Ara işlemler Next degisken1 Next degisken2 Örnek: Çarpım tablosu programın hazırlanması. Çarpım tablosu örneği, iç içe for döngüleri için güzel bir örnektir. Çarpım tablosu programının çok fazla çıktısı olduğu için, çarpım değerlerinin tek tek ekranda gösterilmesi msgbox komutu ile çok anlamlı olmayacaktır (sonuçlar için çok fazla 6-6

51 enter tuşuna basılması gerekmektedir). Dolayısıyla programın nesnelerle yazılması daha doğru olacaktır. Bu amaçla program listbox nesnesi ile yazılacak ve çarpım değerleri bu nesnenin içine listelenecektir. LISTBOX nesnesi: Program çıktılarının listelenmesi için kullanılan bir nesnedir (bir anlamda msgbox komutunun nesneli halidir). Listbox1.items.add ( Merhaba ) Listbox1 nesnesinin içine Merhaba yazar. Listbox1.items.clear () Listbox1 nesnesinin içindekileri temizler (siler). Listbox1.items.add (t) t değişkeninin hafızadaki değerini, listbox1 nesnesine yazar. Programın amaca uygun çalışabilmesi için, form nesnesine listbox nesnesi ilave edilmelidir (örnekte listbox1 eklenmiştir). Programda yapılması istenenler (program satırları), form1_load yordamının içine yazılmıştır. Program 1 lerden, 5 lere kadar çalışmaktadır. Bundan dolayı ilk for çevrimi değişkeni olan k için son değer, 5 olarak alınmıştır. İkinci for çevrimi değişkeninin son değeri, çarpım tablosu 10 a kadar hesaplandığı için, 10 olarak alınmıştır. Tasarım Ekranı Program çıktıları Private Sub Form1_Load() Dim k, u As Byte For k = 1 To 3 ListBox1.Items.Add(" ") ListBox1.Items.Add(k & "'ler") ListBox1.Items.Add(" ") For u = 1 To 10 ListBox1.Items.Add(k & "x" & u & "=" & k * u) Next Next 6-7

52 BÖLÜM 7 7-1

53 Do Loop Döngüsü En basit döngü yapısıdır. Hiçbir kontrol yapılmadan Do ve Loop ifadeleri arasındaki satırların işlem görmesi için kullanılır. Bu yapıda programın terkedilmesi için herhangi bir kontrol olmadığından, döngü içine karar verme komutlarından birisi ile bir kontrol yapısı kurulması gerekir, aksi halde program sonsuz döngüye girer. Genel kullanılışı; Do Ara işlemler Loop Şekil: Do-Loop döngüsü için genel bir akış diyagramı Örnek Yandaki örnekte ekrana mesajbox penceresi içinde sonsuz sayıda (siz programa müdahale edene kadar), Ahmet ifadesi yazılır. Çünkü döngüden çıkış için herhangi bir kontrol yoktur. Do Msgbox ( Ahmet ) Loop 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. Örnek Yandaki örnekte ekrana mesajbox penceresi içinde sadece 5 kez Ahmet ifadesi yazılır. Çünkü döngüden çıkış için döngünün içine bir if bloğu yerleştirilmiştir. Dim t as byte t=0 Do t=t+1 If t=5 then Exit do else Msgbox ( Ahmet ) End if Loop Exit komutunun açıklaması döngü işlemlerinin sonundadır 7-2

54 Do While-Loop Döngüsü Do While-Loop döngüsünün genel yazım şekli şu şekildedir; Do While (koşul veya ifade) Ara işlemler Loop Do While döngüsünde önce koşula bakılır. Eğer koşul doğru ise aradaki satırlar Loop satırına kadar çalıştırılır. Loop satırında tekrar While satırına dönülür. Koşul tekrar kontrol edilir, koşul doğru ise ara satırlar tekrar çalıştırılır, yanlış ise Loop satırından sonraki ilk satırdan program çalışmaya devam eder. İç içe Do While döngüleri de kurulabilir. Bu durumda her Do While döngüsü için mutlaka bir Loop kullanılması gerekir. Do While Kosul1 Ara işlemler Do While Kosul2 Ara işlemler Loop Ara işlemler Loop Şekil: Do While-Loop döngüsü için genel bir akış diyagramı Örnek Fact=1 B=2 Do While B<=Sayi Fact=Fact * B B=B+1 Loop Yandaki örnekte, faktöriyel programı Do While döngüsü ile yazılmıştır. Burada sayaç olarak B değişkeni kullanılıyor. Eğer faktöriyeli hesaplanacak değer 2 den küçük ise (1 veya 0), döngü içine girilmemektedir. Döngü içinde sayaç artımı, birer birer olmaktadır. Sayaç sayı değerine eşit olduğunda program sona ermektedir. Örnek Dim cevap as string = e Do While cevap = e OR cevap = E isim = InputBox( İsmi verin ) no = InputBox( numarayı verin ) cevap = InputBox( Tamammı devammı (e/h)? ) Loop Yandaki örnekte, cevap değişkeninin karşılığı h yani hayır olana kadar program do while döngüsünün içinde kalmaktadır. 7-3

55 Do-Loop While Döngüsü Do-Loop While döngüsünün genel yazım şekli şu şekildedir; Do Ara işlemler Loop While (Kosul veya ifade) Bu döngü tipinde ara işlemler en az bir kez mutlaka işleme girer, daha sonra koşul kontrol edilir. Eğer koşul doğru ise tekrar Do satırına dönülür ve aradaki işlemler (satırlar) tekrar icra edilir, yanlış ise döngüden çıkılır. Bu yapıyı da iç içe kullanmamız mümkündür. Do While-Loop döngüsü ile Do-Loop While döngüsü arasındaki en önemli fark: Do While- Loop döngüsünde koşul veya koşullar en başta kontrol edilirken, Do-Loop While döngüsünde en sonda kontrol edilmektedir. Do Ara işlemler Do Ara işlemler Loop While Kosul1 Ara işlemler Loop While Kosul2 Şekil: Do-Loop While döngüsü için genel bir akış diyagramı Örnek Fact=1 B=1 Do Fact=Fact * B B=B+1 Loop While B<=Sayi Örnek Do isim = InputBox( İsmi verin ) no = InputBox( numarayı verin ) cevap = InputBox( Tamammı devammı (e/h)? ) Loop While cevap = e OR cevap = E 7-4

56 Do Until-Loop Döngüsü Bu döngünün genel yazım şekli aşağıdaki gibidir. Do Until (Kosul veya ifade) Ara işlemler Loop Do Until döngüsünde önce koşula bakılır. Eğer koşul yanlış ise aradaki satırlar Loop satırına kadar çalıştırılır. Loop satırında tekrar Do Until satırına dönülür. Koşul tekrar kontrol edilir. Eğer koşul yanlış ise ara satırlar tekrar çalıştırılır, koşul doğru ise Loop satırından sonraki ilk satırdan program çalışmaya devam eder. Do While-Loop döngüsünden tek farkı koşul yanlış olduğunda ara işlemler çalıştırılırken, Do While-Loop döngüsünde koşul doğru ise ara işlemler çalıştırılır. İç içe Do Until- Loop döngüleri de kurulabilir. Bu durumda her Do Until döngüsü için mutlaka bir Loop kullanmamız gerekir. Do Until Kosul1 Ara işlemler Do Until Kosul2 Ara işlemler Loop Ara işlemler Loop Örnek Fact=1 B=Sayi Do Until B<=1 Fact=Fact * B B=B-1 Loop Yandaki örnekte, faktöriyel programı bu kez Do Until döngüsü ile yazılmıştır. Burada sayaç olarak B değeri kullanılıyor. Eğer faktöriyeli hesaplanacak değer 2 den küçük ise (1 veya 0), döngü içine girilmemektedir. Döngü içinde sayaç azaltımını kendimiz veriyoruz. Sayaç 2 değerine eşit olduğunda program sona ermektedir. Do-Loop Until Döngüsü Bu döngünün genel yazım şekli aşağıdaki gibidir. Do Ara işlemler Loop Until (Kosul veya ifade) Do Loop Until döngüsünde, ara işlemler en az bir kez mutlaka çalıştırılır. Daha sonra Koşul kontrol edilir. Eğer koşul yanlış ise tekrar Do satırına dönülür ve aradaki satır veya satırlar tekrar çalıştırılır. Koşul doğru ise döngüden çıkılır. Bu döngüyü de iç içe kullanmamız mümkündür. Do Ara işlemler Do Ara işlemler Loop Until Kosul1 Ara işlemler Loop Until Kosul2 Örnek Fact=1 B=1 Do Fact=Fact * B B=B+1 Loop Until B>Sayi Yandaki örnek, faktöriyel hesabını bu kez Do-Loop Until döngüsü ile gerçekleştirilmiş halini göstermektedir. 7-5

57 Exit Komutu Herhangi bir döngü veya yordamın içindeyken, işlem sona ermeden (tamamlanmadan), bulunulan döngüyü veya yordamı terk etmek için kullanılır. Exit komutu; For döngüsünde Exit For, Do döngülerinde (do loop, do while, do until) Exit Do, herhangi bir yordamın içindeyken Exit Sub şeklinde kullanılır. Örnekler For A=1 to 5 If A=2 then Exit for End if Next A A=0 Do while A<6 A=A+1 If A=2 then Exit do End if Loop Yandaki iki örnekte for ve do döngüleri içindeki satırlar 5 kez işlem görecekken, A değeri 2 olduğunda, Exit for ve Exit Do komutları sayesinde sadece 2 kez dönebilmekte ve Next ve Loop satırlarından sonraki satırlardan itibaren işleme devam etmektedir. Program çıktılarının Msgbox, Debug.Write, Debug.WriteLine ve Listbox nesnesi ile ekrana yazdırılması Hazırladığınız programdan elde edilen çıktıları (ekran görüntülerini) msgbox, debug.write, debug.writeline komutları veya listbox nesnesi ile yazdırabilirsiniz. Msgbox Komutu: Bunlardan kullanımı en basit olanı msgbox nesnesidir. Msgbox komutunun dezavantajı özellikle birden fazla çıktının elde edildiği programlarda, her bir ekran görüntüsü için her defasında "Tamam" tuşuna basma zorunluluğudur. Örneğin yandaki programda for döngüsü 1 sayısından 10 sayısına kadar birer artan sayı üretmekte ve her üretilen sayı msgbox komutu ile ekranda görüntülenmektedir. Dolayısıyla 10 defa ekran görüntüsüne karşılık her defasında tamam tuşuna basılması ve bir sonraki sayıya geçilmesi gerekmektedir. Private Sub Form_Load() For y = 1 To 10 MsgBox y Next 7-6

58 Debug.Write ve Debug.WriteLine Komutları: Halbuki elde edilen değerler (msgbox komutunda olduğu gibi yapılmadan) doğrudan bir pencereye veya nesneye yazılabilir. Bunun için kullanılacak yöntemlerden bir tanesi immediate penceresidir. Bu pencere ekrana Ctrl+G ile getirilir veya önceki programda (msgbox y) satırı yerine (debug.write) veya (debug.writeline) komutu kullanılarak program tarafından otomatik olarak açılır. Önceki program ile yandaki programın tek farkının msgbox y satırı yerine (debug.writeline y) satırının kullanılmış olduğuna ve bundan dolayı program tarafından elde edilen çıktıların ekrana nasıl yazdırıldığına dikkat edin!. Programda (debug.writeline) komutu kullanıldığında ve işlem sırası bu komutun olduğu satıra geldiğinde, VB tarafından ekranın altında otomatik olarak bir immediate penceresi açılır ve program tarafından elde edilen çıktılar bu pencerede listelenir (yandaki programı çalıştırdığınız halde immediate penceresini ekranın altında göremediyseniz, Ctrl+G tuş takımını kullanın). Private Sub Form_Load() For y = 1 To 10 Debug.WriteLine (y) Next Debug.Write ve Debug.WriteLine Komutları arasındaki fark: Debug.Write komutu, son yazılandan sonra, satır atlamadan yanına yazılanları immediate penceresine yazmak için kullanılırken, Debug.WriteLine komutu, yanına yazılanları her defasında ayrı bir satıra yazar. Debug.Writeline komutu, Debug.Writeline ( ) şeklinde de kullanılır. Bu durumda ekran görüntüsüne bir boş satır ilave edilecektir Yukarıdaki ifadelerin örnekleri, aşağıda verilmiştir. Program Program çalıştırıldığında ekran çıktılarının immediate penceresindeki görünümü For y = 1 To 3 Debug.WriteLine (y) Next Debug.WriteLine ( ) Debug.WriteLine ("Son Satır") Son Satır Program Program çalıştırıldığında ekran çıktılarının immediate penceresindeki görünümü For y = 1 To 3 Debug.Write (y & " ") Next Debug.Write ("Son Satır") Son Satır 7-7

59 Listbox nesnesi: Hazırlanan programdan elde edilen ekran görüntülerinin bir nesne içinde listelenmesi için kullanılacak yöntemlerden bir tanesi, çıktıların listbox nesnesine ilave ettirilmesidir. Bunun için form ekranına tasarım aşamasında listbox nesnesinin ilave edilmesi gerekir. Burada listbox nesnesinin iki metodundan bahsedeceğiz. Birincisi listbox nesnesinin içeriğinin silinmesi için kullanılan clear metodudur ve listbox1.items.clear() şeklinde kullanılır (burada listbox1 örnek olarak verilmiştir). İkincisi, listbox nesnesine program tarafından elde edilen değerlerin ilave edilmesi anlamındaki add metodur ve listbox1.items.add() şeklinde kullanılır. Aşağıdaki örnek, 1 sayısından 15 sayısına kadar birer artan sayıları elde eden bir for çevriminin, button1 nesnesi ile ilişkilendirilmesi ve for çevriminden elde edilen değerlerin listbox nesnesine ilave edilmesi ile ilgilidir. Örnek ile ilgili form ekranları ve programın kodu aşağıdadır. Private Sub Button1_Click() Dim t As Byte ListBox1.Items.Clear() For t = 1 To 15 ListBox1.Items.Add("Sayı:" & t) Next Programın Form tasarım ekranı Programın çalıştırma ekranı 7-8

60 Örnek: Basit bir hesap makinesi programının yazılması Tasarım Ekranı Label1 Textbox1 Textbox2 Label1 RadioButton 1 RadioButton 2 Button1 Button2 Textbox3 Button3 Amaç 1.Sayı ve 2.Sayı kısmına yazılan sayı değerlerinin, birbirlerine göre 4 işlem sonuçlarının bulunması. Programdan beklenenler 1. 1.sayı metin kutusuna (textbox1) bir sayı girilmemiş ama 2.sayı kutusuna (textbox2) bir sayı girilerek Hesapla (button1) tuşuna basılırsa, Sonuç kutusunda (textbox3), 1.sayı değerini GİRMELİSİNİZ ifadesi görülsün sayı metin kutusuna bir sayı girilmemiş ama 1.sayı kutusuna bir sayı girilerek Hesapla tuşuna basılırsa, Sonuç kutusunda, 2.sayı değerini GİRMELİSİNİZ ifadesi görülsün. 3. Hem 1.sayı metin kutusuna, hem de 2.sayı kutusuna sayı girilmeden Hesapla tuşuna basılırsa, Sonuç kutusunda, 1.sayı ve 2.sayı değerini GİRMELİSİNİZ ifadesi görülsün. 4. Toplama-Çıkarma-Çarpma-Bölme işlemlerinden bir tanesi seçilmeden Hesapla butonuna basılırsa, Sonuç kutusuna, "İŞLEM SEÇMEDİNİZ" ifadesi görülsün. Not: bu işlemin doğru olarak çalışabilmesi için, program f5 tuşuna basılarak çalıştırıldığında (form1_load) ve ayrıca Temizle (button2) tuşuna basıldığında, işlemleri gösteren nesnelerin (4 radio button) öncelikle basılmamış (radiobutton.visible=false) olarak işlemle girmesi gerekir. 5. Bölme işlemi seçildiğinde, 2.sayı değerinin sıfır (0) olması probleminin kontrol ettirilmesi ve böyle bir durumda, Sonuç kutusunda, Payda (2.sayı) sıfır OLAMAZ ifadesinin görülmesi sağlanmalıdır. 7-9

61 RADIOBUTTON nesnesi: Program içinde birden fazla seçenek içinden sadece bir tanesinin seçilmesi ve ona göre işlem yapması durumunda kullanılan bir nesnedir. Örnek programda, radiobutton nesnesinin birçok özelliğinden sadece Checked özelliğinden faydalanılmıştır. Bu özellik radiobutton nesnesinin seçilip seçilmediğini kontrol etmek için kullanılmaktadır. Bu özelliğin True karşılığı nesnenin seçildiğini, False karşılığı seçilmediğini göstermektedir. Yukarıdaki 2 radiobutton nesne örneğinin kodları aşağıdaki gibidir. RadioButton1.Checked = False RadioButton2.Checked = True Programın amaca uygun çalışabilmesi için, form nesnesine 4 işlemin her birini temsil etmesi amacıyla ve textbox1 ve textbox2 nesnelerine girilen her iki sayıya karşılık aynı anda sadece bir işlem yapılabileceği için, 4 işlemi temsilen 4 adet radiobutton nesnesi ilave edilmelidir. Private Sub Form1_Load() RadioButton1.Checked = False RadioButton2.Checked = False RadioButton3.Checked = False RadioButton4.Checked = False Private Sub Button1_Click() Dim bsa, isa As Double bsa = Val(TextBox1.Text) isa = Val(TextBox2.Text) If TextBox1.Text = "" And TextBox2.Text = "" Then TextBox3.Text = "1.sayı ve 2.sayı değerini GİRMELİSİNİZ" ElseIf TextBox1.Text = "" Then TextBox3.Text = "1.sayı değerini GİRMELİSİNİZ" ElseIf TextBox2.Text = "" Then TextBox3.Text = "2.sayı değerini GİRMELİSİNİZ" ElseIf RadioButton1.Checked = True Then TextBox3.Text = bsa + isa ElseIf RadioButton2.Checked = True Then TextBox3.Text = bsa - isa ElseIf RadioButton3.Checked = True Then TextBox3.Text = bsa * isa ElseIf RadioButton4.Checked = True Then Select Case Val(TextBox2.Text) Case 0 TextBox3.Text = "Payda (2.sayı) sıfır OLAMAZ" Case Else TextBox3.Text = bsa / isa End Select Else TextBox3.Text = "İŞLEM SEÇMEDİNİZ" End If 7-10

62 Private Sub Button2_Click() RadioButton1.Checked = False RadioButton2.Checked = False RadioButton3.Checked = False RadioButton4.Checked = False TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" Private Sub Button3_Click() End Aşağıdaki soruları cevaplandırınız 1 Neden RadioButton nesneleri Form1_Load nesnesinde False olarak işleme alınmıştır?. 2 If TextBox1.Text = "" And TextBox2.Text = "" Then TextBox3.Text = "1.sayı ve 2.sayı değerini GİRMELİSİNİZ" ElseIf TextBox1.Text = "" Then TextBox3.Text = "1.sayı değerini GİRMELİSİNİZ" ElseIf TextBox2.Text = "" Then TextBox3.Text = "2.sayı değerini GİRMELİSİNİZ" Yukarıdaki sıralamanın sebebini açıklayınız, örneğin birinci elseif satırı if satırı yerine yazılabilir mi? Yani aşağıdaki gibi olabilir mi? If TextBox1.Text = "" Then TextBox3.Text = "1.sayı değerini GİRMELİSİNİZ" ElseIf TextBox1.Text = "" And TextBox2.Text = "" Then TextBox3.Text = "1.sayı ve 2.sayı değerini GİRMELİSİNİZ" ElseIf TextBox2.Text = "" Then TextBox3.Text = "2.sayı değerini GİRMELİSİNİZ" 3 Else TextBox3.Text = "İŞLEM SEÇMEDİNİZ" Yukarıdaki satırın yerine amaca uygun yazılabilecek alternatif satır nasıl olabilir. 4 Hesapla butonunu programda kullanmadığınızı ve 4 işlem butonlarından herhangi birine basıldığında işlemin doğrudan yapıldığını düşünerek programı tekrar yazınız (İpucu: RadioButton1_Click). 7-11

63 BÖLÜM 8 8-1

64 Diziler İndisli Değişkenler Aynı tür bilgileri (öğrenci isimleri, şehir isimleri, kapı numaraları, fakülteler vbg.) bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın avantajı; aynı tür bilgileri bir listede tutarak daha hızlı işlem yapılabilmesidir. Visual Basic'de dizi ifadesinin genel gösterilişi aşağıdaki gibidir. Değişken adı (İndis) Örnekler A(5) B23(24) isim(89) Matris(3,4) Tablo(2,8,3) Dizi indis değerleri, her zaman sıfır sayısından başlar Dizi tanımları aynen değişken tanımları gibi Dim komutu ile yapılır. Dim değişken adı (indis değeri) [as değişken tipi] [as değişken tipi] kısmı seçimliktir, kullanılmazsa kullanılan değişken Variant tipinde işleme girer. Dizi değişken isimleri, daha önce gösterilen değişken tanım ve kuralları ile aynıdır. Örnek: A1(5) - doğru, 1A(5) - yanlış Dizilerin tanımlanmama gibi bir durumu yoktur. General Declarations kısmında Option Explicit Off (Hatırlatma: Normal değişkenlerin tanımlanma zorunluluğunu kaldıran komut satırı) komut satırı yazılmış bile olsa, bir dizi mutlaka Dim komutu ile tanımlanmak zorundadır. Dim dizi_adı(sayi) As Veri_Tipi Bu tanımlamadaki "sayi" değeri, dizinin alacağı en az indis değeri kadar olmalıdır (daha fazla da olabilir). Aksi halde bilgisayar hata mesajı verir (Ayrıca iki sayfa sonraki: "Dizilerde karşılaşılan hatalar" başlığını inceleyin. 8-2

65 Örnek Dim a(5) as byte Bu örnekte, a isimli dizi için hafızada, 0 dan 5 sayısına kadar, 6 adet sayının yerleşeceği yer ayrılır (bunu tek boyutlu bir satır veya tek boyutlu bir sütun olarak düşünebilirsiniz). Bu örnek gösterimde fark olmayacağı için, satır olarak gösterilmiştir (sütun olarak da gösterilebilirdi) a(0) sayısının yerleşeceği yer a(1) sayısının yerleşeceği yer a(2) sayısının yerleşeceği yer a(3) sayısının yerleşeceği yer a(4) sayısının yerleşeceği yer a(5) sayısının yerleşeceği yer Örnek Dim ad(3) as string Bu örnekte, ad isimli dizi için hafızada, 0 dan 3 sayısına kadar, 4 adet ismin yerleşeceği yer ayrılır. Bu örnek gösterimde fark olmayacağı için, sütun olarak gösterilmiştir (satır olarak da gösterilebilirdi) ad(0) isminin yerleşeceği yer ad(1) isminin yerleşeceği yer ad(2) isminin yerleşeceği yer ad(3) isminin yerleşeceği yer Örnek Dim tablo(1,3) as double Bu örnekte, tablo isimli dizi için hafızada, satır için 0 dan 1 e kadar 2 adet satır ve 0 dan 3 e kadar 4 adet sütun için double sayıların yerleşeceği yer ayrılır. tablo(0,0) sayısının yerleşeceği yer tablo(1,0) sayısının yerleşeceği yer tablo(0,1) sayısının yerleşeceği yer tablo(1,1) sayısının yerleşeceği yer tablo(0,2) sayısının yerleşeceği yer tablo(1,2) sayısının yerleşeceği yer tablo(0,3) sayısının yerleşeceği yer tablo(1,3) sayısının yerleşeceği yer 8-3

66 Dizilere değer atama/atamama!! Bir diziye değer atama aşağıdaki şekilde yapılır. Dizi_adı(indis_sırası1, indis_sırası2, )=atanacak_bilgi Örnek: Dim ad(2) As String Dim no(2) As Integer ad(0) = "ali" ad(1) = "ahmet" ad(2) = "ebru" no(0) = 133 no(1) = 56 no(2) = 67 Bu örnek'te ad ve no olmak üzere iki adet dizi tanımlanmaktadır. ad dizisi string türünde bilgileri tutacak ve no dizisi ise integer türündeki bilgileri saklayacaktır. Dizilere, normal değişkenlerde olduğu gibi başlangıç değeri atanamaz. Dim a as integer=3 Dim a(4) as integer=42 Doğru bir satırdır Yanlış bir satırdır İndisli değişkenlere başlangıç değeri atanması İndisli değişkenlere başlangıç değeri normal değişkenlerden farklı bir şekilde yapılır. Dim satırındaki indisli değişkenin indis değerini gösteren parantez içine bir değer yazılmaz ve başlangıç değerleri küme işareti içinde gösterilirler. Örnek: Dim a() as byte={2,4,3} Örnekte a indisli değişkenine 0, 1 ve 2. İndis değeri olarak sırasıyla 2,4 ve 3 değerleri atanmıştır. Örnek: Dim isim() as string={ ali, veli } Dim n(,) as integer={{10, 5, 7}, {12, 8, 9}} bu örnekte 2 satırlık (0 ve 1. Satır) ve 3 sütunluk (0,1 ve 2. Sütun) bir indisli değişken tanımlanmıştır. Bu tanım tablo veya matris şeklinde düşünülebilir ve gösterimi aşağıdaki şekildedir. 0. sütun 1. sütun 2. sütun 0. satır satır Dim n(,) As Integer = {{10, 5, 7}, {12, 8, 9}} MsgBox(n(1, 2)) Yukarıdaki programın çalışması sonucunda ekranda 9 değeri görülür. 8-4

67 İndisli değişkenlere başlangıç değerleri atanmamışsa; İndisli değişken SAYI tipinde (byte, integer, double) tanımlanmışsa, o değişkenin alacağı bütün değerlerin başlangıç değeri sıfır (0) olarak belirlenir. Örnek: Dim A(3) as byte ise, bu durumda hafızada A(0)=0 A(1)=0 A(2)=0 A(3)=0 İndisli değişken İSİM tipinde (string, char) tanımlanmışsa, o değişkenin alacağı bütün değerlerin başlangıç değeri çift tırnak çift tırnak ( ) olarak belirlenir. Örnek: Dim B(2) as string ise, bu durumda hafızada B(0)= B(1)= B(2)= İndisli değişken MANTIKSAL tipte (boolean) tanımlanmışsa, o değişkenin alacağı bütün değerlerin başlangıç değeri false olarak belirlenir. Örnek: Dim cevap(2) as string ise, bu durumda hafızada cevap(0)=false cevap(1)=false cevap(2)=false Dim komutu ile hafızada ayrılmış yerlere mutlaka değer atama zorunluluğu yoktur. Böyle bir durumda, indisli değişkenler ile normal değişkenler arasında bir fark yoktur, değişken tipine göre atanmayan indis değerleri için varsayılan değerler kabul edilir. Örnekler: Dim t(5) as double t(3)=27 t indisli değişkeni double olarak ve 6 indis değeri alacak şekilde tanımlanmıştır t değişkeni için ayrılan yerlerden sadece 3 numaralı indis değeri için 27 değeri atanmıştır, diğer yerler (değişken sayısal tanımlandığı için) sıfır değerini alacaktır. Dim y(13) as string y(12)= "Sakarya" y indisli değişkeni string olarak ve 14 indis değeri alacak şekilde tanımlanmıştır y değişkeni için ayrılan yerlerden sadece 12 numaralı indis değeri için "Sakarya" değeri atanmıştır, diğer yerler (değişken string tanımlandığı için) "" değerini alacaktır. 8-5

68 Dim u(4) as boolean u(1)=true u indisli değişkeni boolean olarak ve 5 indis değeri alacak şekilde tanımlanmıştır u değişkeni için ayrılan yerlerden sadece 1 numaralı indis değeri için True değeri atanmıştır, diğer yerler (değişken boolean tanımlandığı için) False değerini alacaktır. Dizilerde karşılaşılan hatalar Dizilere değer atanırken, belirtilen sınırların dışına çıkılırsa (Dim komutu ile belirtilen sınırların dışına çıkılırsa) hata yapılmış olur (bilgisayar hata mesajı verir). Dizilere değer atarken dizi sınırlarını kontrol etmek, olası bir hatayı önlemek için önemlidir. Örnekler: Aşağıdaki satırların çalıştırılması sırasında, hata mesajı ile karşılaşılır. Dim t(5) as double t(7)=27 t değişkeni için hafızada 5 sayısına kadar indis için yer istenmiş, buna karşılık ayrılmayan bir yer için (7. indis değeri) işlem yapılmak istenmektedir. Dim t(-4) as double - (eksi) indis değeri olamaz Dim a(5) as double Dim a as double Aynı program içinde bir değişken (bu örnekte a değişkeni), hem indisli hem de normal değişken olarak tanımlanamaz. İndis değeri olarak değişken kullanma VBEE 2005 versiyonu ile indisli değişkenlerde indis değeri olarak değişken kullanmak mümkün olabilmektedir. Örnek: Dim u as integer u=inputbox("indis değerini verin") Dim isim(u) as string Bu örnekte öncelikle u değişkeni tamsayı olarak tanımlanmakta, daha sonra u değişkeni kullanıcıya sorulup bilgisayar tarafından öğrenilmekte ve son olarak da isim indisli değişkeni için, kullanıcının girdiği indis değişkeni kadar, hafızada yer ayrılmaktadır. 8-6

69 Dizi değişkenlerin genel olarak tanımlanması Daha önce de belirtildiği gibi, normal değişkenlerle indisli değişkenler arasında gerek tanımlama gerekse kullanımı açısından hiçbir fark yoktur. Dolayısıyla birden fazla yordam içinde kullanılacak indisli değişkenler, projenin General Declerations kısmında tanımlanmalıdır. Örnek Public Class Form1 End Class Dim a(5) As Integer Private Sub Form1_Load() a(1) = 10 a(2) = 20 Private Sub Button1_Click() TextBox1.Text = a(1) + a(2) Yukarıdaki örnekte, projenin general declarations kısmında a indisli değişkeni tanımlanıyor, dolayısıyla bu değişkenin alacağı değerler, örnekteki her iki yordamda da geçerli olmaktadır. Form1 yüklendiğinde bu dizinin ilk elemanına 10 sayısı ikinci elemanına 20 sayısı atanıyor. Eğer kullanıcı Button1 isimli butona tıklarsa dizinin ilk ve ikinci elemanları toplanarak Form1 üzerinde Textbox1 adlı nesnenin Text özelliğine atanıyor. Yani TextBox'ın bu sayıların toplamını göstermesi sağlanıyor. 8-7

70 BÖLÜM 9 9-1

71 Örnek Sorular Örnek (2006 yılı vize sorusu) Dim a,b as double a = InputBox("Bir sayı verin") Do b = InputBox("Bir sayı verin") If b = -99 Then Exit Do Else Select Case b Case is < a a = b End Select End If Loop MsgBox a Yandaki program çalıştırıldığında, bilgisayarın kullanıcıya sorduğu sorulara karşılık, kullanıcının sırasıyla (2, 3, 1, 4, -99, 8, 0, 7) sayılarını bilgisayara verebileceğini düşünerek, ekran görüntüsünün ne olacağını bulunuz (10 puan). Cevap: 1 Örnek (2006 yılı vize sorusu) Yukarıdaki programın akış diyagramını çiziniz (15 puan). a,b başlangıç değerlerini 0 kabul et a sayısını verin b sayısını verin evet b= 99? b< a? hayır hayır evet a=b a değerini ekrana yaz 9-2

72 Örnek (2007 yılı vize sorusu) Aşağıdaki program çalıştırıldığında ekran görüntüsü ne olur? (10 puan). Dim fa as boolean Dim c,d as byte fa = not(false) Do For c = 4 To 6 step 2 MsgBox (c) For d = 3 To 4 Exit For MsgBox d Next Exit For Next Exit Do MsgBox c Loop Until fa Cevap: 4 Örnek Bilgisayara verilen n adet sayının en büyük değerini bulup sonucu ekrana yazan programı yazınız. Yardım: Yazacağınız programa 1 adet sayı girdiğinizde en büyük sayı bu sayı olmalıdır mantığından hareketle bu programı yazabilirsiniz (aşağıdaki iki program bu mantık ile yazılmıştır). Yöntem1: Dim enb As Double = Dim n, w, sa As Double n = InputBox("Kaç sayı gireceksiniz") For w = 1 To n sa = InputBox("Sayıyı verin") If sa > enb Then enb = sa End If Next MsgBox("Verdiğiniz sayılardan en büyüğü=" & enb) Yöntem2: Dim enb, n, w, sa As Double n = InputBox("Kaç sayı gireceksiniz") enb = InputBox("Sayıyı verin") For w = 2 To n sa = InputBox("Sayıyı verin") If sa > enb Then enb = sa End If Next MsgBox("Verdiğiniz sayılardan en büyüğü=" & enb) 9-3

73 Örnek Bilgisayara verilen bir sayının çift olup olmadığını ekrana yazan programı yazınız. Örnek Dim u As Double u = InputBox("Bir sayı verin") If u / 2 = u \ 2 Then MsgBox("Verdiğiniz sayı çifttir") Else MsgBox("Verdiğiniz sayı çift değildir") End If Bilgisayara verilen bir sayının, bir matris ile çarpım sonucunun (sonuç matrisinin) ekrana yazdırılması programını yazınız. Dim sa, su, carpan As Double Dim i, j As Byte sa = InputBox("Matrisin satır sayısını verin") su = InputBox("Matrisin sütun sayısını verin") Dim ilk_matris(sa, su), sonuc_matris(sa, su) As Double carpan = InputBox("Matrisin çarpanını verin") For i = 1 To sa For j = 1 To su ilk_matris(i, j) = InputBox("(" & i & "," & j & ")= değerini verin") sonuc_matris(i, j) = carpan * ilk_matris(i, j) Debug.Write(sonuc_matris(i, j) & " ") Next Debug.WriteLine("") 'matrisin diğer satırına geçmek için kullanıldı Next Farklı yöntem: Aynı program; verilerin alınması (matrisin alınması), matrisin verilen çarpan ile işleme sokulması ve son olarak elde edilen matrisin ekrana yazdırılması işlemlerinin ayrı ayrı yaptırılması şeklinde düşünülebilir. Bu program, yukarıdaki programdan daha uzun olacaktır, fakat sonuç olarak amaca uygundur. Dim sa, su, carpan As Double Dim i, j As Byte sa = InputBox("Matrisin satır sayısını verin") su = InputBox("Matrisin sütun sayısını verin") Dim ilk_matris(sa, su), sonuc_matris(sa, su) As Double carpan = InputBox("Matrisin çarpanını verin") REM Verilerin alınması For i = 1 To sa For j = 1 To su ilk_matris(i, j) = InputBox("(" & i & "," & j & ")= değerini verin") Next Next REM Çarpma işleminin yaptırılması For i = 1 To sa For j = 1 To su sonuc_matris(i, j) = carpan * ilk_matris(i, j) Next Next Rem Sonuç matrisinin yazdırılması 9-4

74 Örnek For i = 1 To sa For j = 1 To su Debug.Write(sonuc_matris(i, j) & " ") Next Debug.WriteLine("") 'matrisin diğer satırına geçmek için kullanıldı Next n adet sayının ortalamadan farklarının mutlak değeri sıfırdır. Bu ifadeyi ispat edecek programı yazınız. Dim y, w, k, toplam As Double Dim ortalama, sontop As Double y = InputBox("Kaç sayı var") Dim de(y) As Double For k = 1 To y de(k) = InputBox("Sayıyı verin") toplam = toplam + de(k) Next ortalama = toplam / y For w = 1 To y sontop = sontop + (de(w) - ortalama) Next MsgBox("sonuç=" & sontop) Örnek (2005 yılı vize sorusu) 65 öğrencisi olan bir sınıf için 30 sorunun sorulduğu bir imtihan yapılmıştır. Her öğrenciye ait; ad, soyad ve doğru cevap sayısı bilgisayara girildiğinde, herhangi bir öğrencinin harfli notunu aşağıdaki kriterlere göre bulup ekrana yazan programı yazın. Not: 4 yanlış 1 doğru cevabı götürmektedir. Öğrencilerin bütün sorulara cevap verdiklerini düşünerek programı yazın (15 puan). Net cevap sayısı Harfli Not AA BB CC DD 1-9 FF Dim ad, soyad As String Dim t, dogru_sayisi, yanlis_sayisi As Double Dim net_sayisi As Double For t = 1 To 1 ad = InputBox("Öğrencinin adını verin") soyad = InputBox("Öğrencinin soyadını verin") dogru_sayisi = InputBox("Öğrencinin doğru cevap sayısını verin") yanlis_sayisi = 30 - dogru_sayisi net_sayisi = dogru_sayisi - (yanlis_sayisi / 4) MsgBox(net_sayisi) Select Case net_sayisi Case 25 To 30 MsgBox("Öğrencinin harfli notu: AA dır") Case 20 To

75 Örnek MsgBox("Öğrencinin harfli notu: BB dir") Case 15 To 19 MsgBox("Öğrencinin harfli notu: CC dir") Case 10 To 14 MsgBox("Öğrencinin harfli notu: DD dir") Case 1 To 9 MsgBox("Öğrencinin harfli notu: FF dir") End Select Next Tek kadranlı hesap makinesinin nesneler ile yazılması. Aşağıda, programın amacına uygun bir form tasarımı gösterilmiştir. Tasarımda sadece üç sayı (1,2 ve 3) ve iki işlem (toplama, çıkarma) gösterilmiştir. Eğer üç sayı ve iki işlem ile istenen yapılabilirse, program dört işlem ve on sayıya kolayca çıkarılabilir. İpucu1: Kadrandaki sayıların soldan sağa doğru yazılması gerektiğinden, sayıların yazılacağı kadran a (textbox1) bu özelliğin verilmesi gerekir. Bunun için tasarım aşamasında textbox1 nesnesinin özelliklerinden TextAlign, Left durumundan Right durumuna getirilmesi gerekir. İpucu2: General Declerations bölümünde yapılan genel tanımlamalara dikkat edin, bu tanımların diğer yordamlarda da geçerli olabilmesi için böyle yapılmıştır. Public Class Form1 Dim arti_basildi As Boolean = False Dim arti As Boolean = False Dim eksi_basildi As Boolean = False Dim eksi As Boolean = False Dim kadran As Double 9-6

76 Private Sub Button1_Click() If (arti_basildi = True) Or (eksi_basildi = True) Then kadran = Val(TextBox1.Text) TextBox1.Text = "1" arti_basildi = False eksi_basildi = False Else TextBox1.Text = TextBox1.Text & "1" End If Private Sub Button2_Click() If (arti_basildi = True) Or (eksi_basildi = True) Then kadran = Val(TextBox1.Text) TextBox1.Text = "2" arti_basildi = False eksi_basildi = False Else TextBox1.Text = TextBox1.Text & "2" End If Private Sub Button3_Click() If (arti_basildi = True) Or (eksi_basildi = True) Then kadran = Val(TextBox1.Text) TextBox1.Text = "3" arti_basildi = False eksi_basildi = False Else TextBox1.Text = TextBox1.Text & "3" End If Private Sub Button4_Click() arti_basildi = True arti = True Private Sub Button5_Click() eksi_basildi = True eksi = True Private Sub Button6_Click() If arti = True Then TextBox1.Text = kadran + Val(TextBox1.Text) arti = False ElseIf eksi = True Then TextBox1.Text = kadran - Val(TextBox1.Text) eksi = False End If End Class 9-7

77 BÖLÜM

78 HAZIR FONKSİYONLAR IMPORTS ifadesi Imports, Microsoft firmasının Visual Studio ile Netframe altında tanımladığı ortak kütüphaneleri kullanabilme ifadesidir. Bu ifade sayesinde Visual Studio içindeki programlama dilleri (Visual Basic, C#, vs.) bazı kütüphaneleri ortak olarak kullanabilmektedir. Imports ifadesi, program satırlarının en üstüne (Public Class satırından önce) yazılmalıdır. Aksi halde hata mesajı ile karşılaşılır. Doğru yer, Doğru Kullanım Yanlış yer, Yanlış Kullanım Matematiksel Fonksiyonların VB de Kullanılabilmesi Imports System.Math ifadesi Import System.Math ifadesi, Math Class ı (sınıfı) içindeki matematiksel fonksiyonların kullanılabilmesini sağlar. Matematiksel fonksiyonları (Math sınıfı elemanlarını), VB içinde kullanabilmenin iki yolu vardır: 1. Imports System.Math satırını, yukarıda anlatıldığı şekliyle programın en üst satırlarında (Public Class satırından önce) kullanmak, 2. Aşağıdaki fonksiyonların önünde "MATH." Ifadesini kullanmak (Örneğin; Abs fonksiyonunu kullanabilmek için, Math.Abs yazmalısınız). 10-2

79 Bazı Math Fonksiyonları Abs Max Min Pi Sign E Exp Log Log10 Round Sqrt ACos ASin ATan Cos Sin Tan Anlamı Fonksiyona verilen sayının mutlak değerini almak için kullanılır. Örn.: Math.Abs(-4) sonuç 4 İki sayıdan büyük olanını bulmak için kullanılır (yalnızca iki sayı için işlem yapar). Örn.: Math.Min(3,4.5) sonuç 4.5 İki sayıdan küçük olanını bulmak için kullanılır (yalnızca iki sayı için işlem yapar). Örn.: Math.Max(3,4.5) sonuç 3 Pi sayısını (pi= 3, ) elde etmek için kullanılır. Örn.: Math.Pi Sayı pozitif ise 1, negative ise -1, 0 ise 0 değerini veren işaret fonksiyonunun işlevi için kullanılır. Örn.: Math.Sign(2072) sonuç 1 E nin 1 tabanına göre değerini elde etmek için kullanılır. Örn.: Math.E sonuç (2, ) E nin istenilen tabana gore değerini elde etmek için kullanılır. Örn.: Math.Exp(2) sonuç (7, ) Verilen tabana gore Doğal Logaritma değerini elde etmek için kullanılır Örn.: Math.Log(1) sonuç 0 10 tabanına gore Logaritma değerini elde etmek için kullanılır. Örn.: Math.Log10(1000) sonuç 3 Verilen bir sayının, istenen hassasiyette yuvarlanması için kullanılır. Kullanım şekli: Round(sayı,hassasiyet). Genel ifadedeki "hassasiyet" kullanılması zorunlu değildir, kullanılmazsa, 0 (sıfır, virgülden sonra hassasiyet olmasın) anlamındadır. Örn1.: Math.Round(3.567, 2) sonuç 3.57 Örn2.: Math.Round(3.67) sonuç 4 Örn3.: Math.Round( ) sonuç -3 Verilen değerin karekökünü hesaplamak için kullanılır. Örn.: Math.Sqrt(25) sonuç 5 Radyan cinsinden Arc Cosinus değerini verir Radyan cinsinden Arc Sinus değerini verir Radyan cinsinden Arc Tangent değerini verir Radyan cinsinden Cosinus değerini verir Radyan cinsinden Sinus değerini verir Radyan cinsinden Tangent değerini verir Imports Microsoft.VisualBasic ifadesi Imports Microsoft.VisualBasic ifadesi, özellikle Visual Basic 6.0 daki birçok komut ve hazır fonksiyonun, VB 2005 sürümünde kullanılmasını sağlar. Bu ifade içinde, dersimizin içeriğine uygun olan hazır fonksiyonların belli başlıları, aşağıda anlatılmaya çalışılmıştır. Imports Microsoft.VisualBasic ifadesi içinde tanımlı hazır fonksiyonları, VB içinde kullanabilmenin iki yolu vardır: 1. Imports Microsoft.VisualBasic satırını, Imports konusunda (önceki sayfa) anlatıldığı şekliyle programın en üst satırlarında (Public Class satırından önce) kullanmak, 2. Aşağıdaki fonksiyonların önünde "Microsoft.VisualBasic." Ifadesini kullanmak (Örneğin; int fonksiyonunu kullanabilmek için, Microsoft.VisualBasic.int yazmalısınız). 10-3

80 VB de en çok kullanılan komutlardan olan Msgbox ve Inputbox, Microsoft.VisualBasic sınıfında bulunan komutlardandır. Bu sınıf (Microsoft.VisualBasic) VB nin açılışta doğrudan yüklediği sınıflardan olduğu için, Msgbox ve Inputbox komutları sözkonusu sınıf belirtilmeden de kullanılabilmektedir. Msgbox ve Inputbox komutunlarının bağlı oldukları sınıf ile aslında kullanılması gereken yazım şekilleri aşağıda verilmiştir. ad = Microsoft.VisualBasic.InputBox("Öğrenci ismini verin") Microsoft.VisualBasic.MsgBox("Sonuç=" & bd) Yukarıda anlatılan sebepten dolayı, bu örnek satırlar aşağıdaki şekilde kullanılabilmektedir. ad = InputBox("Öğrenci ismini verin") MsgBox("Sonuç=" & bd) Microsoft.VisualBasic Sınıfı içindeki Sayısal Fonksiyonlar Fix ve int Fonksiyonları Her iki fonksiyon da, sayısal değerlerin tamsayılı kısımlarını bulmak için kullanılır. İki fonksiyon arasında sadece eksi (-) sayılarda bir fark bulunmaktadır. Örnekler yanda verilmiştir. Int (3.5) sonuç 3 Fix (3.5) sonuç 3 Int (3.9) sonuç 3 Fix (3.9) sonuç 3 Int (3.1) sonuç 3 Fix (3.1) sonuç 3 Int (3) sonuç 3 Fix (3) sonuç 3 Int (-3.5) sonuç -4 Fix (-3.5) sonuç -3 Int (-3.9) sonuç -4 Fix (-3.9) sonuç -3 Int (-3.1) sonuç -4 Fix (-3.1) sonuç -3 Int (-3) sonuç -3 Fix (-3) sonuç -3 RND( ) Fonksiyonu Bilgisayara 0 ile 1 arasında ve bu değerlere eşit olmayan rasgele ondalıklı sayı ürettirmek için kullanılır. Daha çok oyun ve tahmine dayalı programlarda kullanılır. Tek başına kullanıldığında sonuç ondalıklı bir sayısal değerdir. Ancak çoğu kez ondalıklı bir rasgele sayı yerine tamsayı bir değer daha çok kullanışlıdır. Bu nedenle rnd fonksiyonu daha çok int fonksiyonu ile beraber kullanılır. Rnd satırının rasgele üreteceği en küçük değer gibi bir değer, üreteceği en büyük değer 0, gibi bir değerdir. Örnek olarak 1 ile 5 arasında bir tamsayı değer üretebilmek için rnd ifadesinin önce 5 ile çarpılıp int fonksiyonu ile tamsayılı kısmının alınması (bu durumda elde edilecek en küçük değer 0, elde edilecek en büyük değer 4 sayısıdır) ve daha sonra elde edilen değerin 1 sayısı ile toplanması gerekir. Buna göre uygun satır şu şekilde olmalıdır. (Int (rnd * 5))

81 Örnekler : (Int (rnd( ) * 50)) 0 ile 49 arasında rasgele bir tamsayı sayı üretir (Int (rnd( ) * 50))+1 1 ile 50 arasında rasgele bir tamsayı sayı üretir (Int (rnd( ) * 50))- 7-7 ile 42 arasında rasgele bir tamsayı sayı üretir Randomize( ) Fonksiyonu Bu fonksiyon rnd fonksiyonuna her defasında farklı rasgele sayılar ürettirmek için kullanılır. Bu özelliğinden dolayı bu fonksiyon mutlaka rnd fonksiyonundan önce işleme girmesi gerekir. Eğer bu gerçekleşmezse rnd fonksiyonu her defasında aynı değerleri üretir. Dim i,a as byte For i=1 to 5 a=rnd() debug.writeline (a) Next I Yandaki örnekte program her çalıştırılışında, ilk çalıştırılışında verdiği 5 rasgele sayıyı tekrar edecektir. Bunu önlemek için programa rnd fonksiyonu işleme girmeden önce randomize komutunu işleyeceği bir satırın ilave edilmesi gerekir. Dim i,a as byte Randomize( ) For i=1 to 5 a=rnd() debug.writeline (a) Next I Yandaki örnekte program her çalıştırılışında bir diğerine benzemeyen 5 rasgele sayı verecektir. 10-5

82 Bir programın adım adım çalıştırılması Hazırlanan programın normal olarak çalıştırılması F5 tuşuna basılarak gerçekleştirilir. Fakat bazen programın çeşitli aşamalarında program içinde kullanılan değişken veya değişkenlerin aldıkları değerler adım adım izlenmesi gerekebilir. Bu işlem programın, belli kısımlarında doğru değerleri üretip üretmediğinin sınanması açısından önemlidir. Böyle durumlarda program F5 yerine F8 tuşuna basılarak çalıştırılır. Bu durumda programı oluşturan her bir satırın işlenmesi sonucunda bilgisayar kullanıcıyı bekler ve bir sonraki satıra geçmek için F8 tuşuna basılmasını gerekir. Programın durduğu satır ayrı bir renk ile VB tarafından kullanıcıya gösterilir, işte bu aşamada değişkenlerin aldıkları her bir değer bilgisayardan öğrenilebilir. Bunun için fare göstergeci (imleci) istenilen değişkenin üzerine getirilip fare tıklanmadan imleç bekletilirse, imlecin üzerinde tutulduğu değişkenin o andaki durumu VB tarafından değişkenin alt tarafında kullanıcıya ekranda gösterilir. Bundan sonra kullanıcı açısından iki seçenek vardır; ya programı kaldığı yerden yine adım adım devam ettirmek (bu durumda her bir defasında yine F8 tuşuna basılmalıdır) veya programı kaldığı yerden normal bir şekilde devam ettirmek (bu durumda F5 tuşuna basılmalıdır). Konu ile ilgili örnek bir program aşağıda verilmiştir. Bu örnekte bilgisayara verilen n adet sayı içinden kaç tanesinin sıfıra eşit, kaç tanesinin sıfırdan küçük, kaç tanesinin sıfırdan büyük olduğunun bilgisayara buldurulup, elde edilen sonuçların ekrana yazdırılması amaçlanmaktadır. Dim dt, p, k, b, h As Integer, sayi As Double dt = InputBox("Kaç sayı vereceksiniz") For p = 1 To dt sayi = InputBox("Sayiyi verin") Select Case sayi Case Is < 0 k = k + 1 Case Is > 0 b = b + 1 Case Else h = h + 1 End Select Next MsgBox(dt & " adet sayıdan " & k & " tanesi sıfırdan küçüktür") MsgBox(dt & " adet sayıdan " & b & " tanesi sıfırdan büyüktür") MsgBox(dt & " adet sayıdan " & h & " tanesi sıfıra eşittir") 10-6

83 BÖLÜM

84 Hazır Dizi-String Fonksiyonlar Aşağıda Microsoft.VisualBasic Sınıfı içindeki Dizi-String Fonksiyonlar listelenmiştir. Tabloda geçen Dizi ifadesi, String ifade yerine kullanılmıştır. Fonksiyon Anlamı Örnek Sonuç Lcase Dizinin karakterlerini küçük harfe çevirir Lcase ( AYŞE ) ayşe Ucase Dizinin karakterlerini büyük harfe çevirir Ucase ( ayşe ) AYŞE Len Dizinin kaç karakterden oluştuğunu bulur Len ( Ayşe ) 4 Mid Dizinin soldaki belirtilen karakterden başlayarak sağa doğru kaç karakter alınacağını bulmak için kullanılır. Bu fonksiyon sadece ortadan ayırma (yanda örn1.), sadece sağdan ayırma (örn.2, Right fonksiyonu yerine) ve sadece soldan ayırma (örn.3 Left fonksiyonu yerine) işlemlerinde de kullanılır. Örn.1: Ortadan ayırma Mid ( Ayşe, 2, 1) Ayşe dizisinde, Soldan 2. karakterden başlayıp 1 karakter alınmaktadır Örn.2: Soldan ayırma Mid ( Ayşe, 2, 2) Örn.2: Sağdan ayırma Mid ( Ayşe, 3, 2) Ltrim Dizinin solundaki boşlukları yoketmek için Ltrim ( Ayşe ) Ayşe kullanılır Rtrim Dizinin sağındaki boşlukları yoketmek için Rtrim ( Ayşe ) Ayşe kullanılır Trim Dizinin solundaki ve sağındaki boşlukları yoketmek için kullanılır (string ifade içindeki boşluklara bu komutun bir etkisi yoktur) Trim ( Ay şe ) Ay şe Space Belirtilen sayıda boşluk verdirmek için Space (5) kullanılır Str Sayısal değeri dizi haline çevirir. Bu Str (23) 23 fonksiyona string ifade girilmesi, VB nin hata vermesine neden olur (str( abc ) gibi). Val String ifadeyi sayısal değere çevirir. Val ( 23 ) Val ( Ayşe ) Val ( A12yşe ) Örnek1: Bilgisayara verilen bir ifadenin (cümlenin) içinde kaç adet a harfi bulunduğunu sayan ve sonucu ekrana yazan programı yazın. Not: Aşağıdaki programda karakteri ile başlayan ve yeşil renk ile gösterilen ifadeler açıklama satırlarıdır. Bu satırlar bilindiği gibi programın işleyişini etkilemez, dolayısıyla bu satırlar çıkarılarak program sadeleştirilebileceği gibi aşağıdaki şekilde de çalıştırılmasında istenilen sonucun elde edilmesi açısından bir sakınca ve yanlışlık olmayacaktır. Imports Microsoft.VisualBasic Public Class Form1 Private Sub Form_Load() Program içindeki değişkenler tanımları Dim cumle As String Dim harf As String Dim cu As Integer Dim p As Integer Dim say As Integer say=0 Bilgisayara bir cümle veriliyor. Örnek: bilgisayara acaba ifadesi verilirse Hafızada cumle değişkenin karşılığı acaba olacaktır (cumle= acaba ). cumle = InputBox("Herhangibir Cümle yazın") Bilgisayara cumle değişkeni ile verilen ifadenin (cümlenin) y Ay şe 11-2

85 Len fonksiyonu ile kaç karakterden oluştuğu bulduruluyor ve bu değer cu değişkenine aktarılıyor. Örneğe göre acaba ifadesinin hafızada karşılığı 5 olacaktır (cu=5). cu = Len(cumle) 1 den başlayıp cümlenin karakter sayısına (cu) (örneğe göre For çevrimi 5 kez dönecektir) kadar devam edecek bir For çevrimi açılıyor, Çünkü bilgisayara verilen ifadenin (cümlenin) herbir karakterinin tek tek a harfine eşit olup olmadığının araştırılması gerekiyor For p = 1 To cu Bilgisayara verilen ifadenin soldan p. (inci) karakterinden başlayarak 1 karakteri Mid fonksiyonu ile harf değişkenine atanıyor. Örnek: 3. (üncü) çevrimde (p=3) harf değişkenin karşılığı a olacaktır. Çünkü cumle değişkeninin soldan itibaren p.(inci) yani 3.(üncü) karakterinden itibaren 1 karakteri Mid fonksiyonu ile alınıp harf değişkenine eşitlenmektedir. harf = Mid(cumle, p, 1) harf değişken değerinin a harfine eşit olup olmadığı araştırılıyor, eşit ise say değişkeni 1 artırılıyor, değil ise döngüye devam ediliyor If harf = "a" Then say = say + 1 End If Next p Döngüden çıkıldığında bilgisayara verilen ifadenin (cümlenin) içinde kaç adet a karakterinden bulunduğu say değişkeni ile artık bilinmektedir, dolayısıyla say değişkeninin ekrana yazdırılması programı bitirecektir. MsgBox (cumle & " Cümlesinde a harfinden " & say & " adet var") End End Class Örnek2: Bilgisayara verilen bir ifadenin (cümlenin) içinde, istenilen harften kaç adet bulunduğunu sayan ve sonucu ekrana yazan programı yazın. Not: Birinci örneğe göre bu programın tek farkı; bilgisayarın kendisine verilen ifadenin (cümlenin) içinde hangi karakteri (harfi) araştıracağını bilmemesidir (önceki programda biliyordu ve bu karakter a harfi idi). Bundan dolayı önceki programa ilave olarak ayrıca verilen cümle içinde hangi harfi araştırması gerektiğinin de sordurulması gerekmektedir. Imports Microsoft.VisualBasic Public Class Form1 Private Sub Form_Load() Dim cumle As String Dim harf As String Dim hangiharf As String Dim cu As Integer Dim p As Integer Dim say As Integer say=0 cumle = InputBox("Herhangibir Cümle yazın") Dikkat: önceki programda bilgisayara verilen ifadeninin içinde araştırılması gereken harf sordurulmuyordu, çünkü biliniyordu ve a idi, halbuki şimdi bilinmiyor onun için aşağıdaki satıra gerek vardır. 11-3

86 hangiharf = InputBox(cumle & " Cümlesinde hangi harfi araştırıyorsunuz") cu = Len(cumle) For p = 1 To cu harf = Mid(cumle, p, 1) Dikkat: Önceki programda harf değişkeninin karşılığı a ile karşılaştırılırken şimdi araştırılması istenen karakter ile karşılaştırılıyor If harf = hangiharf Then say = say + 1 End If Next p MsgBox (cumle & " Cümlesinde " & hangiharf & " harfinden " & say & " adet var") End End Class Örnek3: Bilgisayara verilen bir cümleyi sondan başa doğru (tersini) yazan programı yazın. Yardım: Öncelikle bilgisayarın cumle = InputBox("Tersden yazılacak cümleyi girin") satırı ile hangi cümlenin tersinin yazdırılacağını bilmesi (öğrenmesi) gerekir. Daha sonra cu = Len(cumle) satırı ile bilgisayara verilen cümlenin kaç karakterden oluştuğu buldurulur ve bulunan değer cu değişkenine aktarılır. Bundan sonra sıra cümlenin tersinin yazdırılmasına gelmektedir. Bunun için verilen cümledeki karakter sayısı kadar dönecek bir For çevriminin açılması gerekir. Dikkat: For çevrimi 0 dan başlayıp cu-1 e kadar gitmektedir (yani sonuçta yine verilen cümlenin karakter sayısı kadar dönmektedir). Bunu şu şekilde açıklayabiliriz: Örnek olarak bilgisayara tersi yazdırılacak ifadenin hedef olarak verildiğini düşünelim. Yazacağımız programın çalışması sonucunda bilgisayardan hedef ifadesinin tersi olan fedeh sözcüğünün yazdırılmasını bekliyoruz demektir. Bunun sırasıyla; verilen ifadenin son harfinin, sondan bir önceki harfinin, sondan iki önceki harfinin, sondan üç önceki harfinin şeklinde Mid fonksiyonu ile alınması gerekmektedir. Örnek olarak For çevriminin ilk döngüsüne ele alırsak; ilk döngü değerinde mid fonksiyonu şu şekilde olmalıdır Mid( hedef, hedef sözcüğünün son karakterinin soldan itibaren sayısı, bir karakter alınacağı için 1 sayısı), yani kısaca döngülere gore yaz değişkeninin alacağı değerler aşağıdaki şekilde olmalıdır. 1.döngü yaz = f = Mid( hedef, 5,1) t=f 2.döngü yaz = e = Mid( hedef, 4,1) t=fe 3.döngü yaz = d = Mid( hedef, 3,1) t=fed 4.döngü yaz = e = Mid( hedef, 2,1) t=fede 5.döngü yaz = h = Mid( hedef, 1,1) t=fedeh Dolayısıyla bu döngünün içinde önce 5, sonra 4, sonra 3, sonra 2 ve en sonunda 1 olacak bir yapı kurulması ve bunun mid fonksiyonun 2. parametresi olarak yazılması gerekmektedir. Bundan dolayı yaz = Mid(cumle, cu - p, 1) yapısı kurulmuştur. Ayrıca dikkat edilmesi gereken bir diğer nokta ise t = t + yaz sayacıdır. Sayaçlar kümülatif olarak verilen sayıları toplayabilecekleri gibi, yine bu örnekte olduğu gibi kümülatif olarak dizileri de (ifadeleri de) toplayabilirler. 11-4

87 Programın nesneler yardımı olmadan sadece inputbox ve msgbox ile yazılması Imports Microsoft.VisualBasic Public Class Form1 Private Sub Form1_Load() Dim cumle As String Dim t As String Dim cu As Integer Dim p As Integer t = "" t String ifadesinin başlangıç değeri cumle = InputBox("Tersden yazılacak cümleyi girin") cu = Len(cumle) For p = 0 To cu - 1 yaz = Mid(cumle, cu - p, 1) t = t + yaz Next p MsgBox t End End Class Programın nesneler yardımı ile yazılması Programın nesneler ile yazılabilmesi için öncelikle Form ekranın tasarlanması ve Form ekranı yüklendiğinde ekranda nelerin nasıl görüleceğinin belirlenmesi gerekir. Aşağıda ilk Form ekranı ve bu Form ekranındaki nesneler görülmektedir. Daha sonra ilk Form1 ekranı yüklendiğinde Form1 ekranın nasıl görülmesi isteniyorsa, bu ifadeler Private Sub Form1_Load(). Yordamının arasına yazılır. İlk Form1 ekranı yüklendiğinde Label1, Label2, Textbox1 ve Textbox2 ifadeleri değişeceğinden bu nesnelerin karşılıkları Form1_load Sub yordamına aşağıdaki gibi yazılmıştır. Private Sub Form1_Load() Label1 nesnesinin başlığı tanımlanıyor Label1.Caption = "Tersi bulunacak Cümleyi Verin" Label2 nesnesinin başlığı tanımlanıyor Label2.Caption = "Verilen Cümlenin Tersi" Textbox1 nesnesinin içeriğini başlangıçda boş olması isteniyor Textbox1.Text = "" Textbox2 nesnesinin içeriğini başlangıçda boş olması isteniyor Textbox2.Text = "" 11-5

88 Buna göre program çalıştırıldığında İlk Form1 ekran görüntüsü aşağıdaki gibi olmaktadır. TextBox1 Nesnesi TextBox2 Nesnesi Textbox1 kutusuna Tersi bulunacak Cümleyi Verin ifadesine karşılık, cümle yazıldıktan sonra Enter tuşuna basılacağı hesaplanarak; Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e _ As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress Dim keyascii As Integer = Asc(e.KeyChar) If keyascii = 13 Then tersini_bul() End If yordamı düşünülmüş ve programa ilave edilmiştir. Sonuçta Enter tuşuna basıldığında yukarıdaki yordama gore KeyAscii değeri 13 olmakta ve program tersini_bul yordamına gitmektedir. Tersini_bul yordamı ise bu programdan once yazılan programın nesnesiz yazılışı ile neredeyse birebir aynıdır. Ayrıldığı noktalarda program üzerinde gerekli hatırlatmalar yapılmıştır. Not: Bilgisayarın klavyesindeki özel işaret, rakam ve harf tuşları bilgisayar tarafından ASCII denilen bir kodlama sistemine göre kodlanmış ve bu sayı değerlerine göre bilinmektedirler. Dolayısıyla bu kodlama sistemine göre "ENTER" tuşunun karşılığı 13 sayısıdır (örnek olması amacıyla, büyük "A" harfinin sayı karşılığı 65 dir). Private Sub Form1_Load() Label1 nesnesinin başlığı tanımlanıyor Label1.Caption = "Tersi bulunacak Cümleyi Verin" Label2 nesnesinin başlığı tanımlanıyor Label2.Caption = "Verilen Cümlenin Tersi" Textbox1 nesnesinin içeriğini başlangıçda boş olması isteniyor Textbox1.Text = "" Textbox2 nesnesinin içeriğini başlangıçda boş olması isteniyor Textbox2.Text = "" Private Sub tersini_bul() Dim cumle As String Dim t As String Dim cu As Integer Dim p As Integer t = "" Textbox1 kutusunun içine yazılanlar cumle değişkenine atanıyor cumle = Text1.Text cu = Len(cumle) For p = 0 To cu - 1 yaz = Mid(cumle, cu - p, 1) t = t + yaz Next p 11-6

89 t değişken değeri ile bulunan (verilen ifadenin tersi) Textbox2 kutusuna yazdırılıyor Textbox2.Text = t Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e _ As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress Dim keyascii As Integer = Asc(e.KeyChar) If keyascii = 13 Then tersini_bul() End If Ödev: Bilgisayara verilen bir ifadeyi şifreli hale getiren ve aynı şifreye göre; şifreli verilen bir ifadeyi okunabilir hale dönüştüren programı yazın. Combobox nesnesi ComboBox nesnesi birden fazla seçeneği tek satırda göstermek ve seçilene göre işlem yapmak için kullanılır. Örnek olarak ComboBox nesnesine üç adet isim girildiğini ve bu isimlerden bir tanesi seçildiğinde form ekranına yerleştirilen bir TextBox nesnesinde seçilene uygun bir mesajın yazdırıldığı programı düşünelim. Buna göre, uygun form ekran görüntüleri ve programın kodu aşağıda listelenmiştir. Çalıştırma ekranında ComboBox nesnesinde görülen ilk değerin, Combo1.Text komut satırı ile ve ComboBox nesnesindeki seçeneklerin de Combo1.Items.Add komut satırı ile programa ilave edildiğine dikkat edin. Private Sub Form1_Load() ComboBox1.Text = "Bir isim seçin" ComboBox1.Items.Add("Ahmet") ComboBox1.Items.Add("Ayşe") ComboBox1.Items.Add("Mehmet") Programın Form tasarım ekranı Private Sub ComboBox1_Click() If ComboBox1.Text = "Ahmet" Then Textbox1.Text = "Ahmet seçildi" ElseIf Combobox1.Text = "Ayşe" Then Textbox1.Text = "Ayşe seçildi" ElseIf Combobox1.Text = "Mehmet" Then Textbox1.Text = "Mehmet seçildi" End If ComboBox1 nesnesi TextBox1 nesnesi Programın çalıştırma ekranı Programın çalıştırma ekranı 11-7

90 VB de Zaman kontrollü programlar yazılması, TimeOfTime ve Timer komutları ve Timer nesnesi TimeOfDay Komutu: Bilgisayarın çalışan saatini; saat:dakika:saniye (örnek: 23:35:12) formatında veren komuttur. Örnek: msgbox (timeofday). Bu satır işlendiğinde o andaki zaman; saat, dakika ve saniye cinsinden ekranda gösterilir. (Bu komut Microsoft.VisualBasic sınıfına aittir, dolayısıyla çalıştırılabilmesi için, daha önce de anlatıldığı gibi, program satırının en başında 'Imports Microsoft.visualbasic' komut satırının kullanılması gerekir). Timer Komutu: Gece yarısından (00:00:00) bu yana geçen zamanı saniye cinsinden (ondalıklı olduğundan) yaklaşık olarak veren komuttur. (Timer komutu da Microsoft.VisualBasic sınıfına aittir). Bu komut tamsayı alma komutu olan int ile birlikte kullanılırsa saniye cinsinden tam değerler elde edilir. Örnek: msgbox (timer) veya msgbox (int(timer)). Bu satır işlendiğinde gece yarısından bu yana geçen süre saniye cinsinden ekranda gösterilir. Komutun işleyişi, bilgisayarın saati (ekranın sağ altında gösterilen saat) çift tıklanarak, saat gece yarısına ayarlanır (00:00:00) ve msgbox (int(timer)) satırı işleme sokulursa daha iyi anlaşılacaktır. Bu durumda elde edilen değer; sizin saati gece yarısına ayarladığınız zamandan bu satırın işleyişine kadar geçen sürenin, saniye cinsinden ekrana yansıması olacaktır. Bu işlemin sonucunda bilgisayarın işleyen saatini tekrar eski haline getirmeyi unutmayın! Timer Nesnesi: Zaman kontrollü programların yazılmasında kullanılan bir nesnedir. Timer kontrolünün programa ilave edilebilmesi için, VB ekranının sol tarafında yer alan Toolbox penceresinden Timer nesnesinin (saat şeklindeki nesne - ) üzerine çift tıklanması gerekir (Timer nesnesini Toolbox-Components nesne grubunda bulabilirsiniz). Bu durumda form ekranına timer nesnesinin geldiğini göreceksiniz. Timer nesnesi için unutmamanız gereken bir durum şudur; bu nesnenin resmi, tasarım ve programı çalıştırma aşamalarında form ekranın altında görülür. Form ekranının altına getirilen Timer nesnesinin üzerine bir kez tıklayıp nesneyi aktif hale getirin ve nesnenin özeliklerine bakın (ekranın sağ tarafındaki properties penceresi). Timer nesnesinin bizim için en önemli özelliği interval özelliğidir. Buraya her saniye için 1000 değerine karşılık gelecek şekilde bir değer yazmalısınız. Örneğin interval=2000 yaklaşık olarak 2 saniyeye denk gelmektedir. Bunun anlamı şudur; VB yaklaşık olarak her 2 saniyede bir timer yordamına gidecek ve orada yapılması gerekenleri yapıp sonra diğer işlemlerine bakacaktır. Örneğimizdeki her 2 saniyede yapılacak işlemleri yazabilmek için form ekranındaki timer nesnesine çift tıklamalısınız. Bu durumda aşağıdaki yordam ekrana gelecektir; 11-8

91 Private Sub Timer1_Tick() Debug.Write ( a ) Şimdi artık her geçen 2 saniyede yapılması istenenleri bu iki satır arasına yazabilirsiniz. Örnekte, her iki saniyede (interval değerinin 2000 verildiği kabul edilerek), immediate penceresine yan yana gelecek şekilde bir a harfi yazılacaktır. Timer nesnesinin program çalıştırıldığında aktif olabilmesi için, bu nesnenin Enabled özelliğinin True olması gerekir, bu özellik False ise, Timer nesnesinden beklenenler gerçekleşmeyecektir. Örnek 1 Timer nesnesi ile ilgili 2 Örnek Bir program yazdığımızı ve bu programda kullanıcıdan bir sayı istediğimizi varsayalım, fakat bu süreye bağlı olsun. Kullanıcıya verdiğimiz süre 5 saniyedir, yani 5 saniye içinde kullanıcı mutlaka bir cevap versin, vermezse textbox nesnesinde Artık bir cevap vermelisin ifadesi görünsün, 10 saniye geçtiği halde cevap vermezse bu durumda ilgili yere Hadi artık bir sayı ver şeklinde bir mesaj yazdıralım. Kullanıcı programın herhangi bir yerinde herhangi bir tuşa basarsa bu durumda zamana bağlı olarak, istenen zamanın içinde veya dışında olmasına göre istenen işlemler gerçekleştirilebilir. Bu durum örneğimizdeki amacın dışında kalmaktadır. Örneğimizde timer nesnesinin interval değeri olarak 1000 değerini veriyoruz ki, her 1 saniyede program timer nesnesinin tick yordamına yönlensin ve orada ne yapılması gerekiyorsa onları gerçekleştirsin. Hatırlatma: Örnekte textbox nesnesi için keypress metodu kullanılmıştır. Bu metod, programın çalışması sırasında kontrol, text nesnesinde iken bir tuşa basılması (keypress) durumunda ne yapılması gerekiyorsa o durumun programlanması için düşünülmüştür. Örneğimizde, belirlenen zamanda veya zamanın aşılması durumunda verilen cevap, textbox nesnesine yazılanlarla ilgilidir. Bu durumda text nesnesine yazılanlara göre istenen işlemler için kontrol bu yordamdan başka bir yordama yönlendirilmelidir. Form tasarım ekranı Programın ilk çalıştırma ekranı 5 saniye geçtiği halde kullanıcının cevap vermediği durumda ekran 10 saniye geçtiği halde kullanıcının cevap vermediği durumda ekran 11-9

92 Herhangibir anda herhangibir tuşa basıldığında (örnekde h tuşuna basılmıştır) ekran görünümü Örnek programın kodları Public Class Form1 REM t değeri bütün yordamlarda kullanılacağı için REM General Declerations kısmında tanımlanıyor Dim t As Integer Dim gs As Integer Private Sub Form1_Load() Label2.Text = "Bir sayı verin" TextBox1.Text = "" REM timer değeri tamsayı olarak t değişkenine aktarılıyor t = Int(Timer) Private Sub Timer1_Tick() gs = Int(Timer) - t 'geçen süre gs ile temsil ediliyor Label1.Text = "Geçen süre:" & gs & " saniye" Select Case gs Case 5 '5 sn. geçtiyse TextBox1.Text = "Artık bir cevap vermelisin" Case 10 '10 sn. geçtiyse TextBox1.Text = "Hadi artık bir cevap ver!!" End Select Private Sub TextBox1_KeyPress() REM herhangibir tuşa baslıdığında REM t değeri tekrar timer'e eşitleniyor t = Int(Timer) REM bundan sonrası programa ait diğer işlemlerdir TextBox1.Text = "sonraki işlemler" End Class 11-10

93 Örnek 2 Timer nesnesindeki interval özelliğine verilen değere göre, VB kontrolü her interval değeri gerçekleştiğinde timer yordamına yönlendireceğini yukarıda söylemiştik. Ancak burada dikkat edilmesi gereken bir durum vardır. Bilgisayarın o anda yapmış olduğu bazı işler bu işlemi geciktirebilir. Ekranda bilgisayarın işleyen zamanının gösterildiği bir program düşünelim. Tasarım ekranı ve programın çalıştırıldığı durumdaki görünümü aşağıda gösterilmiştir. Tasarım ekranında timer nesnesinin interval değerini 1000 olarak belirleyin (yani, her geçen 1 saniyede VB bilgisayarın saatini göstersin, eğer her beş saniyede göstersin istiyorsanız interval değerini 5000 yapmalısınız, her iki durumu da deneyin, hala interval özelliğinin yaptığı işi anlayamadıysanız bu örnek interval özelliğini anlamanız için güzel bir örnektir!!). Örnek programın kodları aşağıdaki gibi olacaktır. Private Sub Timer1_Tick() Label1.Text = TimeOfDay Form tasarım ekranı Programın çalıştırma ekranı Yukarıdaki programı çalıştırdığınızda (programı çalıştırmadan önce Timer nesnesinin Enabled özelliğini True yapmayı unutmayın), bilgisayarın saatinin ekranda her bir saniyede gösterildiğini göreceksiniz. Şimdi yukarıdaki programı meşgul edecek bir ilave yapalım. Form ekranına bir adet listbox ve bir adet button nesnesi ilave edelim. Yapmak istediğimiz ilave değişiklik de şu olsun; bilgisayarın saati form ekranında gösteriliyorken biz button nesnesine her basışımızda, 1 sayısından sayısına kadar dönecek boş bir for çevrimi oluşturalım ve çevrimde elde edilen değerleri listbox nesnesinde görmek isteyelim. İşte biz button nesnesine bastığımızda VB boş for çevrimini baştan sona gerçekleştirmek zorunda olduğundan, artık her geçen bir saniyede timer yordamına gidemeyecektir, ancak bu işi bitirdikten sonra timer yordamına bakabilecektir. Bu nedenle sözkonusu sürede form ekranında gösterilen zaman ifadesindeki saniye değerinin artık birer birer artmadığını göreceksiniz. Yukarıda anlatılanlara göre ilgili form ekranları ve programın kodu aşağıda listelenmiştir

94 Private Sub Timer1_Tick() Label1.Text = TimeOfDay Private Sub Button1_Click() Dim k As Integer For k = 1 To ListBox1.Items.Add(k) Next Programın tasarım ekranı Programın çalıştırma ekranı 11-12

Byte (Tamsayı) 1 0 ile 255 arasında 10 sayısı

Byte (Tamsayı) 1 0 ile 255 arasında 10 sayısı Temel Veri Tipleri Aşağıda VBEE de temel olarak kullanılan veri tipleri listelenmiştir. VBEE de, burada verilen veri tiplerinden çok daha fazlası kullanılmaktadır, sözkonusu veri tiplerine, ilgili kitaplardan

Detaylı

Visual Basic Programlama Diline Giriş

Visual Basic Programlama Diline Giriş Visual Basic Programlama Diline Giriş Visual Studio Ürünleri Microsoft firmasının ürünü olan Visual Studio, aşağıdaki paketlerden oluşmaktadır. İlk iki paket ücretlidir, üçüncü paket ilk iki pakete göre

Detaylı

Bilgisayar Programlama. Programlama nedir? Program nasıl yazılır?

Bilgisayar Programlama. Programlama nedir? Program nasıl yazılır? Bilgisayar Programlama Programlama nedir? Bilgisayar; Yazılım ve Donanım olarak temel anlamda ikiye ayrılır. Ekran, disk, klavye, ram vbg donanım birimleri bu dersin kapsamı dışındadır. Ne kadar iyi donanıma

Detaylı

Diziler İndisli Değişkenler

Diziler İndisli Değişkenler Diziler İndisli Değişkenler Aynı tür bilgileri (öğrenci isimleri, şehir isimleri, kapı numaraları, fakülteler vbg.) bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın

Detaylı

Matematiksel Operatörler

Matematiksel Operatörler Matematiksel Operatörler Genel olarak matematiksel işlemlerde kullanılan operatörlerdir. Operatör Anlamı Açıklama ^ Üs Alma C^3 Matematikdeki üs operatörüdür. Verilen ilk sayının ikinci sayı kadar kuvvetini

Detaylı

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

Her Select Case bloğu, mutlaka End Select ile bitmek zorundadır. Select Case Komutu: VB de karar sürecinde kullanılan komutlardandır. Bu yapı ile sadece bir değişkenin durum kontrolü yapılır. Kontrolü yapılacak değişkenin genel olarak alabileceği değerler belirli ise

Detaylı

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.

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. Döngüsü En basit döngü yapısıdır. Hiçbir kontrol yapılmadan ve ifadeleri arasındaki satırların işlem görmesi için kullanılır. Bu yapıda programın terkedilmesi için herhangi bir kontrol olmadığından, döngü

Detaylı

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 Ekrana Metin Yazdırmak Ekranda metin yazdırmak istendiğinde print komutu kullanılır. Kullanımı aşağıda verilmiştir. Parantez içinde

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Kodlarına Yorum Satırı Eklemek Java Paket Kavramı Java Kütüphane Kavramı Konsoldan Veri Çıkışı ve JOPtionPane Kütüphanesi JOptionPane Kütüphanesi Kullanarak

Detaylı

4. Bölüm Programlamaya Giriş

4. Bölüm Programlamaya Giriş 4. Bölüm Programlamaya Giriş Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 4.1. C# ile Program Geliştirme Net Framework, Microsoft firması tarafından açık internet protokolleri ve standartları

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş C Programlama Dr. Serkan DİŞLİTAŞ 1.1. C# ile Program Geliştirme.Net Framework, Microsoft firması tarafından

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama

Detaylı

Sıralı bir dosyayı açmak için FileOpen komutundan faydalanılır. Bu komutun genel kullanılış biçimi aşağıdaki gibidir:

Sıralı bir dosyayı açmak için FileOpen komutundan faydalanılır. Bu komutun genel kullanılış biçimi aşağıdaki gibidir: DOSYALAR Visual Basic de Sıralı ve Rasgele olmak üzere iki tür dosya vardır. Dosyalar en basit ifadesi ile verileri disk üzerinden (hard disk, disket vs.) işlemek amacıyla kullanılırlar ve bu yönü ile

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

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

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne

Detaylı

ASP.NET ile Bir Web Sitesi Oluşturma

ASP.NET ile Bir Web Sitesi Oluşturma 29,30 Eylül 2011 ASP.NET ile Bir Web Sitesi Oluşturma ASP.NET sitesi oluşturmak için File menüsündeki, New açılır listesindeki, Web Site komutuna tıklıyoruz Açılan pencereden C# içindeki ASP.NET Web Site

Detaylı

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

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları 1 Anadolu Üniversitesi Endüstri Mühendisliği Bölümü Değişkenler ve Veri tipleri Visual Basic 6.0 Ders Notları Kaynak: İhsan Karagülle, Zeydin Pala, Visual Basic 6.0, Türkmen Kitabevi, 1999, Beyazıt İstanbul,

Detaylı

C Programlama Dilininin Basit Yapıları

C Programlama Dilininin Basit Yapıları Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade

Detaylı

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken]

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken] Sayaçlar Düzenli olarak artan (+) veya azalan (-) sayı veya string ifadeler elde etmek için kullanılırlar. Eşitliğin her iki tarafındaki değişken isminin aynı olmasına dikkat edin. Bu durum matematik olarak

Detaylı

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

Detaylı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

Detaylı

C# nedir,.net Framework nedir?

C# nedir,.net Framework nedir? 1 C# nedir,.net Framework nedir? C# nedir? C#, C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip iyi yönlerinin alındığı, güçlü basit, esnek, tip-güvenli(typesafe,tür dönüşümlerindeki

Detaylı

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

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği INPUTBOX KULLANIMI InputBox komutu, Basic programlama dilinde program algoritması içinde ekran aracışığı ile bir sorgu yönlendirerek, kullanıcının bilgi girmesini sağlamak amacıyla kullanılır. Bu komutun

Detaylı

Java Temel Özellikleri

Java Temel Özellikleri Java Temel Özellikleri Java Programlama Dili Java programlama dili şu anda dünyadaki en popüler programlama dillerinden biri haline gelmiştir. Java SUN bilgisayar şirketince elektrikli ev aletlerinin birbiriyle

Detaylı

PASCAL PROGRAMLAMA DİLİ YAPISI

PASCAL PROGRAMLAMA DİLİ YAPISI BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama

Detaylı

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum: Bu Derste Öğrenecekleriniz: 1- MS SQL Server 2008 Kurulumu ve Tanıtımı 2- Komut Kullanarak Veritabanı Oluşturma ve Silme 3- SQL Yazım Kuralları Kurulum: Sistem gereksinimleri: Desteklenen işletim sistemleri:

Detaylı

BİLGİSAYAR PROGRAMLAMA MATLAB

BİLGİSAYAR PROGRAMLAMA MATLAB BİLGİSAYAR PROGRAMLAMA MATLAB Arş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi Bu hafta? 1. Matlab ve Programlama Ortamı 2. Matlab Komut Penceresi 3. Matlab de değişken tanımlama 4.

Detaylı

TEMEL BİLGİSAYAR BİLİMLERİ

TEMEL BİLGİSAYAR BİLİMLERİ TEMEL BİLGİSAYAR BİLİMLERİ Doç. Dr. M.Ümit GÜMÜŞAY YTÜ - 2012 2 PROGRAMLAMA MANTIĞI Herhangi bir amaç için hazırlanan programın mantık hataları içermesi durumunda, alınacak sonucunda yanlış olacağı aşikardır.

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları ComboBox Bir Windows açılan kutu sunu temsil eder. ComboBox kontrolü, kullanıcıların bazı değerleri açılan bir listeden seçmesini sağlar. Listeye tasarım anında veya çalışma anında öğe eklenebilir. Listeye

Detaylı

MPLAB IDE v7.60 PROGRAMI KULLANIMI

MPLAB IDE v7.60 PROGRAMI KULLANIMI MPLAB IDE v7.60 PROGRAMI KULLANIMI MPLAB IDE programı mikroişlemciler için hazırlanmış bir derleyici programdır. Microchip firması tarafından hazırlanmıştır. (Resim 1) MPLAB programı assembly dilinde simulasyon,

Detaylı

SIMAN KULLANIM KILAVUZU

SIMAN KULLANIM KILAVUZU SIMAN KULLANIM KILAVUZU Önder Öndemir SIMAN Simülasyon programı Model Çatı ve Deneysel Çatı olmak üzere iki kısımdan oluşur. Model çatı genel itibariyle modullerin ve işlem bloklarının yazıldığı kısımdır.

Detaylı

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA BÖLÜM15 D- VERİ TABANI PROGRAMI 1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA 1.1. Veri Tabanı Kavramları Veritabanı (DataBase) : En genel tanımıyla, kullanım amacına uygun olarak düzenlenmiş veriler

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 1 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlamaya C ile Programlamaya Yazılım: Bilgisayarın işlemler yapması ve karar vermesi

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Kullanıcıdan aldığı veri ya da bilgilerle kullanıcının isteği doğrultusunda işlem ve karşılaştırmalar yapabilen, veri ya da bilgileri sabit disk,

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ II. 9. FORMLAR ve ORACLE FORMS PROGRAMINDA FORM OLUŞTURMA

VERİ TABANI YÖNETİM SİSTEMLERİ II. 9. FORMLAR ve ORACLE FORMS PROGRAMINDA FORM OLUŞTURMA BÖLÜM 9 9. FORMLAR ve ORACLE FORMS PROGRAMINDA FORM OLUŞTURMA Bu bölümde Oracle Forms programı ile örnek bir form hazırlanması anlatılacaktır. 9.1 ORACLE FORMS ile FORM Oluşturma Nasıl Delphi programının

Detaylı

Bilgisayar Programlama MATLAB

Bilgisayar Programlama MATLAB What is a computer??? Bilgisayar Programlama MATLAB Prof. Dr. İrfan KAYMAZ What Konular is a computer??? MATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) a) Geliştirme ortamı b) Komut penceresi

Detaylı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 JAVA DA PROGRAM DENETİMİ VE OPERATÖRLER Java programlama dilinde temel tipleri ve nesneleri yönlendirmek ve değiştirmek için operatörler kullanılır. Atamalar sağ taraftaki

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

SQL Uyarı Programı Kurulum ve Kullanımı

SQL Uyarı Programı Kurulum ve Kullanımı SQL Uyarı Programı Kurulum ve Kullanımı Kurulum 1. SQL Uyarı.zip dosyası açılır. 2. SQL Uyarı.exe programı çalıştırılır. 3. Üstteki ekran açılır ok. Butonuna basılır. 4. Ayarlar ekranı seçilir. 4.1 Server

Detaylı

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

Uygulamalar 4 IsMissing Fonksiyonlar ve Alt Programlar Prosedür Parametreleri Public Function f(x,y,optional t, Optional k) End Function 1. Uygulamalar 4 IsMissing (Değişken) Visual Basic te fonksiyon veya alt programlara giriş parametresi olarak Optional deyimi kullanılırsa o parametre kullanılmadan da o fonksiyon çağrılabilir. IsMissing

Detaylı

C# Form Uygulamaları. Nesne Tabanlı Programlama I (C#) Ders Notu. S.Ü.Akören A.R.E. Meslek Yüksekokulu C.ÖZCAN- F.SARAY

C# Form Uygulamaları. Nesne Tabanlı Programlama I (C#) Ders Notu. S.Ü.Akören A.R.E. Meslek Yüksekokulu C.ÖZCAN- F.SARAY Nesne Tabanlı Programlama I (C#) Ders Notu S.Ü.Akören A.R.E. Meslek Yüksekokulu C.ÖZCAN- F.SARAY C# Form Uygulamaları C# da yeni bir uygulama açmak için File>New>Project seçilir. Daha sonra açılan pencerede

Detaylı

Kets DocPlace LOGO Entegrasyonu

Kets DocPlace LOGO Entegrasyonu Kets DocPlace LOGO Entegrasyonu Kets DocPlace Kurulumu Öncesinde Yapılması Gereken İşlemler Windows 7, Windows 8, Windows Server 2008 R2, Windows Server 2012 veya daha yeni işletim sistemlerinde Programlar

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

Karabük Üniversitesi, Mühendislik Fakültesi...www.ibrahimcayiroglu.com WEB TEKNOLOJİLERİ

Karabük Üniversitesi, Mühendislik Fakültesi...www.ibrahimcayiroglu.com WEB TEKNOLOJİLERİ WEB TEKNOLOJİLERİ VISUAL STUDIO DA YENİ BİR PROJE OLUŞTURMA Visual Studio (VS) programını çalıştırdığımızda karşımıza boş bir ekran gelir. Yeni bir proje oluştururken File>New>Project yolu kullanılarak

Detaylı

Algoritma ve Programlamaya Giriş

Algoritma ve Programlamaya Giriş Algoritma ve Programlamaya Giriş Algoritma Bir sorunu çözebilmek için gerekli olan sıralı ve mantıksal adımların tümüne Algoritma denir. Doğal dil ile yazılabilir. Fazlaca formal değildir. Bir algoritmada

Detaylı

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ BİLGİSAYAR PROGRAMLAMA DERSİ Yrd. Doç. Dr. Fatih TOSUNOĞLU Erzurum Teknik Üniversitesi Mühendislik Fakültesi İnşaat Mühendisliği Bölümü DERS NOTU 3 KONU: M-dosya yapısı ve Kontrol Yapıları M-Dosya Yapısı

Detaylı

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ BİLGİSAYAR PROGRAMLAMA DERSİ 4. DERS NOTU Konu: M-dosya yapısı ve Kontrol Yapıları Hazırlayan: Yrd. Doç. Dr. Ahmet DUMLU 1 M-Dosya Yapısı Bir senaryo dosyası (script file) özel bir görevi yerine getirmek

Detaylı

C# ile NJ Simulatöre Bağlanmak

C# ile NJ Simulatöre Bağlanmak C# ile NJ Simulatöre Bağlanmak Genel Bilgi Sysmac Studio da Değişkenlerin Oluşturulması Windows Form Oluşturulması Gerekli Dosyaların Referanslara Eklenmesi Form1.cs Dosya Yapısı Genel Bilgi Bu dökümanda

Detaylı

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü MATLAB İLE PROGRAMLAMAYA GİRİŞ Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü nedimtutkun@gmail.com 1 2 1. Hafta nın Ders İçeriği Tanıtım MATLAB ile İlgili Temel Bilgiler Tanıtım MATLAB sayısal hesaplama,

Detaylı

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ BİLGİSAYAR PROGRAMLAMA DERSİ 3. DERS NOTU Konu: MATLAB de Temel İşlemler Hazırlayan: Yrd. Doç. Dr. Ahmet DUMLU 1 MATLAB (Matrix Laboratory) sayısal hesaplama dilidir. MathWorks firması tarafından geliştirilmiş

Detaylı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

Imports ifadesi, program satırlarının en üstüne (Public Class satırından önce) yazılmalıdır. Aksi halde hata mesajı ile karşılaşılır.

Imports ifadesi, program satırlarının en üstüne (Public Class satırından önce) yazılmalıdır. Aksi halde hata mesajı ile karşılaşılır. HAZIR FONKSİYONLAR IMPORTS ifadesi Imports, Microsoft firmasının Visual Studio ile Netframe altında tanımladığı ortak kütüphaneleri kullanabilme ifadesidir. Bu ifade sayesinde Visual Studio içindeki programlama

Detaylı

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş Kurulum için ilk önce Sun Microsystems in sitesinden uygun J2SE sürümünü indirin. Ben J2SE v1. 4. 2_16 Windows Installer paketini kullandım J2SE SDK Kurulumu aşağıdaki gibi başlayacaktır. 1 Kurulum tamamlandıktan

Detaylı

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

2013-14 GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI 2013-14 GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI KOÜ Mekatronik Mühendisliği Bölümü/MKT-103-Görsel Programlama Dersi - Ara Sınav J-grubu Ad-Soyad:...No:... J GRUBU-süre:70dk 1.) Aşağıdaki

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 2. BÖLÜM 2 PROGRAMLAMAYA GİRİŞ Programlama Terimleri ve Programlama Ortamı 3 Program Programlama IDE

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi

Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi 2011-2012 Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Programlama Dili Nedir? 2 Programlama dili, yazılımcının bir algoritmayı ifade etmek amacıyla, bir bilgisayara ne yapmasını

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları

Detaylı

INPUTBOX() ile Veri Girişi

INPUTBOX() ile Veri Girişi VISUAL BASIC DE VERİ GİRİŞİ VE EKRAN MESAJLARI INPUTBOX() ile Veri Girişi Yapısı : Default Değer Form Üzerindeki Konum (0,0) sol üst köşe Değişken adı Veri Giriş Kutusu Gövdesindeki Mesaj Veri Giriş Kutusu

Detaylı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra

Detaylı

HESAP MAKİNASI YAPIMI

HESAP MAKİNASI YAPIMI HESAP MAKİNASI YAPIMI 1..Aşağıdakine benzer görünüm ve butonları hazırlayın. 2. 24. Butonun içerisine aşağıdaki kodları yazın. 3. Yeni bir layer ekleyip Frame1 F9 na aşağıdaki kodları ekleyelim. 4. Butonlardan

Detaylı

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım Yazılım Yazılım Bilgisayarlar üretildikleri anda içlerinde herhangi bir bilgi barındırmadıkları için bir işlevleri yoktur. Bilgisayarlara belirli yazılımlar yüklenerek işlem yapabilecek hale getirilirler.

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

C#(Sharp) Programlama Dili

C#(Sharp) Programlama Dili Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin

Detaylı

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. PROGRAMLAMAYA GİRİŞ Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. C de yazılan bir programın çalışması için çoğunlukla aşağıdaki

Detaylı

http://www.microsoft.com/visualstudio/eng/downloads

http://www.microsoft.com/visualstudio/eng/downloads Visual Studio 2012'nin kurulumunu, Visual Studio'nun kullanımını ve Windows Store'da basit bir proje hazırlanmasını anlatacağım. Hepsinden önce Visual Studio ortamından biraz bahsedelim. Visual Studio

Detaylı

DURMAZSOFT ERP KURULUM VE YAPILANDIRMA

DURMAZSOFT ERP KURULUM VE YAPILANDIRMA DURMAZSOFT ERP KURULUM VE YAPILANDIRMA 1. Microsoft SQL Server 2008 R2 Express Edition Kurulum Rehberi SQL Server 2008 R2 Express Edition Limitleri Desteklenen CPU sayısı 1 Desteklenen en fazla bellek

Detaylı

Dinamik Kodlama. [X] Fusion@6. [X] Yeni Fonksiyon

Dinamik Kodlama. [X] Fusion@6. [X] Yeni Fonksiyon Dinamik Kodlama Ürün Grubu Kategori Versiyon Önkoşulu [X] Fusion@6 [X] Yeni Fonksiyon @6 Uygulama @6 Serisi ürünlerde, kullanıcı arabirimlerinin her yerine eklenen dinamik kodlama özelliği ile, programın

Detaylı

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince

Detaylı

Programlama Dillerinde Kullanılan Veri Tipleri

Programlama Dillerinde Kullanılan Veri Tipleri Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs

Detaylı

MatLab. Mustafa Coşar mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar

MatLab. Mustafa Coşar mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar MatLab Mustafa Coşar mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar Sunum Planı MatLab Hakkında Ekran Yapısı Programlama Yapısı Matlab da Programlamaya Giriş Sorular MatLab Hakkında MatLab;

Detaylı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 1 (Değerler, Değişkenler, İşleçler, Tip Dönüşümleri, Mantıksal Operatörler) Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Değerler

Detaylı

MAC İşletim Sistemine Sahip Makineler İçin Elektronik İmza Kurulumu

MAC İşletim Sistemine Sahip Makineler İçin Elektronik İmza Kurulumu MAC İşletim Sistemine Sahip Makineler İçin Elektronik İmza Kurulumu MAC İşletim Sistemine Sahip Makineler İçin Elektronik İmza Kurulumu nda, aşağıdaki adımlar sırası ile takip edilmelidir. 1 - MAC İçin

Detaylı

13 Aralık 2007. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

13 Aralık 2007. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz 13 Aralık 2007 Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL Đlgili Modül/ler : Raporlar KULLANICI TANIMLI RAPORLAR Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz Kendi isteklerinize özel rapor tasarımları

Detaylı

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI NOT: Çalışma kâğıtları Algoritma Tasarımı ve Excel olmak üzere 2 kısımdan oluşmakta ve sınavda her ikisinin de çalışılması gerekmektedir. ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI Bu çalışma sayfalarında

Detaylı

JAVASCRIPT JAVASCRIPT DİLİ

JAVASCRIPT JAVASCRIPT DİLİ JAVASCRIPT JAVASCRIPT DİLİ Netscape Navigator 2.0 ile birlikte geliştirilen JavaScript dili istemci taraflı (client-side) script dilidir. Web sayfalarında dinamik içerik sağlamak ya da kullanıcıyla iletişim

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Ders konuları 1. Programlamaya Giriş 2. Program Denetimi ve Operatörler 3. Nesnelerin

Detaylı

11TA Veritabanı Organizasyonu Dersi MS ACCESS Ders Notları

11TA Veritabanı Organizasyonu Dersi MS ACCESS Ders Notları 11TA Veritabanı Organizasyonu Dersi 20.11.2018 MS ACCESS Ders Notları Access bir veritabanı programıdır. Veritabanı, bir konuyla ilgili çok sayıda kaydın tutulduğu bir bilgi havuzu olarak nitelendirilebilir.

Detaylı

1.1. Yazılım Geliştirme Süreci

1.1. Yazılım Geliştirme Süreci Kazanımlar Bu bolümde; Yazılım geliştirme sureci konusunda bilgi sahibi olacak, Yazılım geliştirme surecinde gerekli olan araçları tanıyacak, Python dilinde program geliştirme ortamlarını inceleyebileceksiniz.

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

Detaylı

Ağ Üzerinde MATLAB kurulum rehberi (Sunucu makine)

Ağ Üzerinde MATLAB kurulum rehberi (Sunucu makine) Ağ Üzerinde MATLAB kurulum rehberi (Sunucu makine) İçindekiler Tablosu Dosyaların Bilgisayara İndirilmesi... 3 Dosyaların Bilgisayara Yüklenmesi... 5 1. İnternet Üzerinden Kurulum 5 1.1. Lisans Dosyasının

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ I

VERİ TABANI YÖNETİM SİSTEMLERİ I BÖLÜM 11 11. SQL de JOIN (BİRLEŞTİRME) İŞLEMİ 11.1. JOIN (Birleştirme) İşlemi Veri tabanı kayıtları oluşturulurken bütün bilgiler bir tabloda değil de, birkaç tablo üzerinde tutulur. Bu dataların daha

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 1 GUI Nesneleri ve Visual Studio IDE Kullanımı

Detaylı

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir. www.csharpturk.net Türkiye nin C# Okulu Yazar Yunus Özen Eposta yunus@yunus.gen.tr Tarih 08.04.2006 Web http://www.yunusgen.tr ARİTMETİK OPERATÖRLER VE KULLANIM ŞEKİLLERİ Bilgisayarlar yapıları gereği,

Detaylı

GİRİ ÇIKIŞ İŞLEMLERİ VE BİLGİ TÜRLERİ

GİRİ ÇIKIŞ İŞLEMLERİ VE BİLGİ TÜRLERİ GİRİ ÇIKIŞ İŞLEMLERİ VE BİLGİ TÜRLERİ GİRİŞ Bilgi ve veriler bilgisayarın veri girişi için kullanılan donanım birimleriyle bilgisayara aktarılabilir. Elbette veri girişinin yapılabilmesi için söz konusu

Detaylı

=A1+A2-A3, =A1*A2/A3,

=A1+A2-A3, =A1*A2/A3, 1 2 3 Formül Oluşturma: Excel de formüller = ile başlar. Örnek formüller; =ortalama(b1;c1) b1 ile c1 hücrelerinin ortalamasını alır =toplam(a1;b1) a1 ile b1 hücrelerinin toplama formülünü verir. =çarpım(a1;b1;c1;..)

Detaylı

mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar

mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar Algoritma ve Programlamaya Giriş mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar İçerik Algoritma Akış Diyagramları Programlamada İşlemler o o o Matematiksel Karşılaştırma Mantıksal Programlama

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

10 LU SAYISAL SİSTEMİ İLE 2 Lİ SAYISAL SİSTEMİ ARASINDA ÇEVİRİM UYGULAMASI

10 LU SAYISAL SİSTEMİ İLE 2 Lİ SAYISAL SİSTEMİ ARASINDA ÇEVİRİM UYGULAMASI 10 LU SAYISAL SİSTEMİ İLE 2 Lİ SAYISAL SİSTEMİ ARASINDA ÇEVİRİM UYGULAMASI Sayısal Sistemler Sayısal sistem, sayıları temsil eden simgeler için bir yazma sistemi yani matematiksel bir gösterim sistemidir.

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Nesne Bellekte yer kaplayan ve içeriklerine

Detaylı

AOSB 2017 EĞİTİM PROGRAMI

AOSB 2017 EĞİTİM PROGRAMI Eğitimin Konusu : Makro Excel Eğitim Tarihi : 04-05-10-11-12 Mayıs 2017 Eğitim Hedef Kitlesi : Excel kulllanıcıları arasında pratiklik ve hız kazanmış, Excel fonksiyonları, Veri Analizi araçlarını kullanma

Detaylı

OPTION BUTTON ve ELSEIF UYGULAMALARI

OPTION BUTTON ve ELSEIF UYGULAMALARI OPTION BUTTON ve ELSEIF UYGULAMALARI OPTION düğmeleri, Muhtelif seçeneklerin olduğu ve bu alternatif seçeneklerden birisinin seçilmesi gerektiği durumlarda kullanılan nesnelerdir. Daire şeklindeki bu option

Detaylı

Çözüm Bilgisayar. Çözüm SIRAMATİK

Çözüm Bilgisayar. Çözüm SIRAMATİK Çözüm Bilgisayar Çözüm SIRAMATİK Çözüm Sıra Sistemi Amaç : Hastanelerde çeşitli birimlerde oluşan hasta sıralarının (poliklinik müracaat, poliklinik hasta kabul, ssk eczane vb.) bankolar önünden uzaklaştırılarak,

Detaylı

NACA PROFİL AİLE GEOMETRİSİ HESAP PROGRAMI KULLANMA KILAVUZU

NACA PROFİL AİLE GEOMETRİSİ HESAP PROGRAMI KULLANMA KILAVUZU NACA PROFİL AİLE GEOMETRİSİ HESAP PROGRAMI KULLANMA KILAVUZU NACA kesit programı çizim programı Visual Basic V5.0 dilinde yazılmıştır. Programın amacı, kullanıcının istediği NACA kesitinin çizimini çok

Detaylı

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

VISUAL BASIC DE İŞLETİM SİSTEMİ DENETİM KOMUTLARI VE FONKSİYONLARI VISUAL BASIC DE İŞLETİM SİSTEMİ DENETİM KOMUTLARI VE FONKSİYONLARI Visual basic kodları yazılırken, yapılması istenen işlerin yanı sıra sistem ile ilgili bazı işlerin yapılması da (klasör oluşturma silme,

Detaylı

Zorunlu BES Kılavuzu PERSONEL BORDROSU PROGRAMINDA ZORUNLU BES İŞLEMLERİ KULLANICI KILAVUZU. Datasoft Yazılım

Zorunlu BES Kılavuzu PERSONEL BORDROSU PROGRAMINDA ZORUNLU BES İŞLEMLERİ KULLANICI KILAVUZU. Datasoft Yazılım PERSONEL BORDROSU PROGRAMINDA ZORUNLU BES İŞLEMLERİ KULLANICI KILAVUZU Zorunlu BES Kılavuzu Datasoft Yazılım 2017.01.30 datasoft@datasoft.com.tr Datasoft Yazılım Zorunlu BES Kılavuzu İçindekiler Zorunlu

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 1 GUI Nesneleri ve Visual Studio IDE Kullanımı

Detaylı