ALGORİTMA ve PROGRAMLAMA KAVRAMLARI

Slides:



Advertisements
Benzer bir sunumlar
Bilgisayar Programlama I
Advertisements

Algoritma ve Akış Diyagramları
PROGRAMLAMA DİLLERİ 1- Temel kavramlar
Algoritma ve Akış Diyagramları
Problemi Çözme Adımları
Bölüm 2 C Dilinin Temelleri
C Programlama Diline Giriş
Bilgi Teknolojisinin Temel Kavramları
TEMEL BİLGİSAYAR BİLİMLERİ
BPR151 ALGORİTMA VE PROGRAMLAMA - I
ALGORİTMA VE AKIŞ ŞEMALARI.
Algoritma ve Akış Diyagramları
ALGORİTMA ve PROGRAMLAMA
Görsel C# ile Windows Programlama
Bilgisayar Programlama
Bilgisayar Programlama Güz 2011
Bilgisayar Programlama
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
Temel tanımlar ve işleyiş
ALGORİTMA VE AKIŞ ŞEMASI
BİLGİ TEK. VE ALG. GİRİŞ YRD.DOÇ.DR. BUKET DOĞAN 1.
BİLGİ TEK. VE ALG. GİRİŞ YRD.DOÇ.DR. BUKET DOĞAN 1.
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN 1.
ENF 204 Bilgisayar Programlama Algoritma ve Akış Diyagramları
TEK Mİ ÇİFT Mİ? TOPLA YA DA ÇIKAR.
Bilgi Teknolojisinin Temel Kavramları
PROGRAMLAMA 2. Hafta TEMEL KAVRAMLAR.
Algoritmalar ve Programlama I Ders 2: Akış Diyagramları
ALGORİTMA VE AKIŞ ÇİZELGELERİ
Algoritma Mantığı ve Akış Diyagramları
DERS 4 MİKROİŞLEMCİ PROGRAMLAMA. Dr. Emin Argun Oral, Atatürk Üniversitesi 2008 Ders 4, Slayt 2İÇERİK Yüksek seviyeli programlama dilleri Düşük sevyeli.
Adım Adım Algoritma.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
PROGRAMLAMA MANTIĞI, ALGORİTMA PROBLEM ÇÖZME
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
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.
5. HAFTA Mart Discussion: comp.soft-sys.matlab An unmoderated newsgroup that focuses on the.
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.
PROGRAMLAMA TEMELLERİ Burak UZUN Bilişim Teknolojileri Öğretmeni Burak UZUN.
Algoritma Örnekleri.
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
PROGRAMLAMA TEMELLERİ
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.
Bilgisayar Bilimi Problem Çözme Süreci-2.
Problemi Çözme Adımları
Bilgisayar Mühendisliğine Giriş
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
Akis diyagramı Örnekleri
Algoritma ve Akış Diyagramları
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

ALGORİTMA ve PROGRAMLAMA KAVRAMLARI 1

PROGRAM - ALGORİTMA –AKIŞ ŞEMASI Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Algoritma bir sorunun çözümü için izlenecek yolun tanımıdır Akış şeması belirli bir işin yapılabilmesi için, basit işlemlerle şema halinde gösterilmesidir. Kısaca algoritmanın şemalarla gösterilmesidir. Algoritma geliştirildikten sonra, daha iyi anlaşılabilir olması ve programlama dillerine aktarımı daha kolay olması nedeniyle, akış şeması haline getirilir. Böylece sorunun çözüm basamakları, birbirleri ile ilişkileri ve bilgi akışı daha kolay görülebilir ve yanlışlıklar düzeltilebilir. 2

PROGRAMLAMA DİLLERİNİN SINIFLANDIRILMASI VisualBasic, VB.NET, Foxpro, Access ... Çok yüksek seviyeli diller Pascal ,Basic ,Fortran Yüksek seviyeli diller C ,C++, C# , Java, ADA... Orta seviyeli diller Düşük seviyeli diller Assembly... 1 ve 0'lardan oluşur... Makina dilleri

