tbp101 kbÜ programlama temelleri · bir sözde kod, yapısal olarak dört temel öğeye sahiptir....

Post on 09-Feb-2020

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Programlama Temelleri« S ÖZ D E KO D »

aelen@karabuk.edu.trKarabük Üniversitesi T.O.B.B. Teknik Bilimler Meslek YüksekokuluDemir Çelik Kampüsü 78050 Karabük/TÜRKİYE

KBÜKARABÜK ÜNİVERSİTESİ

Öğr. Gör. Dr. Abdullah ELEN

https://www.elenium.net

Belge No: TBP101/04Revizyon: R-001

Yayın Tarihi: 07.10.2018

TBP101

İçindekiler

2

➢Sözde Kod Tanımı ve Yapısı

➢Giriş/Çıkış Tanımları

➢Karar Yapıları

➢Döngü Yapıları

➢Örnek Uygulamalar

➢Alıştırma Soruları

Æ

3

Sözde Kod Nedir?

✓Sözde Kod (Pseudo-code), bir bilgisayar programının veya başka bir algoritmanın çalışma prensibinin gayri resmi bir üst düzey tanımlamasıdır.

✓Normal bir programlama dilinin yapısal kurallarını kullanır, fakat makineokumasından ziyade insan okumasına yöneliktir.

✓Sözde Kod bir programlama dili değildir.

✓Belirli bir sözdizimi (syntax) kullanmak zorunda olmayan bir dizi yönergeyi tanımlamanın basit bir yoludur.

✓Sözde kodların İngilizce ifadelerle belirtilmesi dünyada yaygın olarakkabul görmektedir.

Æ

4

Sözde Kod Yapısı

✓Bir sözde kod, yapısal olarak dört temel öğeye sahiptir.

1. Giriş/ÇıkışBilgi girişi ve çıkışı yapılan durumlar.

2. İşlemlerAritmetik ve mantıksal işlemler, bir değişkene değer atanması vb. olayların gerçekleştirilmesi.

3. Karar YapılarıBelirli bir koşulun sağlanıp sağlanmadığını kontrol ederek, yapılması gereken işlemler için kullanılır.

4. Tekrarlı YapılarBir koşula bağlı olarak ya da belirli bir sayıda tekrar edecek işlemler için kullanılır.

Æ

5

Sözde Kod Formatı

Sözde kod için kabul edilmiş standart bir format yoktur. Bu dersin işlenmesinde, aşağıdaki örnekte gösterildiği biçimde kodlama yapılacaktır.

PROGRAM OrtalamaHesaplayiciBEGIN

READ sayi1;READ sayi2;ort = (sayi1 + sayi2) / 2;PRINT ort;

END

PROGRAM <ProgramAdi>BEGIN

Kodlar buraya yazılacak…END

Æ

6

Giriş/Çıkış

Giriş ve çıkış işlemlerini göstermek için genellikle birkaç anahtar kelime kullanılır. Aşağıdaki komutlardan herhangi biri tercih edilebilir.

✓Giriş (Input): READ, GET

✓Çıkış (Output): PRINT, WRITE, DISPLAY, SHOW

1. Başla2. Vize notunu gir (vn)3. Final notunu gir (fn)4. ort = (vn + fn) / 25. Ekrana yazdır (ort)6. Bitir

READ vn;READ fn;ort = (vn + fn) / 2;PRINT ort;

READ vn;READ fn;ort = (vn + fn) / 2;WRITE ort;

GET vn;GET fn;ort = (vn + fn) / 2;DISPLAY ort;

GET vn;GET fn;ort = (vn + fn) / 2;SHOW ort;

Karar YapılarıD e c i s i o n S t r u c t u r e s

7

Æ

8

IF-THEN-ELSE

Belirli bir mantık koşulunda ikili (binary) seçim, dört anahtar kelimenin (IF, THEN, ELSE ve ENDIF) kullanılmasıyla gösterilir.

IF (<Koşul>) THENKoşul doğru (true) ise gerçekleşecek işlemler

ENDIF

IF (<Koşul>) THENKoşul doğru (true) ise gerçekleşecek işlemler

ELSEKoşul yanlış (false) ise gerçekleşecek işlemler

ENDIF

IF (<Koşul-1>) THENKoşul-1 doğru ise gerçekleşecek işlemler

ELSEIF (<Koşul-2>) THEN

<Koşul-1> yanlış ve <Koşul-2> doğru ise…ELSE

