Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

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

Benzer bir sunumlar


... konulu sunumlar: "TEMEL BİLGİSAYAR BİLİMLERİ Doç. Dr. Mehmet ALKAN ( ) (http://www.yarbis.yildiz.edu.tr/alkan)  İstanbul, 2014."— Sunum transkripti:

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

2 2 Kaynaklar Busch R, (1985), Basic für Einsteiger Uzunoğlu vd. (2002), Matlab , Türkmen Kitabevi, İstanbul 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 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 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 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…… 7

8 8

9 9

10 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 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 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 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 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 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 16 1. GİRİŞ /Temel Kavramlar

17 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 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 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 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 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 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 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 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 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: Bit=1 bayt 1 Kilobayt = 1 KB= 2 10 bayt=1024 bayt 1 Megabayt= 1 MB=2 20 bayt=(1024*1024) bayt 1 Gigabayt = 1 GB=2 40 bayt=(1024*1024*1024) bayt 1 Terabayt = 1 TB=2 80 bayt =(1024*1024*1024*1024) bayt Örneğin, KB’lık bir dosya 49451/1024=48,3 MB veya 49451*1024= byte’dir.

26 1. GİRİŞ /Temel Problem Çözme Teknikleri Problem Çözme Tekniği (Descartes’e göre): 1. Doğruluğu kesin olarak kanıtlanmadıkça, hiçbir şeyi doğru olarak kabul etmeyin; tahmin ve önyargılardan kaçının. 2. Karşılaştığınız her güçlüğü mümkün olduğu kadar çok parçaya bölün. 3. 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. 4. 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 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 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 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 30 2. PROGRAMLAMA DİLLERİ “Yaz” Komutu BasicPascalC / C++MATLAB PrintWritelnPrintffprintf 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. “Gir” Komutu BasicPascalC / C++MATLAB inputReadlnScanf input, read

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

32 32 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 Kaynak program Yüksek seviyeli dil Derleyici Amaç program Düşük seviyeli dil Yüksek-düşük seviyeli dillerdeki program dönüşümü

33 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 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; Ondalık sayı Matematik (,)Bilgisayar (.) 125, Sayıların önünde Pozitif : İşaret yok Negatif : 

35 35 3. İŞLEMLER / Matematiksel İşlemler İşlemMatematikBilgisayar Toplama a + b Çıkarma a – b Çarpma a. ba * b Bölme a  b a / b Üs alma abab a^b Matematiksel işlemler ve bilgisayar dilindeki karşılıkları

36 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 37 3. İŞLEMLER / Matematiksel İşlemler SıraİşlemBilgisayar dili 1Parantezler((.....)) 2Üs almaa^b 3Çarpma ve bölmea*b ve a / b 4Toplama ve çıkarmaa+b ve a-b 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 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 39 3. İŞLEMLER / Matematiksel İşlemler Matematiksel yazılımBilgisayara kodlanması a + b – c + 2abc - 7a + b – c + 2 * a *b *c-7 a + b 2 - c 3 a + b^2 – c^3 Sqrt(a+b)-2*a*b/(b^2-4*a*c) A+B*C/D-E*F Bazı matematiksel ifadelerin bilgisayar diline kodlanması

40 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 = Denklem c * d / a*d + b + c *d / a = Denklem c * d / a*d + (b + c) *d / a =235

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

42 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 43 3. İŞLEMLER / Karşılaştırma İşlemleri İşlem SembolüAnlamı ==Eşittir ~=Eşit değildir >Büyüktür =Büyük eşittir <=Küçük eşittir Karşılaştırma işlemleri

44 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  değerine sahiptir ve 0’a eşit değildir.

45 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 Komut VEand (&) VEYAor ( | ) DEĞİLnot (~) Mantıksal işlem karşılıkları

46 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. ABA &B, and(A,B)

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