Alt Düzeyli Diller İkilik sayı (Binary) sisteminde (0,1) kodlanabilen dillerdir. Örneğin , makine dili ve assembly. Makine Dili : Sadece ikili sayı sisteminde kodlanan ve bilgisayarın doğrudan yorumlayıp, işleyebileceği tek programlama dilidir. Makine dili bilgisayarın ana dilidir.

Alt Düzeyli Diller Makine dili dışındaki tüm diller semboliktir ve makine diline dönüştürülmesi gerekir. Assembly : Makine diline en çok benzeyen dildir. 0 ve 1 yerine MNOMENIC denilen semboller kullanılır. Bunlar ADD, MOV, JMP, STR gibi sembolik komutlardır. Örneğin ADD A,B ; A ve B adresindeki bilgileri toplayıp sonucu B adresine yerleştirir. Assembly dilinde yazılan her program çevirici denilen ASSEMBLER’den geçirilerek makine diline çevrilir.

Programlama Dili Nedir? istenilen hesaplamaları yapmak için, elde edilen veriyi saklamak için ve girdi/çıktı aygıtlarına veri gönderme/alma gibi işlemleri yapmak için kullanılan dildir. Doğal dillerde olduğu gibi programlama dillerinde de belirli bir yazım kuralı (sentaks) vardır. Programlama dilleri ile sadece bilgisayarlar üzerinde çalışan uygulamalar değil, işlemcisi ve belleği bulunan diğer elektronik cihazlarda çalışan uygulamalar da yazılır.

Kod Sistemleri

Üst Düzeyli Diller Programcının makineye olan bağımlılığını ortadan kaldırmak için geliştirilmişlerdir. Alt düzeyli dillere göre öğrenmesi ve program yazımı kolaydır. Komutlar, genellikle İngilizce kelimelerden veya bu kelimelerin kısaltılmasından oluşturulur. Bilgisayar sadece ana dili olan makine dilinden anladığından dolayı, üst düzey dilllerle yapılan programların çalışabilmesi için makine diline dönüştürülmesi gerekir. Bu dönüştürmeyi Derleyici (compiler) ve/veya Yorumlayıcı (Interpreter) yapmaktadır.

Her dilin mutlaka bir derleyicisi veya yorumlayıcısı vardır Her dilin mutlaka bir derleyicisi veya yorumlayıcısı vardır. Bazı dillerin ise hem derleyicisi hem de yorumlayıcısı vardır.

Derleyiciler Derleyicisi(Compiler) olan dillerde yazılan program (kaynak program) derleyiciden geçirilerek makine diline dönüştürülür. Bu derleme sırasında yazım hatası, sayısal hata, komut sıra hatası, döngü hatası vb. Gibi hatalar varsa bu hatalar listelenir. Programcı bu hataları gidererek yeniden derler. Bu tür programlar ancak bütün olarak derlendikten sonra çalıştırılabilir.

Derleyiciler Derleyici, programın makine kodunu bir kez oluşturarak ayrı bir dosyaya kaydeder.Program her çalıştırılışta bu kod otomatik olarak kullanılır. C, PASCAL, COBOL derleyicisi olan üst düzey dillerdir.

Derleyici ile programlama Çıktı Derleyici ile programlama

Yorumlayıcılar Yorumlayıcılar(Interpreter) Yazılan programları makine diline dönüştüren yazılımlardır. Ancak bu dönüşüm derleyicilerden farklı olarak gerçekleştirilmektedir. Yorumlayıcılar her satırı anında makine diline çevirerek çalışır ve bu kodu dosyaya kaydetmez. Dolayısıyla program her çalıştırıldığında her satır yeniden makine koduna dönüştürülür. Bu yüzden yorumlayıcılar yavaş çalışmaktadır.

Yorumlayıcı ile Programlama Veri Yorumlayıcı Çıktı Yorumlayıcı ile Programlama

