You are on page 1of 41

Bilgisayar Programcılığı ve İnternet

Teknolojileri Sertifika Programı

Algoritma & Programlama


Ders 1

Prof. Dr. Alp Kut


Dr. Derya Birant
Algoritma nedir?
 Tanım 1: Algoritma, bir problemin mantıksal çözümünün,
sembolik olarak anlatımıdır.

 Tanım 2: Bir sorunu çözebilmek için gerekli olan sıralı mantıksal


adımların tümüne denir.

 Algoritmaların yazım dili değişik olabilir.


Günlük konuşma diline yakın bir dil olabileceği gibi simgelere
dayalı da olabilir.
Algoritma Özellikleri
Her algoritma aşağıdaki özellikleri içermelidir :

 Input / Girdi
 Sıfır veya daha fazla

 Output / Çıktı
 En azından bir

 Definiteness / Açıklık
 Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli.
 Mesela: NetGelir = BrütGelir – Kesintiler

 Finiteness / Sonluluk
 Her türlü olasılık için algoritma sonlu adımda bitmeli.
 Her algoritmanın bir sonu olmalıdır, sonsuza kadar devam edecek yapıda
olmamalıdır.

 Effectiveness / Etkinlik
 Algoritma etkin olmalıdır. Algoritmada tekrar anlatımlar olmamalıdır.
Bünyesinde en az tekrar bulunduran algoritmalara en etkin algoritma denir.
Program nedir?

 Bilgisayarın donanım kısmına yaşam veren komutlardır.

 Bir program bilgisayara ne yapması gerektiğini söyleyen bir dizi komuttur.

Girdi İşlem Çıktı


−−> −−>
(Input) (Process) (Output)

Veri Bilgi
(Data) (Information
)
Program Geliştirme Adımları

Program geliştirirken izlenmesi gereken adımlar:

 Problemin Tanımlanması

 Çözümün geliştirilmesi – algoritmanın yazılması

 Çözümün kodlanması – algoritmanın bir programlama diliyle yazılması

 Programın Test Edilmesi and Derlenmesi – mantıksal ve biçimsel hatalarının


ayıklanması

 Program Dökümanının Hazırlanması


Algoritma ve Program
İki sayının toplanıp, sonucun ekrana yazdırılması

8 ve 12 sayılarını toplayan ve sonucu ekrana yazdıran programı yazınız.
Algoritma Program Kodu

Birinci sayıya 8 ata sayi1 = 8
İkinci sayıya 12 ata sayi2 = 12
Topla toplam = sayi1 + sayi2
Toplamı ekrana yazdır PRINT toplam

Ekran Çıktısı 

20
 
 
 
 
Programlama Dilleri

Makina Dili Sembolik Diller Yüksek Seviyeli Diller

1010101011101111101 Mov AX, Sayi1 Toplam = Sayi1 + Sayi2


0010111011111100111 Mov BX, Sayi2
111.... Add AX, BX
Mov Toplam, AX •Fortran (FORmula TRANslator, 1957)

•Cobol (Common Business Oriented


11000111101
10110101010
Language, 1959)
1010110111
•Basic (Beginners All purpose Symbolic
Instructional Code, 1964)
Merhaba 
Dünya...
•Pascal, 1968

•C, 1972
Quick Basic

 BASIC (Beginners All-Purpose Symbolic Instruction Code)

 Genel amaçlı, yeni başlayanlar için bir programlama dilidir.

 Öğrenmesi kolay, yüksek seviyeli bir dildir.

 En önemli özelliklerinden biri İngilizce kelimeler ile yazılabiliyor


olmasıdır.

 Basic kodları (.BAS) bir derleyici ile çalıştırılabilir (.EXE) ye


dönüştürülebilir.
Akış Şeması Nedir?
 Bir problemin mantıksal çözümünün şekilsel olarak anlatımıdır.

 Her akış şeması bir başlangıç elemanı ile başlar.

 Her akış şeması en az bir bitiş elemanı ile biter.

 Bir akış şemasında açık uçlu oklar bulunmaz.


Başlangıç – Bitiş Elemanı
Başlangıç elemanı, akım şemasına başlangıç noktasını
BAŞLA belirtmek için kullanılır. (0 girdi, 1 çıktı)

BİTİŞ Bitiş elemanı, akım şemasının bitiş noktasını belirtir. (En


az 1 girdi, 0 çıktı)

