You are on page 1of 27

Programlamaya Giriş

Ünite2- Problem Çözme ve Algoritmalar


Ünite3- Problem Çözme Süreci
Ünite4- Problem Çözme Yaklaşımları
Ünite5- Programlama Yapısı
Ünite6- Doğrusal Mantık Yapısı ile Prolem
Çözme
Ünite7- Karar Mantık Yapısı ile Problem Çözme
Ünite8- Döngü Yapısı ile Problem Çözme

faskerhat.blogspot.com
 Programlama; bilgisayarın donanıma nasıl davranacağını anlatan,
bilgisayara yön veren komutlar ve işlemler bütünüdür.
 Kısaca yazılım geliştirme, test etme ve bakımını yapma surecidir.
 Bir programlama sisteminin iki bileşeni vardır:
1. Bilgisayara kurulmuş olan bileşen −programlama ortamı
2. Programcı tarafından oluşturulan algoritma ve program kodları

Programlama Nedir?

faskerhat.blogspot.com
Program Nedir?

 Program, yapılacak bir işlemi ya da hesaplamayı gerçekleştirmek


için birbirini izleyen komut ya da yönergelerden oluşan yapıdır.
 Program=yazılım(software) programlamadan çıkan bir üründür.
 Programlama, karmaşık bir süreçtir ve programcılar
programlamada hata (bug) yapabilirler. Programlama hatalarını
bulma ve düzeltme işlemine hata ayıklama (debugging) denilir.

faskerhat.blogspot.com
Problem çözme

faskerhat.blogspot.com
 İnsan hayatı aslında bir problem çözme sürecidir.
 Hayat karar vererek geçer.
 En iyi kararı vermek aslında problem çözmektir.
 Problem çözme, amaca ulaşabilmek için alternatifler arasından
en uygun yolu belirlemektir.
 Problem çözerken dikkat edilmesi gereken sınırlılık ve koşullar
vardır.
 Programcılar için problem çözme, “bir dizi işlemi, belirtilen
sınırlılıklara uygun biçimde gerçekleştirebilen programın
yazılması” anlamına gelir.
faskerhat.blogspot.com
Problem Çözme Süreci

 Yapabileceğiniz olası tüm hareketleri öngöremezseniz sorunu çözemezsiniz.


 kısıtlamalar şunlardır:
 1. Çiftçi tekne içerisine tek seferde kendisi dışında yalnızca bir nesne daha alabilir.
 2. Tilki ve kaz aynı kıyıda yalnız bırakılamaz.
 3. Kaz ve mısırfaskerhat.blogspot.com
aynı kıyıda yalnız bırakılamaz.
PROBLEM ÇÖZME SÜRECİ

PROBLEM ÇÖZME TEKNİKLERİ


 Her zaman bir planınız olsun- Ana planı çizmek
 Problemi tekrar ifade edin- İyice anlamak, ayrıntı görmek
 Problemi Küçük Parçalara Ayırın- Bölümlere ayırmak, adım adım gitmek
 Önce Bildiklerinizden Yola Çıkın- Yeni fikirler ve güven artırır
 Problemi Basitleştirin – Problemin kapsamını daraltmak
 Benzerlikleri Arayın – Deneyimler ile benzerliklerin farkına varmak
 Deneme Yapın – Dene ve sonucunu gör
 Asla Vazgeçmeyin

faskerhat.blogspot.com
PROBLEM ÇÖZME ADIMLARI

faskerhat.blogspot.com
Problem Çözme Kavramları
 Sabit- değişken = Sabit değişmeyen bilgidir, değişken ise
değişen değerleri tutan bilgi tutuculardır.
Örnek = bir daire çevresi hesaplayan programda pi sayısı sabit.
Yarı çap kullanıcıya göre değişir.
 Değişkene bir isim verilir. Genelde harflerden oluşur, boşluk
içermez. Programın tümünde geçerli değişkenler global,
programın bir modülünde geçerli olan değişken yerel değişkendir.
 Çevre hesaplama örneğinde cevre adında bir değişken ve yaricap
adında bir değişken olabilir.
 cevre = 2x3,14xyaricap
faskerhat.blogspot.com
 Operatör = sabit değişken arasındaki ilişkiler, eşitlik ve ifade
sembolleridir.
Örnek = ortalama >= 50 ⇒ öğrenci geçti

Matematiksel operatörler : +, -, x, / , mod


İlişkisel opertaörler : >, <, >=, <=, ==, <>
Mantıksal operatörler : not (değil), and (ve), or (veya)