Fortran İngilizce FORmula TRANslation kelimelerinin ilk hecelerinden türetilen FORTRAN, bilimsel hesaplamalar yapmak için geliştirilmiştir. Birkaç Sürümü vardır (FORTRAN IV, FORTRAN 77 VE FORTRAN 90)

Cobol İngilizce COmmon Business Orianted Language kelimelerinin kısaltılarak adlandırılmasıyla oluşturulan COBOL ticaret işlemleri için geliştirilmiştir. En büyük özelliği komutlarının İngilizce’ye yakın olmasıdır.

Basic Beginner’s All Purpose Symbolic Instruction Code kelimelerinin baş harflerinden oluşturulmuş BASIC, eğitim amaçlı bir program olarak geliştirilmiştir. Fakat ticari ve bilimsel sahalarda da kullanılır ve oyun programları yazılabilmektedir. Quick Basic, Turbo Basic, Gw basic, Visual Basic, gibi derleyicileri vardır.

Pascal Fransız Matematikçisi Blaise Pascal’ın adını taşıyan PASCAL İsviçre’li Niklaus Wirth tarafından programcılığı öğretmek amacı ile geliştirilmiştir.Günümüzde iş ve bilim çevrelerinde yaygın olarak kullanılmaktadır. En çok kullanılan sürümü ise Borland firmasının Turbo Pascal’ıdır.

C Dennis Ritchie tarafından Bell laboratuvarlarında geliştirilmiştir. C’nin makine diline çevrilmesi diğer üst dizey dillere göre daha kolaydır. En çok kullanılan dillerdendir. Bir ağ işletim sistemi olan UNIX C ile yazılmıştır.

Algoritma Geliştirme: Algoritma bir sorunun çözümü için izlenecek yolun tanımıdır. Kısaca algoritma mevcut bilgilerden istenilenlere erişme yöntemidir 23

Algoritma Nedir? Algoritma Bir problemin çözümü için geliştirilmiş özel metot Girdileri çıktılara dönüştüren sıralı hesaplama adımları Tanımlanmış bir problemin çözümü için kullanılan araç «Bir problemin çözümü için izlenilen sıralı ve anlaşılır buyruklar»

Algoritma Hedefi Algoritma ile hedeflenen Sonlu bir zaman içinde Belirli girdiler ile İstenilen çıktıyı elde etmek

Nasıl bir algoritma? Bir algoritma Birden fazla biçimde sunulabilmeli Net ve anlaşılır olmalıdır Etkin ve faydalı olmalıdır Sonlu veya sonlandırılabilir olmalıdır Geliştirildiği problem için doğru olmalıdır

Algoritmanın Tarihçesi El Harezmi 9. yyda yaşamış bir matematikçi Algoritma ve cebir kavramlarının «babası» olarak bilinir 0 sayısını ve x bilinmeyenini ilk kullanan kişi Euclid En büyük ortak böleni bulma problemi için geliştirdiği çözüm ilk algoritmalardan biri olarak kabul ediliyor

Algoritma Algoritma, herhangi bir sorunun çözümü için izlenecek yol anlamına gelmektedir. Çözüm için yapılması gereken işlemler hiçbir alternatif yoruma izin vermeksizin sözel olarak ifade edilir. Diğer bir deyişle algoritma, verilerin, bilgisayara hangi çevre biriminden girileceğinin, problemin nasıl çözüleceğinin, hangi basamaklardan geçirilerek sonuç alınacağının, sonucun nasıl ve nereye yazılacağının sözel olarak i fade edilmesi biçiminde tanımlanabilir.

Algoritma Nedir? Algoritma, bir sorunun çözümüne gidebilmek için tasarlanan yollar, yöntemlerdir. Program geliştirme sürecinde işlem veya işlemlerin hangi sırada ve düzende gerçekleşeceğini belirleyen planların yapılması gerekir. Algoritma doğru bir şekilde oluşturulduktan sonra istenen programlama dili ile kodlama yapılabilir.

Algoritma Adım 1- Başla Adım 2- Alacağın Laptop’ın özelliklerini belirle Adım 3- Bu özellikleri taşıyan en performanslı marka ve modeli belirle Adım 4- Bu marka modelin en ucuz satıldığı firmayı araştır Adım 5- Firmadan siparişi ver Adım 6- Ödemeyi yap