İşlem Grubu Elemanı


Algoritma içindeki işlemleri ifade etmekte kullanılır. (En az
1 girdi, 1 çıktı)

Girdi – Çıktı Elemanı


Algoritmaya yapılacak bilgi girişlerinde ve algoritmadan
yapılacak bilgi çıkışlarında simge olarak kullanılır.
(En az 1 girdi, 1 çıktı)

Sorgu Elemanı

Sonucu Olumlu veya Olumsuz olabilecek soruya verilecek


yanıta göre akışı ikiye ayırabilecek elemandır. (En az 1
Yanlış Doğru girdi, 2 çıktı)

Etiket (Bağlayıcı)

Oklar
Akış diyagramında iki nokta
arası ilişkiyi gösterir. Burada i
Oklar işin akış yönünü
herhangi bir sembol olabilir.
Akış Şeması
1. İşlem 1. İşlem
 Sırasal (Dizisel) Akış 2. İşlem 2. İşlem
... veya …
n. İşlem
n. İşlem

 Durumsal Akış
Koşul

Yes No

 Döngüsel Akış

Koşul işlem Koşul işlem

No
Yes Yes
No
Örnek
En ve boy bilgileri verilen bir tarlanın alanının bulunması :

Başla

Eni oku (en)


• En oku
• Boy oku Boyu oku (boy)

• Alan  en * boy Alan = en * boy


• Alan yaz
Alan yaz
• Dur
Bitiş
Örnek
Üç kenarı verilen üçgenin çevresinin bulunması :

Başla

1. Kenarı oku (A)


• Birinci kenarı oku (A)
• İkinci kenarı oku (B) 2. Kenarı oku (B)

• Üçüncü kenarı oku (C) 3. Kenarı oku (C)


• Cevre  A + B + C
Cevre = A + B + C
• Cevre yaz
• Dur Cevre yaz

Bitiş
Örnek
Verilen üç sayının ortalamasını bulan akış şemasını çiziniz.

Başla

• 1. sayı oku (A)


Birinci sayıyı oku (A)
• İkinci sayıy oku (B) 2. sayı oku (B)

• Üçüncü sayıy oku (C)


3. sayı oku (C)
• Ortalama  (A + B + C) / 3
• Ortalama = (A + B + C) / 3
Ortalama yaz
• Dur Ortalama yaz

Bitiş
Örnek
 Sınav notu girilen öğrencinin sınavı geçip geçmediğini bulma

Başla

Sinavnotu oku

Sinavnotu Doğru Sınavı geçemediniz


<50?
Yanlış

Sınavı geçtiniz

Bitiş
Örnek
Verilen sayının 200’den küçük, büyük veya eşit olduğunun bulunması :

Başla

Sayi oku

Sayi Doğru Sayi 200’den küçüktür yaz


<200?
Yanlış
Sayi Doğru Sayi 200’e eşittir yaz
=200?
Yanlış
Sayi Doğru Sayi 200’den büyüktür yaz
>200?
Yanlış
Bitiş
Soru
 Girilen iki sayının hangisinin küçük olduğunu bulan akış
şemasını çiziniz.
Soru
 Girilen öğrenci notunun hangi harfe karşılık geldiğini bulan
akış şemasını çiziniz.

90 - 100  A
80 - 89  B
70 - 79  C
60 - 69  D
50 - 59  E
0 - 49  F
Örnek
 1 - 100 arasındaki sayıların toplamının bulunması
Başla

Toplam=0

Adet =0

Adet = Adet +1

Toplam = Toplam + Adet

Adet
=100? Yanlış
Doğru
Toplamı Yaz

Bitiş
Örnek
 11 - 50 arasındaki sayıların ortalamasının bulunması

Başla
A

Toplam=0
Ortalama = Toplam / 40
Adet =10

Adet = Adet +1 Ortalamayı Yaz

Bitiş
Toplam = Toplam + Adet

Adet
A Doğru =50? Yanlış
Örnek
 Ekrandan okunan 5 adet sayının ortalaması

Başla
A

Toplam=0
Ortalama = Toplam / 5
Adet =0

Ortalamayı yaz
Sayi oku

Bitiş
Toplam = Toplam + sayi

Adet = Adet +1

Adet
A Doğru =5? Yanlış
Soru
 Girilen 10 sayının çift sayı mı, tek sayımı olduğunu bulan akış
