I. GİRİŞ Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır. İnsanların elle yaptığı ve yapmakta olduğu bir çok işlemi artık bilgisayar (temelde insan kontrollü olarak) gerçekleştirmektedir. Bilgisayar bilgi işleyen makine olarak tanımlanabilir. Bilgisayar; verilen giriş değerlerini (verileri, bilgileri) ve kullanılacak çözüm yöntemlerini programlar (komutlar) sayesinde belirler. Bilgisayar problemleri çözebilmek için programlara ihtiyaç duyar.
I. GİRİŞ Bugünkü anlamda ilk bilgisayar olan ENIAC 1945 te yapıldı. Kartlı sistemle çalışan bu bilgisayar 167 m2 alan kaplıyordu ve 180 kwh enerji tüketiyordu. Kişisel Bilgisayar (PC: Personal Computer) ilk kez 1981 yılında IBM firması tarafından üretildi. O günden bu yana bilgisayarlar çok hızlı bir gelişim göstererek yaşamımızın her alanına girmiştir.
I. GİRİŞ Programlar; giriş değerlerini kullanarak istenilen çıkış değerlerinin elde edilebilmesini (problemlerin çözülebilmesi, belirli işlemlerin gerçekleştirilmesi, vb.) için bilgisayara girilen komutlar dizisidir. İşletmelerde de bu sistem geçerlidir. İşletmede üretimin (çıkış değeri olarak ürünün) olabilmesi için hammadde (giriş değeri) ve makine/teçhizata duyulmaktadır. ihtiyaç
I. GİRİŞ Bilgisayar, donanım ve yazılım olarak adlandırılan iki bileşenden oluşmaktadır. Donanım; işlemci, anakart, bellekler, ekran-ses-ağ kartı vb. elektronik akşamlardan oluşur. Yazılım; Donanım kısmının denetimi ve birbiriyle uyum içinde çalışmasını sağlayan her türlü kodlar bütününe (programlar) denir. Sistem Yazılımları; Bilgisayarın çalışmasını sağlayan işletim sistemleri gibi yazımlardır. Uygulama Yazılımları; Kullanıcıların genel ve özel uygulama alanlarına yönelik geliştirilmiş olan paket program gibi yazılımlardır.
I. GİRİŞ Program; bilgisayara, arzu edilen sonuçları üretirken (problemi çözerken) hangi giriş verilerini, nasıl işleyeceğini ve bulduğu çıktıları ne yapacağını bildirir. Bunun için problemin çözüm yolunun kullanıcı tarafından bilinmesi gerekir. Bir problemin birden çok çözüm yolu vardır. Uygun olanı seçmek programcının yetenek ve bilgisine bağlıdır. Verilen programda ki çözüm yolu yanlış ise bilgisayarın bulacağı sonuç/sonuçlar da yanlış olur. Program yazılmadan önce; çözülecek problem iyice irdelenmeli, uygun çözüm yolu belirlenmeli ve bilgisayara doğru bir şekilde aktarılmalıdır.
I. GİRİŞ Problem çok uzun ve karmaşık ise; alt kısımlara (bölümlere/parçalara) ayrılır. Her kısım ayrı ayrı yazılıp çalıştırılır ve herhangi bir hata yoksa tümü birleştirilir. Bu olaya programcılıkta böl ve üstesinden gel stratejisi denir.
I. GİRİŞ Büyük programlar, ana program ve alt program lardan meydana gelir. Alt program; Ana programa yardımcı işlemlerin yapıldığı program parçalarına denir. Ana program; tüm alt programları denetleyen ve onları belirli düzende çağırıp çalıştıran ana koddur.
II. PROGRAMLAMA DİLLERİ Programlama dili ; programcı ile bilgisayar arasındaki iletişimi sağlayan bir araç olup programların yazımında kullanılan bir notasyondur. Bilgisayar, sayısal (dijital) bir sistem olduğundan makine dili olarak adlandırılan ve 0 ile 1 lerle gösterilen (ikili kodlar) ikili mantığa göre çalışır. 0 ve 1 lerin her birine bit denir. Kodlar yazılırken 0-1 lerle yazmak zor olduğundan yüksek seviyeli ve konuşma diline yakın olan programlama diliyle programlar yazılır, derleyici ve/veya yorumlayıcı programlarla da makine diline dönüştürülmektedir.
II. PROGRAMLAMA DİLLERİ Yüksek seviyeli programlama dillerindeki komutlar, genel olarak günlük konuşma dilindeki İngilizce kelimelerden türetilmiştir. Yaz komutu Basic Pascal C / C ++ / Java C# Türkçe anlamı PRINT Write Writeln printf WriteLine Print: Yazmak, bastırmak Write: Yazmak Gir komutu Basic Pascal C / C ++ / Java C# Türkçe anlamı INPUT Read Readln scanf ReadLine Input: Giriş, girdi Read: Okumak scan: Taramak, okumak
II. 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ş dilleri içerir. Yüksek seviyeli diller: Konuşma dillerine yakın dilleri içerir. Yüksek seviyeli bir dilde yazılan programın çalışabilmesi için makine diline çevrilmesi gerekir. Bu dönüşümü, ilgili yüksek seviyeli dilin derleyici olarak adlandırılan yazılımları (programları) gerçekleştirir.
II. PROGRAMLAMA DİLLERİ Programlar yazılırken genelde iki tür hata yapılır; Yazım hatası Mantık hatası Yazım hatası: Programda yer alan komutların, ifadelerin vb. ilgili dilin kurallarına uygun olarak yazılmaması durumunda ortaya çıkan hata türüdür. Program çalıştırılmadan önce derleyici bu tür hataları tespit ederek programcıyı uyarmaktadır. Bu nedenle yazım hataları tehlikeli olmayıp kolaylıkla düzeltilebilir. Mantık hatası: İlgili programlama dilinin kurallarına uygun olarak yazılmasına rağmen çözüm yolunda verilen yanlış yönlendirmelerdir, bu hata türünü ortaya çıkarır. Problemin çözüm yolu yanlış aktarılsa bile program herhangi bir hata vermeden çalışacak ancak yanlış sonuç üretecektir. Çok dikkat edilmesi gereken bir hata türüdür.
II. İŞLEMLER Bilgisayardaki işlemler, temel olarak üç gruba ayrılır. A. Matematiksel (aritmetik) işlemler B. Karşılaştırma (karar) işlemleri C. Mantıksal (lojik) işlemler
A. Matematiksel İşlemler Temel aritmetik işlemler (toplama, çıkartma, çarpma, bölme); üstel, logaritmik, trigonometrik, hiperbolik vb. fonksiyonlar bilgisayarlardaki bu işlem grubunda yer alırlar. Ondalıklı sayıların bilgisayar/algoritma dilinde tam ve ondalıklı kısımlarını ayırmak için. (nokta) kullanılır. Sayının önünde herhangi bir simge yok ise pozitif, - varsa negatiftir.
A. Matematiksel İşlemler Matematiksel işlemler ve bilgisayar dilindeki ve algoritma/akış diyagramındaki karşılıkları ve örnek matematiksel işlemler tablolardaki gibidir. İşlem Matematik Algoritma Toplama a + b a + b Çıkarma a - b a - b Çarpma a. b a * b Bölme a b a / b Üs alma a b a ^ b a b a^b a/b a*b a+b a-b -2 6 64-0.3333-12 4-8 -1 7-1 -0.14286-7 6-8 0 8 0 0 0 8-8 1 7 1 0.142857 7 8-6 2 6 64 0.333333 12 8-4
A. Matematiksel İşlemler Bilgisayar dilinde yazılmış/kodlanmış matematiksel ifadelerde, işlem öncelik sıraları bulunmaktadır. Matematiksel ifadeler, program yazımlarında bilgisayar mantığına göre yeniden düzenlenmelidirler. Matematiksel işlemlerin öncelik sıraları aşağıda özetlenmektedir. Sıra İşlem Bilgisayar dili 1 Sayıların negatifliği - 2 Parantezler ( ) 3 Matematiksel fonksiyonlar cos, sin, ln, log, exp, 4 Üs alma a^b, pow, 5 Çarpma ve bölme a*b ve a/b 6 Toplama ve çıkarma a+b ve a-b
A. Matematiksel İşlemler Matematiksel ifadelerin bilgisayar dilinde kodlanması Matematiksel ifade Bilgisayar/algoritma dilinde kodlanması a + b - c + 2abc - 7 a + b c + 2 * a * b * c - 7 a + b 2 c 3 a + b ^ 2 c ^ 3 a - b c + 2ac - 2 a+b a b / c + 2 * a * c - 2/(a+b) a + b - 2ab b 2 4ac (a + b) ^ (1/2) 2 * a * b / (b ^ 2 4 * a * c)
A. Matematiksel İşlemler Matematiksel ifadelerin bilgisayar dilinde kodlanması Matematiksel ifade a + b+c2 d+ e f 3a Bilgisayar/algoritma dilinde kodlanması a+(b c^2)/(d+(e-f)/(3*a)) a 5 + b3 c+d 4 a+b 2 +c 3 +d 4 (a^5+b^3/(c+d))/((a+b^2+c^3+d^4)^(1/4)) a+ 7 abc - 1 1 1+ 1 a+ b+ 1 c+ 1 abc a+(a*b*c)^(1/7)-1/(1+1(a+1/(b+1/(c+1/(a*b*c*))))) 5 1 + a + 1 + 1 3 a 2 + 1 2a a 3 + 1 (a+(1+1/(a+1)^(1/3))/(1+(a/(a^3+1)^0.5)^0.5))^(1/5)
A. Matematiksel İşlemler Örnek: A=9 ve B=12 değerleri için aşağıdaki tablodaki ifadelerin sonuçlarını bulunuz. İfade Matematiksel eşdeğeri Sonuç A+B^1/2 A+ B1 2 9+ 16 2 = 9+8 = 17 A+B^(1/2) A+ B 9+ 16 = 9+4 = 13 (A+B)^1/2 A + B 1 2 9+16 2 = 25 2 = 12.5 (A+B)^(1/2) A + B 9 + 16 = 25 = 5
B. Karşılaştırma İşlemler Bilgisayar iki büyülükten hangisinin büyük veya küçük olduğunu, iki değişkenin birbirine eşit olup olmadığını, alfabetik olarak önce veya sonra mı olduğu gibi konularda karar verebilir. Buna karşılaştırma işlemi denir. İşlem Sembolü Anlam = Eşittir < > Eşit değildir > Büyüktür < Küçüktür >= veya => Büyük eşittir <= veya =< Küçük eşittir
B. Karşılaştırma İşlemler Aşağıdaki algoritmanın çalışmasını inceleyiniz 1. Başla 2. A sayısını gir 3. B sayısını gir 4. Eğer A>B ise Yaz A sayısı, B sayısından büyüktür. 5. Eğer A<B ise Yaz B sayısı, A sayısından büyüktür. 6. Eğer A=B ise Yaz iki sayı birbirine eşittir. 7. Dur Algoritmanın uygulama sonuçları Girilen A Girilen B sayısı Ekrana yazılan sonuç sayısı 3 7 B sayısı A sayısından büyüktür. 33 11 A sayısı B sayısından büyüktür. 99 99 İki sayı birbirine eşittir.
C. Mantıksal İşlemler Aritmetik ve karşılaştırma işlemlerini sonuçlandırabilen bilgisayar, temel mantık işlemlerini (VE, VEYA, DEĞİL) de yapabilmektedir. Mantıksal işlem operatörleri, hem karar ifadelerinde hem de matematiksel işlemlerde kullanılır. Mantıksal işlem sonuçları Sonuç Rakam olarak Bilgisayar dili Lambanın durumu Anahtarın durumu Gerilim/akı m durumu Doğru 1 True Yanıyor Kapalı Var Yanlış 0 False Yanmıyor Açık Yok Temel mantıksal işlem karşılıkları Matematiksel işlem Komut olarak Matematiksel sembol olarak VE AND. VEYA OR + DEĞİL NOT `
C. Mantıksal İşlemler Temel mantıksal işlemler
C. Mantıksal İşlemler Matematiksel işlemlerde olduğu gibi, mantıksal işlemlerde de öncelik sıraları vardır. Sıra İşlem 1 Parantez içindeki işlemler 2 DEĞİL 3 VE 4 VEYA
C. Mantıksal İşlemler Örnek: Bir işyerindeki personellerden yalnızca yaşı 25 in üzerinde olup maaş olarak asgari ücret alanlar. Burada iki koşul vardır ve her ikisinin de sağlanması gerekir. Dolayısıyla koşul satırı aşağıdaki gibidir. Eğer Yaş > 25 VE Maaş = Asgari ücret ise Yaz İsim 1. Koşul 2. Koşul Yaz komutu, 1. ve 2. koşulun her ikisi de sağlanıyorsa çalışır. Çünkü bu iki koşul VE operatörü/işlemiyle birbirine bağlıdır.
C. Mantıksal İşlemler Asgari ücretin 800 TL kabul edilmesi durumunda oluşan birkaç değişik durum, aşağıdaki tabloda verilmiştir. Yaş Maaş (TL) 1. koşul 2. koşul Sonuç Yaz 20 600 0 0 0 Çalışmaz 19 800 0 1 0 Çalışmaz 30 750 1 0 0 Çalışmaz 27 800 1 1 1 Çalışır
C. Mantıksal İşlemler Örnek: Bir sınıfta Bilgisayar dersinden 65 in üzerinde not alıp Türk Dili dersinden veya Yabancı Dil derslerinin herhangi birinden 65 in üzerindeki not alanların isimleri istenmektedir. (Dolayısıyla 3 koşul söz konusudur). Eğer BN > 65 VE (TDN> 65 VEYA YDN > 60 ise Yaz İsim 1. Koşul 2. Koşul 3. Koşul Temel Koşul Ortak Koşul BN TDN YDN : Bilgisayar Notu : Türk Dili Notu : Yabancı Dil Notu Koşul BN>65 TDN>65 YDN>65 Sembolik A B C
C. Mantıksal İşlemler Uygulama sonuçları aşağıdaki tabloda verilmiştir. Bilgisayar Türk Dili Yabancı Dil A B C B+C A.(B+C) Yaz Komutu 50 50 50 0 0 0 0 0 Çalışmaz 30 40 70 0 0 1 0 0 Çalışmaz 45 80 55 0 1 1 0 0 Çalışmaz 35 75 90 0 1 1 0 0 Çalışmaz 95 50 60 1 0 0 0 0 Çalışmaz 100 60 90 1 0 1 1 1 Çalışır 70 70 60 1 1 1 1 1 Çalışır 85 90 80 1 1 1 1 1 Çalışır
C. Mantıksal İşlemler Örnek: Doğruluk tabloları için mantıksal ifadeleri yazınız. A>75 B>75 C>=75 Sonuç 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1
C. Mantıksal İşlemler Örnek: Doğruluk tabloları için mantıksal ifadeleri yazınız. A>49 B>49 C>=50 Sonuç 0 0 0 1 0 0 1 0 C +A.B 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0
C. Mantıksal İşlemler Örnek: Doğruluk tabloları için mantıksal ifadeleri yazınız. A B C Sonuç 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0
C. Mantıksal İşlemler Örnek: Doğruluk tabloları için mantıksal ifadeleri yazınız. A B C Sonuç 0 0 0 1 0 0 1 1 A +B.C 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1
C. Mantıksal İşlemler Örnek: a=77, b=99 için c=a.b ve d=a+b mantıksal işlem sonuçlarını hesaplayınız. Sayıların ikili tabanındaki karşılıkları hesaplanarak 8 bit olarak yazılır: a=(77) 10 =(1001101) 2 b=(99) 10 =(1100011) 2 Karşılıklı bitlere aradaki mantıksal işlem uygulanır a= 0 1 0 0 1 1 0 1 =77 b= c= d= 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 =99 =65 =111 Oluşan byte lar 10 tabanına dönüştürülürse, işlem sonuçları elde edilir.