<Koşul-1> yanlış ve <Koşul-2> yanlış ise…ENDIF

ENDIF

Æ

IF (ORT > 50) THENPRINT "Geçti";

ELSEPRINT "Kaldı";

ENDIF

9

IF-THEN-ELSE

ORT > 50

"Kaldı" "Geçti"

EvetHayır

Bitir

Başla

Vize, Final

ORT = Vize*0.4 + Final*0.6

If-Then-Else yapısı için «Sözde Kod» ve «Akış Diyagramı» aşağıda gösterilmektedir.

Æ

IF (Secim = 1) THENPRINT "Toplama İşlemi";

ELSEIF (Secim = 2) THEN

PRINT "Çıkarma İşlemi";ELSE

PRINT "Hatalı seçim yaptınız!";ENDIF

ENDIF

10

IF-THEN-ELSE

Secim = 1

"Toplama İşlemi"

EvetHayır

Bitir

Secim = 2EvetHayır

"Çıkarma İşlemi"

"Hatalı seçim yaptınız!"

Başla

Secim

If-Then-Else iç içe yapısı için «Sözde Kod» ve «Akış Diyagramı» aşağıda gösterilmektedir.

Æ

CASE <Durum Değişkeni> OF<Durum-1> :

Komutlar…<Durum-2> :

Komutlar…DEFAULT:

Komutlar…ENDCASE

11

CASE-OF

➢ Case yapısı, çok durumlu dallanma ifadelerinde if-then-else blokları yerine tercihen kullanılırlar.

➢ Durumlar normalde sayı veya karakterdir.➢ Anahtar kelime olarak CASE, OF, DEFAULT ve ENDCASE kullanılır.➢ Varsayılan değerine sahip DEFAULT anahtar kelimesi isteğe bağlıdır.

Æ

CASE Secim OF1: PRINT "Toplama İşlemi";2: PRINT "Çıkarma İşlemi";DEFAULT:

PRINT "Hatalı seçim yaptınız!";ENDCASE

12

CASE-OF

Secim = 1

"Toplama İşlemi"

EvetHayır

Bitir

Secim = 2EvetHayır

"Çıkarma İşlemi"

"Hatalı seçim yaptınız!"

Başla

SecimCase-Of yapısı için «Sözde Kod» ve «Akış Diyagramı» aşağıda gösterilmektedir.

Döngü YapılarıL o o p S t r u c t u r e s

13

Æ

FOR <Kontrol Değişkeni>: <Başlangıç> TO <Bitiş> STEP <Artış Miktarı>

Komutlar…ENDFOR

14

FOR

FOR X: 0 TO 10 STEP 1PRINT X;

ENDFOR

➢ For döngüsü, döngü kısıtlamalarının açık bir şekildeçıkarılabileceği (bilindiği) durumlarda kullanılır.

➢ For döngüsünün diğer döngülerden farkı; başlangıç, bitiş ve artışmiktarının döngü içerisinde belirlenmesidir.

➢ Anahtar kelime olarak FOR, TO, STEP ve ENDFOR kullanılır.

Æ

FOR X: 0 TO 10 STEP 1PRINT X;

ENDFOR

15

FOR

Başla

Bitir

X: 1, 10, 1

X

For yapısı için «Sözde Kod» ve «Akış Diyagramı» aşağıda gösterilmektedir.

Æ

WHILE (<Koşul>)Komutlar…

ENDWHILE

16

WHILE

➢ While döngüsü, yalnızca koşul doğru olduğu sürece çalışır.➢ Her iterasyonun sonunda, durum değerlendirilir ve koşul doğru olduğu

sürece döngü devam eder.➢ Koşul yanlış olduğu durumda ise döngüden çıkılır.➢ While döngüsünde döngü değişkeni bulunmaz, bunun yerine While

bloğuna girmeden başlangıçta değeri bilinen bir değişken kullanılır.➢ Döngünün başlangıcı WHILE ve bitişi ENDWHILE adlı iki anahtar kelime

ile gösterilir.

SET Sayac = 0;WHILE (Sayac < 10)

Sayac = Sayac + 1;ENDWHILE

Æ

SET Sayac = 0;

WHILE (Sayac < 10)Sayac = Sayac + 1;

ENDWHILE

17

WHILE

Sayac < 10Evet Hayır

Bitir

Sayac = Sayac + 1

Başla

Sayac = 0

While yapısı için «Sözde Kod» ve «Akış Diyagramı» aşağıda gösterilmektedir.