48 48 3. İŞLEMLER / Mantıksal İşlemler Mantıksal işlemlerde öncelik sırası şöyledir: 1.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 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 YaşMaaş1. koşul2. koşulSonuçYaz Çalışmaz Çalışmaz Çalışmaz Çalışır

50 50 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!) A B Y X Hesaplanan (A-B)

51 51 3. İŞLEMLER / Mantıksal Fonksiyonlar Sayılar, numeric array (dizi), karakterler (örneğin, kişi isimleri), character array olarak tutulurlar: a=1000 (Numeric array) b=‘Yildiz’ (Character array) Bu gibi diziler için bazı mantıksal fonksiyonlar bulunur: Örneğin, ischar(a) : a’nın bir karakter olup olmadığını sorgular. Karakterse 1, aksi halde 0 isnumeric(a): a’nın bir sayı olup olmadığını sorgular. Sayı ise 1, aksi halde 0 isempty(a) : a’nın boş dizi olup olmadığını sorgular. Boşsa 1, aksi halde 0 üretir.

52 52 4. ALGORİTMA HAZIRLAMA Algoritma, adımlar halinde probleme çözüm getirecek işlemler dizisidir. Bu işlemler dizisinin tasarımı da “yukarıdan aşağıya tasarım” olarak bilinir. Tasarımcı, programa yön verebilecek mantıksal deyim ve ifadeleri tespit eder ve programı, bu deyimlerin ayırdığı kısımlar halinde alt programlara böler. Algoritmada, 1. Hangi veri (input) kullanılacak? Bu veriler nereden alınacak? 2. Bunlarla hangi işlemler, nasıl yapılacak? 3. Ne tür sonuçlar (output) üretilecek? 4.Sonuçlar nerede gösterilecek? Nerede saklanacak? Sorularına açıklık getirilir.

53 53 4. ALGORİTMA/ Kullanılan operatörler ^ Üs alma * Çarpma / Bölme + Toplama - Çıkarma. Ondalık kısımları ayırma ‘ DEĞİL. VE + VEYA == Eşittir <> Eşit değildir < Küçüktür > Büyüktür >= Büyük eşittir <= Küçük eşittir Matematiksel işlem operatörleri Mantıksal işlem operatörleri Karşılaştırma operatörleri = Aktarma operatörü ( ) Parantez operatörü Genel işlem operatörleri

54 54 4. ALGORİTMA/ Kullanılan terimler 1. Tanımlayıcı : Programı yazan kişi tarafından düşünülüp oluşturulan ve programdaki - değişkenleri - sabitleri - paragrafları - kayıt alanlarını - özel bilgi tiplerini - alt programları vb. adlandırmak için kullanılan kelimelere denir. Programdaki tanımlayıcı kelimelerin yerini tuttukları ifadelere çağrışım yapacak şekilde seçilmesi daha uygundur. Örneğin, “ karakök ”

55 55 4. ALGORİTMA/ Kullanılan terimler Tanımlayıcılarda İsimlendirme kuralları; - İngiliz alfabesindeki A-Z arası 26 harf kullanılabilir arası rakamlar kullanılabilir. - tanımlayıcı isimler harf ile başlayabilir. - tanımlayıcı ismi, rakamla başlayamaz veya sadece rakamlardan oluşamaz. Bununla birlikte, tanımlayıcının, programın kendisinin veya kullanılan bir başka alt programın isminde olmamasına dikkat edilmelidir.

56 56 4. ALGORİTMA/ Kullanılan terimler 2. Değişken : Programın her çalıştırılmasında farklı değerler alabilen veya aktarılabilen bilgi alanları değişken olarak ifade edilir. 3. Aktarma: Herhangi bir bilgi alanına, veri yazma, herhangi bir ifadenin sonucunu başka bir değişkende gösterme gibi görevlerde aktarma operatörü kullanılır. değişken = ifade Herhangi bir değişkenin ismi Matematiksel, mantıksal veya sayısal olmayan ifade Aktarma operatörü değişken = ifade 2. AKTAR 1. İşlemi yap İşlem yönü

