Vous êtes sur la page 1sur 16

“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

1.BÖLÜM
PROGRAMLAMA ve TEMEL
KAVRAMLAR
GİRİŞ
Program, bilgisayara ne yapması gerektiğini söyleyen bir grup komuta (kod topluluğuna) verilen
isimdir. Bu komutları veren kişiye programcı, komutların bütününe ise programlama dili denir.

İnsan ya da programcı ( konuşma dili biliyor) ile bilgisayar ( makine dili biliyor) arasındaki
iletişim nasıl gerçekleşir? Bu sorunun çözümünü birbirinin konuşma dilini bilmeyen iki yabancı
devlet adamının bir araya gelip görüşmesine benzetebiliriz. Bu görüşmede ancak tercüman veya
çevirmenler aracılığı ile gerçekleşmektedir. Benzer şekilde bilgisayar üreticileri, aynı sorunu
insanın konuşma dilini bilgisayarın makine diline çevirecek, bir nevi tercümanlık yapacak
“derleyici veya yorumlayıcı programlar” geliştirerek çözmektedirler. Aşağıdaki şekilden de
anlaşılacağı üzere insanın algılamasına yakın diller üst seviyeli diller, makineye yakın diller ise alt
seviyeli diller olarak adlandırılmaktadır.

Şekil 1. Programcı ile Makine (PC) arasındaki İlişki

NOT: İkili sayı (BInary digiT-BIT) formatındaki gösterime makine dili denir. Mantıksal
olarak “1” var, “0” yok anlamındadır. Sayısal sistemler ikili mantığa göre çalışırlar.

1
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

DERLEYİCİ ve YORUMLAYICI KAVRAMLARI


Yazdığımız programları makine diline çeviren, makine dilinde elde edilen sonuçları bizim
anladığımız biçime dönüştüren programlara çevirici ( Derleyici veya Yorumlayıcı) programlar
denir.

Kaynak kodun makine koduna (amaç programa) çevrilmesi ve çalıştırılması işlemi üç farklı
yaklaşımla gerçekleştirilebilir

Derleyici (Compiler)
Programlama dili ile yazılmış bir programı makine dili ile yazılmış amaç veya hedef programa
çevirirler. Yüksek seviyeli bir dil ile yazılanlarda kurallarına ters düşen hata kontrollerini
oluşturduktan sonra komut ve bilgilerin makine tarafından tanınarak işlemlerin yapılmasını
sonuçların tekrar yüksek seviyeli program diline anlaşılır duruma çevrilmesini sağlarlar. Fortran,
C, C ++, C#, Pascal, Delphi gibi diller derleyici kullanırlar.

Derleyicinin çevirme işlemi genellikle üç adımda gerçekleşir:

1. Sözel Analiz (Lexical Analysis)


2. Gramer Analizi ve Tanıma ( Syntax Analysis)
3. Kod Üreteci (Code Generator)

Sözel analiz sırasında kaynak kodunu oluşturan kelimeler incelenir ve bu kelimelerin makine
dilinde karşılıkları bulunup bulunmadığı kontrol edilir. Gramer analizi, kaynak kodun yazıldığı
programlama dilinin kendi gramer kuralları içinde doğru yazılıp yazılmadığını kontrol eder. Kod
Üretimi aşamasında tanınan komutlara karşılık gelen makine dili komutları üretilir. Bu adımlar
paralel olarak gerçekleştirilir ve kaynak kod, amaç koda çevrilmiş olur. Çevirme işlemi adımları
aşağıdaki blok şemada görülmektedir.

Yorumlayıcı (Interpreter)
Program kodlarının ilk satırından son satırına kadar satır satır belirtilmiş komut ve işlemleri
inceleyerek kaynak programın hatalarının düzeltilmesine imkân veren ve çalıştıran
programdır. Herhangi bir komut satırının çevrilmesinde ya da çalıştırılmasında bir hatayla
karşılaştığında çalışmayı durdurur ve hatalı satırı programcıya bildirir. Basic, PHP, Perl, Lisp
gibi diller yorumlayıcı kullanırlar.

2
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

Derleyici ile Yorumlayıcının Farkı


