Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Algoritma ve Programlama Mantığı

Algoritma ve Programlama Mantığı

Published by Bilişim Hocası, 2022-10-11 20:59:26

Description: Algoritma ve Programlama Mantığı

Keywords: Algoritma ve Programlama Mantığı,Algoritma,Programlama,isa gürbüz,Programlama Mantığı

Search

Read the Text Version

PROGRAMLAMA DİLİ NEDİR? Programlama dili bilgisayara hükmetmek için kullanılan bir araçtır. Bilgisayarlar birer elektronik cihaz oldukları için sadece ikilik düzeninde çalışabilirler. İkilik düzende sadece birler ve sıfırlar vardır. Ancak birler ve sıfırlarla programlama yapmak oldukça zahmetli bir iştir. Bu nedenle programlama dillerini birbirinden ayıran en büyük özellikleri; söz dizimi (syntax) yani yazım kurallarıdır.

ENTEGRE GELİŞTİRME ORTAMI ( IDE ) NEDİR? Entegre Geliştirme Ortamları ( IDE – Integrated Development Environment ); bir programcıya, programlama esnasında en büyük yararı olan araçlardan biridir. Programlama için kodlar, not defteri uygulamalarıyla yazılıp derlenebilir. Fakat IDE’lerin sağladığı birçok avantaj, böyle bir programlama modelini tercih etmenizi engellemiştir. IDE’lerin sağladığı bazı özellikler: 1- Syntax Highlighter özelliği ile kodların bazı kısımlarını reklendirmesi 2- Syntax hatalarını göstermesi ve otomatik düzeltmeler yapması 3- Adım adım çalışma sağlaması ( debugging ) 4- Bir yerde yapılan kod değişikliğini her yere uygulaması 5- Kodların daha düzenli yazılmasını sağlaması

ALGORİTMA NEDİR? Bir problemin çözümünde uygulanacak işlemlerin maddeler ya da şekiller yardımı sırası ile ifade edilmesidir. Planların programlama dilindeki karşılığıdır. Problemin çözümü için hazırlanacak işlem basamaklarıdır. Aynı problemi çözen birden fazla algoritma olabilir. Yapılması gereken hangi algoritmanın daha hızlı ve verimli çalıştığını tespit etmektir. ALGORİTMA NASIL TASARLANIR? Algoritmalar sıralı adımlardan oluşurlar. İlk adım daima Başla’dır. Son adım ise Dur ya da Bitir adımıdır. Bir algoritmanın şeması: 1.Başla 2.Gereksinimlere göre tanımlamalar ( Sabit ve Değişkenler ) 3.Yapılacak işlemler ( Operatörler ) 4.Sonuçların kullanıcıya sunulması ( Ekrana Yazdırma ) 5.Bitti / Dur

GÜNLÜK HAYATTAN ALGORİTMA ÖRNEĞİ 1. Kettle’a su koy 2. Kettle’ı prize tak 3. Kaynayınca prizden çek 4. Suyu bardağa koy 5. Bardağa 2 kaşık nescafe koy 6. 3 şeker ekle 7. Karıştır

İKİ SAYIYI TOPLAYAN ALGORİTMA 1. Başla 2. Birinci sayıyı oku 3. İkinci sayıyı oku 4. İki sayıyı topla 5. Sonucu ekrana yazdır 6. Dur Yapılacak algoritmalarda değişkenli model tercih sebebidir. Değişkenler algoritma içerisinde farklı değerler alabilen, içinde bilgiler tutan sözcüklerdir. ( Aynı su bardağı gibi. İçine koyduğumuz bilgiye göre değişir. ) Aynı algoritmanın değişkenli hali: 1. Başla 2. X sayısını oku 3. Y saıyısını oku 4. Z=X+Y işlemini yap 5. Z’yi ekrana yazdır 6. Dur

ALGORİTMA İFADE ÇEŞİTLERİ - Doğal dil ile ifade: Teknik terimlerin kullanılmadığı, ilk yaptığımız algoritmayı buna örnek olarak verebiliriz. - Sınırlı doğal dil ile ifade: ( Yani Kaba Kod ) Konuşma diliyle birlikte teknik terimlerin kullanıldığı ifade çeşididir. Yaygın olarak bu model kullanılır. - Akış diyagramları ile ifade: Algoritma adımlarının şekiller ve oklar ile görselleştirilerek anlatılmasıdır.