şemasını çiziniz.
Soru
 Girilen 10 sayının 3’ün katı olup olmadığını bulan akış şemasını
çiziniz.
Değişkenler

Tanım 1: Değeri programın çalışması boyunca değişiklik gösteren


bellek birimlerine değişken denir.

 Tanım 2: Bir isimle anılabilen değerlere de değişken denilir.

 Değişkenler kullanım amacına uygun olarak anlamlı isimlendirilmelidir.

 Değişken isimlerinde Türkçe harfler bulunmamalıdır. (ü,ğ,ç,ş,ı,ö,Ü,İ,...)


Değişkenler
 Değişkenler kullanılmadan önce tanıtılmalıdır.

 QBasic’te değişkenler DIM komutuyla tanımlanmaktadır.

 DIM komutu İngilizce’de boyut anlamına gelen Dimension


kelimesinin kısaltmasıdır.
 Örnek
DIM isim AS STRING               yada                isim$ = “Ayşe" 
isim = “Ayşe"

DIM yas AS INTEGER           yada                yas% = 23 
yas = 23 
Veri Tipleri

Suffix Tipi Bytes Sayı Aralığı


% Integer 2 -32,768 .. 32,767
& Long 4 -2,147,483,648 .. 2,147,483,647

! Single 4 ±3.4E ... ±38 (3.4 * 10 ^ 38) varsayılan

# Double 8 ±1.8E .. ±308
$ String 0..16384 variable length string
Değişkenlere Değer Atama
 QBasic’de değişkenlere değer atama işlemi = işaretiyle
yapılmaktadır.

 Değişkenlere bilgisayar içinden değer atama

 adet = 0 (integer)
 isim = “ayşe” (string)
 Pi = 3.14 (double)

 Değişkenlere bilgisayar dışından (kullanıcıdan alarak) bilgi


atama INPUT komutu ile yapılabilmektedir.

 INPUT "Yarı çapı kaç?", yaricap


Değişkenlerin Değerlerini Ekrana Yazdırma

Değişkenlerin değerleri PRINT komutu kullanılarak ekrana yazdırılmaktadır.

Örnek:
PRINT “Program Completed”

DIM isim AS STRING


Monitor Printer
isim = “Ayşe”
PRINT isim

PRINT "5 + 7"  5 + 7 
 

PRINT 5 + 7  12 
 
İşlemler 1

 Normal Aritmetik İşlemler


 “+” : Toplama işlemini ifade eder.
 “–“ : Çıkarma işlemini ifade eder.
 “*” : Çarpma işlemini ifade eder.
 “/” : Bölme işlemini ifade eder.
 “\” : Tam sayı bölen sonuçlu bölme işlemini ifade eder.
 “mod” : Mod işlemini ifade eder.
 “^”: üs alma

Kullanılabilecek mantıksal operatörler aşağıdaki gibidir:


 “AND”: Ve işlemini ifade eder.
 “OR” : Veya işlemini ifade eder.
 “NOT” : Ters işlemini ifade eder.
İşlemler 2
 Kullanılabilecek kontrol işaretleri aşağıdaki gibidir:
 X < Y : “X küçüktür Y’den” ifadesini anlatır.
 X > Y : “X büyüktür Y’den” ifadesini anlatır.
 X = Y : “X eşittir Y’ye” ifadesini anlatır.
 X <> Y : “X eşit değildir Y” ifadesini anlatır.
 X <= Y : “X küçük veya eşittir Y’ye” ifadesini anlatır.
 X >= Y : “X büyük veya eşittir Y’ye” ifadesini anlatır.
Örnek
 En ve boy bilgileri verilen bir tarlanın alanını bulunuz.

DIM en AS INTEGER
Başla DIM boy AS INTEGER
DIM alan AS INTEGER
Eni oku (en)
Input “tarlanın enini giriniz”, en
Boyu oku (boy)
Input “tarlanın boyunu giriniz”, boy
Alan = en * boy

alan=en * boy
Alan yaz

Bitiş PRINT “Tarlanın alanı =“, alan

END
Örnek
Üç kenarı verilen üçgenin çevresinin bulunması :
DIM A AS INTEGER
DIM B AS INTEGER
DIM C AS INTEGER
Başla DIM Cevre AS INTEGER

1. Kenarı oku (A) Input “birinci kenarı giriniz”, A