Yorumlayıcıda kodun okunması ve çevrilmesi programın çalışması sırasında yapıldığından
hız düşüktür. Ayrıca yorumlayıcı yalnızca karşılaştığı ilk hatayı rapor edebilir. Bu hata
düzeltildiğinde sonraki çalışmada da program ancak bir sonraki hataya kadar ilerleye bilir.
Oysa derleyici kaynak kodundaki bütün hataları bulabilir. Buna karşılık hata ayıklama işlemi
yorumlayıcılarla daha kolaydır. Ayrıca derleyicilerle gelen bazı sınırlamaların kalkması
nedeniyle daha esnek bir çalışma ortamı sağlanır. Son yıllarda iki yöntemin üstün yanlarını
birleştiren karma diler (Java ve Python gibi) öne çıkmaya başlamışlardır.

Derleyici programın tamamını kontrol eder bir satırında hata varsa program
satırları bittikten sonra hatayı gösterir. Yani kaynak kodu bir defa
çevirir. Yorumlayıcı ise programın bir yerinde hata varsa çalışırken hatalı
satıra geldiğinde durur ve hata mesajı verir. Hata düzeldikten sonra tekrar
birinci satırdan itibaren kodu çevirir.

NOT: Hem derleyici hem de yorumlayıcı tekniği birlikte de kullanılabilir. Bu tip çalışmada
kaynak kodu sanal bir bilgisayarın makine koduna (bytecode) çevrilir ve daha sonra bu sanal
bilgisayarı gerçekleyen bir program yardımıyla yorumlanarak çalıştırılır. Örneğin Java dilinde
yazılmış bir kaynak kodu önce Java derleyicisinden geçirilerek Java Sanal makinesinin (Java
Virtual Machine- JVM) makine koduna dönüştürülür; sonrada bu sanal makineyi gerçekleyen bir
Java çalışma ortamı ( Java Runtime Environment – JRE ) yardımıyla çalıştırılır. Bu işlemin nasıl
yapıldığı aşağıda grafiksel olarak gösterilmiştir.

Bağlama (Linking)
Günümüzde yazılan birçok program genellikle programlama dili içerisinde bulunan
kütüphane fonksiyonlarına ve yordamlara bağlantı içerdiğinden kaynak programdan üretilen
amaç program kodu bilgisayarda çalıştırılmaya hazır olması için bu amaç program (object
code) bağlama (linking) işlemine tabi tutulur. Bu işlem sonucu eksik parçaların program kodu
içerisine eklenmesi ile artık yazılan program çalışmaya hazır hale gelmiş olur.

3
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

Kaynak Program (Source Program)


Bir programlama dili ile yazılmış programlardır. Kaynak program dosyasının uzantısı örneğin
Visual Basic dilinde ise .bas veya .frm , C dilinde yazıldı ise .c , Assembly dilinde yazıldı ise .asm
dir.

Amaç Program (Object Program)


Bir programlama dilinde yazılmış kaynak programın derlenmesi ile elde edilen program.
Amaç program makine diline dönüştürülmüş ve çalıştırılmaya hazır programdır.

PROGRAM GELİŞTİRME AŞAMALARI


Yazılan programın büyüklüğüne göre program geliştirme aşamaları farklılık gösterse bile
bizim amacımız yolun başındakilere rehberlik etmektir. Algoritma bölümünde de anlatılacağı
üzere problemin çözüm analizi yapıldıktan sonra tasarım aşamasında program fonksiyonları
belirlenir, daha sonra herhangi bir programlama dili ile kodlanır, test edilip varsa hatalar
giderildikten sonra çalıştırılır ve gerekli dokümantasyon hazırlanır.

PROGRAM FONKSİYONLARI
Genel olarak bir program üç kısımdan ibarettir. Bilgi girişi, işlem ve hesaplamalar, çıkış.
Programın çıkışında ne elde edeceğimizi bilmemiz gerekir ki programın doğru sonuç üretip
üretmediğini test edebilelim. Çıkış işleminde çıkışın içeriği ve çıkış formatı önemlidir. Çıkış
içeriği elde edilen veya edilecek bilgidir. Çıkış formatı ise çıkış içeriğinin gösteriliş biçimidir.

4
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

Programa bilgi girişi yapıldıktan sonra, girdilerden çıktıların alınması gerekli işlem ve
hesaplamaların yapılmasına bağlıdır. Bu işlemlerin neler olacağı problemin çözüm analizi
yapılırken belirlenir.

Örneğin bir dikdörtgenin alanını hesaplayan programı yazalım. Dikdörtgenin alanının kısa kenar
ile uzun kenarın çarpımına eşit olduğunu biliyoruz. Bu programın yazım aşaması;

Bilgi girişi ; Dikdörtgenin kısa kenarı (a)= ……


Dikdörtgenin uzun kenarı (b)= …...

Bilgi girişi için bu iki verinin bilinmesi yeterlidir.