TERİMLER - Değişkenler: Her çalıştırdığımızda farklı değerler alabilen, içinde bilgiler tutan kod sözcükleridir. Bir değişken tanımlanması halinde tüm bilgiler RAM ( Geçici Bellek) de tutulur. Bu yüzden gereksiz değişken tanımlamalarından kaçınmalıyız. - Sabitler: Her çalıştırdığımızda aynı değerler alabilen, içinde bilgiler tutan kod sözcükleridir. Matematiksel değerler; pi sayısı gibi. ( 3,14 ) Tanımlama aşamasında sabit adı büyük harfler ile yazılarak bunun bir sabit olduğu belirtilmelidir. Sabit ve Değişkene Bir Örnek Algoritma: 1. Başla 2. Kdv=18 olarak bir sabit tanımla 3. Ucret sayısını oku 4. Sonuc=Ucret*Kdv/100 işlemini yap 5. Sonuc sayısını ekrana yazdır 6. Dur

- Sayaçlar: Programda bir işin kaç kez yapılacağını hesaplamak için kullanılır. Genel kullanımı sayaç=sayaç+adım ya da sayaç=sayaç-adım şeklindedir. Sayaçlara Bir Örnek Algoritma: * klavyeden 0 rakamı girilene kadar kaç adet sayının girildiğini bulan algoritma: 1. Başla 2. S=0 3. A sayısını oku 4. Eğer A=0 ise 7.adıma git 5. S=S+1 6. 3.adıma git 7. S sayısını ekrana yaz 8. Dur

- Döngüler: Programda şarta bağlı bazı işlemler için kullanılırlar. Belirlenen koşul sağlanana kadar tekrar ederler. Döngülere Bir Örnek Algoritma: * 1 ile 10 arasındaki sayıların toplamını bulan algoritma: 1. Başla 2. T=0, S=0 3. S>10 ise 7.adıma git 4. S=S+1 5. T=T+S 6. 3.adıma git 7. T sayısını ekrana yaz 8. Dur

- Operatörler: Çeşitli matematiksel ve mantıksal işlemler için kullanılırlar. Döngülere Bir Örnek Algoritma: * 3 ve 11 sayısı için matematiksel operatörler kullanan algoritma: 1. Başla 2. A=3, B=11 3. t=a+b 4. c=a*b 5. f=a-b 6. g=a/b 7. u=a^b ( üssünü bulur ) 8. k= b%a ( bölümünden kalanı bulur ) 9. Yazdır, t,c,f,g,u,k 10.Dur

* karşılaştırma operatörleri kullanan algoritma: 1. Başla 2. A sayısını klavyeden oku 3. B sayısını klavyeden oku 4. Eğer A==B ise «sayılar eşittir» yaz 5. Eğer A!=B ise «sayılar farklıdır» yaz 6. Eğer A>B ise «A büyüktür» yaz 7. Eğer A>=B ise «A büyük ya da eşittir» 8. Eğer A<B ise «B sayısı büyüktür» yaz 9. Eğer A<=B ise «B sayısı küçük ya da eşittir» 10. Dur Mantıksal operatörler genellikle birden fazla karşılaştırmanın bulunduğu durumlarda kullanılırlar. Ve-Veya-Değil-XOR-XNOR-NAND gibi..

* mantıksal operatörleri kullanan algoritmalar: 1. Başla 2. A sayısını klavyeden oku 3. A>10 VE A<20 ise «Girilen sayı 10 ile 20 arasında» 4. Dur 1. Başla 1. Başla 2. A sayısını klavyeden oku 2. A sayısını klavyeden oku 3. A!=15 ise «Eşit Değil» 3. A<15 veya A>25 ise «Doğru» 4. Dur 4. Dur ! Programlamada İşlem Önceliği 1. Parantez içleri 2. Üs alma işlemleri 3. Çarpma ve bölme işlemleri 4. Toplama ve çıkarma işlemleri

AKIŞ DİYAGRAMLARI Her bir komuta karşılık gelen şekiller yardımıyla ifade edilen algoritmalara akış diyagramı - akış şeması denir. “Başla” ve “Dur” işlemleri standarttır. Her akış diyagramı “Başla” şekli ile başlar, “Dur” şekli ile biter. İşlemler bu iki elips şekli arasında açıklanır. Bilgisayara klavyeden (dışardan) veri/bilgi girişini temsil eden paralel kenar şekildir. Bu şeklin içine, klavyeden girilen verinin aktarılacağı değişken ismi yazılır. Örneğin; şeklin içinde “X” yazıyorsa ve program çalıştırıldığında “5” girilirse, bu X=”5” olacak anlamındadır. Veri girişi şeklinin içine, birden fazla değişken ismi de yazılabilir.

