Transcript Document

PROGRAMLAMAYA GİRİŞ
(ALGORİTMA ve AKIŞ ŞEMASI)
Programlama Aşamaları
Problemi Çözüm Yolunun Belirlenmesi
Algoritmanın Hazırlanması
Akış Şemasının Oluşturulması
Yapılan İşlerin doğruluğunun test edilmesi
Programın Kodlanmak,
Derlenmesi ve Çalıştırılması
Programın Test Edilmesi ve Uygulanması
Bu dersin kapsamında hedefimiz
yukarıda verilen programlama aşamalarından ilk
dördünü öğrenmenizi sağlamaktır.
Programlama mantığını anlamak ve
buna uygun algoritmanın oluşturulması aşamaları
yeni başlayanların zorlandıkları konulardır.
Ancak
bir
kere
bu
süreç
tamamlandığında ve gerekli birikim edinildiğinde
artık programcılık sadece ihtiyaca uygun
programlama dilini öğrenmekten ibaret olacaktır.
PROGRAMLAMA
Bir problemi bilgisayar aracılığı ile
çözmek için izlenilmesi gereken
yolların bütünüdür.
Problemin Analizi ve Çözme Yolunun
Belirlenmesi
• Problemi önce dikkatlice okuyunuz ne olduğunu anlamaya
çalışınız.
• Verilen bilgileri ve istenilenleri birer başlık altında
toplayınız.
• Bunlar arasında nasıl bir ilişki var belirleyiniz.
• Bu konuda eksik bilgiye sahip iseniz önce eksikliklerinizi
gideriniz.
• Problemin çözüm yolunu belirleyiniz.
ALGORİTMA
Buradaki bütün mesele bilgisayara bir işi yaptırmak
veya bir problemi çözdürmek için nasıl bir yol izlenmesi
gerektiğinin mantığını kavramaktır.
Bunun için de ilk akılda tutulması gereken bilgi,
bilgisayarın belirtilmemiş veya tarif edilmemiş
hiçbir şeyi yapamayacağıdır.
Bilgisayarın insandaki gibi bir beyni yoktur. Bu nedenle
bilgiyi derlemek, onu sınıflandırmak, ya da muhakeme
etmek, yorum yapabilmek gibi becerileri de yoktur.
Bir insanın çok basit bir şekilde yapabildiği bir işlemi,
bilgisayara yaptırabilmek için bütün aşamalar tarif
edilmelidir. Algoritma oluşturmanın da zorluğu buradan
gelir. Sanılır ki bilgisayar bir insan gibi düşünebilir veya
sözle söylenen bir işlemi yapabilir.
Basit bir örnek: 1000/10=?
Siz Yapsaydınız
Bir parça matematik biliyorsanız bölme işlemi
yapmadan bir çırpıda sonucun 100 olduğunu
söylerdiniz.
Burada yapılan işlem
sayıdan bir sıfırı atmaktan ibarettir..
Bilgisayara Yaptırılsaydı
1. Bölünen ve bölen sayıları tanıtılmalı.
2. Sayı bilgileri okutulmalı.
3. Bölme işlemi yaptırılmalı ve sonuç bir değişkene
aktarılmalı.
4. Bölüm sonucu yazdırılmalı.
Görüldüğü gibi çok basit bir işlemi yaptırabilmek için
bile birçok ayrıntıya dikkat etmek durumunda
kalınmıştır.
Gerek görme becerisin gerekse düşünme yeteneğine
sahip olmamız ve edindiğimiz deneyimler ile
farkında bile olmadan sonuca ulaşabildiğimiz bir
problemi bilgisayara çözdürebilmek için çok değişik bir
bakış açısına sahip olmalıyız.
Pekiyi bu bakış açısı nedir???
Yaptırılmak istenen işlem ile ilgili her bir süreç
adım adım hiç biri gözden kaçırılmadan
ayrıntılara da dikkat edilerek açıkça belirtilmelidir.
HERŞEY AYRINTILARDA GİZLİDİR.
BASİT DİYEREK HİÇBİR AYRINTI GÖZDEN
KAÇIRILMAMALIDIR.
Algoritma oluşturmanın zorluğu da buradan gelir, ancak
bir kere mantığı kavranırsa programcı olmak yolunda
çoook büyük bir adım atılmış olur.
Algoritma: Bilgisayara bir işlemi yaptırmak için
izlenmesi gereken tüm aşamaların uygun bir sırada
adım adım ifade etme sürecidir.
ALGORİTMANIN HAZIRLANMASI
1. Veriler bilgisayar ortamına nasıl
aktarılacak?
Klavye aracılığı ile ekrana mı?
Bir Dosyadan mı?
2. Problemi çözmek için nasıl bir
yol izlenecek?
Hangi ilişkiler kurulacak, ne tür
işlemler yapılacak?
3. Problem çözümünde hangi
basamaklar kullanılacak?
İzlenecek çözüm yönteminde
işlem sırası nasıl olacak? Nelere
dikkat edilecek?
4. Tüm ayrıntılar açıkça belirtilmiş
mi?
Gözden kaçan herhangi bir şey
kaldı mı?
5. Sonuç nasıl ve nereye yazılacak? Doğrudan ekrana mı?
Bir dosyaya mı?
Örnek 1: Klavyeden girilen A ve B olarak tanımlana iki sayının toplamını bulan ve
sonucu ekrana yazan bir programın algoritmasını oluşturunuz.
Verilenler: A ve B olarak
tanımlanan iki sayı.
Veriler klavyeden girilecek.
İstenenler: A ve B nin
toplamı.
Toplama sonucunu tutan
değişken TOP olsun.
Sonuç ekrana yazılacak.
1.Adım
BAŞLA
2.Adım
‘ klavyeden iki sayi giriniz’ (ekrana yaz)
3.Adım
A, B yi oku
4.Adım
TOP=A+B
5.Adım
TOP (yaz ) (ekrana)
6.Adım
DUR
Her Algoritma BAŞLA adımı ile başlatılır ve DUR adımı ile sonlandırılır.
‘ ‘ tırnak içerisinde yazılan bilgi programı kullanacak kişiye verilmek
istenilen talimatı veya iletiyi içerir.
A, B, TOP program tarafından kullanılacak değişkenlerin isimleridir ve
algoritma oluşturulmadan önce tanımlanmış olmalıdır.
Örnek 2: Klavyeden girilen A, B, C gibi üç sayıdan en büyüğü bulup sonucu ekrana
yazdıran bir programın algoritmasını oluşturunuz.
Verilenler: A, B, C olarak
tanımlanan üç sayı.
Veriler klavyeden
girilecek.
İstenenler: Üç sayıdan en
büyüğünü bulmak.
En büyük sayıyı tutan
değişken max olsun.
Sonuç ekrana yazılacak.
1.Adım
BAŞLA
2.Adım
‘ klavyeden üç sayi giriniz’ (ekrana yaz)
3.Adım
A, B, C yi OKU
4.Adım
max= A
5.Adım
(max<B) mı? (evet ise) max=B
6.Adım
(max<C) mi? (evet ise) max=C
7.Adım
‘max=‘, max
8.Adım
DUR
(ekrana yaz)
= sembolü matematikten bildiğimiz eşitlik anlamında kullanılmaz.
Programlamadaki işlevi eşitliğin sağındaki bilgiyi,
solundaki değişkene aktarmaktır.
5. ve 6. adımlar koşul cümlesi olarak ifade edilir.
Verilen koşul
doğru ise önce yanındaki işlem yapılır ve alttaki adıma geçilir.
Yanlış ise doğrudan alttaki adıma geçilir.
değişken isimlerinin belirlenmesi
• Anlaşılır olmalıdır.
• Türkçe karakter (İ,ı,Çç,Şş,Öö,Üü,Ğğ), noktalama ve
aritmetik işlem işaretlerini içermemelidir.
• Rakam içerebilir ancak ilk terimi mutlaka bir harf ile
başlatılmalıdır.
değişken türleri
• Tamsayı (integer). (1 -127 1543 …)
• Gerçel (real) sayı. (1.75 -0.45 .07 2.5E04 ….)
• Alfa sayısal (character). ( ad, soyad, şehir, kelimeler ..)
• Mantıksal (logical). ( doğru veya yanlış bilgilerinin tutulduğu değişkenler)
Örnek 3: İsteğe bağlı sayıda verilen sayıların ortalamasını bulup yazdıran programın
algoritmasını oluşturunuz.
ortalama
 sayi