İşlem ve hesaplamalar; Dikdörtgenin Alanı (Alan = a * b)


Bu aşamada dikdörtgenin kısa kenarı (a) ile uzun kenarı(b) nın çarpımı bize dikdörtgenin alanını
verir.

Çıkış ; Yaz “Dikdörtgenin Alanı=”, Alan

Ekranda görülecek ifade ve değerler ile bunların gösterim biçimini planladığımız yerdir.

Programın;
Visual Basic dilinde kodlaması Program fonksiyonları
a=inputbox (“dikdörtgenin kısa kenarı”)  Bilgi girişi
b=inputbox(“dikdörtgenin uzun kenarı”)  Bilgi girişi
Alan=a*b  İşlem ve hesaplama
Print (“Dikdörtgenin Alanı=”), Alan  Çıkış

PROGRAMIN KODLANMASI

Algoritması hazırlanan program, herhangi bir programlama dili ile kodlanır. Bu kodlama
sürecinde kullanılan programlama dilinin yazım kurallarına tam olarak uyulması gerekir.
Kodlama genellikle bir editör program (notepad veya benzeri) kullanılarak yapılır ve bu editör
çıktısına kaynak kod denir.
PROGRAMIN TEST EDİLMESİ
Yazılan program test edilmek üzere çalıştırılır varsa yazım hataları düzeltilip program tekrar
çalıştırılır. Yazım hatası vermeden çalışan fakat istenilen sonuçları üretmeyen programdaki
hataları düzeltmek için algoritma tekrardan gözden geçirilerek aynı adımlar tekrar edilir. Bu tip
hatalara mantık hatası denir ve bulunması için test verileri kullanılır ya da program adım adım
çalıştırılır.

PROGRAM DOKÜMANTASYONU

Dokümantasyon, programı kullanacak kişiler için bir “kullanıcı el kitabı” formatında hazırlanır.
Problemin tanımı, çözüm yöntemi, girdi/çıktı tanımı, çözüm algoritması, sonraki çalışmalar için

5
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

öneriler, kaynak program listesi, uygulama koşulları, örnek girdi/çıktısı ve kullanım amaçları
ayrıntılı olarak yer alır.

PROGRAMLAMA DİLLERİ VE ÖZELLİKLERİ


Bir programlama dili, programcının bir bilgisayara ne yapmasını istediğini anlatmasının
standartlaştırılmış bir yoludur.

Bir programcı komutları farklı programlama dilleri kullanarak yazabilir. Günümüzde yüzlerce
programlama dili mevcuttur. Bu dilleri Şekil 1. de gösterildiği gibi insanın algılamasına veya
makineye yakın olmasına göre 3 gruba ayırabiliriz;

1. Alçak seviyeli diller ( Assembly dili)


2. Orta Seviyeli Diller ( C, ADA dili)
3. Yüksek Seviyeli Diller( Visual Basic, Pascal, Delphi, Cobol, FoxPro, Java gibi..)

NOT: Programlama, temel olarak çözüm algoritması geliştirme işlemi, bilgisayar


programı ise bir programlama dili ile yazılmış algoritmadır.

Günümüzde yaygın olarak kullanılan bazı programlama dillerinin listesi aşağıda


verilmiştir;

ASSEMBLY: Assembly programlama dili, çoğu zaman özel alanlarda geliştirilen yazılımlarda
kullanılan alt düzel bir Yazılım dili olarak tanımlanır. Bu dilin komutları, bilgisayarın doğrudan
islettiği makine dili komutlarının birebir karşılığıdır. Bu nedenle bu dil için makine dili de
denilebilir. Her ne kadar uzman programcıların özel alanlarda kullandığı bir dil olarak tanımlansa
da, programcılar istedikleri takdirde her türlü uygulamayı bu dil ile geliştirebilirler ya da
kullandıkları üst düzey dilaltından çağırabilecekleri procedurler yazabilirler. Assembly diliyle
yazılmış bir program assembler derleyicisi ile makine diline çevrilir.

BASIC (Beginner’s All Purpose Symbolic Instruction Code) : Bu dil 1964 yılında Jhon
Kemeny ile Thomos Kurtz tarafından Darthmouth College Üniversitesinde geliştirilmiştir. Eğitim
amaçlı bir programlama dilidir. Mikrobilgisayarlar için ilk Basic uyarlamasını Microsoft’un
kurucuları olan Paul Allen ile Bill Gates yazmıştır. BasicA, GWBasic, QBasic, Commodore Basic
V2, Turbo Basic gibi değişik sürümleri çıkmıştır.