2. Kenarı oku (B) Input “ikinci kenarı giriniz”, B

3. Kenarı oku (C) Input “üçüncü kenarı giriniz”, C

Cevre = A + B + C Cevre=A + B + C

Cevre yaz PRINT “Ucgenin cevresi =“, Cevre

Bitiş END
Örnek
 Girilen iki sayının toplamını, farkını, çarpımını ve bölümünü ekrana
yazdıran QBASIC programını yazınız.

DIM sayi1 as INTEGER


DIM sayi2 as INTEGER

INPUT “birinci sayıyı giriniz”, sayi1


INPUT “ikinci sayıyı giriniz”, sayi2

Print “Toplam = ”, sayi1 + sayi2


Print “Fark = ”, sayi1 - sayi2
Print “Çarpım = ”, sayi1 * sayi2
Print “Bölüm = ”, sayi1 / sayi2
Örnek
 Girilen üç sayının kareler ortalamasını bulunuz.

DIM s1, s2, s3 AS INTEGER


DIM ortalama AS SINGLE
CLS
INPUT "1. sayıyı giriniz ", s1
INPUT "2. sayiyi giriniz ", s2
INPUT "3. sayıyı giriniz ", s3
ortalama = (s1 * s1 + s2 * s2 + s3 * s3) / 3
PRINT "Bulunan Kareler Ortalaması = "; ortalama
Soru
 Girilen Dereceyi (C) Fahrenheit’a (F) çeviren programı
yazınız.
F = 9/5C +32
Koşul Deyimi (IF THEN ELSE)
IF koşul THEN
[ S1 ] Koşul doğru ise S1’deki işlemler yapılır.
END IF

IF koşul THEN
[ S1 ]
Koşul doğru ise S1’deki, yanlış ise S2’deki
ELSE
işlemler yapılır.
[ S2 ]
END IF

IF koşul1 THEN
[ S1 ] Koşul1 doğru ise S1’deki
ELSEIF koşul2 THEN Koşul1 yanlış ve Koşul2 doğru ise S2’deki
[ S2 ] Koşul1 ve Koşul2 yanlış ise S3’deki
ELSE işlemler yapılır.
[ S3 ]
END IF
Örnek
 Sınav notu girilen öğrencinin sınavı geçip geçmediğini bulma

Başla
INPUT “sınav notunu giriniz”, sinavnotu
Sinavnotu oku
IF sinavnotu < 50 THEN
PRINT “Sınavı geçemediniz” Sinavnotu Doğru Sınavı geçemediniz
ELSE <50?
PRINT “Sınavı geçtiniz” Yanlış

END IF Sınavı geçtiniz

Bitiş
Örnek
Verilen sayının 200’den küçük, büyük veya eşit olduğunun bulunması

DIM a AS INTEGER Başla


INPUT “bir sayı giriniz ", a
IF a < 200 THEN Sayi oku

PRINT “a sayısı 100'den küçüktür.“


Sayi Doğru
END IF Sayi 200’den küçüktür yaz
<200?
IF a = 200 THEN Yanlış
PRINT “a sayısı 100'e eşittir.“ Sayi Doğru
Sayi 200’e eşittir yaz
END IF =200?

IF a > 200 THEN Yanlış

PRINT “a sayısı 100'den büyüktür.“ Sayi Doğru


Sayi 200’den büyüktür yaz
>200?
END IF
Yanlış
END
Bitiş
Örnek

Bu program verilen sayının çift mi tek mi olduğunu bulur.

INPUT "sayıyı giriniz", sayi


IF sayi MOD 2 = 1 THEN
PRINT "sayı tektir"
ELSE
PRINT "sayı çifttir"
END IF
END
ÖDEV
 Girilen iki sayının küçük olanını bulan programı yazınız.
QBasic Komutlari
 PRINT : Bir karakterin, rakamın, değişken içeriğinin, işlem sonucunun
ekrana yazılmasını sağlar.
 INPUT : Klavyeden girilen değerin bir değişkene atılmasını sağlar.
 END : Programın bitmesini sağlar.
 IF THEN ELSE : If konumundaki şart gerçekleşiyorsa Then kısmındaki,
gerçekleşmiyorsa Else kısmındaki olayı gerçekleştirir.
 CLS: Ekranın temizlenmesini sağlar.
 DIM: Değişkenlerin tanımlanmasını sağlar.

You might also like