Upload
chavez
View
161
Download
1
Embed Size (px)
DESCRIPTION
PROGRAMLAMAYA GİRİŞ (ALGORİTMA ve AKIŞ ŞEMASI). 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. - PowerPoint PPT Presentation
Citation preview
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ı
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ı
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.
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.
PROGRAMLAMABir 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???
HERŞEY AYRINTILARDA GİZLİDİR. BASİT DİYEREK HİÇBİR AYRINTI GÖZDEN
KAÇIRILMAMALIDIR.
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.
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
Gözden kaçan herhangi bir şey kaldı mı?
Tüm ayrıntılar açıkça belirtilmişmi?
4.
Doğrudan ekrana mı?Bir dosyaya mı?
Sonuç nasıl ve nereye yazılacak?5.
İzlenecek çözüm yönteminde işlem sırası nasıl olacak? Nelere dikkat edilecek?
Problem çözümünde hangi basamaklar kullanılacak?
3.
Hangi ilişkiler kurulacak, ne tür işlemler yapılacak?
Problemi çözmek için nasıl bir yol izlenecek?
2.
Klavye aracılığı ile ekrana mı?Bir Dosyadan mı?
Veriler bilgisayar ortamına nasıl aktarılacak?
1.
Gözden kaçan herhangi bir şey kaldı mı?
Tüm ayrıntılar açıkça belirtilmişmi?
4.
Doğrudan ekrana mı?Bir dosyaya mı?
Sonuç nasıl ve nereye yazılacak?5.
İzlenecek çözüm yönteminde işlem sırası nasıl olacak? Nelere dikkat edilecek?
Problem çözümünde hangi basamaklar kullanılacak?
3.
Hangi ilişkiler kurulacak, ne tür işlemler yapılacak?
Problemi çözmek için nasıl bir yol izlenecek?
2.
Klavye aracılığı ile ekrana mı?Bir Dosyadan mı?
Veriler bilgisayar ortamına nasıl aktarılacak?
1.
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.
DUR6.Adım
TOP (yaz ) (ekrana)5.Adım
TOP=A+B4.Adım
A, B yi oku3.Adım
‘ klavyeden iki sayi giriniz’ (ekrana yaz)2.Adım
BAŞLA1.AdımVerilenler: 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.
Ö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.
DUR6.Adım
TOP (yaz ) (ekrana)5.Adım
TOP=A+B4.Adım
A, B yi oku3.Adım
‘ klavyeden iki sayi giriniz’ (ekrana yaz)2.Adım
BAŞLA1.AdımVerilenler: 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.
Ö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.
= 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.
DUR8.Adım‘max=‘, max (ekrana yaz)7.Adım(max<C) mi? (evet ise) max=C6.Adım(max<B) mı? (evet ise) max=B5.Adımmax= A4.AdımA, B, C yi OKU3.Adım‘ klavyeden üç sayi giriniz’ (ekrana yaz)2.AdımBAŞLA1.AdımVerilenler: 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.
Ö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.
DUR8.Adım‘max=‘, max (ekrana yaz)7.Adım(max<C) mi? (evet ise) max=C6.Adım(max<B) mı? (evet ise) max=B5.Adımmax= A4.AdımA, B, C yi OKU3.Adım‘ klavyeden üç sayi giriniz’ (ekrana yaz)2.AdımBAŞLA1.AdımVerilenler: 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.
Ö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.
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)
Ü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.
DUR13.Adım‘ORTALAMA=‘, ORT yı YAZ12.AdımORT=TOP/N11.Adım(SAYAC<N) mi? (evet ise) 6. adıma GİT10.AdımSAYAC=SAYAC+19.AdımTOP=TOP+SAYI8.AdımSAYI yı OKU7.Adım‘ SAYI degerini giriniz’ (yaz)6.AdımN yi OKU5.Adım‘ klavyeden sayilarin sayisini giriniz’ ( yaz)4.AdımSAYAC=03.AdımTOP=02.AdımBAŞLA1.Adım
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.
Örnek 3: İsteğe bağlı sayıda verilen sayıların ortalamasını bulup yazdıran programın algoritmasını oluşturunuz.
DUR13.Adım‘ORTALAMA=‘, ORT yı YAZ12.AdımORT=TOP/N11.Adım(SAYAC<N) mi? (evet ise) 6. adıma GİT10.AdımSAYAC=SAYAC+19.AdımTOP=TOP+SAYI8.AdımSAYI yı OKU7.Adım‘ SAYI degerini giriniz’ (yaz)6.AdımN yi OKU5.Adım‘ klavyeden sayilarin sayisini giriniz’ ( yaz)4.AdımSAYAC=03.AdımTOP=02.AdımBAŞLA1.Adım
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.
Örnek 3: İsteğe bağlı sayıda verilen sayıların ortalamasını bulup yazdıran programın algoritmasını oluşturunuz.
sayisisayilarinsayi
ortalama
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
Akış Yönü Oklarla Gösterilir
Değişkenin Türünü tanımlama
KarşılaştırmaKarar Verme
koşul
akış şemasının sığmadığı durumlarda
kullanılırDÖNGÜi=ilk,son,artış
OKU – YAZsürücülerden
herhangi birinde
OKU – YAZNereden olduğu belirtilmemişse
YAZ Ekrana Yazılacak
OKUBilgi Klavyeden
Girilecek
Aritmetik İşlemAktarma
BAŞLADUR
Akış Yönü Oklarla Gösterilir
Değişkenin Türünü tanımlama
KarşılaştırmaKarar Verme
koşul
akış şemasının sığmadığı durumlarda
kullanılırDÖNGÜi=ilk,son,artış
OKU – YAZsürücülerden
herhangi birinde
OKU – YAZNereden olduğu belirtilmemişse
YAZ Ekrana Yazılacak
OKUBilgi Klavyeden
Girilecek
Aritmetik İşlemAktarma
BAŞLADUR
ii
Ö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.
DUR6.Adım
TOP (yaz ) (ekrana)5.Adım
TOP=A+B4.Adım
A, B yi oku3.Adım
‘ klavyeden iki sayi giriniz’ (ekrana yaz)2.Adım
BAŞLA1.Adım
DUR6.Adım
TOP (yaz ) (ekrana)5.Adım
TOP=A+B4.Adım
A, B yi oku3.Adım
‘ klavyeden iki sayi giriniz’ (ekrana yaz)2.Adım
BAŞLA1.Adım
DUR
TOP(yaz)
TOP=A+B
A, B yi oku
‘ klavyeden iki sayi giriniz’(yaz)
BAŞLA
DUR
TOP(yaz)
TOP=A+B
A, B yi oku
‘ klavyeden iki sayi giriniz’(yaz)
BAŞLA
Ö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ŞLABAŞLA
2.Adım ‘ klavyeden üç sayi giriniz’ (ekrana yaz)
‘ klavyeden üç sayi giriniz’ (ekrana yaz)
3.Adım A, B, C yi OKUA, B, C yi OKU
4.Adım max= A max= A
5.Adım (max<B) mı? (evet ise) max=B (max<B) max=B
6.Adım (max<C) mi? (evet ise) max=Cmax<C) max=C
7.Adım ‘max=‘, max (ekrana yaz)‘max=‘, max (yaz)
8.Adım DURDUR
e
e
h
h
ALGORİTMADA DÖNGÜ OLUŞTURULMASI ve AKIŞ ŞEMASINDAKİ KARŞILIĞI
tekli döngü
İşlem devam.Adım
Döngü 1’in sonu.Adım
Tekrarlanan işlemlerin olduğu adımlar.
Döngü 1 (i=1,N,1).Adım
İşlem devam.Adım
Döngü 1’in sonu.Adım
Tekrarlanan işlemlerin olduğu adımlar.
Döngü 1 (i=1,N,1).Adım i=1,N,1
Tekrarlanan işler 1
Tekrarlanan işler 2
İşlem Devam
i=1,N,1
Tekrarlanan işler 1
Tekrarlanan işler 2
İşlem Devam
ALGORİTMADA DÖNGÜ OLUŞTURULMASI ve AKIŞ ŞEMASINDAKİ KARŞILIĞI
ikili döngü
i=1,N,1
Tekrarlanan işler 1
İşlem Devam j=1,N,2
Tekrarlanan işler 2
i=1,N,1
Tekrarlanan işler 1
İşlem Devam j=1,N,2
Tekrarlanan işler 2
Döngü 2’in sonu.Adım
Yinelene işlemlerin olduğu adımlar 1.
Döngü 2 (j=1,N,2).Adım
Yinelene işlemlerin olduğu adımlar 2.
İşlem devam.Adım
Döngü 2’in sonu.Adım
Yinelene işlemlerin olduğu adımlar 1.
Döngü 1 (i=1,N,1).Adım
Döngü 2’in sonu.Adım
Yinelene işlemlerin olduğu adımlar 1.
Döngü 2 (j=1,N,2).Adım
Yinelene işlemlerin olduğu adımlar 2.
İşlem devam.Adım
Döngü 2’in sonu.Adım
Yinelene işlemlerin olduğu adımlar 1.
Döngü 1 (i=1,N,1).Adım
ALGORİTMADA TÜR TANIMLAMA ve AKIŞ ŞEMASINDAKİ KARŞILIĞI
Algoritma oluşturmanın ilk ve en önemli adımlarından biri değişkenlerin tanımlanması ve bunların türlerinin belirlenmesidir.
Alfasayısal CEVAP, AD, SOYAD, SEHİR.Adım
Gerçel Sayı değişken adı1, değişken ad2,…..Adım
Örnek
Gerçel Sayı sayi, A, B.Adım
Tamsayı SAYI, SAYAC, TOP, TBS.Adım
Alfasayısal değişken adı1, değişken ad2, …..Adım
Tamsayı değişken adı1, değişken ad2, …..Adım
Alfasayısal CEVAP, AD, SOYAD, SEHİR.Adım
Gerçel Sayı değişken adı1, değişken ad2,…..Adım
Örnek
Gerçel Sayı sayi, A, B.Adım
Tamsayı SAYI, SAYAC, TOP, TBS.Adım
Alfasayısal değişken adı1, değişken ad2, …..Adım
Tamsayı değişken adı1, değişken ad2, …..Adım TamsayıSAYI, SAYAC, TOP, TBS
Alfasayısal CEVAP, AD, SOYAD, SEHİR
Gerçel Sayısayi, A, B
BAŞLA
TamsayıSAYI, SAYAC, TOP, TBS
Alfasayısal CEVAP, AD, SOYAD, SEHİR
Gerçel Sayısayi, A, B
BAŞLA
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.
BAŞLA
‘ klavyeden üç sayi giriniz’ (ekrana yaz)
A, B, C yi OKU
max= A
(max<B) max=B
max<C) max=C
‘max=‘, max (yaz)
DUR
e
e
h
h
A B C koşul max1 2 3 1
e 2
e 3
1 3 2 1
e 3
h 3
3 1 2 3
h 3
h 3
2 1 3 2
h 2
e 3
İşlem doğru.
Akış Şeması Tamam.
Örnek 2: Aşağıda verilen akış şemasını takip ederek ekrana yazılacak olan değerin ne olduğunu bulunuz.
149
5
2
10
6
3
1
T
3
2
1
--2
3
2
1
--1
ji
149
5
2
10
6
3
1
T
3
2
1
--2
3
2
1
--1
ji i=1,2
T=i
T yi YAZ j=1,3
T=T+i+j
BAŞLA
i=1,2
T=i
T yi YAZ j=1,3
T=T+i+j
BAŞLA
ÖRNEK SORULARSoru 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.
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 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.
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.
ÖRNEK SORULAR