VISUAL BASIC: Microsoft tarafından, Basic programlama dili üzerinde geliştirilmiş,


hareket bağımlı, nesne tabanlı ve görsel bir programlama dilidir. Visual Basic yapısal bir
programlama dili olan Basic dilinden türetilmiş olmasına rağmen hareket bağımlı bir
programlama (event-driven programming) dilidir. Yani bir kodun çalışması için bir olayın
veya hareketin olması gerekir. İlk sürümü 1991 yılında Visual Basic 1.0 olarak çıkmıştır.
Daha sonraki yıllarda 2.0 (1992 yılında),3.0 (1993 yılında), 4.0 (1995 yılında), 5.0 (1997
yılında ) , 6.0 (1998 yılında) sürümleri çıkmıştır.

C : 1970’lerin başında Ken Thompson ve Dennis Ritchie tarafından UNIX İşletim Sistemi
için geliştirilmiş bir programlama dilidir. C, günümüzde neredeyse tüm işletim sistemlerinde
kullanılan, dünyanın en çok kullanılan sistem programlama dilidir. Ancak, uygulama programları
yazmak için de çok sık kullanılır. C ++ da, C den türemiş bir dildir.

6
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

C++ : Nesneye yönelik bir programlama dilidir. 1980'lerin başında Bjarne Stroustrup
tarafından geliştirilen C dilinin birçok temel özelliğini destekleyen ve nesne yönelimli
programlamaya olanak sağlayan, sınıflar sayesinde yeni veri türlerinin oluşturulduğu çok yaygın
olarak kullanılan programlama dilidir. C++ (si-plas-plas okunur) genel amaçlı bir programlama
dilidir. İlk olarak C de bulunmayan sınıf kavramı eklendiği için C With Classes olarak
adlandırılmış, daha sonra C'deki herhangi bir sayısal değişkenin değerini bir arttırmaya yarayan ve
özellikle döngü yapılarında çok sık kullanılan 'i++' ifadesine benzer biçimde C++ olarak
adlandırılmıştır.

PASCAL:1970 Yılında Niklous Wirth tarafından öğrencilerine programlama öğretmek için


geliştirilmiştir. Bilgisayar bilimcisi Niklaus Wirth Pascal'ı 1970'te yapısal programlamayı
derleyiciler için daha kolay işlenir hale getirebilmek amacıyla geliştirmiştir. Adını matematikçi ve
düşünür Blaise Pascal'dan alan Pascal dili, Algol programlama dilinden türemiştir. Wirth,
Pascal'dan başka Modula-2 ve Oberon programlama dillerini de geliştirmiştir. Bu diller Pascal'a
benzerler ve ayrıca nesneye yönelik programlamayı da desteklerler.

DELPHI: Temeli Pascal dilidir. Özellikle nesne yönelimli programlama anlayışıyla


yapılandırılmış Turbo Pascal dilinin görsel sürümü denilebilir. Nesne, sınıf, kalıtım, fonksiyon
aşırı yükleme (overloading) gibi temel nesneye yönelik programlama tekniklerini ve daha
fazlasını içeren ve C++ den aşağı kalmayan güçlü ve esnek bir programlama dilidir

FORTRAN(Formula Translater): 1954'de IBM tarafından üretilen IBM 704 için ilk
sürümü John Backus ve ekibi tarafından geliştirilmiştir. Fortran ilk yüksek düzey programlama
dili olmasa da 1950'deki yüksek programlama dilleri derlenmeden, bir çevirici (interpreter)
yardımıyla çalıştırılıyordu. Bu da makine koduyla yazılan programlardan en az 10 kat daha yavaş
çalışmalarına sebep oluyordu. İşte bu noktada Backus ve ekibi hem yüksek programlama dilleri
gibi kolay yazılabilen hem de makine kodunda yazılmış gibi hızlı çalışan bir programlama dili
sözüyle Fortran 'ı tanıttılar. Her ne kadar ilk derlenebilir yüksek düzey dilin Fortran olup
olmadığı hala tartışma konusu olsa da, Fortran geniş kitleler tarafından kullanılmış ilk yüksek
düzey derlenebilir dildir. İlk Fortran sürümü Fortran 0 'dır. Fortran II, III,IV,77,90 ve 95 gibi
farklı sürümleri bulunmaktadır. Matematiksel, Bilimsel İşlemlerde kullanılmak üzere
tasarlanmıştır.

COBOL(Common Business Oriented Language):1959 Yılında Ticari Amaçlar ile


