Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Bilgisayar Mühendisliğine Giriş Algoritmalar ve Programlama.

Benzer bir sunumlar


... konulu sunumlar: "Bilgisayar Mühendisliğine Giriş Algoritmalar ve Programlama."— Sunum transkripti:

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 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. HammaddeMakineÜrün VeriProgramSonuç

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 Pascalwriteln

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. Sembolik Dil ile yazılmış Kod KAYNAK KOD Derleyici (Pascal, C, Basic,..) 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 almaa^b 3. Çarpma ve bölmea*b veya a/b 4. Toplama ve çıkarmaa+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 ifadelerin bilgisayar 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 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

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ĞİLNOT ′

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

20 Mantıksal İşlemler VE (AND) VEYA (OR) DEGiL(NOT) ABA VE B ABA VEYA B ADEGiL A 01 10

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 > 65 VE (İngilizce > 65 VEYA Almanca > 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 1. Başla 2. t=0 3. Bir sayı gir (a = 5) 4. t=t+a işlemini yap 5. Başka bir sayı gir (b = 4) 6. t=t+b işlemini yap 7. Başka bir sayı gir (c = 6) 8. t=t+c işlemini yap 9. Yaz t 10. 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? 1. Başla 2. sayac=0 3. Eğer sayac>4 ise Git 7 4. sayac=sayac+1 5. Yaz sayac 6. Git 3 7. Dur

31 Aşağıdaki algoritma ne iş yapmaktadır? 1. Başla 2. sayac=0 3. Bir sayı gir. (sayi) 4. Eğer sayi=0 ise Git 7 5. Eğer mod(sayi,2)=0 ise sayac=sayac+1 6. Git 3 7. Yaz sayac 8. 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= yapmak yerine 1 ile 100 arasında ikişer artan döngü kurup toplamak daha doğru olacaktır. 1. Başla 2. toplam=0 3. sayac=1 4. Eğer sayac>100 ise git 8 5. Eğer sayac mod 2 = 1 toplam=toplam+sayac 6. sayac=sayac+1 7. Git 3 8. Yaz toplam 9. Dur

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

35 x ile y arasındaki z nin katı olan sayıların adedini ve toplamlarını bulan algoritma 1. başla 2. sayac=0 3. toplam=0 4. ilk sayıyı gir (x) 5. son sayıyı gir (y) 6. kacın katı oldugunu gir (z) 7. sayi=x 8. Eğer sayi > y ise git Eğer sayi mod z = 0 ise sayac=sayac Eğer sayi mod z = 0 ise toplam=toplam+sayi 11. sayi=sayi Git Yaz sayac,toplam 14. 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ı) 1. basla 2. us=4 3. eğer us<1 git bolum=sayi/10^us 5. kalan=sayi mod (10^us) 6. sayi=sayi-bolum*(10^us) 7. yaz bolum 8. us=us-1 9. git yaz kalan 11. 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 Bu çıktıyı veren algoritmayı tasarlayınız.

47 Soru

48 AKIŞ DİYAGRAMLARI 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 BAŞLADUR c=(a^2+b^2) / (1/2)

49 AKIŞ DİYAGRAMLARI / DÖNGÜ 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 I=1,20,3J=30,4,-2K=1,80

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

51 i=1,n,1 İşlem A i=1,n,1 İşlem B j=1,n,1 DIŞ DÖNGÜ İÇ DÖNGÜ

52 Soru 1 den, girilen N değerine kadar olan sayıların toplamını bulan algoritmanın akış diyagramını oluşturunuz.

53 N 5 olarak girilirse

54 Soru Girilen N değerinin FAKTÖRİYELİNİ hesaplayan algoritmanın akış diyagramını oluşturunuz.

55 N = 5 olarak girilirse F=1 F=F*I F IEski FYeni F 111*1=1 211*2=2 322*3=6 466*4= *5=120

56 Bu akış diyagramı ne yapmaktadır?

57 Peki bu?

58

59

