Örnekler Programlama Dillerine Giriş
Örnekler GENEL TEKRAR
Matematiksel İfade Dönüşümleri Aşağıdaki matematiksel ifadenin bilgisayar dilinde karşılığını yazınız. 𝑎+𝑏−𝑐 𝑎 2 + 𝑏 3 − 2 𝑎𝑏+𝑎𝑐+𝑏𝑐 9 (a+b-c)/((a^2+b^3)^(1/2))-2*(a*b+a*c+b*c)/9
Matematiksel İfade Dönüşümleri Aşağıdaki matematiksel ifadenin bilgisayar dilinde karşılığını yazınız. 𝑎+ 7 𝑎𝑏𝑐 − 1 1+ 1 𝑎+ 1 𝑏+ 1 𝑐+ 1 𝑎𝑏𝑐 a+(a*b*c)^(1/7)-1/(1+1/(a+1/(b+1/(c+1/(a*b*c)))))
Matematiksel İfade Dönüşümleri Aşağıdaki matematiksel ifadenin bilgisayar dilinde karşılığını yazınız. 5 1 𝑎+1 + 1+ 𝑎 3 𝑎 2 +1 1+ 2𝑎 𝑎 3 +1 (1/(a+1)+(1+a/(a^2+1)^(1/3))/(1+(2*a/(a^3+1))^0.5))^(1/5)
Matematiksel İşlem Öncelikleri c * d / (a * d) + b + c * d / a 𝑐𝑑 𝑎𝑑 +𝑏+ 𝑐𝑑 𝑎 = 𝑐 𝑎 +𝑏+ 𝑐𝑑 𝑎 c * d / a * d + b + c * d / a 𝑐 𝑑 𝑎 𝑑+𝑏+ 𝑐𝑑 𝑎 = 𝑐 𝑑 2 𝑎 +𝑏+ 𝑐𝑑 𝑎 c * d / a * d + (b + c) * d / a 𝑐 𝑑 𝑎 𝑑+ 𝑏+𝑐 𝑑 𝑎 = 𝑐 𝑑 2 + 𝑏+𝑐 𝑑 𝑎 a=4, b=6, c=8, d=10 değerleri için yukarıdaki üç ifadenin sonuçlarını bulunuz. 28 226 235
Matematiksel İşlem Öncelikleri a = 1, b=2, c=3, d=4 ve e=-2 değerlerine göre aşağıdaki ifadelerin sonuçlarını bulunuz. a+d/b+d^2+2*a*b*c/d+e 20 (a+b) / c+d^2+2*a*b*c / (d+e) 23 a+b/(c+d)^2+2*a*b*c/d+e 2.04 (a+b)/(c+d)^2+2*a*b*c/(d+e) 6.06
Mantıksal İşlemler DEĞİL (B>75) VEYA (A>75) VE (C>=75) 1 Sonuç 1
Mantıksal İşlemler B’(A+C) A B C 1 Sonuç 1
Mantıksal İşlemler A’+B.C A B C 1 Sonuç 1
Algoritma - Sözde Kod Eski S Yeni S Sayı Eski T Yeni T Ort. 0+1=1 3 Klavyeden girilen 5 sayının ortalamasını bulan programın algoritmasını sözde kod ile yazınız. 1. Başla 2. N = 5 3. T = 0 4. S = 0 5. Eğer S > N-1 ise git 10 6. S = S + 1 7. Sayıyı (A) gir 8. T = T + A 9. Git 5 10. Ortalama = T / N 11. Yazdır Ortalama 12. Dur Eski S Yeni S Sayı Eski T Yeni T Ort. 0+1=1 3 0+3=3 --- 1 1+1=2 3+1=4 2 2+1=3 5 4 4+5=9 11 9 9+11=20 4+1=5 35 20 20+35=55 Ortalama = 55/5=11
Algoritma - Sözde Kod Eski S Yeni S Eski F Yeni F Sonuç 0+1=1 1 1*1=1 Klavyeden girilen N sayısının faktöriyelini hesaplayan programın algoritmasını sözde kod ile yazınız. 1. Başla 2. N sayısını gir 3. F=1 4. S=0 5. Eğer S > N-1 ise git 9 6. S=S+1 7. F=F*S 8. Git 5 9. Yazdır F 10. Dur Eski S Yeni S Eski F Yeni F Sonuç 0+1=1 1 1*1=1 --- 1+1=2 1*2=2 2 2+1=3 2*3=6 3 3+1=4 6 6*4=24 4 4+1=5 24 24*5=120 120
Algoritma - Sözde Kod Aşağıdaki algoritmanın sonucunu (ya da çıktısını) hesaplayınız. 1. Başla 2. F = 1 3. S = 20 4. Eğer S < 1 ise git 9 5. S = S – 3 6. F = F + S 7. F = F + 2 8. Git 4 9. Yazdır F 10. Dur Adım Silk Filk (S<1) SSon FAra FSon 1 20 false 17 18 2 14 34 36 3 11 47 49 4 8 57 59 5 64 66 6 68 70 7 -1 69 71 true ---
Akış Diyagramları Klavyeden girilen üç sayıdan en büyüğünü bularak yazdıran programın akış diyagramını çiziniz.
Akış Diyagramları ax2+ bx + c = 0 şeklindeki ikinci dereceden bir denklemin köklerini bulan programın akış diyagramını çiziniz.
Akış Diyagramları Aşağıdaki akış diyagramının ekran çıktısını elde ediniz. Algoritma – 1 Algoritma – 3 Algoritma – 5 Döngünün son değeri: 5
Programlama Dillerine Giriş Temel Kavramlar ve C Dilinin Yapısı
Algoritmalar ve Programlama Dilleri Programlama dili bilgisayarda çözülecek bir sorun için çözümün bilgisayara adım adım aktarılmasını sağlayan biçimsel kuralları olan ve bu kurallara sıkı sıkıya bağlılığı gerektiren bir tanımlar kümesidir. Basit bir benzetmeyle bir programlama dili insanla bilgisayar arasında çeviri yapan bir çevirmen olarak düşünülebilir. Doğal dil ile betimlenen algoritmalarda sıkı sıkıya uyulması gereken kurallar bulunmaz. Bunların aynı dili kullanan kişilerce kolay anlaşılabilir olması yeterlidir. Akış diyagramlarında ise belirlenmiş semboller yer alır ve bu semboller tüm dünyada standarttır. Kısmen biçimsel olan bu diyagramlar, sorunun çözümünü daha evrensel bir dille ifade etmek için kullanılır. Akış diyagramları veya algoritma ile elde edilen çözüm bir programlama dili ile bilgisayar ortamına aktarılır. Programlama dilleri, standart tanımlar içerir ve bir programı yazarken bu tanımlardan uzaklaşılamaz. Bu nedenle bir program parçasından, başkalarının başka şeyler anlaması mümkün değildir. Yazılan programlar bir derleyici vasıtası ile makine diline çevrilir, varsa hataların bulunması sağlanır ve programcı bu hataları düzeltir.
Programlama Dillerinin Özellikleri - 1 İfade gücü: Dili kullanırken gerçek ifadelerin kullanılması ile ilgili bir kavramdır. Örneğin, bir mühendis kodlama sırasında matematiksel ifadeleri betimlerken normalde kullandığı işaretleri ve terimleri kullanmak isteyecektir. Programlama dilinin ifade gücünün programcının yapacağı işi betimlemede kullandığı standartlara uygun olması programlama sürecini kolaylaştıracaktır. Veri Tipleri ve Yapıları: Ön tanımlı değişken türlerinin olabildiğince fazla ve ihtiyaçları karşılar durumda olması bir dilden beklenen önemli özelliklerdendir. Örneğin, karmaşık sayılarla işlem yapacak bir programcı öncelikle tamsayı veri tipine sahip bir programlama dilini kullanmalıdır. Ardından bu veri tipini kullanarak tanımlayacağı karmaşık sayı veri yapısını da programlama dili kurallarına bağlı kalarak tanımlayabilmelidir.
Programlama Dillerinin Özellikleri - 2 Giriş - Çıkış İşlemlerinin Kolaylığı: Dosyalara erişme ve karmaşık işlemler yapabilme imkanlarını belirten bu özellik (C gibi) bazı programlama dillerinde çok gelişmemiştir. Bu dillerde özel kütüphanelerin kullanımı gereklidir. Veritabanı programlama dilleri ise bu konuda oldukça gelişmiştir. Taşınabilirlik: Bir sistemde yazılmış bir kaynak kodun, başka sistemlerde de sorunsuz derlenebilmesidir. Genellikle dilin seviyesi azaldıkça taşınabilirlik azalır. Örneğin, C orta seviyeli dillerden olsa da taşınabilirlik bakımından üst düzeydeki dillerdendir. Alt Programlanabilirlik: Programın daha ufak program parçalarından oluşturulmasıdır. Böylece; kaynak kod kısalır, algılanması kolaylaşır, test olanakları artar, kodun güncelleştirmesi ve yeniden kullanılması kolaylaşır.
Programlama Dillerinin Özellikleri - 3 Verimlilik: Derlenen kodun hızlı ve sorunsuz çalışabilmesidir. Okunabilirlik: Kaynak kodun hızlı biçimde anlaşılabilmesidir. İyi bir programcının yazdığı kaynak kod, çok iyi işlev gören ama karışık bir koddan ziyade açık ve anlaşılabilir biçimde olmalıdır. Esneklik: Dilin, programcıyı kısıtlamamasıdır. Ancak esnek bir dil, daha az hata vermesine karşın hata oluşma riski daha fazladır. Öğrenme Kolaylığı: Dilin konuşma diline yakınlığı, komutlarının sade ve anlaşılır olması gibi ölçütler o dilin öğrenilmesini etkiler. Yapısal Programlanabilirlik: Programın bloklar halinde yazılması yani alt programların kullanılması anlamına gelen bir programlama tekniğidir. Kodun okunabilirliğini ve verimliliğini artırır. Nesne Yönelimlilik: Verilerin birbirinden daha kesin çizgilerle ayrılmasını öngören bir programlama tekniğidir.
Programlama Dillerinin Özellikleri - 4 Genellik: Bir dilin herhangi bir alanda kullanılabilmesidir. Bazı diller sadece mühendislik alanlarında kullanılabilmesine karşın, C genel amaçlı bir dildir. Programlama dillerinin kendi alanları vardır ve her dil uygun branşta kullanıldığı sürece başarılı ve etkili kullanılmış olur. Genel olarak programlama dilleri uygulama alanlarına göre aşağıdaki sınıflara ayrılabilir: Bilim ve Mühendislik Alanları: Mühendislik veya matematik hesapları için kullanılırlar. Bu dillere Pascal, C, C++, Java, Fortran gibi diller örnek olarak verilebilir. Veritabanı Programlama: Genellikle personel kayıtları, stok veya depo denetimi gibi veritabanı gerektiren işlemlerde kullanılan dillerdir. Bu dillere DBase, Sql, Foxpro ve Paradox örnek olarak verilebilir. Sistem Programcılığı: İşletim sistemlerinin ve sistem programlarının yazılımında kullanılan dillerdir. Örnek olarak C, C++, Java ve makina dilleri verilebilir. Genel Amaçlı Kullanım : Çeşitli konularda uygulama geliştirmek için kullanılan dillere örnek olarak C, C++, Java, VB ve Pascal’ı verebiliriz. Yapay Zeka Kullanımında: Özellikle son zamanlarda popüler olan yapa zeka uygulamalarında kullanılan dillerdir. Örnek olarak Prolog ve Lisp gibi diller verilebilir.
Programlama Dillerinin Sınıflandırılması Programlama dilleri, makine dilinde programlama zor olduğu için doğal dile doğru gelişim göstermiştir. İnsanın en zor öğrenebileceği, anlayabileceği yani 1100101 gibi makina kodlarına yakın diller en düşük seviyeli (low level) programlama dilleri, insanın en kolay anlayıp kullanabileceği ve insan diline yakın özellikler gösteren diller ise en yüksek seviyeli (high level) programlama dilleridir. Yazılan kodları, makine dilinde değilse, makine diline çevirip çalışmaya hazır hale getirmek, o dilin derleyicisinin veya yorumlayıcısının görevidir. Programlama dilleri seviyelerine göre aşağıdaki gibi sınıflandırılabilir; Çok Yüksek Seviyeli Diller (İnsana en yakın) FOXPRO, ACCESS, PARADOX, VB.NET... (Öğrenilmesi Kolay, Daha Yavaş) Yüksek Seviyeli Diller : PASCAL, FORTRAN, COBOL, BASIC... Orta Seviyeli Diller : C ,C++, C# , Java ,ADA... Düşük Seviyeli Diller: Assembly... Makine Dilleri (Makineye en yakın diller. 0 ve 1’lerin dizilimlerinden oluşurlar..) (Öğrenilmesi Daha Zor, Daha Hızlı)
Yüksek Seviye vs. Düşük Seviye Doğal dile yakınlık, insanın anlamasına uygun, anlamlı sözcüklerle kodlama yapmak anlamına gelirken; Makineye yakınlık, bilgisayarın çalışma mantığına uygun şekilde, yapılacak işin nasıl yapılacağının kodlanması demektir. Bir dilin seviyesi yüksekse, o dili öğrenmek kolaydır, kaynak kod kısadır ama oluşacak çalıştırılabilir dosya uzundur, uzun ve karmaşık işlemler kısa kodlarla gerçekleştirilebilir. Düşük seviyeli dillerde ise programcı, makineye daha hakimdir, sorumluluğu daha fazladır, kod yazımı uzun ve zahmetlidir.