Programın çalışması sırasında yapılacak işlemleri ifade etmek için kullanılan dikdörtgen şekildir. İçine işlem cümleleri olduğu gibi yazılır. Birden fazla işlem; aynı şekil içinde, aralına virgül konularak veya alt alta yazılarak gösterilebilir. Örneğin işlem akışı bu şekle gelince, program a kare ve b kareyi toplayıp c değişkenine atar. Birçok programda; belirli işlem bazı koşullar sağlanıncaya kadar tekrarlanır. Bu tekrarlamalı işlemler “Döngü” olarak isimlendirilir. Döngü şeklinin içine; döngü değişkeni, başlangıç değeri, bitiş değeri yazılır. Örneğin; işlem akışı bu şekle gelince, 1 den 10’a kadar 1 er 1 er artan bir döngü başlatılacaktır.

Karar verme ( kontrol etme, karşılaştırma ) işlemlerini temsil eden şekildir operatörlere bağlı koşullar, şeklin içine yazılır. Kontrol sonrası sonuç “Evet” yada “Hayır” şeklinde dallanarak programın akış bağlantı noktasında ilgili noktalara bağlanılır. Örneğin; işlem akışı bu şekle gelince koşulun sağlanması yada sağlanmaması durumunda iki farklı noktaya dallanır. Dalgalı dörtgen sonucu ekrana yazdırma işlemlerini yazdırmak için kullanılır. İçerisine metin ve değişken yazılır.

Büyük programlar, birçok küçük programın birleşiminden meydana gelmektedir. Benzer şekilde küçük programlarda da bazı işlemler ayrı olarak tanımlanıp (alt program, fonksiyon vb.) kullanılmaktadır. Bazı işlemlerin yapılmasını defalarca kodlamak yerine, bir defa kodlayarak kullanılabilmektedir. Böylece programın işlevselliği, modülerliği, hızı gibi birçok özelliği olumlu yönde etkilenmektedir. Örneğin girilen sayının işaretinin tipini ( pozitif, negatif ya da sıfır ) bulan alt program bu şekilde kullanılır. Akış diyagramında işlem akışının hangi yönde olduğu gösteren oklardır. İşlem akış yönüne göre uygun olan ok kullanılır.

*Girilen iki değerin karşılaştırılması sonucuna göre farklı işlemlerin gerçekleştirilmesinin istendiği bir programın akış diyagramını çizelim.

NOT ALGORİTMASI Bir örnekle akış şemasını tanıyalım. Klavyeden girilen 2 yazılı notu 1 sözlü notu verilerini kullanarak ortalamayı bulan ve sınıftan geçme durumunu yazan programın algoritmasını akış şemasıyla birlikte oluşturalım. Programın Algoritması: Adım 1 Başla Adım 2 Birinci Yazılı Notunu Gir, Y1 Adım 3 İkinci Yazılı Notunu Gir, Y2 Adım 4 Sözlü Notunu Gir, sozlu Adım 5 Ort=(Y1+Y2+sozlu)/3 Adım 6 Eğer Ort > 50 ise, «Dersi Geçtiniz» yaz Adım 8’e git Adım 7 Değilse «Dersten Kaldınız» yaz Adım 8 Bitir

BAŞLA Programın Akış Şeması Y1 Y2 sozlu Ort=(Y1+Y2+sozlu)/3 Ort> 50 HAYIR DERSTEN KALDINIZ EVET DERSTEN GEÇTİNİZ BİTİR

FLOW CHART PROGRAMI Akış şemalarını çizmeye ve test etmeye yarayan Flowchart programını bir örnekle tanıyalım. Yükseklik ve taban uzunluğu klavyeden girilince üçgenin alanını hesaplayan programın algoritmasını akış şemasıyla birlikte oluşturalım. Programın Algoritması: Adım 1 Başla Adım 2 Yükseklik Değerini Gir, h Adım 3 Taban Uzunluğu Değerini Gir, t Adım 4 Yükseklik ve Taban Uzunluğunu Çarp Adım 5 Çarpım Sonucunu 2^ye Böl Adım 6 Sonuç Değerini Ekrana Yazdır Adım 7 Bitir

FLOW CHART İLE ÜÇGENİN ALANI Not: Flow Chart programında dalgalı dörtgen şekli bulunmadığı için ekrana yazdırmayı «paralel kenar, out» nesnesi ile yapıyoruz.

FLOW CHART İLE EXE YAP

Örnek: 1 den 100 e kadar olan tüm sayıları ekrana yazdıran programın algoritma tasarımını, akış diyagramları ve algoritma adımları kullanarak yapalım. 1. Başla 2. I=1 3. I>100 ise 7.adıma git 4 .I’yı ekrana yaz 5. I=I+1 6. 3.adıma git 7. Dur