kullanıcı tarafından geliştirilmiştir. Ticari bir programdır veri tabanına dayanır.

JAVA : Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış


gerçek nesneye yönelik, platformdan bağımsız, yüksek performanslı, çok işlevli, yüksek seviye,
adım adım işletilen bir dildir. İlk sürümü 1996 yılında çıkmış olup, 1.1,1.2,1.3,1.4 ve 5.0,6.0 gibi
sürümleri geliştirilmiştir. Kaynak : tr.wikipedia.org

MİCROSOFT.NET: Internet uygulamalarında yaygın olan sorunları çözmek için önceden


üretilmiş altyapısına verilen isimdir. .NET, .Net Framework adlı yeni bir çalışma zamanı ortamı
sağlar. Yazdığınız program ve bileşenler bu ortam içinde yürütülür. Ayrıca derlenen bir
programda kaynak kodların derleyici tarafından hazırlanan ara kod oluşturma safhasının
standartlaştırılarak, dillerden bağımsız bir ortam sağlar.

.NET, HTML sayfaları oluşturmak için ASP.NET, Internet sunucularının herhangi bir istemciye
işlev sunması için. NET Web Services adlı yeni bir yol sağlar. ADO. NET’i kullanarak
veritabanı işlemlerine iyi bir destek sağlar.

7
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

Visual Studio .NET , .NET platformu için geliştirilmiş uygulama geliştirme platformudur. En
büyük özelliklerinden birisi IDE (Integrated Development Environment) dediğimiz ortak bir
uygulama geliştirme platformu sunmasıdır. İster C# ile uygulama geliştirin ister VB.NET ile
kullanacağınız en etkin ve ortak uygulama geliştirme platformlarından biridir.

PROGRAMLAMA DİLLERİNDE KULLANILAN


TEMEL KAVRAMLAR
Hangi programlama dilini kullanırsak kullanalım bazı temel kavramlar değişmez. Bunlar;

KOMUTLAR: Bilgisayarın o an ne yapacağını belirten emirlerdir. Komutlar kısaltılmış ya


da tam İngilizce kelimelerden oluşur.

Örneğin; Yaz “Niksar Meslek Yüksekokulu” komutu

Basic/Visul Basic dilinde; Print “Niksar Meslek Yüksekokulu”


C dilinde; Printf “Niksar Meslek Yüksekokulu”
Pascal dilinde; Write ‘Niksar Meslek Yüksekokulu’

şeklinde ifade edilmektedir.

DEĞİŞKENLER: Bilgileri saklamak üzere kullandığımız ismini ve tipini bizim


belirlediğimiz bellek alanlarına verilen isimdir. Kısaca bellekte herhangi bir adresi gösteren
sembolik bir addır. Kullandığımız programlama dili ne olursa olsun kendisine verdiğimiz
değerleri belleğinde hangi ad ile saklayacağını biz söylüyoruz. Belleğinde nerede saklayacağını
(adres bilgisini) ise bilgisayar kendisi belirler.

Genel olarak değişkenler ikiye ayrılır;

1) İçerisinde sayıları sakladığımız değişkenlere sayısal veya nümerik değişken adını veriyoruz
2) İçinde sayı haricindeki bilgileri (isim, soy isim, adres, vb.) sakladığımız değişkenlere de alfa
sayısal, alfa nümerik, text veya string değişkenler diyoruz.

NOT: Bilgilerin geçici olarak tutulduğu yere Bellek denir. Değişkenlerde bellekte tutulur.

8
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

NOT: Bellek ve bilgi depolama birimlerinin genişliğini ölçmek için kullandığımız temel
birim bit ve byte’dır. Bugün bilgi işlemdeki temel ölçü birimi byte olarak geçmektedir. { 1
byte= 8 bit, 1 Kilobyte= 1024 byte dır. }

Değişken Tanımlama Kuralları

Değişkenlerin isim ve tiplerinin programcı tarafından belirlendiğini söylemiştik. İşte değişkenleri


tanımlarken dikkat edeceğimiz hususlar;

1) Bir değişkenin ilk karakteri mutlaka harf olmalıdır.


2) Değişken isimlerinin içerisinde _ karakteri hariç, boşluk veya özel karakterler
bulunmamalıdır. [ .,@ ? * : ; !, ( / - + = % & “ $ # … karakterleri gibi]
3) Değişken isimlerinde Türkçe karakter kullanmamaya özen gösterilmelidir.
4) Değişken isimleri kullanılan programlama diline ait komutları içeremez
5) Değişken isimleri, anlamlı ifadelerden oluşmalıdır.