60 Ders Geçme/Kalma Durumu  Aşağıdaki şartlara göre problemin akış diyagramını çiziniz.  Ortalama = vize. %40 + final. %60  Finalden 60 ve üzerini aldı ise  Ortalamadan da 60 ve üzerini aldı ise GEÇER  Diğer durumlarda kalır.

61 Örnek  Girilen N sayısına göre  T1, 1 den N’e kadar 1er artan sayılar toplamı  T2, 1 den N’e kadar 2şer artan sayılar toplamı  T3, 1 den N’e kadar 3er artan sayılar toplamı T1,T2,T3 ü bulup yazdıran akış diyagramını çiziniz.

62 If (Karar) If ŞART Then ……………………………………………… Else ……………………………………………… Enf If

63 For (Döngü) For i = başlangıç değeri to Bitiş değeri Step Artım değeri ……………………………………………… Next

64 Basic Kodu Input "N sayısını giriniz", N T1=0; T2=0; T3=0; FOR I=1 TO N T1=T1+I NEXT I FOR I=1 TO N STEP 2 T2=T2+I NEXT I FOR I=1 TO N STEP 3 T3=T3+I NEXT I PRINT "1 DEN N'E KADAR SAYI TOPLAMI";T1 PRINT "1 DEN N'E KADAR 2'ER ARTAN SAYILAR TOPLAMI";T2 PRINT "1 DEN N'E KADAR 3'ER ARTAN SAYILAR TOPLAMI";T3 END

65  Klavyeden toplam eleman sayısı (n) ve alt eleman sayısı (r) girilen bir kümenin belirtilen kombinasyonlarının sayısını hesaplayan bir akış şeması ve programını yazınız.

66

67 Program Kodu input "n'i giriniz",n input "r'i giriniz",r f1=1; f2=1; f3=1; For i=1 to n f1=f1*i If i<=r then f2=f2*i End If If i<=n-r then f3=f3*i End If Next i sonuc=f1/(f2*f3) print "Cevap :", sonuc end If bloğu End If ile biter for bloğu Next ile biter If bloğu End If ile biter

68 A sayısı B sayısının katı mı ? Input "a nedir?",a Input "b nedir?",b If a MOD b = 0 Then Print a,"sayısı",b,"sayısına tam bölünür" Else Print a,"sayısı",b,"sayısına tam bölünemez" End If

69 Örnek:Tam bölenler  Klavyeden girilen a sayısının tam bölenlerini veren akış diyagramını çizin, programı yazın.

70 Ödev  1 ile arasındaki sayılarda, kareler toplamı, küpler farkına eşit olan ardışık iki sayıyı yazdırın.  1 ile arasındaki sayılardan, karesi yarısına eşit olan ve ardışık olması önemli olmayan sayıları bulun.

71 İkinci dereceden denklem  ax 2 +bx+c=0 denkleminin katsayıları (a,b,c) kullanıcı tarafından girilecektir.  Denklemin kökleri varsa ayrı ayrı köklerini ekrana basan,  Kökü yoksa “kökü yoktur” mesajı veren akış diyagramı ve programı yapınız.

72

73 INPUT "A Katsayı gir",A INPUT "B Katsayı gir",B INPUT "C Katsayı gir",C D=B^2-4*A*C If D<0 Then Print "Kök Sanal!" End If If D=0 Then X1=-1*B/(2*A) X2=X1 Print "Çift Katlı Kök",X1,X2 End If If D>0 Then X1=(-1*B+D^0.5)/(2*A) X2=(-1*B-D^0.5)/(2*A) Print "Kök 1",X1 Print "Kök 2",X2 End If

74 Kenarları bilinen üçgenin alanı

75 Üs Alma  Klavyeden girilen bir tamsayının, girilen derecedeki üssünü nasıl alırız?  x y =x.x. ………….x

