1 / 82

TEMEL BİLGİSAYAR BİLİMLERİ

TEMEL BİLGİSAYAR BİLİMLERİ. Doç. Dr. Mehmet ALKAN ( alkan@yildiz.edu.tr ) (http://www.yarbis.yildiz.edu.tr/alkan). İstanbul, 2014. Kaynaklar. Busch R , (1985), Basic für Einsteiger Uzunoğlu vd. (2002), Matlab 6.0-6.5, Türkmen Kitabevi, İstanbul www.mathworks.com

nigel
Télécharger la présentation

TEMEL BİLGİSAYAR BİLİMLERİ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TEMEL BİLGİSAYAR BİLİMLERİ Doç. Dr. Mehmet ALKAN (alkan@yildiz.edu.tr) (http://www.yarbis.yildiz.edu.tr/alkan) • İstanbul, 2014

  2. Kaynaklar • Busch R, (1985), Basic für Einsteiger • Uzunoğlu vd. (2002), Matlab 6.0-6.5, Türkmen Kitabevi, İstanbul • www.mathworks.com • The Mathworks Inc., (2003), Statistic Toolbox for use in Matlab’s User’s Guide • Doğan, U, (2006), Temel Bilgisayar Bilimleri, YTÜ Ders Notları, İstanbul

  3. İçindekiler • Giriş • Programlama Dilleri • İşlemler • Algoritma Hazırlama • Akış Diyagramları • Matlab

  4. 1. GİRİŞ • Verilen bilgileri saklayan, gerektiğinde bu bilgileri hızlı bir şekilde istenilen amaca uygun kullanmayı sağlayan/işleyen, mantıksal ve aritmetiksel işlemleri çok hızlı biçimde yapan bir makinedir. • Bilgisayar terimi İngilizce “computer” kelimesinin dilimize çevrilmiş halidir. Bu terim de Latince “compurate” kelimesinden gelmektedir.

  5. 1. GİRİŞ • Bundan 25 sene kadar önce, bilgisayarlara bakış açısını aktarması bakımından Buch (1985)’den şu alıntıya bakmak faydalı olacaktır: “Bazıları bu cihazları işyerlerindeki insan gücünü yok eden aletler (jobkiller) olarak tanımlar. Diğer bir grup ise, elektroniğin yarattığı bu modern elemanlar ve cihazlar olmadan geleceğin problemlerine hakim olunamayacağını zanneder. Bu cevaplar, düşünceleri, hisleri, hatta korkuları yansıtmaktadır. Ve bütün bunlar-tam bilememekten kaynaklanmaktadır.” • Bugün (kişisel) bilgisayarlarımız, hayatımızın o kadar içine girmiştir ki, onlarsız (ve tabii cep telefonsuz!) bir plan yapabilmek, günlük işleri halledebilmek imkansızlaşmaya başlamıştır.

  6. 1. GİRİŞ • 15 yıl öncesine kadar PC kullanmak (fareye çift kez tıklayabiliyor olmak!), uygulama yazılımlarını (MS-DOS, MS-Word) kullanabilir olmak bir seçilme nedeniydi. • Bilgisayar kullanmak, Windows’un da katkılarıyla(?), artık oldukça sıradan bir olaydır. • “Bilgisayar kullanabilir misin?” şeklindeki yaygın soru, “şu programı (aslında soranın bununla “bir uygulama yazılımını” kastettiği) kullanabilir misin?” e dönüşmüştür. • CV’lerimize her yazdığımız –İLGİLİ- bir uygulama yazılımı bilgisi bizlere birer puan kazandırmaktadır.

  7. İlk bilgisayarlardan……

  8. İlk bilgisayarlardan……

  9. İlk bilgisayarlardan……

  10. 1. GİRİŞ • Artık, yurtdışındaki tüm üniversiteler ve mühendislik firmaları (LEICA, Trimble, LaCoste-Romberg, vb.) bir programlama dilini bilip bilmediğinizi soracaklardır. • Yurtdışını düşünmesek bile, “Hesap yapan kişi” anlamındaki “mühendis” in kendi mühendislik hesaplarını programlayamaması, ne yazık ki, onu bir teknikerden öteye taşımayacaktır.

  11. 1. GİRİŞ • Daha öncede belirttiğimiz gibi, PC kullanmak ve uygulama yazılımlarını çalıştırmak sıradan bir olaydır. • Günümüzdeki işletim sistemlerine (Windows, MS-DOS, Mac OS, Linux) alışık bir PC kullanıcısı bu işletim sistemlerine göre oluşturulmuş uygulama yazılımlarının hemen hemen hepsini kolaylıkla çözebilmekte ve kısa bir zamanda kullanabilmektedir. (Çünkü bu yazılımlar, standart bir arayüze (Graphical User Interface) sahiptirler). • Aynı biçimde, bir mühendislik CAD yazılımına (NETCAD, AutoCAD, vb.) aşina olan bir mühendis diğer bir CAD yazılımını kolaylıkla öğrenebilir. • Yine bir CBS (Coğrafi Bilgi Sistemi) yazılımını (örneğin, ArcGIS, MapInfo) bilen biri, ikinci bir CBS yazılımı karşısında zorluk yaşamaz.

  12. 1. GİRİŞ • Özetle, bizlerin PC yazılımlarını kolaylıkla öğrenebiliyor olması, PC’lerin yaygınlaşmış olmasına paralel, yazılımların standart arayüz modellerine sahip olmasından kaynaklanmaktadır. • Peki, “bir programlama dilini öğrenmek” ile diğer dillere aşina olmak arasında da böyle bir ilinti var mıdır? • Eski dilleri düşünmezsek, bu sorunun cevabı “EVET” olacaktır.

  13. 1. GİRİŞ • ATARI 800XL, Commadore64 gibi ilk PC örneklerindeki BASIC (Beginners All Purpose Symbolic Instruction Code yeni başlayanlar için öğrenmesi kolay bir dil) ile başlayan benim çağdaşlarımın, benden önceki delikli kartlarla çalışanların veya C, C++, Delphi gibi dilleri bilenlerin ortak olacağı tek nokta, “Bir programlama dilinden çok, “ALGORİTMA” nın önemli olduğudur. “

  14. 1. GİRİŞ • Programlama dili, bir yabancı dile, algoritma da insanın düşüncesine benzetilebilir. • Önemli olan düşüncedir. Dil, düşüncelerimizi aktarmanın yoludur. Öyleyse, algoritma yazabiliyorsak, programlama için büyük bir aşamayı da geçmiş oluruz. • Eğer yazamıyorsak, bu dersi işlemede zorluklar çekeceğimiz ortadadır!

  15. 1. GİRİŞ /Temel Kavramlar • 1) Bilgisayar: Belirli komutlara göre veri işleyen ve depolayan bir aygıttır. Donanım (hardware) ve yazılım (software) olmak üzere iki yapıdan oluşur. • 2) Donanım: Bir bilgisayarı oluşturan fiziksel parçaların genel adıdır. Giriş Donanımı: Fare, Klavye, Tarayıcı (scanner) vb. Çıkış Donanımı: Monitör, Yazıcı, Plotter Hem giriş hem de çıkış donanımı: Sabit Disk (Hard-disk), harici diskler (External hard disk), CD&DVD reader/writer, USB, Hafıza kartları

  16. 1. GİRİŞ /Temel Kavramlar

  17. 1. GİRİŞ /Temel Kavramlar • 3) Yazılım: Bir bilgisayarda donanıma hayat veren ve bilgi işlemde kullanılan programlar, programlama dilleri ve belgelemelerin tümüne verilen isimdir. Bilgisayar yazılımları, İşletim Sistemleri, Kullanıcı Arayüzleri, Uygulama Yazılımları ve Programlama Dilleri olarak üç ana grup altında incelenebilir.

  18. 1. GİRİŞ /Temel Kavramlar • İşletim sistemi (Operating System): Bilgisayar donanımının doğrudan denetimi ve yönetiminden, temel sistem işlemlerinden ve uygulama yazılımlarını çalıştırmaktan sorumlu olan sistemlerdir. Örnek: UNIX, Linux, Microsoft Windows, DOS, Mac OS vb. • Kullanıcı Arayüzü (User Interface): Microsoft Windows gibi bilgisayar programı ile etkileşimi sağlayan yöntemlerin bileşkesidir.

  19. 1. GİRİŞ /Temel Kavramlar • Uygulamalar (Applications): PC kullanıcısının, • Kelime İşlem (OpenOffice, Microsoft Office vb.) • Veri tabanı yönetimi (Access vb.) • Hesap çizelgeleri (Excel) • E-posta atma ve alma (Outlook Express) • Web sayfalarına erişim (Explorer, Modzilla vb.) • Ses ve görüntü oynatma (Media Player, BS Player vb.) • Oyun oynama.. gibi kişisel ihtiyaçlarına yönelik olarak, genellikle kullanıcı arayüzüyle sunulan yazılımlardır.

  20. 1. GİRİŞ /Temel Kavramlar • Programlama Dili: Bilgisayarın ilgili donanımlarının çalıştırılarak belirli bir görevi yapmasını sağlayan, yazı ve karakterlerin kullanıldığı bir araçtır. • Makine dili (düşük düzey) • Assembly dili (orta düzey) • Yüksek düzeyli diller: Örneğin, BASIC, Delphi, C, C++, COBOL, Fortran, Java, Lisp, Pascal, Flash gibi diller.

  21. 1. GİRİŞ /Temel Kavramlar • Yüksek düzeyli dillerin çıkış amacı, programcının bilgisayar sistemine bağımlılığını ortadan kaldırmaktır. Alt düzeyli dillere göre öğrenmesi ve program yazılımı daha kolaydır. • Bu diller kendi yapısı ve dilbilgisi kuralları olan ve insanlar için anlaşılması kolay diller olarak ifade edilmektedir. • Bilgisayarlar sadece ana dili olan makina dilini anladığı için yüksek düzeyli programlama dilinde yazılan bir program derleyici (compiler) olarak adlandırılan yazılımlar tarafından makina dilindeki denk bir programa dönüştürülür (Örneğin, Compaq Fortran Compiler)

  22. 1. GİRİŞ /Temel Kavramlar • 4) Anakart (Mainboard): Bilgisayar gibi karmaşık bir elektronik sistemin birincil ve en merkezi baskılı devre kartıdır. Fiziksel yapı olarak anakartlar özel alaşımlı bir blok üzerine yerleştirilmiş ve üzerinde çeşitli donanımların eklenebileceği yerler bulunan dört köşe şeklinde bir plakadır. Bu plaka çalışma sistemini organize eder. • 5) İşlemci:(Central Process Unit-CPU): Bir bilgisayarın en önemli parçasıdır. Bilgisayarın veri işleyen ve program komutlarını gerçekleştiren bölümüdür. Aritmetik ve mantıksal işlem yapma yeteğine sahiptir. İşlemci, makine dili (0 ve 1’den oluşan basit dil) ile çalışır.

  23. 1. GİRİŞ /Temel Kavramlar • 6) Bellek: İşlemcinin çalıştırdığı programlar ve programa ait bilgiler bellek üzerinde saklanır.Bellek geçici bir depolama alanıdır. Bellek üzerindeki bilgiler güç kesildiği anda kaybolur. Belleğe genellikle, RAM (Random Access Memory, Rasgele Erişimli Bellek) adı verilir. RAM’de sadece işlemcide çalışan program parçaları tutulur ve elektrik kesildiği anda RAM bilgileri silinir. Bilgilerin kalıcı olarak saklandığı yer sabit disklerdir. (ÇALIŞMA DOLABI: Sabit Disk, ÇALIŞMA MASASI: RAM) • 7) BIOS (Basic Input-Output System): Bilgisayar açıldığı anda işlemciye tüm diğer donanımları sırasıyla tanıtan bir yazılımdır. İşletim sistemi çalışırken donanım ve işletim sistemi arasındaki ilişkileri düzenler

  24. 1. GİRİŞ /Temel Kavramlar • 6) Chipset:(Yonga Seti): Anakart üzerindeki temel ve bütünleşik arabirimleri yöneten ve bunlar arasındaki veri akışını sağlayan bir çeşit işlemci (INTEL, AMD vb.) • 7) Görüntü Kartı (Ekran kartı): Bilgisayarın görüntü vermesini sağlayan donanım. Harici, dahili kart veya anakartta chipset içerisinde yerleşik olarak bulunmaktadır. • 8) Ses Kartı : Analog ve dijital ses işlevlerini yerine getiren elektronik birimdir. • 9) Ethernet Kartı : Bilgisayarın ağa bağlanıp veri alışverişinde, iletişimde olmasını sağlayan elektronik devredir.

  25. 1. GİRİŞ /Temel Kavramlar • 10) Bit (Bİnary DigiT): Bilgi depolama, haberleşme ve iletişimde en küçük birimdir. Bilgi yalnızca 2 farklı biçimde bulunabilir (İkili Sayı Sistemi):0 veya 1. Bilginin içeriği bu iki işaretin çeşitli biçimlerde peşpeşe dizilmesiyle belirlenir. • 11) Bayt (Byte): Bilgisayarlarda bir veri kelimesi genellikle 8 bit uzunluğundadır. Bu 8 bitlik kelimeye BAYT adı verilir. Onluk düzende 167’nin ikilik düzendeki hali şöyledir: 10100111. 8 Bit=1 bayt 1 Kilobayt = 1 KB= 210 bayt=1024 bayt 1 Megabayt= 1 MB=220 bayt=(1024*1024) bayt 1 Gigabayt = 1 GB=240 bayt=(1024*1024*1024) bayt 1 Terabayt = 1 TB=280 bayt =(1024*1024*1024*1024) bayt Örneğin, 49451 KB’lık bir dosya 49451/1024=48,3 MB veya 49451*1024=50637824 byte’dir.

  26. 1. GİRİŞ /Temel Problem Çözme Teknikleri • Problem Çözme Tekniği (Descartes’e göre): • Doğruluğu kesin olarak kanıtlanmadıkça, hiçbir şeyi doğru olarak kabul etmeyin; tahmin ve önyargılardan kaçının. • Karşılaştığınız her güçlüğü mümkün olduğu kadar çok parçaya bölün. • Düzenli bir biçimde düşünün; anlaşılması en kolay olan şeylerle başlayıp yavaş yavaş daha zor ve karmaşık olanlara doğru ilerleyin. • Olaya bakışınız çok genel, hazırladığınız ayrıntılı liste ise hiçbir şeyi dışarıda bırakmayacak kadar kusursuz ve eksiksiz olsun.

  27. 1. GİRİŞ /Temel Problem Çözme Teknikleri 1) Problemi anlama Bir problemi dikkatle inceleyip tüm değişik yönlerini ve kabul edilebilecek bir çözümün nasıl olacağını anlamaya çalışmak gereklidir. Problemin çözümünde neler beklendiği ve yaratacağı çözümün girdi ve çıktılarının neler olacağı kesin olarak belirlenmelidir. 2) Problemi parçalara ayırma Problem, daha basit ve birbirinden bağımsız parçalara ayrılır. Bu problemlerin birbiri ardınca çözümünün ana problem çözümüne eşdeğer olup olmadığı kontrol edilir. Eğer problem, tekrar tekrar yapılan işlemler içeriyorsa, tekrarlanan işi tekrarlama olgusundan ayrı düşünmek gerekir.

  28. 1. GİRİŞ /Temel Problem Çözme Teknikleri 3) Problem çözümü Bir problemi daha basit parçalara bölerken, bölme işi birçok aşamada yavaş yavaş gerçekleştirilmeli ve genel kriterler önce kullanılmalı, daha detaylı kriterler ise sonraya bırakılmalıdır. Bulunan çözüm tekrar tekrar gözden geçirerek doğru ve eksiksiz olduğuna emin olunmalıdır. 4) Tasarım Bu aşamada problemi çözmek için kullanılacak çözüm adımlarını gösteren bir liste, yani, algoritma, hazırlanır. Bu algoritma ile akış diyagramı (flowchart) çizilir. 5) Kodlama Bu adımda, kağıt üzerinde geliştirilen algoritma bir programlama diline çevirilir.

  29. 1. GİRİŞ /Temel Problem Çözme Teknikleri 6) Kanıtlama Geliştirilen programın doğruluğu kontrol edilerek; istenildiği gibi çalışıp çalışmadığı görülmelidir. Bu amaçla program üzerinde değişik denemeler yaparak programın o denemelere nasıl karşılık verdiği kontrol edilir.

  30. 2. PROGRAMLAMA DİLLERİ Programlama dili, programcı ile bilgisayar arasındaki iletişimi sağlayan bir araçtır. Programların yazımında kullanılan bir notasyondur. Programlama dillerindeki komutlar genel olarak İngilizce’deki günlük konuşma dilindeki kelimelerden türetilmiştir.

  31. 2. PROGRAMLAMA DİLLERİ Kodlanmış bir program örneği

  32. Amaç program Kaynak program Derleyici Düşük seviyeli dil Yüksek seviyeli dil 2. PROGRAMLAMA DİLLERİ Programlama dilleri üç gruba ayrılır: • Düşük seviyeli diller : Makine dillerini içerir • Orta seviyeli diller : Makine dilinden biraz daha gelişmiş diller • Yüksek seviyeli diller : Konuşma dillerine yakın diller Yüksek-düşük seviyeli dillerdeki program dönüşümü

  33. 3. İŞLEMLER Bilgisayar programları ile gerçekleştirilen işlemler genel olarak üç gruba ayrılır: • Matematiksel (aritmetik) işlemler • Karşılaştırma (karar) işlemleri • Mantıksal (lojik) işlemler

  34. 3. İŞLEMLER /Matematiksel İşlemler - Temel aritmetik işlemler (toplama, çıkarma, çarpma ve bölme) - Matematiksel fonksiyonlar (üstel, logaritmik, trigonometrik, hiperbolik vb) Ondalıklı sayıların tam ve ondalıklı kısımlarını ayırmak için; Sayıların önünde Pozitif :İşaret yok Negatif : 

  35. 3. İŞLEMLER / Matematiksel İşlemler Matematiksel işlemler ve bilgisayar dilindeki karşılıkları

  36. 3. İŞLEMLER / Matematiksel İşlemler • Matematiksel işlemler, programlarda bilgisayar mantığına göre yeniden düzenlenmelidir. • Bilgisayar dilinde yazılmış matematiksel ifadelerde işlem öncelik sırası bulunmaktadır. • Matematiksel işlemler bilgisayar diline aktarılırken yapılacak olan küçük bir hata işlem sonucunun yanlış çıkmasına neden olur. • Bu nedenle, matematiksel işlemlerin bu öncelik sırasına dikkat edilmelidir.

  37. 3. İŞLEMLER / Matematiksel İşlemler Matematiksel işlem öncelik sıraları Eğer bilgisayar diline kodlanmış bir matematiksel ifadede, aynı önceliğe sahip İşlemler mevcut ise, bilgisayarın bu işlemleri gerçekleştirme sırasısoldan sağa (baştan sona)doğrudur.

  38. 3. İŞLEMLER / Matematiksel İşlemler • Örneğin, Y = A * B / C denkleminde, aynı öncelik sırasına sahip çarpma ve bölme işlemleri bulunmaktadır. Bu durumda bilgisayar; A * B işlemini yapıp bulunan sonucu C’ye bölerek işlemi gerçekleştirecektir. Y = A ^ B ^ C işleminde ise önce A’nın B’inci kuvveti alınır; çıkan sayının C’inci kuvveti hesaplanır.

  39. 3. İŞLEMLER / Matematiksel İşlemler Bazı matematiksel ifadelerin bilgisayar diline kodlanması

  40. 3. İŞLEMLER / Matematiksel İşlemler Örnek 1: a = 4, b = 6, c = 8 ve d = 10 değerleri için bilgisayar dilinde kodlanmış üç denklemin sonuçlarını inceleyiniz. 1. Denklem c * d / (a*d) + b + c *d / a = 28 2. Denklem c * d / a*d + b + c *d / a = 226 3. Denklem c * d / a*d + (b + c) *d / a =235

  41. 3. İŞLEMLER / Matematiksel İşlemler Örnek 2: A = 9, B = 16 değerleri için aşağıdaki ifadelerin sonuçlarını bulunuz. = 17 = 13 = 12.5 = 5

  42. 3. İŞLEMLER / Karşılaştırma İşlemleri Bilgisayar, temel matematiksel işlemlerin yanında karar modelleri de üretebilir. Örneğin, • İki büyüklükten hangisinin büyük veya küçük olduğunu, • İki değişkenin eşit olup olmadığı gibi konularda karar verebilir. Karşılaştırma işlemleri, sayısal ve sayısal olmayan bilgilere uygulanabilmektedir.

  43. 3. İŞLEMLER / Karşılaştırma İşlemleri Karşılaştırma işlemleri

  44. 3. İŞLEMLER / Karşılaştırma İşlemleri Örnek 3:x=0 , y=sin(pi) olsun. Bilgisayarda, x==y dendiğinde sonuç, ans = 0 olur. Çünkü bilgisayarda sin(pi)=1.22410-16 değerine sahiptir ve 0’a eşit değildir.

  45. 3. İŞLEMLER / Mantıksal İşlemler Mantıksal işlem operatörleri hem karar ifadelerinde hem de matematiksel İşlemlerde kullanılır. Programlardaki karşılaştırma ifadelerinde birden fazla koşulun belirli bir özellikte sağlanması istenir. Bu durumda araya mantıksal işlem operatörleri konulur. Mantıksal işlem karşılıkları

  46. 3. İŞLEMLER / Mantıksal İşlemler VE (&) Operatörü: Bütün koşullar doğru ise sonuç doğrudur.Bütün şartların sağlatılması isteniyorsa koşullar arasına (VE) mantıksal operatörü kullanılır.

  47. 3. İŞLEMLER / Mantıksal İşlemler VEYA (|) Operatörü: Koşullardan herhangi birisi doğru ise sonuç doğrudur.

  48. 3. İŞLEMLER / Mantıksal İşlemler • Mantıksal işlemlerde öncelik sırası şöyledir: • Her zaman parantez içindeki mantıksal işlemler ilk önce yapılır. 2. Değil, yani (~) işleminin diğer mantıksal işlemlere göre önceliği vardır. 3. Son olarak, Ve (&) ve or (|) işlemleri gerçekleştirilir.

  49. 3. İŞLEMLER / Mantıksal İşlemler Örnek 1 : Bir işyerinde çalışan işçiler arasında yalnızca yaşı 23’ün üzerinde olup maaş olarak asgari ücret alanların isimleri istenmektedir. Eger Yaş > 23 & maaş == asgari ücret ise Yaz isim 1. koşul 2. koşul

  50. X (A-B) A Y B Hesaplanan 3. İŞLEMLER / Mantıksal İşlemler Örnek 2 : Açıklık açısı problemini düşünelim: (A-B)=atan((YB-YA)/(XB-XA)). İkinci bölge için, dY=YB-YA; dX=XB-XA olsun Eger (dY>0) & (dX<0) (A-B)=(A-B)*200/pi+200 (Tüm hesaplayıcılar RADYAN ile çalışır!)

More Related