Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Algoritma ve Programlamaya Giriş

Benzer bir sunumlar


... konulu sunumlar: "Algoritma ve Programlamaya Giriş"— Sunum transkripti:

1 Algoritma ve Programlamaya Giriş
Öğr. Gör. Sümeyye KORKMAZ

2 Programlama ve Temel Kavramlar

3 Programlama ve Temel Kavramlar

4 Programlama ve Temel Kavramlar

5 Programlama ve Temel Kavramlar

6 Yazılım Geliştirme Süreci

7 Yazılım Geliştirme Süreci

8 Programlama ve Temel Kavramlar
Program: Günlük hayattaki bir sorunu bilgisayarla çözmek, rutin işlemleri kolaylaştırmak için bilgisayarların isteğe uygun olarak özel bir takım işlemleri gerçekleştirmesi için programlanması gerekmektedir. İşte yazılan bu yazılımlar ile ortaya çıkan ürün bir programdır. Kısaca, belirli bir işi gerçekleştirmek için gerekli komutlar dizisi olarak tanımlanabilir. Bilgisayar oyunu, muhasebe işlem programları ve ticari şirketlerde kullanılan paket programlar birer programdır.

9 Programlama ve Temel Kavramlar
Programlama: Bir programı oluşturabilmek için gerekli komutların belirlenmesi ve uygun biçimde kullanılmasıdır. Bilgisayarların isteğe uygun özel işlemler yapması için programlanması gerekir. Örneğin, bir şirkette kullanılan stok uygulaması, sipariş uygulaması yada değişik iş takipleri, hastane otomasyonları yada eğitim kurumlarının kullandığı öğrenci otomasyonları gibi. Programlamaya çok fazla örnek vermek mümkündür.

10 Programlama ve Temel Kavramlar
Programlama Dilleri: Bir programı oluşturmasında kullanılan komutlar, tanımlar ve kuralların belirtildiği programlama araçlarıdır. Bilgisayarda çözülecek bir sorun için çözümün bilgisayara adım adım yazılmasını sağlayan biçimsel kuralları olan ve bu kurallara sıkı sıkıya bağımlılığı gerektiren bir tanımlar kümeside denebilir. Yani, programcı ile bilgisayar arasında bir tercüman durumundadır.

11 Programlamanın Tarihçesi
Oldukça eskiye dayanan programlamanın tarihine baktığımızda fazla kodlanmış makine komutları bulunmamaktaydı – 1950 yılları arasında fazla kodlanmış makine komutlarıyla yazılan programlar, programcılar açısından oldukça zordu. Hızın düşük olması, bellek yetersizliği, işlem sayısının az olması bilgisayarın kullanım alanını sınırlıyor ve işlemler basit bir uygulamadan ileri gidemiyordu. Tabi bu durum mikroişlemciler ile alakalı idi. Rekabet halinde olan firmalar işlemcilerin mimarilerini geliştirip hızlarını arttırdıkça, işlemcilerin işleyebileceği komut sayıları artmış ve komut setleri daha kullanışlı hale gelmiştir. İlk programlar makine dili ile hazırlanıyordu. Makine dili de bir programlama dilidir ama makine dili ile program yazmak çok zahmetli bir iştir. Çünkü makine dilinde sıfırlar (0) ve birler (1) vardır. Yani işlemlerde DOĞRU (1) yada YANLIŞ (0) durumlarına göre hareket edilmektedir. Ayrıca, makine dili programları anlaşılması zor olan ve tamamıyla donanıma hitap eden programlardır. Günümüze baktığımızda geliştirilen üst düzey programlama dillerini kullanırken makine dilini bilmeye bile gerek yoktur. Makine diline yakın Assembly programlama dilinde mikroişlemcilerin anlayacağı assembly kodları kullanılır. Bu ham şeklinde bulunan komutlar (MOV, ADD, PUSH gibi) mikroişlemcinin belli bir işlevi yerine getirmesini sağlamaktadır. Bu komutlara mnemonic adı verilir. Üst seviye programlama dillerinin geliştirilmesiyle programlar daha anlaşılabilir komutlarla yazılmaya başlanmıştır (Print, Read, Display, Circle, Get, vb). 1980’li yıllarda üst seviye programlama dilleri yaygınlaşarak, programlar belli bir dilin yapısı içinde tasarlanmış ve yazılmıştır.

12 Programlama Dilleri

