PROGRAMLAMAYA GİRİŞ (ALGORİTMA ve AKIŞ ŞEMASI)

Preview:

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

Recommended