MAK 1005 Bilgisayar Programlamaya Giriş Uludağ Üniversitesi, Mühendislik Fakültesi Makine Mühendisliği Bölümü BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI Prof. Dr. Necmettin Kaya 1
KONULAR 1. Bilgisayara giriş, donanım, yazılım, işletim sistemleri, algoritma 2. Algoritma ve Akış Diyagramları 3. Algoritma ve Akış Diyagramları 4. C diline giriş, Veri Tipleri, Değişkenler, Sabitler,Operatörler 5. Temel Giriş/Çıkış Fonksiyonları 6. Temel Kütüphane Fonksiyonları 7. ARA SINAV 8. Karşılaştırma Deyimleri 9. Döngüler 10. Fonksiyonlar 11. Diziler 12. Dosya Yönetimi 2
ÖNEMLİ KONULAR Öğrenciler her hafta dersi düzenli olarak takip etmelidir. Ders saatinden önce öğrenciler sınıfta yerini almalıdır. Verilecek ödev soruları mutlaka yapılmalıdır. Uygulamalar Bilgisayar Laboratuvarlarında yapılacaktır Sınavlar kağıt üzerinde yapılacaktır. C Editörü ve Derleyicisini kendi bilgisayarınızda kullanabilirsiniz. Derste anlatılacak sunum notları dersten önce pdf formatında http://necmi.home.uludag.edu.tr/bpg.htm adresinde yayınlanacaktır. DEĞERLENDİRME: Ara Sınav ve Ödevler : %40 Yıl Sonu Sınavı : %60 3
KAYNAKLAR 1. Algoritma Geliştirme ve Programlamaya Giriş Dr. Fahri Vatansever, Seçkin Yayınları 2. C ile Programlama Prof.Dr. Mithat Uysal, Nirvana Yayınları 3. C Programlama Dili Rifat Çölkesen, Papatya Yayıncılık 4
BİLGİSAYARA GİRİŞ Bilgisayar; aldığı bilgilerle ya da verilerle kullanıcının isteği doğrultusunda bir işletim sistemi aracılığıyla işlem yapabilen, verileri saklayabilen ve istenildiği biçimde (yazılı, görsel) çıktı verebilen bir aygıttır. Genel olarak bilgisayarların gelişimi elektronik sektörünün gelişimine paralel olarak ilerlediği görülmektedir (silikon teknolojisi ve transistörlerin gelişimi). Gelişen transistor teknolojisi ile birlikte bilgisayarların işlemcileri ve yapıları da gelişmiş ve günümüzün bilgisayar teknolojisine ulaşılmıştır. Her geçen gün bilgi ve bilgi işleme duyduğumuz ihtiyaç sonucunda bilgisayar teknolojisi hızla ilerlemektedir. 5
TARİHÇE 1. 1614 yılında Napier hesaplamalara yardımcı olmak üzere logaritma prensiplerini kullanan bir aygıt geliştirdi. 2. 17. yüzyılın sonlarında Oughtred ilk sürgülü cetveli yaptı. 3. Bu dönemde Pascal ilk mekanik hesap makinesini geliştirdi. 4..Delikli kart sistemi ilk kez 1801 yılında Jackward tarafından dokuma tezgahlarında kullanıldı. 5. 1842 de Babbage otomatik bir hesap makinesi tasarladı. 6. 19. yüzyılın sonlarına doğru Hollerith ABD nüfus sayımı sonuçlarını değerlendirmek için delikli kart sistemini kullandı. 7. Aitken 1944 yılında otomatik kontrollü hesaplayıcıyı tasarladı (IBM). 8. 1946 da ENIAC adında ilk hesaplayıcı ortaya çıktı (vakum tüpleri, büyük hacimli, çok ısı yayan sistemler). 9. Bilgisayarların ticari olarak pazarlanması ilk olarak 1951 yılında olmuştur. 6
TARİHÇE 10. IBM firması 1953 yılında 701 modeli ile piyasaya girdi. 11. 1955 1960 arası vakum tüpleri yerine transistörler kullanılmaya başlandı. 12..Manyetik şeritlerin kullanımı bellek kapasitesinin artmasına neden oldu. 13. 1964 yılında ortaya çıkan bilgisayarlar entegre devrelere sahipti. 14. 1970 li yıllardan itibaren tümleşik devrelerin kullanıldığı hesaplama hızları artmış ve fiziksel özellikleri küçülmüş bilgisayar görülmeye başlanmıştır. 15..Mikroişlemci denilen tek bir tümleşik devre yongalarının bilgisayarlara uygulanması ile ucuz bilgisayarlar üretilmiştir. 7
BİLGİSAYARIN YAPISI Bilgisayarlar, donanım ve yazılım olmak üzere iki temel kısımdan oluşur; Donanım (Hardware): Bilgisayar sisteminin çalışması ve ek görevler için gerekli olan her türlü fiziksel araç. Yazılım (Software): Bilgisayar ile kullanıcı arasındaki bağlantıyı sağlayan, donanım araçları arasındaki ilişkiyi kuran, komutlar topluluğudur. 8
DONANIM 9
YAZILIM 1. Sistem Yazılımları (İşletim Sistemi) - Yönetleyici ve Denetleyici Programlar: (VM, DOS, UNIX, WINDOWS, LINUX,...) 2. Programlama Dilleri Alçak seviyeli diller : Makine dili, assembler dili Yüksek seviyeli diller: FORTRAN, BASIC, PASCAL, C,... Görsel programlama dilleri: Visual Basic, Delphi, Visual C,... 3. Uygulama Yazılımları: Verileri işleyerek istenen sonuçları üreten programlardır. 10
BİLGİSAYAR İLE PROBLEM ÇÖZÜM ADIMLARI 1. Problemin anlaşılması ve analizi 2. Çözüm adımı geliştirme 3. Çözüm yönteminin adımlandırılması (algoritma ve akış diyagramı) 4. Programı kodlama 5. Programın testi Algoritma Nedir? Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne denir. Doğal (günlük) dille yazılır. Bir algoritma için aşağıdaki ifadelerin mutlaka doğrulanması gereklidir. Her adım son derece belirleyici olmalıdır. Hiç bir şey şansa bağlı olmamalıdır. Belirli bir sayıda adım sonunda algoritma sonlanmalıdır. Algoritmalar karşılaşılabilecek tüm ihtimalleri ele alabilecek kadar genel olmalıdır. 11
ALGORİTMA ÖRNEK1: İki sayının toplamı probleminin algoritmasını yazınız. A0: Başla A1: Birinci sayıyı (SAYI1) gir. A2: İkinci sayıyı (SAYI2) gir. A3: Sayıları topla, TOPLAM SAYI1 + SAYI2 A4: TOPLAM ı yaz. A5: Dur. ÖRNEK2 : Verilen 3 adet sayının ortalamasını bulan programın algoritmasını yazınız. A0: Başla A1: Birinci sayıyı (S1) gir. A2: İkinci sayıyı (S2) gir. A3: Üçüncü sayıyı (S3) gir. A4: Sayıları topla, TOPLAM S1+S2+S3 A5: ORT TOPLAM/3 A6: ORT u yaz. A7: Dur. 12
AKIŞ DİYAGRAMI Problemin çözümü için geliştirilen algoritmanın şekiller ile ifade edilmesi işlemidir. Başlangıç/Bitiş İşlem Giriş Döngü Çıktı Bağlayıcı Akış Yönü Karar 13
ALGORİTMA ve AKIŞ DİYAGRAMI ÖRNEK1 : İki sayının toplamı probleminin algoritmasını yazınız ve akış diyagramını çiziniz. A0: Başla A1: Birinci sayıyı (S1) gir A2: İkinci sayıyı (S2) gir A3: Sayıları topla, TOPLAM S1 + S2 A4: TOPLAM ı yaz. A5: Dur. 14
ALGORİTMA ve AKIŞ DİYAGRAMI ÖRNEK2 : Verilen 3 adet sayının ortalamasını bulan programın algoritmasını yazınız ve akış diyagramını çiziniz. A0: Başla A1: Birinci sayıyı (S1) gir. A2: İkinci sayıyı (S2) gir. A3: İkinci sayıyı (S3) gir. A4: Sayıları topla, TOPLAM S1+S2+S3 A5: ORT TOPLAM/3 A6: ORT u yaz. A7: Dur. 15
ALGORİTMA ve AKIŞ DİYAGRAMI ÖRNEK3 : Yarıçapı verilen bir dairenin alanını ve çevresini hesaplayan programın algoritmasını yazınız ve akış diyagramını çiziniz. A0: Başla A1: Yarıçapı (R) gir A2: ALAN 3.14*R*R A3: ÇEVRE 2*3.14*R A4: ALANI ı yaz. A5: ÇEVRE yi yaz. A6: Dur. 16
ALGORİTMA ve AKIŞ DİYAGRAMI ÖRNEK4 : Kütlesi, hızı ve yerden yüksekliği girilen cismin potansiyel ve kinetik enerjisini hesaplayan programın algoritmasını yazınız ve akış diyagramını çiziniz. E p mgh Ek 1 mv 2 2 A0: Başla A1: Kütle (m), hız (v) ve yükseklik (h) gir. A2: EP m*9.81*h A3: EK 0.5*m*v*v A4: EP ve EK yı yaz. A5: Dur. 17
ALGORİTMA ve AKIŞ DİYAGRAMI ÖRNEK5 : Katsayıları girilen birinci dereceden denklemin kökünü bulan programın algoritmasını yazınız, akış diyagramını çiziniz. Ax B C Ax C B x C B A A0: Başla A1: Katsayıları gir (A,B,C) A2: x (C-B)/A A3: x i yaz. A4: Dur. 18
ÖDEV ÖDEV 1 : İki kenar uzunluğu ve aradaki açısı girilen üçgenin diğer kenar uzunluğunu hesaplayan programın algoritmasını yazınız, akış diyagramını çiziniz. ÖDEV 2 : Yarıçapı girilen kürenin alanını ve hacmini hesaplayan programın algoritmasını yazınız, akış diyagramını çiziniz. ÖDEV 3 : Bir kenar uzunluğu ve o kenara ait yüksekliği girilen üçgenin alanını hesaplayan programın algoritmasını yazınız, akış diyagramını çiziniz. 19