13 Programlama Türleri Nesne tabanlı programlama (Object-Oriented Programming, OOP) dilleri 1980’li yıllarda C++ ile ortaya çıkmıştır. Nesneye yönelik programlama, programcının kendi sınıfını ve nesnesini oluşturup bunun üzerinde işlemler yapmasına olanak sağlar. Bu programlama sisteminin zor olması nedeniyle, çok sayıdaki nesneler önceden programcıya hazır bir şekilde sunulur. Günümüzdeki programcılar ise nesneye yönelik olan ve Visual özellikler içeren sürümleri kullanmaktadır. Visual C++, C++ Builder, Delphi, Java, Visual Basic vb. gibi örnekler sayılabilir. Bu teknikte nesneler birbirlerine mesaj göndererek etkileşim içinde bulunurlar. Nesne yönelimli programlama tekniğinde açık bir biçimde altprogramları çağırmak yerine, direkt olarak ilgili nesneye bir mesaj gönderilir (nesneler arası iletişim). Nesne kendine gelen mesajı alır ve öncelikle nesnenin bir örneğini (kopyasını) oluşturur. Bu kopya gerekli işlemleri yaptıktan sonra kendini yok eder. Tüm bu işlemlerden nesnenin kendisi sorumludur.

14 Programlama Türleri Yapısal Programlama: Programlama dilleriyle ilgilenenler kod yazmaya genellikle küçük ve basit kodlar yazarak başlarlar. Bu kodlar sadece bir “ana (main)” bloğundan oluşur. Bu blok içerisindeki komut ve deyimler programın tümünde tanımlı olan “global” verileri kullanırlar. Yapısal olmayan programlama tekniği kullanılarak yazılan kodlarda, ana program bloğu, global olarak tanımlanmış veriler üzerinde işlem yürütür. Bu programlama tekniği oldukça büyük programlarda büyük dezavantajlara sahiptir. Örneğin aynı komut ve deyimler bu teknikte yazılan kodlar içerisinde defalarca tekrarlanmak zorunda kalabilir. Aynı zamanda bu teknikte yazılan kodların okunabilirliği ve anlaşılabilirliği yazılan kod miktarı arttıkça zorlaşır. Dolayısıyla kod yazarken hata yapma olasılığı fazladır ve hata ayıklama (debugging) işlemi oldukça zordur. Bu nedenle de doğal olarak yazılan programın güvenirliği de düşük olacaktır. Yapısal programa tekniğinde ise altprogramlar (procedures) ve fonksiyonlar (functions) kullanılır. Böylece program akışının kontrolünde büyük kolaylıklar sağlanmış olur. Yapısal Programlama, geniş programları, küçük parçalara bölerek çözümleme yöntemidir. Her kod ve değişkenler diğerlerinden soyutlanmış bağımsız fonksiyonlar olarak çözümlenecektir.Bu fonksiyonlara tek giriş noktasından veri beslenmeli ve tek çıkış noktasından değer döndürülmelidir. (Pascal,Ada,Java)

15 Programlama Türleri Modüler Programlama: Modüler programlama tekniğinde belli altprogramlar ayrı ayrı modüller içinde gruplandırılır. Her modül içerinde ana program içinde tanımlı global değişkenler geçerlidir. Aynı zamanda her modül kendi verisine de sahiptir. C# Olay Temelli Programlama: Bilgisayarda bir uygulamayı kullanırken, ekran üzerinde bir nesnenin hareket ettirilmesi veya bir tuşa basılarak düğmelerin seçilmesi işlemleri bir olaya dayanır. (herşey bir olayın gerçekleşmesi ile çalışmaya başlar-fareyle nesneyi sürüklemek, fareyle tıklamak) Olay temelli programlama (Event – Driven Programmming, EDP) kullanıcıların yapacakları işlemlere göre programın hareket etmesi temeline dayanır. Daha önceki programlarda ekrana gelen menülerde daha çok klavyenin fonksiyon ve yön tuşları aktif olarak kullanılıyordu. Olay temelli programlamada farenin menüler ve pencereler üzerinde oldukça yaygın olarak kullanılması sağlanmıştır. Bu şekilde işlemler daha basit, fonksiyonel ve daha kullanışlıdır. Olaya dayalı programlama yapabileceğimiz bazı programlara, C#,VB.Net,Java,Delphi

16 Programlamayla İlişkili Kavramlar

17 Programlamayla İlişkili Kavramlar
Kaynak kodun makine diline (amaç program) çevrilmesi (derleyici-üstte),bu sürecin tam tersi yorumlayıcı olarak isimlendirilir.

