310 likes | 647 Views
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.
E N D
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.
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.
= 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)
Ü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
Ö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.
e h e h
ALGORİTMADA DÖNGÜ OLUŞTURULMASI ve AKIŞ ŞEMASINDAKİ KARŞILIĞI tekli döngü
ALGORİTMADA DÖNGÜ OLUŞTURULMASI ve AKIŞ ŞEMASINDAKİ KARŞILIĞI ikili döngü
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.
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.
e h e h İşlem doğru. Akış Şeması Tamam.
Ö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ğunubulup; 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.