Algoritma Adım 1- Başla Adım 2- Tencereye suyu koy Adım 3- Tencereyi ocağın üstüne yerleştir Adım 4- Tencerenin altını hızlıya aç Adım 5- Tencereye tuz ekle Adım 6- Su kaynadıktan sonra makarnayı ekle Adım 7- Ateşin yavaşa al Adım 8- Makarna yumuşadıktan sonra tencereyi indir

Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak ayrıntılı bir biçimde tanımlanmalıdırlar. Örnek 1: Verilen iki sayının toplamının bulunmasının algoritması aşağıdaki gibi yazılır. Adım 1 – Başla Adım 2 – Birinci Sayıyı Oku Adım 3 – İkinci Sayıyı Oku Adım 4 – İki Sayıyı Topla Adım 5 – Dur

Bir çözüm yönteminin algoritma olabilmesi için gerekli koşullar Sıralı olma: . Belirli olma Sonlu olma 33

Bir çözüm yönteminin algoritma olabilmesi için gerekli koşullar Geçerli olma: İşlemler yeterli, sonuca uygun ve işleyici için geçerli olmalıdır. İşlem dizi beklenen sonucu en kısa yoldan ulaşmalı, el ile ya da mantıksal olarak ya da kağıt kalemle doğruluğu izlenebilir olmalıdır. Girdi/Çıktı tanımlı olma Genel olma

Örnek bir Algoritma İki sayıyı toplamak için gerekli programa ait algoritmanın oluşturulması. Algoritma: A1 :Birinci sayıyı gir A2 :İkinci sayıyı gir A3 :İki sayının toplamını yap A4 :Toplamın değerini yaz A5 :Bitir. 35

Function basari(vize As Integer, final As Integer) basari = 0.3 * vize + 0.7 * final End Function

Function faizhesapla(anapara As Double, vade As Integer) As Double If vade <= 12 Then faizhesapla = 0.1 * anapara ElseIf vade <= 24 Then faizhesapla = 0.12 * anapara Else faizhesapla = 0.18 * anapara End If End Function

Algoritma Geliştirmede ve Programlamada Kullanılan BazıTemel Kavramlar 1 – Değişkenler 2 – Atama Operatörü 3 – Sayaçlar 4 – Döngüler

Algoritma Geliştirmede ve Programlamada Kullanılan BazıTemel Kavramlar (devam) 1- Değişken : Bir program içerisinde bilgileri tutmak ve bu bilgiler üzerinde işlem yapmak için değişkenlerden yararlanılır. Örneğin c=a+b ifadesindeki "a","b" ve "c" bizim değişkenlerimizdir.

Algoritma Geliştirmede ve Programlamada Kullanılan BazıTemel Kavramlar (devam) Farklı zamanlarda farklı değerler alabilen bilgi sahalarına verilen sembolik adlardır. Bilgisayar işlem yaparken RAM belleği(geçici bellek) kullanır. İşte program yazılırken programcının Ram belleği kullanmasını sağlayan değişkenlerdir. Değişkenler Ram bellekte tahsis edilmiş odacıklar olarak düşünülebilir. Yani bir değişken tanımlandığında ram bellekte bir odacık (bir bölüm) açılır ve bu bölüme değişken ismiyle ulaşılır. Program içinde kullanılacak olan değişkenler problemin tanımı ve girdi-çıktı belirleme aşamalarında belirlenmelidir. 42

Algoritma Geliştirmede ve Programlamada Kullanılan BazıTemel Kavramlar (devam) 2-Atama: Herhangi bir değişkenin içine bir değeri veya ifadenin/işlemin sonucunu aktarma işlemidir. değişken = ifade Satırında ‘değişken’ yazan kısım, herhangi bir değişkenin adıdır. ‘ifade’ yazan kısımda ise matematiksel, mantıksal veya alfa nümerik bir ifade olabilir. Aradaki ‘=‘ sembolü, ‘atama operatörü’ olarak adlandırılır ve sağdaki ifadenin/işlemin sonucunu soldaki değişkene aktarır. Bu durumda değişkenin -eğer varsa- bir önceki değeri (eski değeri) silinir. X=3 Y=X+5 işleminin sonucunda Y’nin bir önceki değeri silinerek yerine 8 değeri yazılır.