76 Klavyeden girilen bir noktanın P(X1,Y1) ax+by+c=0 doğrusu üzerinde olup olmadığını bulan, Doğru üzerinde değilse doğruya uzaklığını bulan akış diyagramını ve programı yazınız. INPUT a,b,c,x1,y1 denklem= a*x1+b*y1+c If denklem<>0 Then uz=denklem/(a^2+b^2)^0.5 Print “uzaklık:”,uz Else Print “Nokta doğru üzerinde” End If

77 Örnek-2  Bir komisyoncu sattığı mallardan fiyatı 50 TL’ye kadar olanlardan %3, daha fazla olanlardan ise %2 komisyon almaktadır.  Klavyeden ürün fiyatı girilen bir malın komisyonunu bularak ekranda gösteren programın akış diyagramını çiziniz, Program kodunu yazınız.

78 ORNEK-3 İş başvurusu  Bir işveren fabrikasında istihdam edilmek üzere 3 ayrı birime personel alacaktır.  Muhasebe bölümünde görevlendirilecek personelin en az bir yabancı dil, halkla ilişkiler biriminde görev alacak personelin birisi ingilizce olmak üzere en az 2 dil, Dış ticaret departmanına alınacak personelin ise şart olmaksızın en az 3 dil bilmesi gerekmektedir.  İş başvurusuna bu 3 bölümden 200 kişi başvurmuştur. Başvuruda dil ile ilgili olarak ingilizce biliyor musunuz?, toplam kaç dil biliyorsunuz? soruları sorulmuştur. İnsan kaynaklarında görevli bir personel başvuruda sordukları bu soruların cevaplarını bilgisayar programına girip kimlerin işe alınamadığını, işe alınanların da hangi departmana alındığını bulacaktır.  İş alımında kadro sınırlaması göz önüne alınmadığı varsayılacak, işe alınacak kişilerin görevlendirileceği departman ise bildiği dil sayılarına göre belirlenecektir.  İşe alma algoritmasını ve programını yazınız.

79 Operatör Seçimi  Kemal bey cep telefonuna hat almak için operatöre başvurmuştur. Operatörde,  Ayda 300 dakikaya kadar, dakikası 11 kuruşa bundan sonraki dakikalar için 19 kuruşa konuşturan, sms göndermenin 15kuruş olduğu, GPRS ücretinde KiloByte başına 1 kuruş ücret talep edilen “A” kampanyası,  500 dakikaya kadar dakikası 9 kuruşa, süre aşımında dakikası 11 kuruşa konuşturan, Sms ücreti 8 kuruş olan ve KB başı 1,5 kuruş talep edilen GPRS hizmeti içeren B kampanyası,  100 dakikası 15 kuruş, limit aşımında dakikası 25 kuruş, GPRS için 1,80 kuruş talep eden ve aynı zamanda 120 sms ücretsiz olmak şartıyla her SMS için 10 kuruşa fiyatlandıran C kampanyası vardır.  Kemal bey yapacağınız programa/algoritmaya aylık konuşma süresini, attığı mesaj sayısını ve ortalama aylık olarak gerçekleştirdiği internet trafiğini MB olarak girecektir(1MB=1024KB). Bu girişlere göre en uygun paketi öneren algoritmayı kurup akış diyagramını çizdikten sonra programını yazınız.

80 Örnek  Bir diyet uzmanı insanlara, geliştirmiş olduğu değişik üç tür diyeti uygulamayı düşünmektedir.  1.tür diyet 60 kilo ve altındaki insanlara uygulanacak kilo aldırıcı program.  2.tür diyet 61 ile 80 kilo arasındaki insanlara uygulanacak kilo aldırmayan program.  3.tür diyet 81 ile 150 kilo arasındaki insanlara uygulanacak kilo zayıflatıcı programdır  Buna göre 10 kişi arasında yapılan bir anketle,bu üç programa kaçar kişinin düştüğünü ve bu gruplardaki ortalama kiloları bulan algoritmanın akış diyagramını çizip, programını yazınız.


"Bilgisayar Mühendisliğine Giriş Algoritmalar ve Programlama." indir ppt

Benzer bir sunumlar


Google Reklamları