sayilarin sayisi
Verilenler: sayıların sayısı (N),
N tane SAYI.
İstenenler: sayı dizisinin
ortalamasını hesaplamak.
Ortalamayı tutan değişken ORT
olsun.
Sonuç ekrana yazılacak.
1.Adım
BAŞLA
2.Adım
TOP=0
3.Adım
SAYAC=0
4.Adım
‘ klavyeden sayilarin sayisini giriniz’ ( yaz)
5.Adım
N yi OKU
6.Adım
‘ SAYI degerini giriniz’ (yaz)
7.Adım
SAYI yı OKU
8.Adım
TOP=TOP+SAYI
9.Adım
SAYAC=SAYAC+1
10.Adım
(SAYAC<N) mi? (evet ise) 6. adıma GİT
11.Adım
ORT=TOP/N
12.Adım
‘ORTALAMA=‘, ORT
13.Adım
DUR
yı YAZ
Üzerinde toplama yapılacak değişkenlere ilk değer olarak 0 (sıfır) bilgisi
aktarılmalıdır.
N tane SAYI değişkeninin okunup TOP değişkenine ilave edildiğini
saymak için SAYAC adlı bir değişken tanımlanmıştır. Bu şekilde
yinelenen işlemlerin kaç kere yapıldığını belirtmek için SAYAC adlı bir
değişken tanımlanmalıdır.
AKIŞ ŞEMASI
• Algoritmada verilen her bir adım, simgeler şeklindeki
kutuların içine yazılır.
• Her bir işlevi ifade etmek için kullanılan kutuların belirli
şekilleri vardır.
• Adımlar arasındaki ilişkiler ve yönler oklarla gösterilir.
• Başla ve Dur kutularının dışındaki her bir kutuya en az
birer tane gelen ok ve çıkan ok vardır.
• Başla ve Dur dışındaki kutuların her birinin açıkta
kalmadığına dikkat edilmelidir.
Akış şeması yapılan işlemlerin açıkça görülmesini sağlar.
Böylece işlevin doğru olup olmadığı daha kolay fark edilebilir
ve programın kodlanmasını kolaylaştırır.
Bu nedenle anlaşılması önemlidir.
AKIŞ ŞEMASINDA
KULLANILAN SİMGELER
i=ilk,son,artış
koşul
BAŞLA
DUR
Aritmetik İşlem
Aktarma
OKU
YAZ
Bilgi Klavyeden
Girilecek
Ekrana Yazılacak
OKU – YAZ
OKU – YAZ
Nereden olduğu
belirtilmemişse
sürücülerden
herhangi birinde
DÖNGÜ
akış şemasının
sığmadığı durumlarda
kullanılır
Karşılaştırma
Karar Verme
i
Akış Yönü Oklarla
Gösterilir
Değişkenin
Türünü tanımlama
Örnek 1: Klavyeden girilen A ve B olarak tanımlana iki
sayının toplamını bulan ve sonucu ekrana yazan bir
programın algoritmasını oluşturunuz.
1.Adım
BAŞLA
2.Adım
‘ klavyeden iki sayi giriniz’ (ekrana yaz)
3.Adım
A, B yi oku
BAŞLA
‘ klavyeden iki sayi giriniz’
(yaz)
A, B yi oku
4.Adım
TOP=A+B
5.Adım
TOP (yaz ) (ekrana)
6.Adım
DUR
TOP=A+B
TOP
(yaz)
DUR
Örnek 2: Klavyeden girilen A, B, C gibi üç sayıdan en büyüğü bulup sonucu ekrana yazdıran bir
programın algoritmasını oluşturunuz.
1.Adım
BAŞLA
2.Adım
‘ klavyeden üç sayi giriniz’
(ekrana yaz)
3.Adım
A, B, C yi OKU
4.Adım
max= A
5.Adım
(max<B) mı? (evet ise) max=B
BAŞLA
‘ klavyeden üç sayi giriniz’
(ekrana yaz)
A, B, C yi OKU
max= A
(max<B) e
max=B
h
6.Adım
(max<C) mi? (evet ise) max=C
7.Adım
‘max=‘, max
8.Adım
DUR
(ekrana yaz)
max<C) e
h
‘max=‘, max
DUR
(yaz)
max=C
ALGORİTMADA DÖNGÜ OLUŞTURULMASI ve
AKIŞ ŞEMASINDAKİ KARŞILIĞI
tekli döngü
.Adım
Döngü 1 (i=1,N,1)
i=1,N,1
Tekrarlanan işlemlerin
olduğu adımlar.
Tekrarlanan işler 1
.Adım
Döngü 1’in sonu
Tekrarlanan işler 2
.Adım
İşlem devam
İşlem Devam
ALGORİTMADA DÖNGÜ OLUŞTURULMASI ve
AKIŞ ŞEMASINDAKİ KARŞILIĞI
ikili döngü
.Adım
Döngü 1 (i=1,N,1)
Yinelene işlemlerin olduğu
adımlar 1.
.Adım
Döngü 2 (j=1,N,2)
Yinelene işlemlerin olduğu
adımlar 2.
.Adım
i=1,N,1
Döngü 2’in sonu
Yinelene işlemlerin olduğu
adımlar 1.
.Adım
Döngü 2’in sonu
.Adım
İşlem devam
Tekrarlanan işler 1
İşlem Devam
j=1,N,2
Tekrarlanan işler 2
ALGORİTMADA TÜR TANIMLAMA ve
ŞEMASINDAKİ KARŞILIĞI
AKIŞ
Algoritma oluşturmanın ilk ve en önemli adımlarından biri değişkenlerin
tanımlanması ve bunların türlerinin belirlenmesidir.
BAŞLA
.Adım
Tamsayı değişken adı1, değişken ad2, ….
.Adım
Alfasayısal değişken adı1, değişken ad2, ….
.Adım
Gerçel Sayı değişken adı1, değişken ad2,….
Tamsayı
SAYI, SAYAC, TOP, TBS
Alfasayısal
CEVAP, AD, SOYAD, SEHİR
Örnek
.Adım
Tamsayı SAYI, SAYAC, TOP, TBS
.Adım
Alfasayısal CEVAP, AD, SOYAD, SEHİR
.Adım
Gerçel Sayı sayi, A, B
Gerçel Sayı
sayi, A, B
Algoritma veya akış şemasında
değişkenlerin türleri tanımlanmamış ise:
ilk harflerine göre ya tamsayı ya da
gerçel sayı olarak işlem görür.
i, j, k, l, m, n ile başlıyorsa tamsayı
diğer tüm harfler için gerçel sayı
AKIŞ ŞEMASININ DOĞRULUĞUNUN
TEST EDİLMESİ
• Üzerinde işlem yapılan tüm değişkenlerin (buna döngü
değişkenleri de dahildir) yer aldığı bir tablo hazırlanır.
• Değişkenlerin başlangıç değerleri tabloda yerine yazılır.
• Akış şeması ok yönünde takip edilerek her bir işlem
kutusuna göre değişkenlerin aldıkları değerler
belirlenir ve kaydedilir.
• Tüm adımlar tamamlandığında değişkenlerin son
değerleri kutu içine alınır.
• Sonuçlar değerlendirilir ve algoritmanın doğruluğu
böylece kontrol edilmiş olur.
Örnek 1: Örnek 2 deki A, B, C sayıları sırasıyla (1, 2, 3) ; (1, 3, 2) ; (3, 1, 2) ; (2, 1, 3) gibi
tam sayılar olsun.
A
B
C
1
2
3
1
3
2
3
1
1
koşul
max
1
e
2
e
3
2
1
e
3
h
3
2
BAŞLA
‘ klavyeden üç sayi giriniz’
(ekrana yaz)
A, B, C yi OKU
max= A
3
h
3
h
3
3
2
h
2
e
3
(max<B) e
h
max<C) e
h
‘max=‘, max
İşlem doğru.
Akış Şeması Tamam.
max=B
DUR
(yaz)
max=C
Örnek 2: Aşağıda verilen akış şemasını takip ederek ekrana yazılacak olan değerin
ne olduğunu bulunuz.
BAŞLA
i
j
T
1
--
1
1
3
2
6
3
10
--
2
1
5
2
9
3
14
2
i=1,2
T=i
T yi YAZ
j=1,3
T=T+i+j
ÖRNEK SORULAR
Soru 1. Klavyeden girilen bir tam sayının tam bölenlerinin
sayısını bulup sonucu TBS=xxx şeklinde ekrana yazdırılan bir
programın algoritmasını oluşturunuz ve akış şemasını çiziniz.
Soru 2. Klavyeden girilen bir tam sayının asal sayı olup
olmadığını bulup sonucu ‘ sayi asaldir ’ veya ‘ sayi asal değildir ’
şeklinde ekrana yazdırılan bir programın algoritmasını
oluşturunuz ve akış şemasını çiziniz.
Soru 3. Klavyeden girilen bir tam sayının tek mi çift mi
olduğunu bulup sonucu ‘ sayi tektir ’ veya ‘ sayi cifttir ’ şeklinde
ekrana yazdırılan bir programın algoritmasını oluşturunuz ve
akış şemasını çiziniz.
ÖRNEK SORULAR
Soru 4. Klavyeden girilen bir tam sayının tek mi çift mi olduğunu
bulup; sayı tek ise ilgilenilen sayıya kadarki ardışık teklerin, sayı
çift ise ilgilenilen sayıya kadarki ardışık çiftlerin sonucu ATEK=xxx
veya ACIFT=xxx şeklinde ekrana yazdırılan bir programın
algoritmasını oluşturunuz ve akış şemasını çiziniz.
Soru 5. Klavyeden girilen iki sayının bölümünü ‘/’ işaretini
kullanmadan yapıp sonucu ekrana ‘A/B=xxx’ şeklinde yazdırılan
bir programın algoritmasını oluşturunuz ve akış şemasını çiziniz.
Soru 6. Yukarıda verilen 1,2,3,4 numaralı soruları Klavyeden
girilen N tane tam sayı için yapınız.
ÖRNEK SORULAR
Soru 7. Klavyeden girilen negatif ve pozitif tam sayıları sırayla
okuyan negatif sayıların ve pozitif sayıların toplamını hesaplayan,
ayrıca sıfırların sayısını bulup, sayı bilgisi 99999 olduğunda
sonucu ekrana ‘NSS=xxx’, ‘PSS=xxx’ ve ‘SS=xxx’, şeklinde
yazdırılan bir programın algoritmasını oluşturunuz ve akış
şemasını çiziniz.
Soru 8. Fiz112 dersini alan öğrencilerin ad soyadı bilgileri ile beraber yeterlilik
ve genel sınav sonuçları klavyeden giriliyor. Her bir notun katkısının %50
olduğu ve Genel sınavda değerlendirme yapılabilmesi için en az öğrencinin 50
alması gerektiği bir not sistemine göre öğrencilerin ad soyadı bilgileri ile birlikte
başarı durumunu bulup yazdıran bir programın
algoritmasını ve akış şemasını oluşturunuz.