Örnek değişken tanımlamaları;


DOĞRU YANLIŞ
Ali74 74ALİ
Al74 ali Koç
AD_SOYAD sa:at
Saat sa%at

Değişkenlere Değer Aktarma( = )

Bir aritmetik ya da string ifadeyi değişkene aktarmak için “ = “ parametresi kullanılır.


{ a = 5, b = “Ali” gibi…}

NOT: Eşitliğin sağ tarafındaki ifadenin sonucu sol taraftaki değişkene aktarılır.

NOT: İlk eşit işareti 1557 Yılında Londra kentinde Oxford’lu Robert Recard’ın The
Whetstone of Witte” adlı cebir kitabında eşit kavramı (=) işareti ile simgelendiği ve hatta
kendisine:” Neden başka bir işaret değil de bunu seçtiniz?” sorusuna: “ bir birine paralel iki
çizgiden daha eşit şey düşünemezdim.” yanıtını verdiği yazılıdır.

Örnek 1.1. Aşağıdaki programın akışı (çalışması) sırasındaki değişkenlerin alacağı değerler
yandaki tabloda verilmiştir.

NOT: Ekrana yazdığımız hiçbir şey değişkenlerin içeriğini değiştirmez.

9
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

Değişkenlerin Tanımlanması

Bir değişken kullanılmadan önce tanımlanır. Bu tanımlama programlama dillerine göre farklılık
gösterse bile mantık aynıdır. Her değişken belirli bir veri tipine sahip olmalıdır (integer, long,
string gibi) Bu veri tipi, değişkenin bellekte kaplayacağı alanı ve sakladığı bilginin büyüklüğünü
belirtir.

Visual Basic Dilinde Değişkenlerin Tanımlanması

Visual Basic dilinde değişkenlerin tanımlanması Dim (Boyut Aç) komutu ile program kodunun
başında yapılır.
Yapısı: Dim Değişken_adı As tip [ Örnek; Dim x as integer, y as string gibi ]

Tip; Değişkenin alabileceği veri türünü tanımlar. [integer, byte, long ,string,currency gibi ]

Değişken tanımlanmaz veya tanımlanırken tip belirtilmezse, VB o değişkeni Variant veri tipinde
algılar. Variant bir değişken herhangi bir tip veriyi içerebilir. Variant tipli değişken kullanmanın
iki kötü yanı olabilir:

 Daha fazla bellek kullanımına neden olur.


 Variant veri tipi bazı veri işlem fonksiyonları için geçersiz olabilir.
 Sayısal bir değişkenin ilk değeri 0, String bir değişkenin ilk değeri “ ”, Variant
değişkenlerin ise ilk değeri Empty dir.

C Dilinde Değişkenlerin Tanımlanması

C dilinde değişkenlerin, kullanılmadan önce tanımlanma zorunluluğu vardır. Programda


kullanılacak değişkenleri tanımlamak için aşağıdaki yapı kullanılır.

Yapısı: Veri Tipi Değişken_adı [ Örnek; int x,y ; char veri gibi ]

Veri Tipleri

Visual Basic dilinde kullanılan veri tipleri aşağıdaki listede verilmiştir.

Bildiri Deyimi Veri Tipi Bellek Alanı Değer Aralığı


String Karaktersel 1 byte 65535 / -128…+127
( her karakter için )

Integer Tamsayı 2 byte -32.768 – 32.767


Long Uzun tamsayı 4 byte 2.147.483.647
Single Tek duyarlı sayısal 4 byte 3.4x10^38
Double Çift duyarlı sayısal 8 byte 1,7x10^308
Currency Para 8 byte 922.337.203.685.447
Byte Tamsayı 1 byte 0 – 255
Boolean Doğru /Yanlış 2 byte True / False
Date Tarih 8 byte 1/1/100 – 12/31/9999
Variant --- 16 byte + her karakter için 1 byte

NOT: String Türü Değişkenler “+” veya “&” işlem operatörleri ile birbirlerine eklenebilirler.

10
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

SABİTLER
Program içerisinde değeri değişmeyen ifadelere sabit denir.(∏ sayısı, 2.5, gibi) . Sabit değerler
sayısal ve string olmak üzere ikiye ayrılırlar. İki tırnak (“ ”) işareti arasında yazılan her türlü bilgi
string sabittir. Sabitler özellikle bilinen değerlerin kullanımını sağlar. Kodlamayı ve kodun
okunabilirliğini kolaylaştırırlar.