57 57 4. ALGORİTMA HAZIRLAMA Örnek: 1. Başla 2. T = 0 3. Bir sayı (A) gir 4. T = T + A işlemini yap 5. Başka bir sayı gir (B) 6. T = T + B işlemini yap 7. Başka bir sayı gir (C) 8. T = T + C 9. Yaz T 10. Dur İşlem sırasıABCEski TYeni T = = = 12 T = 12 Örnek için çalıştırma sonuçları

58 58 4. ALGORİTMA/ Kullanılan terimler 4. Sayaç: Programlarda bazı işlemlerin belirli sayıda yaptırılması veya işlenen değerlerin sayılması gerekebilir. say = say + 1 Şeklindeki işlemde sağdaki ifadede değişkenin eski değerine (1) eklenmekte; bulunan sonuç yine kendisine yeni değer olarak aktarılmaktadır. Bu tür sayma işlemlerine algoritmada sayaç veya sayıcı denir. Sayaç işlem akışı kendisine her geldiğinde belirtilen adım değeri kadar değeri artan veya azalan değişkendir. Sayaç değişkeni = sayaç değişkeni  adım sayacın yeni değeri sayacın eski değeri artma veya azalma miktarı

59 59 4. ALGORİTMA/ Kullanılan terimler 5. Şartlı deyimler (koşullar): Belirli bir işlemin belirli koşullar altında yapılmasını sağlayan ifadelere denir. “Eğer” karşılığının program dilindeki ifadesi olan “if” deyimi böylesi bir şartlı deyime örnektir. Örneğin, bir A değişkeninin B değişkenine eşit olması durumunda, A’nın C/2 olarak değiştirilmesini sağlayan bir algoritmayı ele alalım. 1.Başla 2.A=99 3.B=(A+1)*A/100 4.C=50 5.Eğer A==B A=C/2 6.YAZ A 7.Dur A=C/2=25 olacaktır. Çünkü A=B koşulu sağlanmıştır.

60 60 4. ALGORİTMA/ Kullanılan terimler 5. Döngü: Programlardaki belirli işlem bloklarını verilen sayıda gerçekleştiren işlem akış çevrimlerine döngü denir. Döngüler, programların belli ifadelerinin istenilen sayıda tekrarını sağlarlar. Örnek : arasındaki tek sayıların toplamını yapan bir algoritma düşünelim. 1.Başla 2.T = 0 3.J = 1 4.Eğer J > 10 ise git 8 5.T = T + J 6.J = J Git 4 döngü 8.Yaz T 9.Dur Eski JEski TYeni TYeni J = = = = = döngünün çalışması

61 61 4. ALGORİTMA / Avantajları I.Program yazmayı kolaylaştırır II.Hatalı kodlama oranını azaltır III.Program yazımı için geçen süreyi kısaltır IV.İşlem akışını açık bir şekilde gösterdiğinden program kontrolünü kolaylaştırır V. Sonradan yapılacak düzenlemelerde kolaylıklar sağlar.

62 62 5. AKIŞ DİYAGRAMLARI Algoritmanın özel geometrik şekillerle çizilmiş haline akış diyagramı denir. I. Başla / Dur BaşlaDur II. Bilgi Girişi Bilgisayara dışarıdan veri girişini temsil eden şekildir. Bu şeklin içine klavyeden girilen bilginin aktarılacağı değişkenin ismi yazılır. A, B, C III. İşlem C = (a^2 + b^2)^ 1/2 Programın çalışması sırasında yapılacak işlemleri ifade etmek için kullanılan şekildir. İçine işlem cümleleri/ifadeleri aynen yazılır. Program akışı buraya geldiğinde, şeklin içerisindeki yazılı işlem gerçekleştirilir. Birden fazla işlem; aynı şekil içinde, aralarına virgül konularak veya alt alta yazılarak gösterilebilir