faskerhat.blogspot.com
 Fonksiyonlar = Belirli bir görevi yerine getiren bir dizi işlem setidir. Program içerisinde
tekrarlanan ve sık kullanılan bu işlemler bir kez fonksiyon olarak kaydedilir ve daha
sonra o fonksiyonun ismi ile çağrılır. Fonksiyon işlemi yapar ve bize bir değer verir bu
değere dönen değer denir. Bu şekilde program yazılırken daha hızlı, daha kısa ve daha
anlaşılır olur.
 Örnek: Bir programda fotoğraf küçültme fonksiyonu olsun.
Fotoğraf küçültme adımları;
1. Fotoğrafı al
fotokucultme fonksiyonu adı verelim
2. Boyutunu ölç
3. Boyutunu %50 küçült
4. Fotoğrafı yeni ölçüleri ile kaydet
Program içinde bir çok yerde fotoğraf küçültme işlemi yapılacağını düşünün. Her seferinde
bu kodları yazacağımıza bu kodları bir fonksiyon olarak tanımlayıp fonksiyonun ismini
yazarız. Örnek olarak bu fonksiyona da fotokucultme adını veririz. Programın
satırlarında sadece fotokucultme komutunu yazarız.
faskerhat.blogspot.com
VERİ TÜRLERİ
 Bilgisayar sistemleri işlemleri veriler üzerinden yapar. İşlenen veriler bizlere bilgi olarak çıkar.
Bilgi ve veri aynı anlamda da kullanılabilir. Sistem hangi tür veri ile işlem yapacağını bilmelidir.

 Sayısal Veri = 25, -698, 25,45 ….


 Alfanümerik/Karakter Veri = Rakam, harf ve özel karakterleri kapsar.
Örnek
 Mantıksal Veri = doğru-yanlış / var-yok / evet-hayır
Programcı veri türlerini yapacağı işleme göre tanımlar.
Her veri kendi arasında karşılaştırma işlemi yapabilir.
Örnek 345 > 234, ada göre sıralama, tc numarasına göre sıralama….
Not : Alfanümerik bir veri tamamen sayılardan oluşabilir ama sayısal veri ile karşılaştırma yapılamaz.
Mesela telefon numarası bir alfanümerik veri olabilir.
faskerhat.blogspot.com
PROBLEM ÇÖZME YAKLAŞIMLARI
 Bilişim sistemlerinin çalışması algoritmik yani adım adım işlemlerle olur.
Programlama ile yapılan bu işlemler bir problem çözümüdür.
 Çözümün Düzenlenmesi
Problem çözme sürecini destekleyen bazı düzenleme araçları vardır. Bunlar;
1. Problem Analiz Çizelgesi
2. Etkileşim Çizelgesi
3. GSC (Girdi Süreç Çıktı) Çizelgesi
4. Algoritmalar
5. Akış Şemaları
Bu araçları kullanmak; çözüme daha hızlı ulaşmak, en etkili programı yazmak, anlaşılır
olmak ve süreci kolaylaştırmak için önemlidir.
faskerhat.blogspot.com
Problem Analiz Çizelgesi

Etkileşim Çizelgesi Girdi-Süreç-Çıktı Çizelgesi

Girdi= Tüm veriler


Süreç= Adım adım işlemler
Çıktı = Sonuçlar, beklentiler

Algoritma Akış Şemaları


 Problemin aşamalarının adım adım  Algoritmanın şekillerle gösterilmesidir.
yazılmasıdır.
faskerhat.blogspot.com
AKIŞ ŞEMASI
SEMBOLLERİ

Akış şeması vefaskerhat.blogspot.com


algoritmalar tamamlandıktan sonra istenilen bir programlama dili
kullanılarak programın yazılması (PROGRAMLAMA=KODLAMA) işlemine geçilir.
PROGLAMA YAPISI

 Programlama Yapısına Giriş


Bu bölümde problem çözümlerinin
bilgisayarın anlayacağı hale çevirme
işlemlerini göreceğiz.

Örnek: Ortalaması hesaplanan öğrencinin 50


puana göre geçme ve kalma durumu 

Algoritma : Problemin çözüm aşamalarının


adım adım kendi anlayacağımız şekilde
yazılmasıdır.
Akış şeması : Algoritmanın anlamlı şekillere
dönüştürülmesidir.
Sözde kod : Algoritmanın bilgisayar diline
yakın komutlara dönüştürülmesidir.
faskerhat.blogspot.com
 Örnek : 20 öğrencilik bir sınıfta