NOT: Visual Basic dilinde sabit ifadeler program kodunun başında Const deyimi ile
tanımlanırlar. { Const pi=3.14 }

MESAJLAR

Kullanıcı ile iletişim kurmak için kullanılır. Mesajlar kullanıcıyı yönlendirmek amacıyla
kullanılırlar.

NOT: “Bir sayı giriniz” gibi kullanıcıyı program çalışırken yönlendiren ifadelere mesajlar denir.

OPERATÖRLER
İşlem yapmamızı sağlayan işaretlerdir. Genellikle, aritmetiksel { +, -, *, /, … } mantıksal { And,
Or, Not…} ve karşılaştırma { < , > , =, …}operatörleri isimleri altında sınıflandırılırlar ve her
program dillerinde farklı şekillerde gösterilebilirler.

ARİTMETİKSEL OPERATÖRLER

Aritmetiksel işlemlerde kullanılan ( dört işlem gibi ) operatörlerdir. Matematiksel işlemlerde


kullanılan ilgili operatörler ve bilgisayar ortamlarındaki formatları tabloda gösterilmiştir.

İŞLEMLER Aritmetik Matematiksel VB Notasyonu


Operatör Notasyon
Toplama + X+Y X + Y

Çıkartma - X-Y X – Y

Çarpma * (XY),(X.Y),(X*Y) X* Y

Bölme / X/Y ve X X / Y
Y

Tamsayı Bölme \ X/Y ve X X \ Y


Y

Üs Alma ^, ** XY X^Y veya X**Y

Mod Alma (Kalan) Mod X Mod Y X Mod Y

String & Bade Zehra “Bade” & “Zehra”

11
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

Birleştirme

Negatif - —Y —Y

KARŞILAŞTIRMA OPERATÖRLERİ

Verilerin birbiriyle karşılaştırılmasında kullanılır. Sonuç doğru ise 1 ya da TRUE, yanlış ise 0 ya
da FALSE değerini alır.

İŞLEM OPERATÖR KARŞILAŞTIRMA VB C


NOTASYONU NOTASYONU NOTASYONU

Küçüktür < A < B A < B A < B

Büyüktür > A > B A > B A > B

Küçük eşit <= A ≤ B A <= B A <= B

Büyük eşit >= A ≥ B A >= B A >= B

Eşittir = A = B A = B A = = B

Eşit değil < > A ≠ B A < > B A != B

MANTIKSAL OPERATÖRLER

Mantıksal operatörlerin temelini, verilerin birbirleriyle kıyaslanması oluşturur. Kıyaslamanın


sonucuna bağlı olarak da hangi işlerin yapılacağına karar verilir.

İŞLEM OPERATÖR KARŞILAŞTIRMA NOTASYONU VB


NOTASYONU
Ve AND A VE B A AND B
Veya OR A VEYA B A OR B
Değil NOT A DEĞİL B A NOT B
Özel XOR A ÖZELVEYA B A XOR B
Veya
Eşit EQV A EŞİT B A EQV B

Mantıksal operatörlerin işlevlerini şöyle açıklayabiliriz;

 AND Operatörü; Lojik ifadelerin her ikisinin de doğru olması halinde TRUE
sonucunu aksi takdirde FALSE sonucunu üretir.
 OR Operatörü; Lojik ifadelerden herhangi birinin doğru olması halinde TRUE
sonucunu aksi takdirde FALSE sonucunu üretir.
 XOR Operatörü; Lojik ifadelerden her ikisinin de aynı olması halinde FALSE aksi
takdirde TRUE sonucunu üretir.

12
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

 NOT Operatörü; Lojik ifadenin değilini (tersini) alır. İfade doğru ise FALSE, yanlış
ise TRUE sonucunu üretir.
 EQV Operatörü; Lojik ifadelerden her ikisinin de aynı olması halinde TRUE aksi
takdirde FALSE sonucunu üretir

X Y NOT X NOT Y X AND Y X OR Y X XOR Y X EQV Y

1 1 0 0 1 1 0 1

1 0 0 1 0 1 1 0

0 1 1 0 0 1 1 0

0 0 1 1 0 0 0 1

Örnek 1.2. A=5, B=4 olarak verildiğinde Y= ( A < 5 ) OR ( B >= A ) AND ( A=5 ) ifadesinin
tersi ne olur?

Çözüm:

Y= ( A < 5 ) OR ( B >= A ) AND ( A=5 ) ifadesinin sonucu;