Algoritma Geliştirmede ve Programlamada Kullanılan BazıTemel Kavramlar (devam) 3- Sayaç : Programlarımızda bazı işlemlerin belirli sayıda yaptırılması veya işlenen/üretilen değerlerin sayılması gerekebilir. Örneğin: Klavyeden girilen bir cümlede kaç sesli harf olduğunu bulan programda, cümlenin her harfi sırayla çağrılır ve sesli harfler kümesine ait olup olmadığı araştırılır. Eğer çağrılan harf bu kümeye ait ise bunları sayacak olan değişkenin değeri bir artırılır.

Algoritma Geliştirmede ve Programlamada Kullanılan Bazı Temel Kavramlar (devam) sayac = sayac + 1 Şeklindeki işlemde sağdaki ifadede değişkenin eski(önceki) değerine ‘1’ eklenmekte; bulunan sonuç yine kendisine, yeni değer olarak aktarılmaktadır. Bu tür değişkenlere, algoritmada “sayaç” veya “sayıcı” (counter) adı verilir.Yani “sayaç”; işlem akışı kendisine her geldiğinde, belirtilen adım değeri kadar artan/azalan değişkendir.

‘Sayaç’ kullanımına örnek: sayac=sayac+3 Üçer üçer artan bir sayıcıdır sayac=sayac-5 Beşer beşer azalan bir sayıcıdır Örnek: Aşağıdaki algoritmada 1-5 arası sayılar (1 dahil, 5 hariç), sayaç kullanılarak ekrana yazdırılmaktadır. Burada, sayac sayaç değişkenidir. A1: Başla A2: sayac=1 A3 : Eğer sayac=5 ise adım 7 ye git A4: sayac i ekrana yaz A5: sayac=sayac+1 A6: 3.adım’ a git A7: Bitir Hangi amaçlarla kaç değişkene ihtiyaç var?

Algoritma Geliştirmede ve Programlamada Kullanılan Bazı Temel Kavramlar (devam) 4- Döngü : Birçok programda, bazı işlemler belirli ardışık değerlerle gerçekleştirilmekte veya belirli sayıda yapılmaktadır. Programlardaki belirli işlem bloklarını, belirli sayıda tekrarlayan işlem akış çevrimlerine döngü denir.

Döngü Oluşturma Kuralları: 1- Döngü değişkeninin başlangıç değeri belirlenir. 2- Döngü değişkeninin bitiş değeri belirlenir. 3- Döngü değişkeninin bitiş değerine ulaşıp ulaşmadığı test edilir. 4- İstenen işlem gerçekleştirilir. 5- Döngü değişkeni, döngü içinde adım miktarı kadar artırılır yada azaltılır.

‘Döngü’ Kavramına Örnek: Örnek: Aşağıdaki algoritmada 1-10 arası tek sayıların toplamı hesaplanmaktadır. (Aşağıdaki algoritmayi çift sayıların toplamına hangi değişikliği yaparak dönüştürebilirsiniz?) A1: Başla A2: toplam=0 A3: sayac=1 A4: Eğer sayac>=10 ise adım 8 e git A5: toplam=toplam+sayac A6: sayac=sayac+2 A7: Adım 4 e git A8: toplam ı ekrana yaz A9: Bitir Döngü Hangi amaçlarla kaç değişkene ihtiyaç var?

Örnek : Dışarıdan girilen iki sayının toplamını bulan programın algoritması aşağıdaki gibi kurulur: A1 : Başla A2 : A değerini gir A3 : B değerini gir A4 : C= A+B A5 : C' yi ekrana yaz A6 : Bitir Hangi amaçlarla kaç değişkene ihtiyaç var?