Æ

REPEATKodlar…

UNTIL (<Koşul>)

18

REPEAT-UNTIL

➢ Bu yapı While döngüsüne benzerdir. Ama önce döngü içindeki kodlar bir kez yürütülür sonra mantıksal deyiminin sağlanıp sağlanmadığına bakılır.

➢ Her yinelemenin sonunda, durum değerlendirilir ve koşul yanlışsa döngü tekrarlanır. Durum, koşul doğru olduğunda sona erer.

➢ Anahtar kelime olarak REPEAT ve UNTIL kullanılır.

Æ

REPEATSayac = Sayac + 1;

UNTIL (Sayac > 10)

19

REPEAT-UNTIL

Sayac > 10Hayır Evet

Bitir

Sayac = Sayac + 1

Başla

Sayac = 0

Repear-Until yapısı için «Sözde Kod» ve «Akış Diyagramı» aşağıda gösterilmektedir.

Örnek UygulamalarE x a m p l e s

20

Æ

21

Örnek Uygulamalar

PROGRAM OrtalamaBulBEGIN

READ A, B;ORT = (A + B) / 2;PRINT ORT;

END

Klavyeden girilen iki sayının ortalamasını bularak sonucu ekrana yazıdan sözde kod ve akış diyagramı.

Başla

A, B

ORT = (A + B) / 2

Bitir

ORT

Æ

PROGRAM CiftSayilarBEGIN

FOR X: 0 TO 100 STEP 2PRINT X;

ENDFOREND

22

Örnek Uygulamalar

PROGRAM CiftSayilarBEGIN

SET X = 0;WHILE (X <= 100)

PRINT X;X = X + 2;

ENDWHILEEND

0’dan 100’e kadar olan çift sayıları ekrana yazıdan sözde kod ve akış diyagramı.

Başla

Bitir

X: 0, 100, 2

X

Æ

23

Örnek Uygulamalar

N Faktöriyel hesaplama işlemini yapan ve sonucu ekrana yazdıran sözde kod ve akış diyagramı.

Başla

Bitir

x: 1, N, 1

N

top = top * x

top = 1

top

𝑵! = 1 × 2 ×⋯× 𝑁

PROGRAM FaktoryelHesaplamaBEGIN

READ N;SET top = 1;FOR X: 1 TO N STEP 1

top = top * X;ENDFORPRINT top;

END

Æ

24

Örnek Uygulamalar

Klavyeden girilen üç sayıdan en büyüğünü bulan programın sözde kodu ve akış diyagramı.

Başla

a, b, c

b > maxE

max = a

max = b

max = cc > maxE

Bitir

H

H

PROGRAM EnBuyukSayiyiBulBEGIN

READ a, b, c;SET max = a;IF (b > max) THEN

max = b;IF (c > max) THEN

max = c;ENDIF

ELSEIF (c > max) THEN

max = c;ENDIF

ENDIFEND

Æ

25

Örnek Uygulamalar

1 ile 100 arasındaki Hilbert sayılarını bularak sonucu ekrana yazdıran sözde kod ve akış diyagramı.

Başla

Bitir

f

PROGRAM HilbertSayilariBEGIN

FOR f: 1 TO 100 STEP 1IF ((f – 1) mod 4 = 0) THEN

PRINT f;ENDIF

ENDFOREND

S <= 100E H

S = S + 1

S = 1

(f-1) mod4 = 0

E

H

Hilbert Sayısı: Bir eksiği 4’e tam bölünebilen pozitif tam sayılara Hilbert Sayısı denir.

Æ

26

Örnek Uygulamalar

PROGRAM DortlukNotuHarfNotunaCevirBEGIN

READ dNot;IF (dNot > 3.0) THEN

PRINT "A";ELSE

IF (dNot > 2.0 AND dNot <= 3.0) THENPRINT "B";

ELSEIF (dNot > 1.0 AND dNot <= 2.0) THEN

PRINT "C";ELSE

PRINT "F";ENDIF

ENDIFENDIF

END

Klavyeden girilen dörtlük sistemdeki bir notu harf notuna dönüştüren sözde kod.

Dörtlük Not Harf Notu

3.1 - 4.0 A

2.1 - 3.0 B

1.1 - 2.0 C

0.0 - 1.0 F

Æ

27

Açıklamalar

➢ Sayıları basamaklarına ayırma ve basamak değerlerini bulma

A = 2318