18 Sayı Sistemleri

19 Sayı Sistemleri

20 Sayı Sistemleri

21 Bilgisayar Programı ile Gerçekleştirilen İşlemler

22 Bilgisayar Programı ile Gerçekleştirilen İşlemler

23 Bilgisayar Programı ile Gerçekleştirilen İşlemler

24 Bilgisayar Programı ile Gerçekleştirilen İşlemler

25 Program Geliştirme Süreci
Yazılan bilgisayar programlarının basit bir işlevi yerine getirmesi ona iyi bir program özelliği kazandırmaz. Yazılması düşünülen bir programın bir çok açıdan belli niteliklere sahip olması gerekmektedir. Bu nitelikleri şu şekilde sıralamak mümkündür. Estetik olarak görselliği ön plana çıkmalıdır. Kullanıcı açısından kullanımı kolay olmalıdır. İşlem ve hesaplamaları doğru yapmalıdır. Hızlı çalışmalıdır. Kolayca değiştirilebilmeli ve güncellenebilmelidir. Fazla kod yazılmadan etkin bir kodlamaya sahip olmalıdır. Yaygın kullanılan işletim sistemlerinde çalışabilmelidir. Büyük programlar için çoklu kullanıcı desteği olmalıdır. Ticari yazılan programlar ise iyi belgelenerek, lisanslı satılmalıdır.

26 Program Tasarlama Bir yazılım geliştirirken takip edilmesi gereken adımlar şunlardır: 1. Gereksinimlerin belirlenmesi : Problemin tanımı verilir. 2. Analiz : Problemin çözümü için gerekli tüm girdi ve çıktılar analiz edilmelidir. 3. Dizayn : Problemin çözümünde kullanılacak uygun algoritmanın adım adım tanımlanması yapılmalıdır. 4. Akış Diyagramı: Algoritmaya göre uygun akış diyagramı çizilmelidir. 5. Kod Yazımı : Algoritmanın herhangi bir programlama dilinde yazılarak kaynak dosyanın hazırlanması gerekir. 6. Test : Bu basamakta ise yazılan programın bölümleri ve tamamı çalışır halde test edilir. 7. Doğrulama : Programın örnek girdilerle doğru çıktı ürettiği gözlenmelidir. 8. Bakım : Yazılan programda bulunan hatalar ayıklanır veya gerekli güncellemeler yapılır. 9. Belgeleme : Yazılan program için belgeleme yapılarak, toplu çoğaltmalara karşı engelleme konulur.

27 Algoritma nedir? Algoritmanın Tarihçesi
Algoritma; Belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir. Başka bir deyişle; herhangi bir problemin çözümü için izlenecek yol anlamına gelmektedir. Bir problemin sonlu bir zamanda çözebilmek için geliştirilmiş açık seçik, yürütülebilir, sıralı, basit ve gerektikçe tekrar eden adımlardan oluşan yöntemlerdir. Bir problemin çözüleceği yöntemi oluşturma ise algoritma tasarlama olarak tanımlanır.

28 Algoritma Oluşturma Süreci

29 Algoritmanın Metinsel/Sözel olarak İfadesi

30 Algoritmanın Metinsel/Sözel olarak İfadesi

31 Algoritmanın Metinsel/Sözel olarak İfadesi
Başlangıç belirtilmelidir. Problemin çözümü adımlar halinde tasarlanmalı, problemin çözümü yoksa belirtilmeli Her adım açık ve net olmalı, belirsiz adımlar olmamalı Algoritma karşılaşılabilecek tüm ihtimalleri ele alacak şekilde genel hazırlanmalı Belirli sayıda adım sonunda algoritma sonlanmalı/bitiş belirtilmeli

32 Algoritmalar Sabah kahvaltısında kahvaltı yapılacağı zaman kahvaltı hazırlama algoritması hazırlama;

33 Algoritmalar Sabah kahvaltısında kahvaltı yapılacağı zaman kahvaltı hazırlama algoritması hazırlama; Adım 1: Yataktan kalk Adım 2: Mutfağa git Adım 3: Ekmek Al Adım 4: Çayı hazırla Adım 5: Dolaptan kahvaltılıkları çıkar Adım 6: Bardağın bitince çayı doldur Adım 7: Kahvaltın bitince sofradan kalk Adım 8: Kahvaltılıkları dolaba koy Adım 9: Sofrayı temizle

34 Algoritmalar