A2 : A, B ve C sayılarını dışarıdan gir A3 : enBuyuk=A Örnek : Dışarıdan girilen 3 sayıdan en büyüğünü bulan algoritmayı kurunuz. Algoritma: A1 : Başla A2 : A, B ve C sayılarını dışarıdan gir A3 : enBuyuk=A A4 : Eğer enBuyuk<B ise enBuyuk=B yap A5 : Eğer enBuyuk<C ise enBuyuk=C yap A6 : enBuyuk değerini ekrana yaz A7 : Bitir Hangi amaçlarla kaç değişkene ihtiyaç var?

A2 : toplam=0;sayac=1 baslangıç değerlerini ata Örnek: 0’dan 100’e kadar olan sayma sayılarının kümülatif toplamını ekrana yazdıran algoritmayı geliştiriniz. A1 : Başla A2 : toplam=0;sayac=1 baslangıç değerlerini ata A3 : Eğer sayac=100 ise 6. adıma git A4 : toplam=toplam+sayac A5 : sayac=sayac+1 yap ve 3. Adıma geri dön A6 : toplam’ı ekrana yaz A7 : Bitir Hangi amaçlarla kaç değişkene ihtiyaç var?

Sayının faktöriyeli : faktor , Faktöriyel Değişkeni :sayac Örnek: Verilen bir sayının faktöriyelini hesaplayan programın algoritmasını yazınız. (Faktöriyeli hesaplanacak sayı negatif girilmişse yeniden giriş istenmelidir.) Değişkenler: Sayının faktöriyeli : faktor , Faktöriyel Değişkeni :sayac Faktöriyeli hesaplanacak sayı :Y Algoritma: A1: Başla A2 : faktor =1; sayac =1 A3 : Y’yi gir A4 : Eğer Y<=0 ise 3. adima git A5 : Eğer sayac>Y ise adim 8 e git A6: faktor=faktor*sayac A7: sayac =sayac+1 yap ve adım 5 e git A8 : faktor degerini ekrana yaz A9 : Bitir Anlamlı Değişken İsimleri Seçmek Çok Önemli !!!!!!!!!!!! Hangi amaçlarla kaç değişkene ihtiyaç var?

Örnek : Beş sayının toplamını ve ortalamasını veren programa ait algoritmanın oluşturulması Toplam adı için T Ortalama adı için Ort Girilen sayılar için X Arttırma için Sayac kullanılırsa Algoritma: A1 :T = 0, Sayac ¬ 0 A2 :X’i gir A3 :T= T+X A4 : Sayac = Sayac +1 A5 :Eğer Sayac <5 ise A2’ye git A6 :Ort= Top/5 A7 :T ve Ort değerlerini yaz A8 :Bitir 54

Örnek : Verilen bir sayının faktöriyelini hesaplayan programın algoritmasının oluşturulması Sayının faktöriyeli :F Faktöriyel degişkeni :X Faktöriyeli hesaplanacak sayı :Y Algoritma: A1 :F=1, X= 0 A2 :Y’i gir A3 :Y<0 ise 2. adımı tekrarla A4 :X= X+1 A5 :F= F*X A6 :X<Y ise 4. adıma geri dön A7 :F değerini yaz A8 :Bitir 55

Akış Şemaları Geliştirilecek olan yazılımın genel yapısının şematik gösterimine akış diyagramı veya blok diyagramı adı verilir. Akış diyagramları, yazılımı oluşturacak program parçalarını ve bu parçaların birbirleri ile olan ilişkilerini belirler. Bir bilgisayar programının oluşturulmasında akış diyagramlarının hazırlanması, algoritma oluşturma aşamasından sonra gelmektedir. Bilgisayar programının oluşturulması sırasında algoritma aşaması atlanarak, doğrudan akış diyagramlarının hazırlanmasına başlanabilir. Programlama tekniğinde önemli ölçüde yol almış kişiler bu aşamayı da atlayarak direkt olarak programın yazımına geçebilirler. Akış diyagramlarının algoritmadan farkı, adımların simgeler şeklinde kutular içinde yazılmış olması ve adımlar arasındaki ilişkilerin (iş akışı) oklar ile gösterilmesidir. 56