S1 = A mod 10 => S1 = 8S2 = A mod 100 => S2 = 18S3 = A mod 1000 => S3 = 318

B1 = A/10 => B1 = 231B2 = A/100 => B2 = 23B3 = A/1000 => B3 = 2

C1 = S2/10 => C1 = 1C2 = (S3-S2)/100 => C2 = 3

Alıştırma SorularıE x e r c i s e s

28

Æ

29

Alıştırma Soruları

1) Klavyeden girilen üç sayıyı toplayan ve ortalamasını alıp sonuçları ekrana yazdıran sözde kodu yazınız.

2) Bir üçgene ait yükseklik ve taban uzunluğu değerlerini klavyeden girerek, alanını hesaplayan ve sonucu ekranda gösteren sözde kodu yazınız.

3) Klavyeden girilen suyun sıcaklık derecesine göre katı, sıvı veya gaz halinde olduğunu bulan ve sonucu ekranda gösteren sözde kodu yazınız.

4) Klavyeden girilen bir tamsayının pozitif, negatif veya sıfır olduğunu bulan sözde kodu yazınız.

5) Klavyeden girilen pozitif bir tamsayının tek ya da çift olduğunu bulan sözde kodu yazınız.

Æ

30

Alıştırma Soruları

6) Bir fabrikada sabit maaşla çalışan işçiler aile durumlarına göre ek maaşalmaktadırlar. Çocuk sayısı 1 ise maaşının %5’i kadar, çocuk sayısı 2 ise %10’u kadar, 3 ve daha fazla ise %15’i kadar aile yardımı almaktadır. Buna göre kullanıcıdan işçinin maaşı ve çocuk sayısı istenerek gerekli hesaplamayı yapan sözde kodu yazınız.

7) Bir ürüne ait alış fiyatı, vergi oranı ve kar oranı parametreleri klavyeden girilerek satış fiyatını hesaplayan sözde kodu yazınız.

8) Klavyeden girilen iki sayı için, dört işlem (1:Topla, 2:Çıkar, 3:Çarp, 4:Böl) yapabilen bir sözde kodu yazılması istenmektedir. Kullanıcı 1 ve 4 arasında bir işlem numarası girerek bu işlemleri gerçekleştirir. Bunlardan farklı bir rakam girildiğinde program sonlanır.

Æ

31

Alıştırma Soruları

9) BiletKart uygulaması için bir metroda uygulanan ücret tarifesi aşağıdaki gibidir. Buna göre, uygulanan ücret politikasının algoritmasını oluşturunuz.✓Normal tarife: 3 TL

✓Öğrenci ve 30 (dahil) yaşından küçük olanlar: 2.5 TL

✓Öğrenci ve 30 yaşından büyük olanlar: 2.75 TL

✓60 (dahil) yaşından büyük olanlar: Ücretsiz

NOT: Bir kişi her iki koşulu birden taşıması durumunda, daha düşük olan ücret tarifesi uygulanır.

10) Klavyeden girilen pozitif bir X tamsayısının tam bölenlerini bulup ekranda gösteren sözde kodu yazınız. (Örn. 6 sayısı için; 1, 2, 3 ve 6’dır.)

Æ

32

Alıştırma Soruları

11) Tau sayıları: Tam bölenlerinin sayısına kalansız bölünebilen sayılara Tausayısı denir. Buna göre Klavyeden girilen pozitif bir X tamsayısının Tausayısı olup olmadığını bulan sözde kodu yazınız. Örneğin 12 sayısı için;✓12’nin tam bölenleri: 1,2,3,4,6,12

✓12’nin tam bölenlerinin sayısı: 6

✓12 mod 6 = 0 ise 12 bir Tau sayısıdır.

12) 1 ile 100 arasındaki Tau sayılarını bulan ve ekranda listeleyen sözde kodu yazınız.

Æ

1 Algoritma ve Programlama Giriş Ders Notları, İbrahim Küçükkoç, Balıkesir Üniversitesi (3.10.2018)

2 Introduction to Computers and Programming Lecture Notes, New York University (03.10.2018)

3 Pseudocode Standard, John Dalbey , California Polytechnic State University (05.10.2018)

4

5

6

7

8

9

10

B u d e r s n o t u h a z ı r l a n ı r k e n a ş a ğ ı d a b e l i r t i l e n k a y n a k l a r d a n y a r a r l a n ı l m ı ş t ı r.

33

Kaynaklar

top related