Örnek: Yaş 18 den büyükse ekrana ehliyet alabilir küçükse ehliyet alamaz yazdıran programın algoritma tasarımını, akış diyagramları ve algoritma adımları kullanarak yapalım. 1. Başla 2. Yaş değerini gir, yas 3. Eğer yas> 18 ise, «Ehliyet Alabilirsiniz» yaz, adım 5’e git 4. Değilse «Ehliyet Alamazsınız» yaz 5. Bitir



Ödev: 1- Algoritma nedir? Yaptığınız bir işi algoritma adımları ile ifade ediniz. 2- A VE B işlem sonucu 1 ise A ve B ifadelerinin değerleri nelerdir? 3- Klavyeden girilen 5 adet yaşın aritmetik ortalamasını bulan algoritmayı adımlar ve akış diyagramları ile ifade ediniz. 4- Aşağıda verilen algoritmanın akış şemasını çiziniz. 1. Başla 2. T=0, I=0 3. Eğer I>61 ise git 7 4. T=T+(I*2) 5. I=I+1 6. Git 3 7. Yaz T 8. Bitti

JAVA’NIN TARİHÇESİ Java; 1995’li yıllarda Sun Microsystem mühendislerinden James Gosling tarafından geliştirilmeye başlamıştır. ! Java dili ismini, Java’yı geliştiren 5 mühendisin bir kafede aralarında konuşurken içtikleri kahvenin isminden almıştır. 1990’lı yıllarda programcılar her yerde çalışabilecek, az ve verimli kod yazmaya olanak sağlayan bir dil icat etmeye odaklanmıştı. Java haricinde tüm diller makine diline çevrilirler ancak java bytecode adı verilen ara bir makine diline çevrilir. Bytecode işletim sistemlerinde direkt olarak çalıştırılamaz. Kullanılması için bilgisayarlarda Java’nın yüklü olması gerekmektedir. « 1 kez yaz her yerde çalıştır »

ECLIPSE IDE Java için yazılım firmalarının genellikle tercih ettiği bir geliştirme ortamıdır. Eclipse, Türkçe olarak Güneş Tutulması olarak ifade edilir. İsmini destekçisi olan IBM firmasının, Sun firmasına olan rekabetinden almıştır. Kurulum gerektirmez. Tek yapılması gereken ise; indirilen sıkıştırılmış dosya halini herhangi bir klasöre açmak olacaktır. www.eclipse.org adresini ziyaret edelim ve downloads linkine tıklayalım.

İndirdiğimiz dosyaya çift tıklayarak çalıştıralım. Ve resimdeki şekilde kurulumu yapalım.











MAIN METOT KAVRAMI Her program çalıştırılması halinde akışa main metodundan başlar. Metot içerisinde istenen işlemler yapılır ve alt programlar varsa onlara ulaşılır. Tüm işlemler sona erdiğinde main metodun bittiği noktaya geri dönülür ve main metodunun akışı bittiğinde uygulama kapanır. Algoritma adımlarında ilk adımlar Başla ve son adımlar Dur şeklindeydi. Bu iki adımın amacı programın nerede başlayıp nerede bittiğini göstermekti.

Java %100 nesne yönelimli bir programlama dilidir. Bu yüzden alt programların isimleri fonksiyon olarak değil, metod olarak tanımlanmıştır. Java da yazılıp çalıştırılan bir program main metodundan akışa başlar. Java’nın zorunlu olarak getirdiği belli bir main metot kuralı vardır. Bunlar aşağıdaki gibidir: Erişim belirleyici olarak public, Metot statik olarak, Void tanımlanmalıdır yani geri dönüş yapmayan bir metot olmalı Parametre olarak args adında bir String Array ( Karakter Dizisi ) almalıdır. Yani ; public static void main (String[] args ) { }

VERİ TİPLERİ BYTE: Byte veri tipi 1 byte yer kaplar. Bu nedenle java da ki en küçük tam sayı veri tipidir. Alabileceği sayıların alt sınırı -128 ve üst sınırı 127 dir. { byte kucukTamSayi=30; } CHAR: Char veri tipi bellekte 2byte yer kaplar. İşaretsiz tam sayı niteliği taşır. Fakat içerisine girilen sayının Unicode harf karşılığını tutarlar. { char harf=‘A’; char harf2=85; }