63 63 5. AKIŞ DİYAGRAMLARI IV. Döngü Kontrol değişkeni = başlangıç değeri, bitiş değeri, adım I = 1, 20,3 Artan döngü J = 30, 4,-2 Azalan döngü k = 1, 99 1’er artan döngü I = 1, N, 1 işlem A Tek döngü

64 64 5. AKIŞ DİYAGRAMLARI I = 1, N, 1 J = 1, N, 1 işlem B İç döngü Dış döngü İç içe döngü

65 65 5. AKIŞ DİYAGRAMLARI Örnek: 1’den N’e kadar olan sayıların toplamını hesaplayan programın akış diyagramını çiziniz. N = 5 girilirse sonuçlar =

66 66 5. AKIŞ DİYAGRAMLARI Örnek: Aşağıdaki akış diyagramının N = 3 için verecegi sonuçları bulunuz.

67 67 5. AKIŞ DİYAGRAMLARI Örnek: Aşağıdaki akış diyagramının sonucunu bulunuz.

68 68 5. AKIŞ DİYAGRAMLARI V. Karar (Karşılaştırma) koşul E H İşlem 1 İşlem 2 Karşılaştırma işlem şekli Bağlantı noktası Bir algoritmada bir kararın verilmesini ve bu karara göre iki seçenekten birinin uygulanmasını sağlayan şekildir. burada eşkenar dörtgen içerisine kontrol edilecek mantıksal koşul yazılır. Program akışı sırasında koşulun doğru olması durumunda "Evet" yazılan kısma Yanlış olması durumunda "Hayır" yazılan kısma sapılır. Tek girişli ve çift çıkışlı bir şekildir

69 69 5. AKIŞ DİYAGRAMLARI VI. Bağlantı Bağlantı şekli genel anlamda birleştirici bir noktadır. Aşağıdaki amaçlar için kullanılır: a)Farklı yerlere dallanan işlem akışlarını tekrar toplamak, b)Akış diyagramı bir sayfaya sığmadığı zaman diğer sayfadaki akış diyagramı ile bağlantı kurmak, c) Parça parça çizilen akış diyagramları arasında bağlantı yapmaktır. VII. Yazdır / Çıktı Ekrana veya yazıcıya bilgi yazdırmak için kullanılır. VIII. İşlem Akış Yönleri Akış diyagramında işlem akışının hangi yönde olduğunu gösteren oklardır.

70 5. AKIŞ DİYAGRAMLARI 70 Bu yapıyı art arda birden çok kez kullanıp aşağıdaki gibi bir karşılaştırma dizisi oluşturulabilir

71 5. AKIŞ DİYAGRAMLARI 71 Örnek: ax 2 + bx + c = 0 şeklindeki ikinci dereceden bir denklemin köklerini bulan algoritmayı tasarlayıp akış şeması ile gösteriniz. E H EH

72 5. AKIŞ DİYAGRAMLARI 72 Döngü Yapısı Bu yapı kullanılırken, döngü sayacı, koşul bilgisi ve sayacın artım bilgisi verilmelidir. Döngü sayacı kullanılmıyorsa sadece döngüye devam edebilmek için gerekli olan koşul bilgisi verilmelidir. Genel olarak çoğu programlama dilinin döngü deyimleri ; While Do-while For gibi yapılar üzerine kurulmuştur. Farklı dillerde bu yapılara farklı alternatifler olsa da döngülerin çalışma mantığı genel olarak benzerdir

73 5. AKIŞ DİYAGRAMLARI Durum (While) Koşul daha çevrim içerisine girmeden sınanır. Koşul olumsuz olduğunda çevrime hiç girilmez ve döngü içerisinde yapılması gerekenler atlanır