35 Algoritmalar Ayva reçeli yapımı için algoritması hazırlama;
Adım 1: Başla Adım 2: Ayvayı dilimleyip soy Adım 3: Ortasını çıkarıp istediğin şekilde doğra Adım 4: Ocağı yak, içinde 2 büyük bardak su olan tencereyi ocağın üzerine koy Adım 5: Ayvaları tencereye koy, yumuşamaya başlasın Adım 6: Şeker ve limon tuzu ilave et Adım 7: Yavaş yavaş kaynat Adım 8: Kıvamına geldiyse dur, gelmediyse Adım 7’ye git. Adım 9: Bitir

36 Akış Şemaları Başla/Dur İşlem Sembolü Ekrandan okuma ve yazma
Alt program çağırma El ile Giriş Ekrana veri yazma ve ekrandan veri alma sembolü Yazdırma sembolü/Çıktı

37 Akış Şemaları Sayfa içi Bağlantı Döngü Sembolü Karar verme sembolü

38 Değişken Tanımlama Belirli bir tanım aralığında farklı değerler alabilen sembollere değişken denmektedir. Bilgisayar, işlem yaparken RAM belleği kullanır. Program çalıştırılırken problemin çözümü için gerekli olan bilgilerin RAM bellekte tutulması değişkenler sayesinde mümkündür. Değişkenlerin RAM bellekte bulunuşları aynen bir sinema salonunda koltuklara film bitene kadar oturmuş seyirciler gibi düşünülebilir. Aynen sinemada bilet alındığında koltuk numarası ile ilgili yere ulaşılabildiği gibi bir değişken tanımlandığında da RAM bellekte bir yer ayrılır ve bu yere değişkenin ismiyle ulaşılır. Program içinde kullanılacak olan değişkenler problemin yapısına göre algoritma tasarlama aşamasında belirlenmelidir. Değişken isimlerini tanımlarken (veya ilk kullanımında) Türkçe karakter (ç, Ç, ğ, Ğ, ı, Đ, ö, Ö, ş, Ş, ü, Ü) kullanmamaya dikkat edilmelidir. İngilizcede küçük ı harfinin ve büyük İ harfinin olmadığını unutmamalıyız. Değişken isminin ilk harfi İngilizce bir karakter olmalıdır. Diğer harfleri ise rakam, harf veya özel bazı karakterler olabilir (x35_c7, abc9x12,…)

39 Algoritma Tasarlama Klavyeden girilen A ve B gibi iki sayının toplamasını alan program algoritmasını oluşturup, akış semasını çizelim.

40 Algoritma Tasarlama Klavyeden girilen A ve B gibi iki sayının toplamasını alan program algoritmasını oluşturup, akış semasını çizelim. Algoritması 1.Başla 2. İki sayı gir (A,B) 3. Girilen sayıları topla (topla=A+B) 4. Toplam sonucunu yaz (topla) 5. Dur Klavyeden girilen A ve B gibi iki sayının ortalamasını alan program algoritmasını

41 Algoritma Tasarlama Klavyeden girilen A ve B gibi iki sayının ortalamasını alan program algoritmasını oluşturup, akış semasını çizelim. Algoritması 1.Başla 2. İki sayı gir (A,B) 3. Ortalamayı hesapla (ortalama=(A+B)/2) 4. Ortalama sonucunu yaz (ortalama) 5. Dur Klavyeden girilen A ve B gibi iki sayının toplamını,farkını, çarpımını, bölümünü bulan program algoritmasını oluşturup, akış semasını çizelim.

42 Algoritma Tasarlama Klavyeden girilen A ve B gibi iki sayının farkını, çarpımını, bölümünü bulan program algoritmasını oluşturup, akış semasını çizelim. Algoritması 1.Başla 2. İki sayı gir (A,B) 3. topla=A+B fark=A-B carp=A*B Bol= A/B 4. topla, fark, carp, bol sonucunu yaz (topla fark carp bol) 5. Dur Ekranda girilen vize (%40) finale (%60) göre ortalamayı bulup ekrana yazdıran programın algoritmasını oluşturup, akış semasını çizelim.

43 Algoritma Tasarlama Ekranda girilen vize (%40) finale (%60) göre ortalamayı bulup ekrana yazdıran programın algoritmasını oluşturup, akış semasını çizelim. Algoritması 1.Başla 2. İki sayı gir (Vize,Final) 3. ort=Vize*0.4+Final*0.6 4. ort ekrana yaz 5. Dur

