Temel Bİlgİsayar Bİlİmlerİ Burak AYDOĞAN
Bİlgİsayar Nedİr? Bilgisayar çeşitli mantık ve aritmetik işlemleri yapabilmek için programlanabilen çoğunlukla en az bir işlemci ve hafıza biriminden oluşan genel amaçlı bir aygıttır. İşlem sırası ve programlar istenildiğinde değiştirilebileceğinden bilgisayar çok çeşitli problemleri çözebilir.
Bİlgİsayar Donanım: Bilgisayarı oluşturan fiziksel bileşenler Yazılım: Bilgisayarın istenilen görevleri yerine getirmesini sağlayan programlar (sıralı komutlar) topluluğu
BİLGİSAYARIN BİLEŞENLERİ İşlemci Hafıza Giriş – Çıkış birimi Giriş Birimleri Klavye Fare Çıkış Birimleri Ekran Yazıcı Hoparlör Diğer Giriş Çıkış Birimleri Sabit disk CD / DVD Ağ / İnternet Vd...
Mİmarİ Intel x86 veya Intel x86-64 (Günümüz Kişisel Bilgisayarları) (CPU) 80086 – 80088 – 80286 – 80386 – 80486 – Pentium – Core – i3 – i5 – i7 – AMD Athlon – AMD Llano – AMD Fx vb… RISC (Cep telefonları ve akıllı cihazlar) (SOC) Cortex A8 – A10 – Nvidia Tegra vb..
Platformlar PC (Kişisel Bilgisayar) Mobil Windows Linux MacOS IOS Android Windows Mobile Vb..
Bit - Byte BIT : Bilgisayar ortamında karakterler bitlerden oluşmuştur. Bir karakterin oluşması için 8 bite ihtiyaç vardır. Bir bit sayısal elektroniğin temeli olan 0 ve 1 olan değerlerdir. BYTE : Bir byte 8 bitten oluşur. Başka bir deyişle bir byte 1 karaktere eşittir. Byte ve byte’ ın katları şunlardır. 1024 BYTE = 1 KİLOBYTE 1024 KİLOBYTE = 1 MEGABYTE 1024 MEGABYTE = 1 GİGABYTE 1024 GİGABYTE = 1 TERABYTE
PROGRAM NEDİR ? Belirli bir amaca yönelik olarak yazılmış, bilgisayarda yerine getirilmesi istenilen işlemler için komut ve işlem adımlarının tümüne program denir. Programda tanımlanan ilk işlem adımından başlayarak her bir adım, sırayla ve teker teker çok hızlı bir şekilde yapılır. Hazırlanan programların bilgisayara girilerek çalıştırılması işlemine programlama denir
PROGRAMLAMA DİLİ Bilgisayarlar işlemlerin kendi anlayacağı dilde (machine code) açıkca yazılmasını isterler. Bilgisayar programları yazımında belli kurallar dizisi takip edilir. Bu kurallar dizisine “Bilgisayar Programlama Dili” denir. Bilgisayar şirketlerini kendi ürettikleri bilgisayarlarını çalıştıracak programlama yöntemlerini geliştirmeleri sonucu programlama dilleri çeşitlenmiştir.
PROGRAMLAMA DİLLERİ Makina Dili (Machine Language) Sembolik Diller (Symbolic Language) Alt Düzey Üst Düzey
Alt Düzey Programlama Dilleri Makine diline çok yakındır. Yazılan program küçük bir çevirme işlemi ile makine koduna dönüştürülür. Üst Düzey Dillerden daha hızlıdır. Örnek ASSEMBLY
Üst Düzey Programlama Dilleri Bilgisayar kullanıcısının kolaylıklla yazabildiği makine diline mutlaka çevirilmesi (Derleme =Compiling) gereken dillerdir FORTRAN (FORmula TRANslation) COBOL (COmmon Business Oriented Language) BASIC (Beginners’ All purpose Symbolic Instruction Code) RPG (Report Program Generator) PL/1 (Program Language 1) ALGOL (ALGOrithmic Language) APL (A Program Language PASCAL ADA C
YENİ NESİL PROGRAMLAMA DİLLERİ NESNEYE DAYALI (OBJECT PROGRAMMING) OLAY TEMELLİ (EVENT-DRIVEN PROGRAMMING) VISUAL BASIC DELPHI VISUAL FORTRAN C++ JAVA C# .... …..
Visual Basic NEDIR ? Visual Basic çok amaçlı ve aynı zamanda kolay bir şekilde program geliştirmemizi sağlayan bir programlama ortamıdır. Visual sözcüğü Windows işletim sisteminin grafik arabiriminin (GUI) özelliklerinden gelir. Visual (görsel) olmak simgelerle yapılan işletimi ifade eder. Bu ortamda işlerin yapılmsı için kod yazmak yerine fare(mouse) işlemleriyle birçok işin yapılması sağlanır. VB ortamının tasarımı öncelikli olarak yapılan işlemdir. Kod yazmak ikinci planda kalır. Basic(Beginners’ All purpose Symbolic Instruction Code) ise temel bilgisayar ve programlama eğitimi için tasarlanmış bir programlama dilidir.
NEDEN Visual Basic ? VB sadece program geliştirmekle sınırlı değildir, VBA (Visual Basic Aplication) diye bilinen ve MS office içindeki (Excel, Word, PP ve Outlook Express programlarında da kullanılır. Internet uygulamalarında kullanılan VBScript de VB’in bir alt setidir. VB ile farklı konularda programlar geliştirilebilir. Küçük bir işlem için program geliştirilebileceği gibi bütün dünyaya uzanabilecek bir Internet uygulaması da geliştirilebilir. Yukarıdaki maddelerden anlaşılacağı gibi VB basit fakat çok geniş kapsamlı bir programlama dilidir.
Visual Basic ile neler yapabiliriz ? Basit ve genel amaçlı uygulamalar Bilimsel uygulamalar Mühendislik uygulamaları Ticari programlar(elektronik alışveriş, stok kontrolü vb.) Database (Veri bankası) uygulamaları Web uygulamaları İstatistik Uygulamaları GIS (Geographic Information System) Uygulamaları Ticari amaçlı paket programlar Oyunlar
VB’nin Özellikleri VB’de Windows ortamında yazılım geliştirildiğinden diğer klasik programlama dillerine göre farklı özelliklere sahiptir. VB ile program geliştirirken öncelikle Windows arabiriminin kullanıcı etkileşiminde kullanılması düşünülür (nesnel ve olay temelli programlama). Klasik programlama dilleri genellikle DOS ve UNIX ortamında klavye ağırlıklı kullanıcı arabirimine sahiptir. Text ortamında : Kullanıcılar seçim için klavye kullanır Kullanıcıların programın kontrolünde bir etkisi olmaz Her programın kullanıcı arabirimi birbirinden farklıdır. Çoklu programlama genellikle olmaz Ekranda program çıktısı almak (preview) yapılamaz Windows Ortamında : Kullanıcılar seçim için genellikle fare kullanır Mönüler, düğmeler, iletişim kutuları ile ortak arabirimler yaratılır Kullanıcılar programın kontrolünde aktif rol oynarlar Aynı anda bir çok programın çalışması sağlanır. Ekranda çıktılar (preview) alınabilir.
Nesneye Dayalı Programlama (Object Oriented Programming)) VB nesneye dayalı bir programlaam dilidir. OOP terimi değişik anlamlar taşımakla birlikte VB özünde nesne temelli bir programlama dilidir. Nesneye dayalı programlama dilleri 1980’li yıllarda C++ ile ortaya çıkmıştır. Bu tür programlama dillerinde nesneler (kullanıcı arabirimleri) hazır olarak programcıya sunulur. OOP’in üç prensibi vardır Encapsulation (Sarma) : nesne hakkındaki bilgiler ve işlemler anlamına gelir. Metot ve özellik olarak adlandırdığımız bu işlemler bir nesnenin niteliklerini ve işlemlerini ortaya koyar. Inheritance (Miras, Kalıt) : bir nesnenin başka bir nesne üzerine kurulmasıdır. Polymorphism (çok biçimlilik) : belli bir işlem yönteminin bir çok nesne tarafından kullanılmasıdır. VB sadece standart kontroller sağlamaz aynı zamanda çok sayıda başka yazılımcıların da hazırladığı kontrolleri kullanabilir (OCX kontrol ve AvtiveX kontrolleri).
Olay Temelli Programlama Bilgisayarda bir uygulamayı kullanırken bir çok olay oluşur. Bir dosya açılır ya da kapanır, bir tuşa basılır yada fare ile bir düğmeye basılır, Bir nesne ekran üzerinde sürüklenip bırakılır vb. Bu işlemlerin her biri bir olaydır (event). Olay temelli programlama( event-driven programming) klasik programlamanın aksine kullanıcıların işlemlerine göre programın yanıt vermesi esasına dayanan bir programlama sistemidir.
Kullanıcıların Fare ile neden oldukları olaylar Bir grafik nesneyi üzerine gelerek işaret etmek Bir düğmeyi tıklayarak çalıştırmak Bir seçeneği seçmek Bir mönüyü tıklayarak açmak ve bir komutu tıklamak Bir nesneyi sürüklemek Programın çalıştığı pencere ortamını boyutlandırmak, taşımak ve kapatmak Araç çubuğunda bir düğmeyi tıklamak Şekil çizmek
Nesne ve Çevresindeki Bileşenler Özellikler (Properties) bir nesnenin renk, biçim vb niteliklerini temsil eder. Yöntemler (Methods) ise nesnenin işlemlerini Olaylar (events) ise nesnenin sahip olduğu temel tepkimeleri (üzerine tıklamak veya tuşa basmak gibi) gösterir. Olaylar Özelikler Nesne Yöntemler
Bir VB ProgramInIn KIsImlarI Kullanıcı arabirimi Bilgi işleme (hesaplamalar) Bilgi saklama (Database işlemleri) Raporlama işlemleri
KullanIcI Arabİrİmİ Gelİştİrme SanatI Kullanılabilirlik Yalınlık Uyumluluk Biçimleme Grafik değerler
Program Gelİştİrme Sürecİ Gereksinimlerin tanımlanması Bu gereksinimleri karşılayacak Programlama planı Bilgi akışı, hesaplamalar ve karar yapılarının şemalaştırılması Kullanıcı arabirimi tasarımı Program kodunun yazılması Kodun test edilmesi
İyİ bir programIn özellikleri Görsellik Kolaylık Doğruluk Hız İyi raporlama Kolayca değiştirilebilme~ güncelleme Etkin bir kodlama Etkin bir işletim (Mümkün olduğu kadar az siste kaynağına gereksinim)
Program Geliştİrme AdImlarI Sistem Analizi Sistem Tasarımı Kodlama Test etme İşletme Belgeleme Bakım
Sistem Analizi Problemin tanımlanması ve amacın belirlenmesi ile çözülmesi için gerekli bileşenlerin saptanması aşamasıdır. Bu aşamada ayrıca, amacı gerçekleştirmede kullanılacak bileşenlerin (olayların ve nesnelerin) öncelikleri belirlenir.
Sistem tasarImI Bu aşamada sistemin bilgi akışı, girdiler, çıktılar şematik olarak ortaya konur. Bunun dışında veri yapıları ve kodlamaya ilişkin bölümler de açıklanır. Tasarım aşaması etkin bir kod yazmak için önemlidir.Özellikle kod tekrarı yapmamak için için iyi bir tasarım stratejisi geliştirilmelidir. Bu aşamada algoritmalar (bir işlemi yapmak için gerekli adımlar) geliştirilir. Akış şemaları,karar tabloları vb. üretilir.
AkIş ŞemalarI (Flow Chart) Basla Input Hesapla Output Program Sonlansın mı Bitir H E
Alt Program / fonksiyon/ Önceden Tanımlı İşlem AkIŞ ŞemasI Karar / Karşılaştırma Başla - Dur Veri Girişi Alt Program / fonksiyon/ Önceden Tanımlı İşlem İşlem Bilgi Veri Yazma Döngü Bağlantı
Verİ Tİplerİ
Verİ Tİplerİ
Dim deyimi ile değişken tanımlamak V. Basic’te değişken tanımlamak için DIM bildiri deyimi kullanılır. DIM deyimi ile değişken tanımlanırken istenirse değişkenin tipi belirlenebilir. Tanımlama işleme sırasında tipi belirlenen değişkene belirtilen tipin dışında başka tipte bir bilgi aktarılmaz. DIM deyimi ile bazı yardımcı bildiri deyimleri AS bağlacı ile birlikte kullanılır. Bu yardımcı bildiri deyimleri değişken tiplerini tanımlar. Dim A as Integer Dim B, C as Double
KarşIlaştIrma Operatörleri = Eşitlik ve Atama <> Eşit Değil < Küçüktür > Büyüktür <= Küçük eşit >= Büyük eşit
Mantıksal Koşul Operatörleri And Mantıksal Koşul 1 And Mantıksal Koşul 2 Or Mantıksal Koşul 1 Or Mantıksal Koşul 2 Not Not <Koşul> Not Operatörü Mantıksal bir koşul ile kullanılır. Birlikte kullanılan mantıksaL koşul “True” (doğru) ise NOT “False” (yanlış), “False” ise “True” değer döndürülür.
OPERATÖRLER + Toplama - Çıkarma * Çarpma / Bölme \ Tam Bölme ^ Üs Alma
SAYISAL FONKSİYONLAR Radyan cinsinden Arc tanjant hesaplar Sayısal Fonksiyonlar System.Math içerisinde bulunurlar Yapılan Programda matematiksel fonksiyonları kullanmak için İlk Satıra Imports System.Math Yazılmalıdır. Sin (x) Radyan cinsinden Sinüs hesaplar Cos(x) Radyan cinsinden Cosinüs hesaplar Tan(x) Radyan cinsinden Tanjant hesaplar Atn(x) Radyan cinsinden Arc tanjant hesaplar Sqr(x) Karakök hesaplar Rnd [(x)] Rastgele (random sayı üretir)
SAYISAL FONKSİYONLAR Exp(x) Log(x) Round(x) Sgn(x) Abs(x) Mutlak değer alır Exp(x) e tabanına göre üs alır Log(x) e tabanına göre logaritma (doğal log.) Round(x) Yuvarlatma yapar Sgn(x) Verilen sayının(x) işaretini bildirir (+ ise +1, - ise -1)
BLOK KONTROL DEYİMLERİ IF-End If Deyimi If Ifade Then ............ End If Yapılan Karşılaştırmada ikiden fazla olasılık varsa If İfade1 Then Elseif ifade2 Then Else
GoTo Program içinde herhangi bir satıra gitmek (dallanmak) için kullanılır. GoTo label Label : 1-9999 arası bir tam sayı Goto 100 Label: Konum_Ismi: şeklinde bir isim ve sonunda «:» olaiblir Goto Son GoTo deyimi çoğu zaman If deyimi ile kullanılır. GoTo If deyimi ile kullanılarak bir döngü (loop) oluşturulabilir. If kosul Then GoTo label şeklinde kullanılabilir.
Select Case-End Select Deyimi 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
Do While-Loop Deyimi Do [While] [Until] ifade .............. Exit Do Loop [While] [Until] ifade [..] Parantez içerisindeki ifadelerden sadece biri kullanılır. While ifade sonucu true olduğu sürece döngüyü çalıştırır. Until ifade sonucu True olana kadar (false iken) döngüyü çalıştırır.
For -Next Deyimi (Döngü) Bunu yazmazsak 1 kabul edilir For Değişken= İfade To İfade [Step İfade] ....... Sayaç Başlangıç Son Artım Sayaç Parametreleri [Exit For] .................. Next değişken
İçiçe Çevrimlerin Kullanışı
Dizi Değişkenler Her zaman değişkenlerin tümünü tek bir adla ve tek bir içerikle kullanmak kısıtlayıcı olabilir. Bu nedenle diziler (arrays) geliştirilmiştir. Bir dizi aynı tipte ve aynı adı paylaşan bir grup değişken demektir. Diziler birçok değişkene aynı adla ulaşmayı sağlayan bir grup veri yapısıdır. Bu indeks numarası ile dizi içindeki elemanlara ulaşılır. Dizi içindeki elemanlar aynı tipteki verilerdir : örneğin haftanın günleri gibi. Dizi tanımlama : Dim dizideğişkeni (üst sınır) As tipi Dim A(20) as Integer A(0), A(1) ... A(20) ye kadar 21 elemanlı bir dizi tanımlar
Dİzİlerde Boyut Dizilerde 1 den 32’ye kadar boyut tanımlanaiblir Dim degisken_ismi(ustlimit1,ustlimit2,..,ustlimitn) as tip Dim A(20,13,30) as integer Yukarıdaki ifadede 21x14x31 elemanlı bir dizi tanımlanmıştır. Dim B(3,5) as double Yukarıdaki örnekte ise 4x6 elemanlı iki boyutlu bir dizi veya matris tanımlanmıştır.
Dinamik Diziler Dizi değişkenleri tanımlanırken boyutlarının tanımlanması yeterlidir eleman sayısının tanımlanması gerekli değildir. Eleman sayısı daha sonradan tanımlanabilir. Tanımlanan eleman sayısı sonrada değiştirilebilir. Dim degisken_ismi([,,]) as tip ‘ Boyut_sayısı – 1 adet virgül Redim [Preserve] degisken_ismi(sinir1,sinir2,sinir3) Preserve anahtar kelimesi dizinin dizinin atanmış elemanlarını korumak için kullanılır. Ancak sadece son boyut değiştirilebilir. Preserve kullanılmadığında önceki değerler default değerler ile değiştirilir. (örnek sayılar için 0) Ör: Dim A() as integer Redim A(15) Dim B(,) as double Dim C(,,) as single Redim B(12,20) Redim C(3,5,12) Redim Preserve C(3,5,20)
Genel AmaçlI Yordamlar Standart modüller Public değişkenlerine ek olarak, programın herhangi bir yerinden çağrılabilen genel amaçlı yordamlar da içerebilirler. Bir genel amaçlı yordam, çalışma zamanından herhangi bir olaya ya da nesneye bağlı olmadığından olay yordamlarından farklıdır. Genel amaçlı yordamlar yerleşik VB bildirisi ve işlevlerine benzerler. Onlar gibi adlarıyla çağrılır, bağımsız değişken alabilir ve her biri belli bir görevi yerine getirir.
Genel AmaçlI Yordam Türlerİ İşlev Yordamları (Fonsiyonlar) Bunlar diğer yordamlardan ad olarak çağrılırlar. Bağımsız değişken alabilirler ve işlev adıyla her zaman bir değer döndürürler. Tipik kullanım alanları hesaplamalardır. Alt Yordamlar (Sub) Alt yordamlar olay ya da diğer yordamlardan ad olarak çağrılırlar. Bağımsız değişken de alabilirler. Yordam içinde bir görev yerine getirip değer döndürürler. Fonksiyonlardan farklı olarak değeri kendi yordam adıyla beraber döndürmezler (değerleri değişken adları ile dödürebilirler). Özellik Yordamları Bir programda kullanıcı tanımlı özelliklerin tanımlanması ve değiştirilmesinde kullanılır.
Genel AmaçlI YordamlarIn YararlarI Satırların yinelenemsini önlerler. Programları okunaklı kılarlar. Program geliştirmeyi basitleştirirler. Başka programlarda kullanılabilirler. VB dilinin sınırlarını genişletirler.
Fonksİyon YordamI Yazmak Fonksiyon bir değerin hesaplanıp geri gönderilmesi gibi bir destek sağlar Fonksiyon bir standart modül içinde bir Function ve bir End Function bildirisi arasında yerleştirilmiş biri grup bildiridir. Program içinde bir Fonksiyon’u çağırmak için fonksiyon adı gerekli bağımsız değişkenlerle beraber bir program bildirisine yazılabilir. Bağımsız değişkenler (arguments), fonksiyonun çalışması için kullanılan verilerdir. Yani bir fonksiyon yordamı kullanmak Time, Int gibi yerleşik bir fonksiyonu kullanmaya benzer.
Fonkiyon Sözdizimi Function İşlevAdı ([Bağımsız Değişkenler]) [As Tür] Fonksiyon bildirisi Return İşlevAdı End Function İşlevAdı, standart modülde yaratılan fonksiyon adıdır. Bağımsız değişkenler [Arguments], fonksiyonda kullanılacak seçilik değişkenlerin (biribirinden virgülle ayrılan) bir listesidir. As Tür döndürülecek fonksiyonun türünü belirten isteğe bağlı bir bildiridir. Fonksiyon bildirileri, fonksiyonun görevini yerine getirmesi için gerekli olan kod bildirileridir.
Alt Yordamlar Yazmak Alt yordamlar fonksiyon yordamına benzerler fakat adlarıyla ilgili değer döndürmezler. Alt yordamlar genellikle kullanıcıdan girdi almak ve bilgi işlemek için kulllanılırlar. Çoğu fonksiyon bir tek değer döndürürken Alt yordamlar birden fazla değer döndürebilirler.
Alt Yordam Sözdizimi Sub YordamAdı ([Bağımsız değişkenler]) End Sub Yordam Bildirileri End Sub YordamAdı, yaratılan alt yordamın adıdır. Bağımsız değişkenler(arguments) yordamda kullanılacak isteğe bağlı bağımsız değişkenlerin listesidir. Yordam bildirileri yordamın işini yapması için gerekli olan kod bildirileridir.
Program YazmaYa Başlamak Konsol Programı (Console Application) Windows Forms Programı (Windows Forms Application) İlk göreceğimiz Program biçimi Konsol programı olacak.
Neden Konsol ProgramI Yazılan oprogramlar lineerdir. Giriş çıkış basit komutlar ile yapılır Çıktılar yine basit bir şekilde ekrana verilir. Arabirim tasarlamaya gerek yoktur. Oluşturulan algoritmaların hızlı bir şekilde kodlanmasını sağlar
DerleyİCİ seçeneklerİ Explicit : Bu seçenek On olduğunda her değişken kullanılmadan önce tanımlanmalıdır. Infer: Infer On ise; Değişkenler tanımlanırken tip belirlemek yerine başlangıç değeri atanabilir ve başlangıç değerine göre sistem değişken tipini otomatik atar. Örnek: Dim A=20 (20 değeri integer olduğundan önce değişken Integer olarak Atanır ve sonra 20 değeri değişkene verilir. ) Strict: On ise kısıtlayıcı dönüşümlerde ide hata mesajı gösterir.
Nesnelerİ İçe Aktarma Matemaktisel fonksiyonların kullanılacağı programlarda Math nesnesini programa dahil etmek komutları yazarken kolaylık sağlayacaktır. Matemaktisel fonksiyonların kullanılma şekli içe aktarım gerçekleştirilmediğinde math.fonksiyon_ismi() şeklindedir. Aktarma gerçekleştirildiğinde sadece fonksiyon_ismi() şeklinde kullanılaiblir. Ör: Imports System.Math
Konsole Programlarında Console nesnesi de programa aktarılabilir. Bu durumda yine konsola ait komutları kullanmak için Console.komut() yazmak yerine sadece komut() yazılabilir. Imports System.Console
COnsole NesNESİ İle Giriş – ÇIKIŞ KomutlarI Read: kullanıcının klavye ile veri girmesini sağlar kullanıcı entera bastıktan sonra yazılan tüm karakterler istenilen değişkene aktarılır. Readline: Read metodu ile aynı işi yapar ancak kullanıcı veri girmeye başlamadan önce kursor yeni satırda satır başına getirilir Write: İstenilen bir veriyi kursorun o anki numundan başlayarak ekrana yazar. Writeline: Kursörü yeni satırda satırbaşına getirir ve istenilen veriyi ekrana yazar.