Simge Simgenin Adı ve Anlamı Elips Akış diyagramının başlangıç ve bitiş yerlerini gösterir. Başlangıç simgesinden çıkış oku vardır. Bitiş simgesinde giriş oku vardır.  Paralel Kenar: Programa veri girişi ve programdan elde edilen sonuçların çıkış işlemlerini gösterir.   Dikdörtgen Aritmetik işlemler ve değişik atama işlemlerinin temsil edilmesi için kullanılır. Eşkenar Dörtgen Bir karar verme işlemini temsil eder.     Altıgen Program içinde belirli blokların ard arda tekrar edileceğini gösterir. Oklar Diyagramın akış yönünü ,yani her hangi bir adımdaki işlem tamamlandıktan sonra hangi adıma gidileceğini gösterir. Programa ait sonuçların ekrana yazdırılması 57

Akış Şemaları (Karar Verme Yapıları) İŞLEM c<2 DOĞRU 59

Akış Şemaları (Tekrarlı Yapı) 60

İki sayının toplamını ve ortalamasını yapan bilgisayar programının akış diyagramını çiziniz.  2 61

1’den 100’e kadar olan sayıların toplamlarını ve ortalamalarını veren programın akış diyagramını çiziniz. 62

A²+Bx+C=0 şeklinde verilen 2 A²+Bx+C=0 şeklinde verilen 2. derece denklemin köklerini bulan programın akış diyagramını Kökler Sanal X1,X2 C=? 63

basari = 0.3 * vize + 0.7 * final End Function Function basari(vize As Integer, final As Integer) basari = 0.3 * vize + 0.7 * final End Function

IF şart THEN işlemler ELSEIF şart THEN İşlemler ELSE END IF

Function NOTLANDIR(Notu As Integer) As String If Notu <= 50 Then NOTLANDIR = "Bütünleme" ElseIf Notu <= 70 Then NOTLANDIR = "Orta " ElseIf Notu <= 80 Then NOTLANDIR = "iyi " ElseIf Notu <= 90 Then NOTLANDIR = "çok iyi " ElseIf Notu <= 100 Then NOTLANDIR = "Harika " Else NOTLANDIR = "0 ile 100 arasında değer giriniz " End If End Function

1. Klavyeden sayısal girilen notu harfli nota çeviren programın algoritmasını, akış şeması yapınız ve Excel fonksiyonunu yazınız. 50’den küçük FF, 50-60 arası DD 60-70 arası CC 70-80 arası BB 80-90 arası BA 90 ve üzere AA 2. Klavyeden girilen bir sayının ASAL sayı olup olmadığını ekrana yazan programın algoritmasını ve akış şemasısını yapınız. 3. Fibonacci serisinin ilk 15 elemanını ekrana yazdıran programın algoritmasını ve akış şemasını yapınız.

1’ den 100’e kadar sayıların karelerini, kareköklerini, küplerini, küpköklerini toplamlarını ve ortalamalarını veren programın akış diyagramını çiziniz Ortalama, Toplam 68

10 tane N sayısının faktöriyelini hesaplayan programın akış diyagramını çiziniz. 69

Örnek 12: p sayısının formülü olduğuna göre serinin paydasındaki ifade 100 oluncaya kadar pi sayısını hesaplayan bilgisayar programının akış diyagramını çiziniz. Pi 70

Programlama Dillerinin Seviyelerine Göre Sınıflandırılması Önce seviye kavramının ne anlama geldiğini açıklamak gerekmektedir. Seviye, bir programlama dilinin insan algılamasına olan yakınlığının bir ölçüsüdür. Yüksek seviyeli diller insan algılayışına daha yakın, alçak seviyeli diller de bilgisayarın doğal çalışmasına daha yakın olan dillerdir. Dillerdeki seviye yükseldikçe programcının işi de kolaylaşır. Öyle ki, çok yüksek seviyeli programlama dillerinde artık bir işin nasıl yapılacağına ilişkin değil, ne yapılacağına ilişkin komutlar bulunur. Seviyenin yükselmesi programcıya kolaylık sağlamakla birlikte genel olarak verimliliği ve esnekliği de azaltır. 71

