1 / 80

Bilgisayar Mühendisliği ne Giriş

Bilgisayar Mühendisliği ne Giriş. Algoritmalar ve Programlama. Giriş. Bilgisayar verilen giriş verilerini belirtilen yöntemlerle işleyerek istenilen sonuçları üreten kompleks bir elektronik sistemdir.

Download Presentation

Bilgisayar Mühendisliği ne Giriş

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. Bilgisayar Mühendisliğine Giriş Algoritmalar ve Programlama

  2. Giriş • Bilgisayar verilen giriş verilerini belirtilen yöntemlerle işleyerek istenilen sonuçları üreten kompleks bir elektronik sistemdir. • İşlenecek veriler ve kullanılacak çözüm yöntemleri bilgisayara insan tarafından program ile bildirilir. Bu nedenle bilgisayarın problemi çözmesi için programa ihtiyacı vardır. • İnsan ile bilgisayar arasındaki iletişim aracı olan program, giriş değerlerini kullanarak istenilen çıkış değerlerinin elde edilebilmesi için bilgisayara iletilen komutlar dizisidir.

  3. Hammadde Makine Ürün Veri Program Sonuç Giriş / Çıkış (Input / Output) • Aynı benzer durum fabrikalarda da vardır. İşletmede üretimin olabilmesi için hammadde(giriş değer) ve makinelere ihtiyaç vardır. • Bilgisayarda olduğu gibi işletmede de işin merkezinde insan vardır. Her iki türde de yapılacak işler makineye / bilgisayara insan tarafından bildirilir.

  4. Bilgisayar insanın programlarla verdiği komutları yerine getirmektedir. • Kullanıcı bilgisayara ne tarif etmişse onun karşılığını alır. Yani program, bilgisayara sonuçları üretirken problem çözümünde hangi verileri nasıl işleyeceğini ve ne tür sonuçlar üreteceğini bildirir. • Program ile bunun bilgisayara tarif edilebilmesi için kişinin temelde o problemin nasıl çözüleceğini tam olarak bilmesi gerekmektedir.

  5. Bir problemin birden fazla çözümü olabilir. • Programcı (programı tasarlayan kişi) en kısa ve etkili yöntemi yeteneği ölçüsünde bulmalıdır. • Eğer yazılan programdaki çözüm yolu yanlış ise bilgisayarın bulacağı sonuçlar da yanlış olur. Dolayısıyle program yazılmadan önce problemin iyice irdelenmesi, uygun çözüm yolunun belirlenip bilgisayara doğru şekilde tarif edilmesi gerekir.

  6. Problem çok uzun ve karmaşık bir problem ise mümkün olduğunca parçalara ayrılabilir. Her bir bölüm(*) ayrı ayrı yazılıp çalıştırılır ve herhangi bir hata yoksa bunlar birleştirilir. • (*) Bu her bir alt bölüme programlama dillerinde subroutine/function/procedure gibi isimler verilebilmektedir.

  7. Programlama Dilleri • Programlama dili, bilgisayar ile programcı arasındaki iletişimi sağlayan bir araç olup programların yazımında kullanılan bir çeşit araçtır(programdır). • Yazdır komutuna örnekler Programlama DiliKomut Basic Print C printf Pascal writeln

  8. Programlama Dilleri Sınıflaması • Programlama dillerini grublara ayırsak. • Makine dili (Makine kodu): Bilgisayarın hiçbir değişikliğe gerek duymaksızın algılayabilip çalıştırabildiği komutların yazıldığı programlama dilidir. Mesela : assembler • Sembolik diller: Makine dilinden daha gelişmiş, program yazmanın makine diline göre daha kolay olduğu programlama dilleridir. Mesela : C, C++, Pascal...

  9. Sembolik dillerde yazılmış bir kodun bilgisayar tarafından algılanabilmesi, çalıştırılabilmesi için makine diline çevrilmesi gerekir. • Bu dönüşüm, derleyici olarak adlandırılan yazılımlar(programlar) ile yapılır. Derleyici (Pascal, C, Basic, ..) Sembolik Dil ile yazılmış Kod KAYNAK KOD Makine kodu AMAÇ PROGRAM

  10. Bilgisayarın yaptığı işlemler • Aritmetiksel işlemler toplama, çıkarma, .. • Karşılaştırma işlemleri (KARAR) iki nesnenin kıyaslanması • Mantıksal işlemler (LOGİC) ve, veya , değil

  11. Aritmetiksel işlemler • Toplama a+b • Çıkarma a-b • Çarpma a*b • Bölme a/b • Üs alma a^b

  12. İşlem önceliği Matematiksel işlemler içeren kümenizin içindeki matematiksel işaretlerin bir işlem önceliği vardır. • İşlem Önceliği Sırası 1. Parantezler ( ) 2. Üs alma a^b 3. Çarpma ve bölme a*b veya a/b 4. Toplama ve çıkarma a+b veya a-b • Aynı önceliğe sahip işlemler yan yana bulunuyorsa işlem önceliği genelde soldan sağa doğrudur. X=2*3/6+2

  13. matematiksel ifadelerinbilgisayar kodları?

  14. Örnek • a=4, b=6, c=8, d=10 değerleri için bilgisayar dilinde kodlanmış notasyonların sonuçlarını bulunuz. • a*b/(c-b)+b (?) • c*d/a*d+b+c*d/a (?) • c*d/a*d+(b+c)*d/a (?)

  15. Örnek-2 • a=1, b=2, c=3, d=4, e=-2 • a+d/b+d^2+2*a*b*c/d+e ? • (a+b)/c+d^2+2*a*b*c/(d+e) ? • a+b/(c+d)^2+2*a*b*c/d+e ? • (a+b)/(c+d)^2+2*a*b*c/(d+e) ?

  16. Karşılaştırma İşlemleri • Eşittir = • Eşit değildir <> • Büyüktür > • Küçüktür < • Büyük eşittir >= • Küçük eşittir <=

  17. Örnek Algoritma • Başla • A sayısını gir • B sayısını gir • Eğer A>B ise Yaz “A sayısı, B sayısından büyüktür” • Eğer A<B ise Yaz “A sayısı, B sayısından küçüktür” • Eğer A=B ise Yaz “A sayısı, B sayısına eşittir” • Dur Girilen A sayısı Girilen B sayısı Ekrana yazılan sonuç 3 7 ?

  18. Mantıksal İşlemler • Programlarda, birden fazla karşılaştırma ifadesi bir anda kullanılmak istenebilir. Bu gibi durumlarda mantıksal ifadeler kullanılması zorunludur. MANTIKSAL KOMUTLAR MATEMATİKSEL İŞLEMLER SEMBOL • VE AND . • VEYA OR + • DEĞİL NOT ′

  19. Mantıksal İşlem Sonuçları SonuçRakam olarakBilgisayar Dilinde Doğru 1 True (1) Yanlış 0 False (0)

  20. Mantıksal İşlemler

  21. Örnek Bir işyerinde çalışan işçiler arasından yalnızca yaşı 23’ün üzerinde olup maaş olarak asgari ücret alanların isimleri istenebilir. Burada iki koşulun da doğru olması gerekmektedir.(Asgari ücret 527) 1nci koşul 2nci koşul Eğer Yaş>23 ve Maaş=Asgariücret ise Yaz İsim

  22. Örnek Algoritma • Bir sınıfta Bilgisayar dersinden 65 in üzerinde not almış olup Seçmeli Yabancı Dil (İngilizce) veya Seçmeli Yabancı Dil (Almanca) derslerinin herhangi birinden 65 in üzerinde not alanların isimleri istenmektedir. • Eğer Bilgisayar notu > 65VE (İngilizce > 65VEYAAlmanca > 65) ise Yaz “Öğrencinin ismini”

  23. Algoritma Hazırlama • İnsan günlük yaşamında herhangi bir işi gerçekleştirmeden önce genellikle plan yapar. Plan, yapılacak olan işin adımlarını belirtir ve hedefe ulaşmada hem yol gösterir hem de büyük kolaylıklar sağlar. • Bilgisayardaki bir işlemin gerçekleştirilmesinde izlenecek adımlar dizisine de algoritma denilmektedir. • O zaman algoritma, işlemleri yaptırabilmek için bilgisayara tarif edilen işlem basamaklarıdır.

  24. Bilgisayar bir problemi çözerken “hangi ve neredeki giriş değerlerini alacak, bunları işlerken ne tür yöntemleri kullanacak, ne tür sonuçlar üretecek ve bu sonuçları nerede gösterecek veya saklayacak” gibi adımları gözönüne alır. • Bu adımların hepsi, hazırlanan algoritmanın herhangi bir programlama dilinin kurallarına uygun olarak yazılmış komutlarıyla bilgisayara iletilir. • Algoritmanın özel geometrik şekillerle çizilmiş haline akış diyagramı denilmektedir.

  25. Tanımlayıcı • Program yazan kişi tarafından düşünülüp oluşturulan ve programdaki değişkenleri, sabitleri, kayıt alanlarını, alt programları, vs.. adlandırmak için kullanılan kelimelere tanımlayıcı denir. • Bu kelimeler isimlendirilirken kurallara dikkat edilmelidir: • İngiliz alfabesindeki A-Z veya a-z arası 26 harf kullanılabilir. • 0-9 rakamları kullanılabilir. • Sembollerden alt çizgi kullanılabilir. ( _ ) • Tanımlayıcı ifadeleri harf veyha altçizgi ile başlayabilir ama rakamla başlamaz. • İsimler oluşturulurken boşluk kullanılmamalıdır. maaş katsayısı değil maas_katsayisi

  26. Aktarma Herhangi bir ifadenin sonucunu başka bir değişkende göstermedir. degisken = ifade ifade kısmında matematiksel, mantıksal veya harfsel (alfasayısal) ifade olabilir. = sembolü atama operatörüdür. Bu operatör, sağda hesaplanan ifadenin değerini degisken içine (sola) iletir.

  27. Değişken değerinin artırılıp azaltılması c’nin ilk değeri 10 olsun. c=c+1 ifadesi çalıştığında şöyle bir işlem yapılır: • = işaretinin sağındaki c’nin değeri alınır, 1 ile toplanır, sonuç ise soldaki c’ye atanır. Bu şekilde c’nin son değeri 11 olmuş olur. • Demekki c bir değişken ise bu değişkenin değerini bir artırmak için c=c+1 kullanılabilir. • Aynı mantık ile değişken değerini iki azaltmak için de c=c-2 kullanılabilir.

  28. Örnek • Başla • t=0 • Bir sayı gir (a = 5) • t=t+a işlemini yap • Başka bir sayı gir (b = 4) • t=t+b işlemini yap • Başka bir sayı gir (c = 6) • t=t+c işlemini yap • Yaz t • Dur

  29. Sayaç Programda bazı işlemlerin belirli sayıda yapılması isteniyorsa sayaç kullanılır. Örneğin “girilen sayılardan kaç tanesi çift” sorusunun cevabı için sayaç kullanılmalıdır. Sayaç ta bir tip değişkendir. Programda girilen sayıya bakılır, eğer çift ise sayac değişkeninin değeri bir artırılır. Bu şekilde sayac değişkeninin son değeri çift sayıların adedi olur.

  30. Aşağıdaki algoritma nasıl bir çıktı verir? • Başla • sayac=0 • Eğer sayac>4 ise Git 7 • sayac=sayac+1 • Yaz sayac • Git 3 • Dur

  31. Aşağıdaki algoritma ne iş yapmaktadır? • Başla • sayac=0 • Bir sayı gir. (sayi) • Eğer sayi=0 ise Git 7 • Eğer mod(sayi,2)=0 ise sayac=sayac+1 • Git 3 • Yaz sayac • Dur

  32. Döngü • Bazı işlemler belli ardışık değerlerle veya belli sayıda gerçekleştirilmektedir. • Programda belirli komut bütünlerini belirli sayıda yaptırabilmek için döngüler kullanılır.

  33. Döngü Örneği • Örneğin 1 ile 100 arasındaki sayıların toplamını hesaplayan programda toplam=1+3+5+..+99 yapmak yerine 1 ile 100 arasında ikişer artan döngü kurup toplamak daha doğru olacaktır. • Başla • toplam=0 • sayac=1 • Eğer sayac>100 ise git 8 • Eğer sayac mod 2 = 1 toplam=toplam+sayac • sayac=sayac+1 • Git 3 • Yaz toplam • Dur

  34. 1 .. 100 arası 5 in katı olan sayıların adedi? • başla • sayac=0 • sayi=1 • Eğer sayi > 100 ise git 8 • Eğer sayi mod 5 = 0 ise sayac=sayac+1 • sayi=sayi+1 • Git 4 • Yaz sayac • Dur

  35. x ile y arasındaki z nin katı olan sayıların adedini ve toplamlarını bulan algoritma • başla • sayac=0 • toplam=0 • ilk sayıyı gir (x) • son sayıyı gir (y) • kacın katı oldugunu gir (z) • sayi=x • Eğer sayi > y ise git 13 • Eğer sayi mod z = 0 ise sayac=sayac+1 • Eğer sayi mod z = 0 ise toplam=toplam+sayi • sayi=sayi+1 • Git 8 • Yaz sayac,toplam • Dur

  36. Klavyeden 0 girene kadar girilen sayıları ekrana yazan algoritma 1.Başla 2.Bir sayı gir. (sayi) 3.Eğer sayi=0 ise Git 6 4.Yaz sayi 5.Git 2 6.Dur

  37. Sayıyı parçalara ayırmak (Cevabı) • basla • us=4 • eğer us<1 git 10 • bolum=sayi/10^us • kalan=sayi mod (10^us) • sayi=sayi-bolum*(10^us) • yaz bolum • us=us-1 • git 3 • yaz kalan • son

  38. Onluk sistemi 2lik sisteme çevir • Kullanıcının girdiği onluk sistemde olan bir sayıyı ikilik sisteme çevirip 1 ve 0 bitlerini ekrana basan algoritmayı yazınız.

  39. Çözüm 1.basla 2.sayiyi gir 3.bolum=sayi/2 4.kalan=sayi mod 2 5.Yaz kalan 6.sayi = bolum 7.Eğer bolum>=2 ise Git 3 8.Yaz bolum 9.Yaz "tersten yazdık.." 10.Son

  40. 2lik sistemin Onluk sisteme çevrimi • İkilik sistemdeki sayı kaç basamaklı? (n) • Basamakları sıra ile giriniz. • İkilik sistemdeki sayı onluk sisteme çevrilir.

  41. Çözüm 1.basla 2.basamak sayısını gir (n) 3.toplam=0 4.bir bit gir (digit) 5.toplam=toplam+digit*2^(n-1) 6.n=n-1 7.Eğer n>=1 ise Git 4 8.Yaz "Sonuç şudur:",toplam 9.Son

  42. Örnek • Bir çok sayı girilecektir. • Bu sayılardan en küçüğünü ekrana basan algoritma?

  43. Çözüm 1.basla 2.kac sayi karşilastırılacak(n) 3.sayi gir (x) 4.en_kucuk_sayi = x 5.sayi gir (x) 6.Eğer en_kucuk_sayi > x ise en_kucuk_sayi = x 7.n=n-1 8.Eğer n>=2 ise Git 5 9.YAz en_kucuk_sayi 10.Son

  44. Klavyeden girilen rakamı Yazıya döken Algoritma • 0 ile 9 arasında bir rakam girilecektir. Bu rakamı yazı ile ekrana basan algoritmayı tasarlayınız.

  45. ORNEK-1 Yıldızlar * ** *** **** ***** ****** ******* Bu çıktıyı veren algoritmayı tasarlayınız.

  46. Rakamlar 123456 23456 3456 456 56 6 Bu çıktıyı veren algoritmayı tasarlayınız.

  47. Soru 6 65 654 6543 65432 654321

  48. Başla/Dur Klavyeden giriş (N=10) Program çalışması esnasında yapılacak işleri ifade eder. Formüller aynen yazılır. Örnek: c= için AKIŞ DİYAGRAMLARI BAŞLA DUR c=(a^2+b^2) / (1/2)

  49. Döngü: Bir çok programda belirli işlem blokları ardışık değerlerle veya bazı koşullar sağlanana kadar devam eder. Döngü şemasının için değişken adı, başlangıç değeri, bitiş değeri ve adım miktarı yazılır. Kontrol değişkeni = Başlangıç değeri , Bitiş değeri, Adım AKIŞ DİYAGRAMLARI / DÖNGÜ I=1,20,3 J=30,4,-2 K=1,80

  50. KARŞILAŞTIRMA BİLGİ, VERİ YAZMA AKIŞ YÖNÜ AKIŞ DİYAGRAMLARI

More Related