44 Örnek Algoritmalar-Ödev
1.Ekrandan girilen iki sayının (X,Y) mutlak değerini bulup sonucu ekrana yazdırma 2.Ekrana girilen bir sayının kaç basamaklı olduğunu bulan ve ekrana yazdıran algoritmayı yapma (…,’basamaklı’)

45 Örnek Algoritmalar-Ödev
1.Ekrandan girilen iki sayının (X,Y) mutlak değerini bulup ekrana yazdırma

46 Örnek Algoritmalar-Ödev
2. Ekrana girilen bir sayının kaç basamaklı olduğunu bulan algoritmayı yapma

47 Karar verme ve Kontrol İşlemleri
Karar verme programlamada kullanılan önemli bir kavramdır. Karar verme, karşılaştırma ve kontrol işlemi olarak da ifade edilebilir. Bu kavram değişkenlerin değerlerinin büyüklük, küçüklük, eşitlik ,vs. olarak kontrol edilmesinde kullanılır. Örn: A>5 ise B=A^2, değilse B=A^3 akış şemasını çizelim. (karesini yada küpünü alma)

48 Karar verme ve Kontrol İşlemleri
Örn: A>5 ise B=A^2, değilse B=A^3 akış şemasını çizelim. (karesini yada küpünü alma) Rastgele girilen iki sayıdan küçük olanı önce yazan programın algoritmasını oluşturup, akış şemasını çizelim. Yanlışsa Doğruysa

49 Karar verme ve Kontrol İşlemleri
Rastgele girilen iki sayıdan küçük olanı önce yazan programın algoritmasını oluşturup, akış şemasını çizelim. Algoritması 1.Başla 2. İki sayı gir (A,B) 3. A>B ise B’yi yaz. 4. Eğer A>B yanlışsa (B>A ise) , A ile B’yi yer değiştir. (C=A,A=B, B=C) 5. B’yi ekrana yaz. (B,A) 6. Dur =>Yer değiştirmenin mantığı iki değişkenin içeriğini birbirine aktarma işlemidir. Üç adımda bu işlem gerçekleştirilir. 1. Adımda A değişkeninin içeriği C’ye, 2. Adımda B’nin içeriği A’ya ve son adımda C’nin içeriği B’ye aktarılır. Klavyeden girilen 10 tabanındaki sayıyı ikilik tabana çeviren programın algoritmasını oluşturup, akış şemasını çizelim.(kalanı bulmak için kalan=sayı%2 gibi) Yanlışsa Doğruysa

50 Karar verme ve Kontrol İşlemleri
Klavyeden girilen 10 tabanındaki sayıyı ikilik tabana çeviren programın algoritmasını oluşturup, akış şemasını çizelim. Algoritması 1.Başla 2. Sayıyı gir (N) 3. Eğer sayı (N) 2’den büyükse k=N%2 4. Kalanı (k) ekrana yaz. 5. Sayı (N) bölüme eşit olur, N=(N-k)/2 6. Eğer sayı(N)>2, 3 adıma git. 7. Değilse Sayıyı (N) ekrana yaz. 8. Dur. Klavyeden girilen 10 tabanındaki sayıyı ikilik tabana çeviren ve sayıyı tam ekrana yazdıran programın akış şemasını çizelim Yanlışsa Doğruysa

51 Karar verme ve Kontrol İşlemleri
Klavyeden girilen 10 tabanındaki sayıyı ikilik tabana çeviren ve sayıyı tam ekrana yazdıran programın akış şemasını çizelim Klavyeden girilen X değerine göre aşağıdaki gibi tanımlanan f(X) fonksiyonunu hesaplayan programın akış şemasını çizelim. . F(X)=3X2 +4X+2, X>0 ise, X+1, X=0 ise, 4X3 +2X+4, X<0 se

52 Karar verme ve Kontrol İşlemleri
Klavyeden girilen X değerine göre aşağıdaki gibi tanımlanan f(X) fonksiyonunu hesaplayan programın akış şemasını çizelim. F(X)=3X2 +4X+2, X>0 ise, X+1, X=0 ise, 4X3 +2X+4, X<0 se Ekrana girilen iki vize bir final notuna göre ortalama bulan ve ortalama sonucuna göre belirlenen harf notunun ekrana yazan akış diyagramını çizelim.(0<50=ff,50>= <60->DD,60>= <=75->CC,75> <90->BB, 90>= AA)

53 Karar verme ve Kontrol İşlemleri
Ekrana girilen iki vize bir final notuna göre ortalama bulan ve ortalama sonucuna göre belirlenen harf notunun ekrana yazan akış diyagramını çizelim.(0<50=ff,50>= <60->DD,60>= <=75->CC,75> <90->BB, 90>= AA)