74 5. AKIŞ DİYAGRAMLARI Durum (Do-While) Bu döngü deyiminde, çevrim en az bir defa olmak üzere gerçekleşir. Çünkü koşul sınaması döngü sonunda yapılmaktadır. Eğer koşul sonucu olumsuz ise bir sonraki çevrime geçilmeden döngüden çıkılır. Çevrimin devam edebilmesi için her döngü sonunda yapılan koşul testinin olumlu sonuçlanması gerekir

75 5. AKIŞ DİYAGRAMLARI Durum (For) Diğer deyimlerden farklı olarak, döngü sayacı doğrudan koşul parametreleri düzeyinde verilir. Döngü girmeden önce sayaç değişkenine başlangıç değeri atanmakta ve daha sonra koşula bakılmaktadır. Döngü içerisinde belirtilen işlemler yapıldıktan sonra sayaç değişkeni arttırılmaktadır

76 5. AKIŞ DİYAGRAMLARI 76 İç içe Döngülerin Kullanılması İçiçe döngü kurulurken en önemli unsur, içteki döngü sonlanmadan bir dıştaki döngüye geçilmemesidir. Diğer bir deyişle döngüler birbirlerini kesmemelidir. En içteki döngü bir dıştaki döngünün her adımında N kez tekrarlanır

77 5. AKIŞ DİYAGRAMLARI 77  N ile hangi sayının faktöriyelin hesaplanacağı belirlenir ve N çevrimlik bir döngü kurulur.  İlk çevrimde 1!, ikinci çevrimde 2! ve sırayla N’inci çevrim sonucunda da N! değeri hesaplanmış olur.  Sayac>N koşulu oluştuğunda döngüden çıkılır ve elde edilen sonuç dış ortama aktarılır. Örnek: Klavyeden girilen N sayısının faktöriyelini alan algoritmanın akış diyagramını çiziniz

78 78 6. MATLAB (MATrix LABoratuary) MATLAB, yüksek performanslı bir programlama dilidir. MATLAB’in temelindeki yapı, boyutlandırma gerektirmeyen matrislerdir. Yaptığımız tüm girdi ve çıktılar, diğer programlama dillerindeki gibi belirteç gerektirmeksizin bir matris tanımlar. İlk olarak Fortran dili ile yazılan MATLAB, daha sonra C ile yazılmıştır.

79 79 6. MATLAB (MATrix LABoratuary) Kullanım kolaylığı İşletim sistemi uyumluluğu, Sayısal analiz işlemlerindeki kolaylıklar, Hazır fonksiyonlar (function files) Görüntüleme (visualization) kolaylığı (grafik çizim) GUI geliştirme kolaylığı, MATLAB derleyicisi (exe: executable dosya ile win32 uygulamaları) Toolboxes (Araç kutuları) :hazır programlar! Avantajları:

80 80 6. MATLAB/ Command window (komut penceresi) Current directory (çalışma klasörü) Dinamik komut satırı Her türlü mat. işlem, Demo, program çalıştırma vb. M-file editörü Programların yazıldığı editör

81 81 6. MATLAB/ Workspace (İş alanı) Workspace penceresi Atanan değişken Workspace penceresini açmanın “komut” bir yolu Workspace ilgili oturumda kullanılan tüm değişkenlerin tutulduğu alandır.

82 82 6. MATLAB/ Array Editor (Dizi editörü) Matris, vektör ve sayılar için excel özelliğindeki editördür. İki farklı biçimde görüntülenir: >> open(‘a’) workspace penceresinde ilgili değişken iki kez tıklanır. Daha önce atanan bir değişkenin boyutları istenildiği gibi değiştirilebilir!


"TEMEL BİLGİSAYAR BİLİMLERİ Doç. Dr. Mehmet ALKAN ( ) (http://www.yarbis.yildiz.edu.tr/alkan)  İstanbul, 2014." indir ppt

Benzer bir sunumlar


Google Reklamları