her öğrenciden 2 not alınıyor ve
ortalama hesaplanarak sınıf
ortalaması bulunuyor.

 Not: Her öğrencinin ortalaması


hesaplandıktan ort adındaki ortalama
sonra toplam ortalama olan topOrt
değişkenine aktarılır.
 topOrt = topOrt + ort
Bu ifade topOrt değişkenin yeni değeri =
topOrt eski değeri + ort değeri
Döngü 20’ye kadar yani 20 öğrenci için çalışır
21 olunca 8. adıma geçer.
faskerhat.blogspot.com
 Öğrenci sayısı klavyeden girildikten sonra
öğrenci yaşları okunarak, sınıf yaş
ortalaması bulunup ekrana
yazdırılmaktadır. Bu amaçla, aşağıda
verilen adımların madde numaralarını, akış
diyagramında uygun yerlere yerleştiriniz.
 1. ortalama
 2. ogrSayisi
 3. sayac = sayac + 1
 4. ortalama = yasToplam/ogrSayisi
 5. yasToplam = yasToplam + ogrYas
 6. Başla
 7. ogrSayisi >= sayac
 8. Evet
 9. Hayır
 10. Bitir
faskerhat.blogspot.com
 11. ogrYas
 ÇÖZÜM

faskerhat.blogspot.com
 Kırmızı alanlar ana
program
 Yeşil alanlar
fonksiyon
 Ana programdan
fonksiyona değer
girer. (kare(2))
 Fonksiyona giren bu
değer işlenir ve ana
programa bir sonuç
döndürür. (return s)

faskerhat.blogspot.com
ÖDEV 
 Klavyeden bir ürünün fiyatı ve kdv oranı
(% kaç olacağı) girilecek. Kdvli tutarı 100
TL altı olan ürüne 5 TL kargo ücreti
eklenecek. Kdvli tutarı 100 TL ve üstü
olan ürüne kargo eklenmeyecek. Buna
göre ürünün son fiyatını gösteren
algoritma ve akış şemasını yapınız.
faskerhat.blogspot.com
KARAR MANTIK YAPISI
 Bilgisayara iki ya da daha fazla seçenek arasından seçim yaptıran bir yapıdır.
 Karar mantık yapısı, if-then-else (eğer-koşul sağlanırsa-x, değilse y) yonergesini
kullanır. Else kısmı her zaman kullanılmayabilir.

 If <koşul ya da koşullar> then <doğru koşul için yönergeler>


else <yanlış koşul için yönergeler>

Örnek :
if urunfiyat >= 150
then kargo ücreti ekleme
else kargoucreti=10; urunfiyat = urunfiyat + kargoucreti
faskerhat.blogspot.com
faskerhat.blogspot.com
Düz Mantık Pozitif Mantık

If Yaş > 18 der isek negatif mantık olur.

faskerhat.blogspot.com
DÖNGÜ MANTIK YAPISI
 Farklı verileri kullanarak tekrar etme yapısıdır.
 Basit döngüler belli bir sayı aralığında artarak ya da azalarak aralığın sonuna
kadar işlem yapar.
 sayac=sayac + 1 , s=s-1
 Bu döngüler içinde genelde biriktirme işlemi yapılır. Mesela grubun ortalama
yaşını bulmak için;
toplamyas = toplamyas + yas
 Örnek 30 öğrencilik sınıfta son öğrenciden geri sayma
for ( say=30;say>=1;say=say-1)
Döngüler genelde for adı ile kullanılır.
for ( başlangıç değeri ; bitiş değeri ; değişim miktarı)
for(s=100;s>=2;s=s-2) => 100den ikişer ikişer 2 ye kadar geri sayar
faskerhat.blogspot.com
 While/While End Döngüsü
 Kaç kez tekrarlanacağı bilinmediği zaman, şart sağlandığı yani koşul doğru olduğu sürece işlemleri
tekrarlayan döngü yapısıdır.

faskerhat.blogspot.com
 Repeat/Until Döngüsü
 Koşul doğru olan kadar işlemleri yapan döngü yapısıdır.
 (1) While döngü yapısında döngü koşul doğru olduğu
sürece çalışır, oysa Repeat yapısında döngü koşul doğru
olduğunda durur,
 (2) While döngüsünde koşul surecin başında; Repeat
yapısında ise döngünün sonunda kontrol edilir.

faskerhat.blogspot.com

You might also like