54 Sayaç Mantığı Sayaç: Bir değişkenin değerinin her defasında bir artırılması veya eksiltilmesi işlemine denir. Bu değişken değerinin kontrolü ile istenilen kadar tekrarlatılabilir. Sayaç mantığı programcılıkta işlemleri tekrarlatmanın birinci yoludur. 1’den 100 kadar olan sayıların toplamını bulup sonucunu ekrana yazdırma işleminin algoritması 1’den 100 kadar olan tek sayıların toplamını bulup sonucunu ekrana yazdırma işleminin algoritması

55 Sayaç Mantığı 1’den 100 kadar olan tek sayıların toplamını bulup sonucunu ekrana yazdırma işleminin algoritması (çift sayıların toplamı nasıl yapılır) Klavyeden girilen iki sayıdan bölünenden bölümü çıkartarak kalanı bulma işleminin algoritmasını yapma (20 de kaç tane 5 var mantığıyla,k bölünen, a ise bölüm başlangıçta)

56 Sayaç Mantığı Klavyeden girilen iki sayıdan bölünenden bölümü çıkartarak kalanı bulma işleminin algoritmasını yapma (20 de kaç tane 5 var mantığıyla,k bölünen, a ise bölüm başlangıçta) Klavyeden girilen iki sayıdan toplamayla bölüm kalan bulma işleminin algoritmasını yapma

57 Sayaç Mantığı Klavyeden girilen iki sayıdan toplamayla bölüm kalan bulma işleminin algoritmasını yapma Dışarıdan girilen sayının faktöriyelini alan programın akış şemasını çizme

58 Sayaç Mantığı Dışarıdan girilen sayının faktöriyelini alan programın akış şemasını çizme Klavyeden girilen 3 sayıdan en büyük olan sayıyı bulan akış şemasını çiziniz.

59 Sayaç Mantığı Klavyeden girilen 3 sayıdan en büyük olan sayıyı bulan akış şemasını çiziniz. Ekrandan girilen 10 sayı içerisinde en büyüğünü bulup ekrana yazdıran akış diyagramı

60 Sayaç Mantığı Ekrandan girilen 10 sayı içerisinde en büyüğünü bulup ekrana yazdıran akış diyagramı

61 Örnek Algoritmalar-Ödev
1.Ekrana girilen bir sayıya kadar olan sayıları gösteren döngüsüz sayaç algoritması (N=5 girilince, 1’den 5 kadar 5’te dahil sırasıyla(1,2,3,4,5) gösteren ve bu sayıları ekrana yazdıran programın algoritmasını yapma 2.Ekrana girilen bir sayının tersini çevirip ekrana yazdıran ( gibi) algoritmasını yapma 3.Ekrana girilen sayının asal sayı olup olmadığını gösteren ekrana yazdıran algoritmayı yapma 4.Klavyeden girilen A,B ve C gibi sayıları küçükten büyüğe doğru sıralayan ve sıralanmış halini ekrana yazdıran programın algoritmasını yapma

62 Örnek Algoritmalar-Ödev
1. Ekrana girilen bir sayıya kadar olan sayıları gösteren döngüsüz sayaç algoritması (N=5 girilince, 1’den 5 kadar 5’te dahil sırasıyla(1,2,3,4,5) gösteren programın algoritmasını yapma

63 Örnek Algoritmalar-Ödev
2. Ekrana girilen bir sayının tersini çevirme ( gibi) algoritmasını yapma

64 Örnek Algoritmalar-Ödev
3. Ekrana girilen sayının asal sayı olup olmadığını gösteren algoritmayı yapma

65 Örnek Algoritmalar-Ödev
4.Klavyeden girilen A,B ve C gibi sayıları küçükten büyüğe doğru sıralayan ve sıralanmış halini ekrana yazdıran programın algoritmasını yapma

66 Döngüler Döngü Yapıları: Döngü işleminde bir değişkenin belirli bir değerden başlayıp, son değeri alıncaya kadar belirtilen işlemlerin tekrarlanması ve yürütülmesi işlemine denir. Bu işlemin akış sembolü ile gösterilmesi, aşağıda döngü değişkeni, Döngünün her tekrarında Döngünün Döngünün kaçar kaçar arttığını belirtir. Başlangıç Son Değeri Değerinin Önce Sayaç Mantığı daha sonra döngü ile 1’den 5’e kadar olan sayıları ekrana yazdırma i= 1,5,1

67 Döngüler Önce Sayaç Mantığı daha sonra döngü ile 1’den 5’e kadar olan sayıları ekrana yazdırma 1’den 100 kadar sayıların toplamını bulup ekrana yazdıran akış diyagramını sayaç ve döngü mantığı kullanarak yapınız.

68 Döngüler 1’den 100 kadar sayıların toplamını bulup ekrana yazdıran akış diyagramını sayaç ve döngü mantığı kullanarak yapınız. 1’den 100 kadar tek sayıların /çift sayıların toplamını bulup ekrana yazdıran akış diagramını sayaç ve döngü mantığı kullanarak yazınız.

69 Döngüler 1’den 100 kadar tek sayıların /çift sayıların toplamını bulup ekrana yazdıran akış diyagramını sayaç ve döngü mantığı kullanarak yazınız. Klavyeyle girilen 10 kişinin notlarının ortalamasını bulan akış diyagramını yapma

70 Döngüler Klavyeyle girilen 10 kişinin notlarının ortalamasını bulan akış diyagramını yapma Ekrandan girilen 10 tane sayı içerisinde en büyüğünü bulup ekrana yazdıran algoritmayı yazma

71 Döngüler Ekrandan girilen 10 tane sayı içerisinde en büyüğünü bulup ekrana yazdıran algoritmayı yazma (girilen 10 not içerisinden en küçüğünü bulup ekrana yazdırma) Ekrana girilen 10 tane sayı içinde 50 ile 75 arasında kaç tane sayı olduğunu bulan ve bu sayıların toplamı ile aritmetik ortalamasını bulan ve bunları ekrana yazdıran algoritma

72 Döngüler Ekrana girilen 10 tane sayı içinde 50 ile 75 arasında kaç tane sayı olduğunu bulan ve bu sayıların toplamı ile aritmetik ortalamasını bulan ve bunları ekrana yazdıran algoritma Dışarıdan girilen sayının faktöriyelini alan programın akış şemasını döngü mantığı kullanarak yapma

73 Döngüler Dışarıdan girilen sayının faktöriyelini alan programın akış şemasını döngü mantığı kullanarak yapma Dışarıdan girilen sayının çarpanlarına ayırma ve bu sayıları ekrana yazdıran programın akış şemasını yapma

74 Döngüler Dışarıdan girilen sayının çarpanlarına ayırma ve bu sayıları ekrana yazdıran programın akış şemasını yapma Üst alma işleminin toplama işlemine benzetilerek yapılması (iç içe döngü yapısı)

75 İç içe Döngü Yapısı Üst alma işleminin toplama işlemine benzetilerek yapılması (iç içe döngü yapısı)

76 Döngü Yapısı-Ödev 1 ile 5 arası çarpım tablosunu yazan akış diyagramının algoritmasını yazma Girilen gün sayısı kadar ne kadar para biriktiğini gösteren algoritma yazma (her gün için para miktarı dışarıdan girilecek) 1’den başlayarak dışardan girilen sayıya kadar, sayıların toplamını bulan algoritmayı yazma Dışardan girilen bir sayının karakökünü bulan algoritmayı yazma

77 Döngü Yapısı-Ödev 1 ile 5 arası çarpım tablosunu yazan akış diyagramının algoritmasını yazma

78 Döngü Yapısı-Ödev Girilen gün sayısı kadar ne kadar para biriktiğini gösteren algoritma yazma (her gün için para miktarı dışarıdan girilecek)

79 Döngü Yapısı-Ödev 1’den başlayarak dışardan girilen sayıya kadar, sayıların toplamını bulan algoritmayı yazma

80 Döngü Yapısı-Ödev Dışardan girilen bir sayının karekökünü bulan algoritmayı yazma

81 Diziler Program yazarken dizilerden faydalanma, problemin çözümünde kolaylık sağladığı için tercih edilen bir yoldur. Bundan önceki konularda kullandığımız A,B,X değişkenler sadece 1 değer girilmekte ve önceki girilen değer bellekte tutulmamaktadır. A dersinden 50 tane öğrencinin almış olduğu notları bellekte saklamak istersek tek bir dizi değişkeni ile bu verileri tutmak daha kolaydır. Programlama dilinde, değişken isminin hemen sağında belirtilen ve parantez içinde yer alan sayıya indis denir. X(1) ->Dizi Değişkeninin Adı(Dizinin Eleman Sayısı). X(10), bu komut ile program içerisinde kullanılacak X değişkeninin alacağı değerlere ait bellekte 10 adet yer ayrılmaktadır. Diziye değer aktarma yapılınca X(1)=5, X(2)=8 eğer X(3)=X(1)+X(2) ise X(3)=? Tek Boyutlu Diziler Çift Boyutlu Diziler Üç Boyutlu Diziler (bu değişkenlerde (İki boyutlu indisli (Bu değişkende satır, sütun sadece satır bulunur) değişkene ‘matris’denir) ve uzay olmak üzere 3 boyut vardır.) X(1) X(2) X(3) X(4) X(5) X(6) X(7) X(8) X(9) X(10) A(1) A(2) A(3)

82 Diziler- Program Örnekleri
Ekrandan girilen 5 tane sayıyı diziye aktaran ve dizinin toplamını bulup ekrana yazdıran akış diyagramını çizin.

83 Diziler- Program Örnekleri
Ekrandan girilen 5 tane sayıyı diziye aktaran ve dizinin toplamını bulup ekrana yazdıran akış diyagramını çizin. A B A dizisindeki satırları (yukarıda gösterildiği gibi ) B dizisine sütun olarak aktaran akış diyagramını çizin. 4 8 6 5 9 7 4 5 6 7 8 9

84 Diziler- Program Örnekleri
4 8 6 5 9 7 A B A dizisindeki satırları (yukarıda gösterildiği gibi ) B dizisine sütun olarak aktaran akış diyagramını çizin. Bir fakültede 3 bölüm bulunmakta, her bölümde 2 ayrı sınıf ve her sınıfta 5 ayrı ders okutulmaktadır. Buna göre girilen ders isimleri diziye aktarılacaktır. Bu programın akış diyagramını çizin. 4 5 6 7 8 9

85 Diziler- Program Örnekleri
Bir fakültede 3 bölüm bulunmakta, her bölümde 2 ayrı sınıf ve her sınıfta 5 ayrı ders okutulmaktadır. Buna göre girilen ders isimleri diziye aktarılacaktır. Bu programın akış diyagramını çizin. Bir ilin 28 günlük sıcaklık değerleri klavyeden diziye girilmektedir. Buna göre haftalık sıcaklık ortalamasını bulup ekrana yazdıran akış diyagramını çizin.

86 Diziler- Program Örnekleri
Bir ilin 28 günlük sıcaklık değerleri klavyeden diziye girilmektedir. Buna göre haftalık sıcaklık ortalamasını bulup ekrana yazdıran akış diyagramını çizin. Ekrandan girilen 5 tane sayıyı diziye aktaran ve diziyi küçükten büyüğe sıralayıp ekrana yazdıran akış diyagramını çizin.

87 Diziler- Program Örnekleri
Ekrandan girilen 5 tane sayıyı diziye aktaran ve diziyi küçükten büyüğe sıralayıp ekrana yazdıran akış diyagramını çizin. Bir öğretmen 2 ayrı bölümde 5 farklı derse girmektedir. Her derste 12 öğrencisi bulunmaktadır. Klavyeden her bölüm, her ders ver her öğrenci için vize, final notları girilmektedir. Buna göre vizenin %40,finalın %60 alıp ortalamayı hesaplayıp ortalama 60’tan küçükse ‘kaldı’, 60 ve üstü ise ‘geçti’ sonucunu her öğrenci için diziye aktaran akış diyagramını çizin.

88 Diziler- Program Örnekleri
Bir öğretmen 2 ayrı bölümde 5 farklı derse girmektedir. Her derste 12 öğrencisi bulunmaktadır. Klavyeden her bölüm, her ders ver her öğrenci için vize, final notları girilmektedir. Buna göre vizenin %40,finalın %60 alıp ortalamayı hesaplayıp ortalama 60’tan küçükse ‘kaldı’, 60 ve üstü ise ‘geçti’ sonucunu her öğrenci için diziye aktaran akış diyagramını çizin.

89 Proje Ödevi Herhangi bir problemin çözümü içi bir algoritma yazmanız istenmektedir.Bu problemin günlük hayatta karşılaşacağını bir durum olabileceği gibi kendinizin üreteceği bir problemde olabilir. Bu algoritmanın karar yapısı, döngüleri içermesi istenmekte, size yeni öğrenmelere kapı açacak şekilde zor olması tercih edilmektedir. Başarılar…..


"Algoritma ve Programlamaya Giriş" indir ppt

Benzer bir sunumlar


Google Reklamları