Orta Seviyeli Programlama Dilleri (C) Çok Yüksek Seviyeli Programlama Dilleri ya da Görsel Diller (FOXPRO, PARADOX, ACCESS.., VISUAL BASIC, IV.KUŞAK DlLLER) Yüksek Seviyeli Programlama Dilleri (PASCAL, COBOL, FORTRAN, BASIC,...) Orta Seviyeli Programlama Dilleri (C) Alçak Seviyeli Programlama Dilleri (Sembolik Makine Dilleri) 72

C NASIL BİR DİL?.. Orta seviyeli bir dildir. Yazılan C kodu ile makina kodu arasında bağlantı kolaylıkla kurulabilir. Sistem programlama dilidir. Bugün işletim sistemleri, derleyiciler, editörler gibi sistem programlarının hemen hepsi yoğun olarak C kodu içermektedir. Ancak sistem programlamanın dışında da birçok uygulamada C verimli olarak kulla­nılabilir. Algoritmik bir dildir. Yalnızca dilin sintaks ve semantik yapısını bilmek yet­mez. Problemleri çözebilecek bir algoritma bilgisine de ihtiyaç duyulur. Diğer diller arasında taşınabilirliği en fazla olanlardan biridir. İfade gücü yüksek ve okunabilirlik özelliği kuvvetli bir dildir. Çok esnektir. Bu yüzden programcının hata yapmayacak bir bilgiye ve deneyime sahip olması gerekir. Atomik bir dildir. Cde altprogramlama tekniği ileri düzeyde kullanılmakta­dır. Güçlü bir dildir. Tasarım özellikleri çok iyidir. Cye ilişkin yapıların ve ope­ratörlerin bir kısmı daha sonra diğer diller tarafından da benimsenmiştir. Verimli bir dildir. C programları seviyesi dolayısıyla daha hızlı çalışır. Doğal bir dildir. C bilgisayar sisteminin çalışma biçimiyle uyum içindedir. C++ ile nesne yönelimlilik özelliğine de sahip olmuştur. 73

PROGRAMIN ÇALIŞMASI source --- compiler -----> object -----> link kaynak derleyeci amaç bağlama kaynak kod : C dili ile yazılmış olan program. derleyeci : Kaynak kodu makina koduna çevirir amaç kodu : Kaynak kodun makina dilindeki karşılığı bağlama : Birden fazla amaç kodu dosyasının tek dosyada birleştirilmesi 74

İLK PROGRAM #include<stdio.h> #include<conio.h> main() {         printf("Bu bir satirlik yazidir."); } 75

VERİ TİPLERİ Int Tip Integer = Tamsayı Tamsayıları içerir. Bellekte 2 Byte tutar. 5 , -19 , 25000 gibi Minimum : -231 = -32768 Maksimum : 231-1 = 32767 Long tip Uzun tamsayı. Bellekte 4Byte tutar. Minimum :-2,147,483,648 . Maksimum :2,147,483,647 76

VERİ TİPLERİ Gerçel Tipler (Float, Double) Gerçel sayıları içerirler. float : Bellekte 4 Byte yer tutar. 3.4E-38 ile 3.4E+38 aralığında değer alır. Hassasiyet 7-8 basamaktır. double : Bellekte 8 Byte ter tutar. 1.7E-308 ile 1.7E308 aralığında değer alır. Hassasiyet 15-16 basamaktır. NOT: Bilimsel gösterim biçimi 2.5*103 = 2.5E3 2.5*10-3 = 2.5E-3 77

VERİ TİPLERİ Char Tip Char : Karakter : Alfanumerik karakterleri içerir. '5' , '*' , 'K‘ gibi 78