2. Problem Nedir?
• Problemin sözlük karşılığı;
Teoremler veya kurallar yardımıyla
çözülmesi istenen soru, mesele.
• Günlük hayatta pek çok problemle
karşı karşıya kalırız. Peki bu
problemleri çözmek için neler
yapıyoruz?
3. Problem Çözümü
• Günlük hayatta farkında olmasak
bile sürekli bir problemle
karşılaşırız. Bazen bu problemleri
kolaylıkla bazen ise üzerinde
düşünerek çözüme varırız.
• Örneğin okuldan çıkıp eve gitmek
bir problem olarak tanımlanabilir.
Bu problemin çözüm aşamalarını
farkında olmadan oluşturup
uygularız.
4. Program
• Bir görevin bilgisayar tarafından nasıl yerine
getirileceğini gösteren sıralı talimatlara program
denir. Program, bir problemin çözümünü veya bir
görevin yerine getirilmesini bilgisayar ortamında
yapmaya yarayan yazılım ürünüdür.
Program, bir programlama dili ile algoritmanın
gerçekleştirilmesidir.
5. Program
• Programlar rutin ya da kompleks hesaplamaları kolaylaştırmak için
kullanılır. Bazı program örnekleri şu şekildedir;
• Muhasebe programları
• Stok kontrol programları
• Bilgisayar oyunları
• Ofis programları
• Bunların hepsi belli bir problemi çözmek amaçlı hazırlanmıştır.
6. Programlama
• Programlama, günlük hayattaki
genel veya özel problemlerin
makinelere tanıtılması, öğretilmesi
ve öğretilen çözüm yolları ile
sonuca ulaştırılmasını sağlamak
amacıyla kullanılan teknik bir
terimdir.
7. Programlama Dilleri
• Bilgisayar sistemlerini ele aldığımızda
temel olarak iki kısma ayrılır.
• Bunlar yazılım ve donanımdır.
• Bilgisayarımızın içerisindeki ana kart,
işlemci, ekran kartı gibi parçalar olsun
veya çevre birimi olarak kullandığımız
klavye, yazıcı, mouse gibi araçların
hepsi birer donanımdır.
8. Programlama Dilleri
• Yazılımlar ise bu bilgisayarlar üzerindeki donanımları çeşitli elektrik
sinyalleri göndererek kontrolünü sağlayan kod
kümeleridir, programlardır. O zaman programlama dili nedir sorusuna
şu şekilde bir tanım yapabiliriz.
• Programlama dili, bilgisayar donanımlarına çeşitli işlemler yapmamıza
imkan sağlayan, kendine ait bir söz dizimi (syntax) ve kurallarının
olduğu, bir nevi insanla bilgisayar arasındaki iletişimi sağlayan
evrensel ve standart bir yoldur.
9. Programlama Dilleri
• Mesela bilgisayarların insan olduğunu veya dilimizden anladığını
varsayalım. Bu durumda muhtemelen onlara şu şekilde seslenirdik.
Hey dostum şu işi yapıver,
O işi bitirdikten sonra şu işe bak,
Bakkala git, bir şişe süt al. Eğer yumurta varsa 6 tane getir
gibi çeşit çeşit söylemlerle isteklerimizi dile getirirdik. İşte programlama
dilleri ile de aslında bunu yapacağız. Nasıl ki konuşma dilinde olduğu
gibi, her programlama dili de kendine ait bir syntax, yani cümle
yapısına sahiptir.
10. Programlama Dilleri
• Yine örnekleyerek gidecek olursak, biz insanların bir anadili olduğu
gibi bilgisayarların da bir anadili vardır. Bilgisayarların anadili, makine
dilidir.
• Makine dili sadece 0 ve 1’lerden meydana gelmektedir. Bu yüzden
bilgisayarlar, kullandığımız programlama dillerini anlamak için
öncelikle makine diline çevirirler. Bunu da derleyici sayesinde,
derleme işlemiyle yaparlar. Burada ki derleyici kavramını, bir
programlama dilinde yazılan kodu, makine diline çeviren aracı bir
program olarak düşünebiliriz.
11. Programlama Dilleri
• Yani sonuç olarak programcı, programlama dili aracıyla makineye
komutlar verir. Program bu komutları kendi anlayabileceği hale, yani
makine diline çevirir, işleme alır ve bizlere bir çıktı, sonuç üretir.
12. Algoritma
• Algoritma sözcüğü, Özbekistan'ın Harezm, bugünkü Türkmenistan'ın
Hive kentinde doğmuş olan Ebu Abdullah Muhammed İbn Musa el
Harezmi'den gelir.
• İlk algoritma, el Harezmi tarafından "Hisab el-cebir ve el-mukabala"
kitabında sunulmuştur. Algoritma sözcüğü de El Harizmi'nin isminin
Avrupalılarca telaffuzundan doğmuştur.
13. Algoritma
• Algoritma, belli bir problemi çözmek veya belirli bir amaca ulaşmak
için tasarlanan yol olarak tanımlanabilir.
14. Algoritma
• NOT: Algoritma bir
programlama dili
değildir. (Programlama
dillerine yol gösteren bir
yöntem dizisidir)
15. Algoritma
• İki sayının toplamını bulan programın algoritması.
• İlk sayı için A ikinci sayı için B ve toplam için T isimlerini kullanacağız.
1: Başla.
2: A değerini gir.
3: B değerini gir.
4: T=A+B.
5: T’yi yaz.
6: Bitir.
Açıklama: Kullanıcı’ nın toplamak istediği sayıları aldık (girdiler)(A ve B).
Toplam değerini matematiksel bir işlem olduğu T=A+B olarak yazdık (işlem)
(hesapladık). Hesapladığımız toplamı ekrana yazdırdık ve bitirdik.
16. Akış Şeması
• Algoritma bir problemin çözümünün basit, net, sıralı biçimde
belirtilmiş halidir. Çözüm için bir algoritma geliştirildikten bu algoritma
metinsel, sözde kodlar ile ya da akış diyagramları ile sunulur. Akış
diyagramları diğer bir adı akış şeması, algoritmanın
belirli şekiller ve simgeler ile ifade edilmiş şeklidir ve algoritma
sunumu için yaygınlıkla kullanılır. Bir akış şeması, bir süreç, sistem
veya bilgisayar algoritmasını gösteren bir şemadır. Açık, anlaşılması
kolay şemalarda karmaşık süreçleri belgelemek, araştırmak,
planlamak, geliştirmek ve iletişim kurmak için çok sayıda alanda
yaygın olarak kullanılmaktadır.
19. Akış Şeması
• Bir öğrencinin dersten başarılı
olma durumunu ekrana
yazdıran program.
20. Akış Şeması
• 0 ile 50 arasında olan bir sayıyı
tahmin ederek bulmaya
çalıştığımız ve tahmin
hakkımızın 10 olduğu bir oyun
programlayalım.
21. Sözde Kod
• Sözde kod (kaba kod, yalancı kod, pseudocode) algoritmanın ortaya koyduğu çözümün
günlük konuşma diline benzer şekilde ifade edilmesidir.
• Algoritmaların ifade edilmesinde kullanılan bir diğer yöntem olan akış diyagramında
görsel olarak verilen çözüm, sözde kodda metin olarak verilir.
• Sözde kod, bir programın işleyişinin gayri resmi (informal) ve üst seviyeli (high-level)
tanımıdır. Bu ifadeler kullandığımız dili andıran, insanların anlayacağı türdendir. Bu
ifadeleri bir derleyici derleyemez ve herhangi bir bilgisayar tarafından çalıştırılamaz.
• Sözde kod kullanmanın amacı programın kodlanmasında kullanılacak programlama
dilinden bağımsız olarak çözümün mantığını içeren akışın programcıya sunulmasıdır.
22. Sözde Kod
• Örneğin; İki sayının toplamını veren algoritmanın sözde kodunu yazınız.
1)BAŞLA
2)YAZ(“1.sayiyi giriniz:”)
3)OKU(S1)
4)YAZ(“2.sayiyi giriniz:”)
5)YAZ(S2)
6)T=S1+S2
7)YAZ(T)
8)SON
23. Sözde Kod
Problem: Verilen bir sıcaklık derecesine göre suyun durumunu belirten bir
sözde kod(pseudo kod) yazınız.
1. Başla
2. Program açıklama mesajı yaz.
3. Kullanıcın sıcaklığı girmesi için bir uyarı mesajı yaz.
4. Girilen Sıcaklığı Oku.
5. Eğer Sıcaklık < 0 ise Durum=“Buz”
6. Eğer Sıcaklık>= 100 ise Durum=“Buhar”
7. Değilse Durum =“Su”
8. Sonucu Yaz.
9. Son
24. Akış diyagramı uygulamalası
Bilgisayarımızdan draw.io adresine girelim.
Bir öğrencinin dönem içi notlarını alıp harf notunu hesaplayıp ekrana
yazdıran bir programın akış diyagramını çizelim.
Ayrıntılar:
Vize : %30
Ödev : %5
Proje: %15
Final: %50
25. Sözde kod uygulaması
Kullanıcıdan bir sayı isteyin.
Eğer sayı 10’dan büyükse ekrana 20 defa sayı 10’dan büyüktür;
Eğer sayı 10’dan küçükse ekrana 20 defa sayı 10’dan küçüktür yazdırın.
Bu programın sözde kodunu yazınız.
İpucu: Tek tek yazdırmak çok uzun sürer. Bir sayaç yardımı ile döngü
oluşturmaya çalışın