Y= False OR False AND True = 0 OR 0 AND 1 = 0 OR 0 = 0 = FALSE dur.

Bu ifadenin tersini alırsak;

Y = ( A>=5 ) AND ( B < A ) OR ( A< >5 ) = True AND True OR False Y = 1 AND 1 OR 0 = 1
OR 0 = 1 = TRUE

Sonucu elde edilir.

Örnek 1.3.
NOT A=1 AND B<>C OR (D=2 AND ADI=”AHMET”) ifadesinin sonucunu A=7, B=5, C=2,
D=3 ve ADI=”AHMET” değerleri için bulunuz.

Çözüm:

Örnek 1.4. Aşağıdaki programı çalıştırdığımızda hangi işlem gerçekleşir.

13
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

Çözüm:

Program çalıştırıldığında A değişkeni 5, B değişkeni -3, Y değişkeni 7 değerlerini alır ve B=Y


olmadığı için B–1 işlemi gerçekleşir ( ekranda -4 değerini görürüz ) ve program çalışması sona
erir.

BİLGİSAYAR ORTAMINDA MATEMATİKSEL


İFADELERİN GÖSTERİMİ
Bir matematiksel ifadede birden fazla işlem (çarpma, bölme, toplama v.b ) yer alabilir. Bu
durumda işlemlerin uygulama sıralarına dikkat etmek gerekir.

Matematiksel Operatörler Ve Öncelik Sıraları


Matematiksel operatörlerin öncelik sırası aşağıdaki tabloda verilmiştir. Aynı önceliğe sahip
işlemlerde soldaki daha önce işlem görür.

Öncelik Sırası İşlemler İşlem Simgesi


1 Sayıları negatifleştirme -

2 Parantez içi ( … )

3 Matematiksel fonksiyonlar Sin, Cos, v.b.

4 Üs Alma ^, **

5 Çarpma veya Bölme * veya /

6 Kalan Mod

7 Toplama veya Çıkarma + veya -

14
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

Örnek 1.5.

Şeklindeki matematiksel ifadenin bilgisayar ortamındaki kodlanması aşağıdaki şekilde


olur.

Kodlanması : ( a^2 +b*c ) / ( 2*a*b)

Örnek 1.6.

Şeklindeki matematiksel ifadenin bilgisayar ortamındaki kodlanması ve


işlem sonucu aşağıdaki şekilde olur.

Kodlanması : ( 6 + 2 *4) /2 – 3 ^2 + (6/3) / (2-3)

İşlem önceliği : ( 6 + 8) /2 – 3 ^2 + (6/3) / (2-3)


14 /2 – 3 ^2 + (6/3) / (2-3)
7 – 3 ^2 + (6/3) / (2-3)
7 – 9 + (6/3) / (2-3)
7 – 9 + 2 / (2-3)
7 – 9 + 2 / -1
7 – 9 + -2
7 – 9 - 2
—2–2
—4
NOT: Aynı öncelikteki işlemlerin uygulanmasının soldan sağa doğru yapıldığına
dikkat ediniz.

Örnek 1.7: Matematiksel ifade …..: y=prq+w/x-z

Bilgisayar ortamındaki kodlaması …: y = p * r ^ q + w / x – y

Harflerin yerine rakam yazarak matematiksel ifadeyi test edersek;

y = 3.42 + 6 / 2 – 7
y = 3*16+ 6 / 2 – 7
y = 48 + 6/2 – 7
y = 48 + 3 – 7
y = 51 – 7
y = 44

Sonucunu elde ederiz

NOT: Örnek 1.7. de İşlem önceliği, ilk önce üs alma, daha sonra çarpma(solda olduğu için),
bölme, toplama ve çıkarma şeklindedir.

15
“Algoritma Geliştirme ve Veri Yapıları”, Bülent Çobanoğlu

Örnek 1.8.

şeklindeki matematiksel ifadenin bilgisayar ortamındaki kodlanması aşağıdaki


şekilde olur.

Kodlanması : z= - (5*a**(2/3)) / (sqr(x*x-y*y))

Örnek 1.9: m= - 5 – 8 Mod 4 + 7 * (2 ^ 2 + 2) ifadesinin işlem önceliği aşağıdaki şekilde


olur.

m= - 5 – 8 Mod 4 + 7 * (4+ 2)
m= - 5 – 8 Mod 4 + 7 * 6
m= - 5 – 8 Mod 4 + 42
m= - 5 – 0 + 42
m= - 5 + 42
m= 37

sonucu elde edilir.

16

Vous aimerez peut-être aussi