BMU111 ALGORITMA VE PROGRAMLAMA 1 Dr. Galip Aydın BMU111 Dersin amacı Bilgisayarlara giriş, algoritma geliştirme, akış diyagramları Programlamaya giriş, Java diliyle program yazma Sizden beklenen Dersleri takip etmek (yoklama için değil, ders için) Derste aynı anda sadece bir kişi konuşur Her zaman soru sorabilirsiniz Sadece soru sorarsanız cevap alırsınız! Çok düşünmeniz, anlatılanların dışında araştırma yapmanız En önemlisi çok sayıda PROGRAM YAZMAK Kaynaklar Internet: Herşey için 1 nolu kaynağımız Kitap: Java, Bilgisayar Programlamaya Giriş Ali Yazıcı, Erdoğan Doğdu, A. Murat Özbayoğlu, Y. Murat Erten, Oğuz Ergin Palme Yayıncılık, 2007 ISBN: 978-9944-341-57-8 Web http://web.firat.edu.tr/bilmuh/bmu111 Ders notları, duyurular, kaynaklar, lab örnekleri vb herşey sayfada olacak, sıklıkla kontrol edin. İnternette bol sayıda ingilizce, az sayıda türkçe kaynak İngilizce kaynaklardan yararlanabilme! En iyi arkadaşınız: Google Doğru arama yapmayı öğrenin Lab Saatleri Lablarda pratik örneklerle programlama öğreneceksiniz Lablara gelmeden önce, lab notlarını (varsa), ders notlarını, ilgili örnekleri vs. Okuyarak hazırlanın Labda arkadaşlarınızdan yardım alabilirsiniz Serbest çalışma saatlerinde pratik yapabilirsiniz Ödevler - Quizler Problemleri, örnekleri arkadaşlarınızla tartışabilir, internetten örnekler arayabilirsiniz Ama ödevler kendi çalışmanızın ürünü olmalıdır Sınıfta yapılacak quizler ve ödevler vize notunuza %40 oranında etki edecektir Derse Giriş ENIAC ENIAC ENIAC ENIAC ENIAC Besides its speed, the most remarkable thing about ENIAC was its size and complexity. ENIAC contained 17,468 vacuum tubes, 7,200 crystal diodes, 1,500 relays, 70,000 resistors, 10,000 capacitors and around 5 million hand-soldered joints. It weighed 30short tons (27 t), was roughly 8.5 by 3 by 80 feet (2.6 m × 0.9 m × 26 m), took up 680 square feet (63 m2), and consumed 150 kWof power.[8] Input was possible from an IBM card reader, and an IBM card punch was used for output. These cards could be used to produce printed output offline using an IBM accounting machine, an example of which would be the IBM 405. ENIAC used ten-position ring counters to store digits; each digit used 36 vacuum tubes, 10 of which were the dual triodes making up the flip-flops of the ring counter. Arithmetic was performed by "counting" pulses with the ring counters and generating carry pulses if the counter "wrapped around", the idea being to emulate in electronics the operation of the digit wheels of a mechanicaladding machine. ENIAC had twenty ten-digit signed accumulators which used ten's complement representation and could perform 5,000 simple addition or subtraction operations between any of them and a source (e.g., another accumulator, or a constant transmitter) every second. It was possible to connect several accumulators to run simultaneously, so the peak speed of operation was potentially much higher due to parallel operation. Neden 10 tabanlı sistem değil 10 tabanlı sistem Her bir parmak bir sayıyı temsil eder Finansal işlemler için doğal temsil yöntemi Bilimsel notasyonda da kullanılır 1.5213 X 104 Elektronik olarak gerçekleştirmek Depolaması zor İletimi zor ENIAC (İlk elektronik bilgisayar) her rakam için 10 vakum tüp kullanıyordu Tek bir kablo üzerinde 10 farklı sinyal seviyesi kodlamak için yüksek hassasiyet gerekir Dijital mantık işlemlerini gerçekleçtirmek zor Toplama, çarpma, vs. İkili sistem 2 tabanlı sayılar 1521310 -> 111011011011012 1.2010 -> 1.0011001100110011[0011]…2 1.5213 X 104 as 1.11011011011012 X 213 Elektronik olarak İki durumlu (bistable) elemanlarla depolanması kolay Gürültülü ve güvensiz kablolarda güvenli taşınabilir 0 3.3V 2.8V 0.5V 0.0V 1 0 Bit - Byte Byte = 8 bit Binary 000000002 111111112 Decimal: 010 Hexadecimal : 0016 - 25510 FF16 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 • C nesnelerinin boyutları(in Bytes) – C Veri tipi • • • • • • • • Compaq Alpha int long int char short float double long double char * 4 8 1 2 4 8 8 8 – Veya herhangi bir pointer Tipik 32-bit Intel IA32 4 4 1 2 4 8 8 4 4 4 1 2 4 8 10/12 4 Von Neumann Mimarisi Memory - Hafıza Hafıza Her birisi bir bit saklayabilen birçok devreden oluşan bir grup Hücreler (kelimeler): yönetilebilir üniteler; tipik boyut 8 bit (1 byte), bazı makineler 16 bitlik (2 bytes) bazıları 32 bit veya 64 bitlik Byte (8 bit), KB (kilobyte, 103 210 byte), MB (Megabyte, 106 220 bytes), GB (Gigabyte, 109 230 bytes). Not: k ≠ K çünkü 1000 ≠ 1024. Hafıza organizasyonu Most Significant Bit (MSB) High-order end Least Significant Bit (LSB) Low-order end 0 0 0 0 0 1 0 1 1 byte alan hafıza hücresi H e l l o , ASCII Data 01001000 Address 0000 0101 01100101 01101100 01101100 01101111 00101110 0000 0110 0000 0111 0000 1000 0001 0001 ... ... 0001 0010 Address Bus Data Bus Apollo yönlendirme bilgisayarı, 1969 1 Cubic Foot Ne kadar güçlü? Apollo Computer: 30720 bit hafıza Lab bilgisayarları 1 GB (RAM) 1 Gigabyte = 1024 Megabyte, 1 Megabyte = 1024 Kilobyte, 1 Kilobyte = 1024 Byte, 1 Byte = 8 bits > (* 1024 1024 1024 8) 8589934592 ~ 8.6 Milyar bit > (yuvarla(/ (* 1024 1024 1024 8) 30720)) 279620 Apollo bilgisayarından 105 404 kat daha güçlü bilgisayarlarımız var HESAPLAMA GÜCÜ 1969-2008 80,000,000 70,000,000 60,000,000 50,000,000 40,000,000 30,000,000 20,000,000 10,000,000 08 20 05 20 02 20 99 19 96 19 93 19 90 19 87 19 84 19 81 19 78 19 75 19 72 19 19 69 0 Moore “Kanunu”: Hesaplama gücü her 18 ayda bir yaklaşık 2 katına çıkar!