SHORT: Short veri tipi 2byte yer kaplar. İçerisinde kısa tam sayıları tutabilir. Alabileceği sayıların alt sınırı -32768 ve üst sınırı 32767’dir. { short kisaTamSayi=102; } INT: Integer kelimesinin kısaltılmış halidir ve bellekte 4byte yer kaplar. Orta dereceli uzunluktaki sayıları tutabilir. Sayılar üzerine en fazla kullanılabilen veri tipidir. Alabileceği sayıların alt sınırı -2147483648 ve üst sınırı -21474883648 dir. LONG: Long veri tipi integer veri tipinin taşıyamayacağı sayıları saklamak için kullanılır. Bellekte 8 byte yer kaplar. -2ˆ63 iken üst sınırı 2^63 dir. { long uzunTamSayi=2000000000; }

ONDALIK SAYI VERİ TİPLERİ FLOAT: 4 byte yer kaplar ve 7 haneye kadar duyarlıdır. Alabileceği sayıların alt sınırı -3.4x10^38 ve üst sınırı 3.4x10^38 dir. { float normalKullanim=4745.96F; float bilimseKullanim=47E4F; } ! Java dilinde tanımlanan float değişkenlere aktarılacak değerlerin sonuna F harfi eklenir. Bunun nedeni yazılan sayının double olarak algılanmasını engellemektir. Aynı zamanda bu kullanım yazılımcılar içinde bir yazım desenidir ve yazılan kodda özellikle float kullanıldığının belirtilmesini sağlar.

DOUBLE: Bellekte 8 byte yer kaplar ve 15 haneye kadar duyarlıdır. Virgülden sonraki kısmın 7’den büyük olması halinde float veri tipi yerine tercih edilir. Double veri tipinin alabileceği sayıların alt sınırı -1.7x10^308 ve üst sınırı ise 1.7x10^308 dir. { double normalKullanim=960.7744485102; double bilimselKullanim=96E41; }

ALFA SAYISAL VERİ TİPLERİ Sayısal değerlerin haricindeki değerleri tutmamızı sağlayan veri tipleridir. STRING: Bellekte 8byte yer kaplar. { String karakterKatari= “Java’da String ozel bir veri tipidir! ”; karakterKatari+= “String veri tipi += operatörünü kabul eder. ” } BOOLEAN: 1 byte yer kaplar ve mantıksal işlemlerin sonuçlarını kontrol etmede kullanılır. Bit tabanlı çalıştığı için sadece true ve false değerlerini alabilir. { boolean dogruKarar=true; boolean yanlisKarar=false; boolean karar1= (10>4); boolean karar2= (10<4); }

KÜTÜPHANE ÇAĞIRMA Her programlama dilinin kendine özel kütüphaneleri mevcuttur. Kütüphanelerin asıl amacı sıklıkla kullanılan fonksiyon, makro ve veri tipleri gibi unsurların tekrar tekrar yazılmasındansa, bir yerde toplanarak tutulması ve kullanılacağı zaman buradan çağırılmasıdır. Bunun yanı sıra kendi kütüphanelerimizi yazabiliriz. Ugulama geliştirmemizi sağlayan entegre geliştirme ortamları bize kolaylık sağlar. Hatırlamadığımız bir fonksiyon ve veri tipini Eclipse gibi entegre bir ortamda yazmak yeterli olacaktır. ! Kütüphane çağırma işlemleri için kullanılacak kodlar projede en üst kısımda gerçekleştirilir.

JAVA DA IMPORT İLE KÜTÜPHANE ÇAĞIRMA import javax.sql.StatementEvent; public class Anasinif { public static void main(String[] args) { // Kod Kısmı } }

JAVA İÇİN SCANNER SINIFI KULLANIMI Bu işlem için new anahtar kelimesi kullanılır. Scanner sınıfı aşağıdaki gibi kullanılır. package denemeler; import java.util.Scanner; public class scanner { Scanner scn=new Scanner(System.in); }

JAVA İÇİN SYSTEM SINIFI KULLANIMI Çıktı işlemleri için System sınıfının içerisindeki out alanı kullanılır. Buraya ulaşmak için System.out yolunun izlenmesi yeterlidir. Çıktı işlemleri için bu yolun içerisindeki metotlar kullanılır. PRİNT METODU public class print { public static void main(String[] args) { int x=20; System.out.print(x); } }

PRİNTLN METODU Print metodu ile println metodunun arasındaki tek bir fark vardır. Println metodu yazılmak istenen değişkenleri ekrana yazdırdıktan sonra konsolda bir satır boşluk bırakır.

OPERATÖRLER ATAMA OPERATÖRÜ: Değişkenin eski değeri ne olursa olsun = operatörünün solundaki değer, sağındaki ifadenin değerine aynen aktarılır.

TOPLAMA OPERATÖRÜ: ÇARPMA OPERATÖRÜ: ÇIKARMA OPERATÖRÜ: BÖLME OPERATÖRÜ:


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook