Algoritma ve Programlamaya Giriş

Slides:



Advertisements
Benzer bir sunumlar
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Advertisements

Algoritma ve Akış Diyagramları
Algoritma ve Akış Diyagramları
Problemi Çözme Adımları
Bilgi Teknolojisinin Temel Kavramları
TEMEL BİLGİSAYAR BİLİMLERİ
SQL de Değişken Tanımlama
BPR151 ALGORİTMA VE PROGRAMLAMA - I
ALGORİTMA VE AKIŞ ŞEMALARI.
Algoritma ve Akış Diyagramları
ALGORİTMA ve PROGRAMLAMA
While Döngüsü Tekrarlama deyimidir. Bir küme ya da deyim while kullanılarak bir çok kez yinelenebilir. Yinelenmesi için koşul sınaması döngüye girilmeden.
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 9. Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1,
Nesneye Dayalı Programlama
Görsel C# ile Windows Programlama
Bilgisayar Programlama
Bilgisayar Programlama Güz 2011
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Algoritmalar (Algoritms)
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
Temel tanımlar ve işleyiş
Algoritmalar (Algoritms)
ALGORİTMA VE AKIŞ ŞEMASI
Problem Yaklaşım Temelleri, Algoritma ve Akış Şeması
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
ENF 204 Bilgisayar Programlama Algoritma ve Akış Diyagramları
Problem Yaklaşım Temelleri, Algoritma ve Akış Şeması
Bilgi Teknolojisinin Temel Kavramları
BİL 102 BİLGİSAYAR PROGRAMLAMA DERS 1. PROGRAM GELİŞTİRME AŞAMALARI 1- Probleme ilişkin veriler nelerdir? 2- Çözüm yöntemi nasıl olacaktır? 3- Çözüm sonucunda.
Algoritmalar ve Programlama I Ders 2: Akış Diyagramları
ALGORİTMA VE AKIŞ ÇİZELGELERİ
Algoritma Mantığı ve Akış Diyagramları
Döngü Komutları. for deyimi bir alt limitten, bir üst limite kadar programın belirli bir parçasını tekrar eder. for deyiminde sayaç artış oranı da verilmelidir.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Adım Adım Algoritma.
ALGORİTMA NEDİR? İster bilgisayarda, ister matematikte, isterse günlük hayatta karşımıza çıkan her problemin çözüm yolu vardır. Örneğin yemek yerken farkında.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
Ders 2 Algoritma İfade Şekilleri
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
PROGRAMLAMA MANTIĞI, ALGORİTMA PROBLEM ÇÖZME
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Akış Diyagramları - 1. Akış Diyagramı  Algoritmalar doğal dille yazıldıklarında herkes tarafından aynı biçimde anlaşılmayabilir.  Ancak, akış diyagramlarında.
BÖLÜM 3 AKIŞ DİYAGRAMI.
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
O R T L G İ M A A Ve Akış şemaları.
Programlamaya Giriş-I Bölüm-1. Algoritma Algoritma günlük yaşamımızda yaptığımız işler sırasında sıklıkla kullandığımız bir yöntemdir. Algoritma, bir.
BİLGİSAYAR PROGRAMLAMA DERSİ 4. DERS NOTU Konu: M-dosya yapısı ve Kontrol Yapıları 1.
PROGRAMLAMA TEMELLERİ Burak UZUN Bilişim Teknolojileri Öğretmeni Burak UZUN.
Algoritma ve Akış Şemaları
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
T.C. ÖMER HALİSDEMİR ÜNİVERSİTESİ EĞİTİM FAKÜLTESİ BİLGİSAYAR VE ÖĞRETİM TEKNOLOJİLERİ ÖĞRETMENLİĞİ EĞİTİMDE BİLİŞİM TEKNOLOJİLERİ – 2 DERSİ ALGORİTMALAR.
C Programlama Dili Bilgisayar Mühendisliği.
ALGORİTMA VE AKIŞ ŞEMASI
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
PROGRAMLAMA VE KODLAMAYA GİRİŞ
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Problem Çözme Yaklaşımları
Algoritmanın Hazırlanması
PROGRAMLAMAYA GİRİŞ FORTRAN 77.
Algoritma Nedir? Algoritmayı, herhangi bir problemin çözümü için izlenecek yolun adımlar halinde yazılması olarak tanımlayabiliriz. Algoritma, bir problemin.
Bilgisayar Bilimi Problem Çözme Süreci-2.
Problemi Çözme Adımları
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
Akis diyagramı Örnekleri
Algoritma ve Akış Diyagramları
Sunum transkripti:

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

Programlama ve Temel Kavramlar

Programlama ve Temel Kavramlar

Programlama ve Temel Kavramlar

Programlama ve Temel Kavramlar

Yazılım Geliştirme Süreci

Yazılım Geliştirme Süreci

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.

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.

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.

Programlamanın Tarihçesi Oldukça eskiye dayanan programlamanın tarihine baktığımızda fazla kodlanmış makine komutları bulunmamaktaydı. 1940 – 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.

Programlama Dilleri

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.

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)

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

Programlamayla İlişkili Kavramlar

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

Sayı Sistemleri

Sayı Sistemleri

Sayı Sistemleri

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

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

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

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

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.

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.

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.

Algoritma Oluşturma Süreci

Algoritmanın Metinsel/Sözel olarak İfadesi

Algoritmanın Metinsel/Sözel olarak İfadesi

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

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

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

Algoritmalar

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

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ı

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

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,…)

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

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ı

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.

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.

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

Ö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ı’)

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

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

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)

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

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

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

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

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)

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)

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ı

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)

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

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

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.

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ı

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

Ö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 (358-853 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

Ö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

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

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

Ö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

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

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.

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.

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

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

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

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

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

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ı)

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

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

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

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)

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

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

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)

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

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

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

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.

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.

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.

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.

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…..