KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ"

Transkript

1 KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ MTM211 BĠLGĠSAYAR PROGRAMLAMA I DERS NOTLARI ArĢ. Gör. Dr. Emel SOYLU

2 GĠRĠġ Bu dersin amacı öğrenciye yalnızca programlamayı ya da C dilini öğretmek değil, aynı zamanda temel sayısal yöntemleri ve sıralama algoritmaları gibi sıkça kullanılan programlama tekniklerini göstermektedir. Derste daha çok sayısal yöntemler üzerine durulacaktır. Bir programcının program yazabilmesi için yapması gereken çalıģmalar ve bilmesi gereken ön bilgilere ihtiyacı vardır. Çünkü bir problemin bilgisayar ortamında çözülmesi maalesef hazırlıksız olarak ve hızlı bir Ģekilde gerçekleģemez. Her Ģeyden önce programlama bir süreçtir ve programın yazılıp bitmesi ile bitmez çoğunlukla programın yaģadığı süre içerisinde değiģik Ģekillerde devam eder. Bu nedenle program yazılmadan veya problem çözülmeye baģlamadan önce bazı adımları sağlam atmak gerekir. Birçok zaman bu adımlar raporlarla belgelendirilir. Çünkü yazılımın yaģam döngüsü boyunca bu raporlara veya baģlangıç adımlarına ihtiyaç duyulabilir. Bunu sağlayabilmek ve sağlam temelli programlar yazabilmek için mutlaka ön çalıģmalar kâğıt üzerinde gerçekleģtirilir ve elde edilen dönütlere göre program yazılır. Programlama dili, yazılımcının bir bilgisayara ne yapmasını istediğini anlatmasının bir yoludur. Programlama dilleri, yazılımcının bilgisayara hangi veri üzerinde iģlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koģullarda hangi iģlemlerin yapılacağını tam olarak anlatmasını sağlar. ġu ana kadar 2500 den fazla programlama dili yapılmıģtır. Bunlardan bazıları Pascal, Basic, C,C3, C++, Java, COBOL, Perl, Pyhton, Ada, Fortran, Delphi ve 1C Enterprise dır. Programlama dilleri zaman içerisinde geliģmiģ, değiģmiģ, kaybolmuģ veya yenileri çıkmıģtır. Bu nedenle programlama bilginizi asla bir programlama diline bağlı tutmayın. Eğer programlama mantığınız ve önsezileriniz oldukça iyi geliģmiģse, Algoritmaları kolay kurup algılayabiliyorsanız, çok karmaģık sorunlar üzerinde fikir yürütüp çözüm üretebiliyorsanız bildiğiniz programlama dilinin fazlaca bir önemi kalmamaktadır çünkü çoğunlukla 1-2 hafta gibi bir sürede bir programlama dilini orta düzeyde öğrenebilirsiniz. En doğrusu da tabii ki her derde çözüm olabilecek temel bir programlama dilini çok iyi bir Ģekilde öğrenip her çözüme uyarlayabilmenizdir. Ancak önemli olan programlama mantığını iyi kapmıģ olmanızdır. 1

3 TANIMLAR Bu ders notlarının daha iyi anlaģılabilmesi için Ģu tanım ve kavramların bilinmesinde fayda bulunmaktadır. Bilgisayar Verileri iģleyerek özet bilgiler Ģekline sokabilen, bu veri ve bilgileri yüksek kapasitelerde saklayıp baģka ortamlara iletebilen elektronik cihazlardır. Bu iģlemleri yaparken çok yüksek hızlarda ve bıkmadanusanmadan tekrarlı olarak aynı iģleri yapan bir cihazdır. Ancak tek baģına bir Bilgisayar donanımı bu iģleri gerçekleģtirecek durumda değildir. Bu iģlemler donanım tarafından yapılsa da asıl iģ yazılımlar tarafından gerçekleģtirilmektedir. Ancak yukarıdaki çizimde görülen her bir adımın gerçekleģtiren yazılımdır. Bilgisayar Organizasyonu Bir elektronik bilgisayar yukarı Ģekildeki gibi temel birimlere sahiptir. Bu Ģekilde bir önceki konuda bahsettiğimiz giriģ, çıkıģ iģlemleri, veri iģleme ve veri saklama iģlemleri gerçekleģtirilir. GiriĢ Birimi Bellek Birimi Aritmetik-Mantık Birimi Denetim Birimi ÇıkıĢ Birimi Klavye, fare, mikrofon, kamera vb. cihazlardan biri veya daha fazlasından oluģur. Veri ve komutların bilgisayara yollanmasını sağlar. Veri, komut ve programların saklandığı donanımları temsil eder. Ana bellek çoğunlukla RAM olarak anılır. Yan veya ikincil bellek ise floppy ve sabit diskleri ifade eder ve bilgilerin daha kalıcı saklanmasını sağlayan alanları temsil eder. Bilgisayardaki tüm aritmetik ve mantıksal iģlemlerin yapıldığı birimdir. Tüm iģlemleri yapan ana birimdir. Bilgisayar programının çalıģmasını denetleyen, programda yapılan hesaplamalara göre hangi iģlerin yapılacağına karar veren birimdir. Makine diline çevrilmiģ bir programda komutları teker teker ve sırayla Ana iģlem birimine getirip yorumlar ve sonuçta komutu çalıģtırır. Bilgisayar ortamında oluģan verilerin dıģ ortama verilmesini sağlayan birimlerdir. Ekran, yazıcı gibi birimlerdir. Bir programcı genel olarak bu birimlerin hangilerinin ne iģe yaradığını ve neleri temsil ettiğini bilmelidir. Özellikle aritmetik-mantık iģlem birimi ve denetim birimi bir bilgisayarın beynini oluģturduğu için nasıl davrandığını iyi bilmek zorundadır. 2

4 Problem Bir iģlemin, otomasyonun ya da bilimsel hesaplamanın bilgisayarla çözülmesi fikrinin ortaya çıkmasına problem denir. Bu tip fikirlerde insanların bu sorunları beyinle çözmeleri ya imkânsızdır ya da çok zor ve zaman alıcıdır. Bu tip bir sorunu bilgisayarla çözebilme fikrinin ortaya çıkması bir bilgisayar probleminin ortaya çıkmasına neden olmuģtur. Bazen de bir iģletme veya yönetimin otomasyonunu sağlamak amacı ile bu tip problemler tanımlanır. Problem Çözümü Problemi çözebilmek için öncelikle sorunun çok net olarak programcı tarafından anlaģılmıģ olması gerekir. Tüm ihtiyaçlar ve istekler belirlenmelidir. Gerekiyorsa bu iģlem için birebir görüģmeler planlanmalı ve bu görüģmeler gerçekleģtirilmelidir. Problemin çözümüne iliģkin zihinsel alıģtırmalar yapılır. Bu alıģtırmaların Bilgisayar çözümüne yakın olması hedeflenmelidir. Bir sorunun tabii ki birden fazla çözümü olabilir. Bu durumda bilgisayar ile en uygun çözüm seçilmelidir. Çünkü bazen pratik çözümler bilgisayarlar için uygun olmayabilir. OluĢturulan Çözüm Algoritma dediğimiz adımlarla ifade edilmelidir. Bu algoritmanın daha anlaģılabilir olması için AkıĢ Çizgesi oluģturulmalıdır. Uygun bir programlama dili seçilmeli ve oluģturulan algoritma ve akıģ çizgesi bu programlama dili aracılığı ile bilgisayar ortamına aktarılmalıdır. OluĢturulan program bir takım verilerle ve mümkünse gerçek ortamında test edilir. OluĢabilecek sorunlar ilgili kısımlar tekrar gözden geçirilerek düzeltilir. Bu adımlar defalarca gerçekleģtirilmek zorunda kalınabilir. Program Problem çözümü kısmında anlatılan adımlar uygulandıktan sonra ortaya çıkan ve sorunumuzu bilgisayar ortamında çözen ürüne program denir. Bazı durumlarda bu ürüne yazılım denebilir. Programlama Problem çözümünde anlatılan adımların tümüne birden programlama denilebilir. Ancak gerçekte ilk paragrafta anlatılan kısım çoğunlukla sistem analizi veya sistem çözümleme olarak anlatılır. Diğer adımlar programlama diye tanımlanabilir. Ancak son paragrafta anlatılan adıma kısaca test aģaması 3

5 da denir. Çoğunlukla çok iyi tanımlanmıģ bir sorunun çözümüne dair adımlar ile çözümün oluģturulup bunun bir programlama dili ile bilgisayar ortamına aktarılması programlama diye adlandırılabilir. Algoritma Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne denir. Doğal dille yazılabileceği için fazlaca formal değildir. Bir algoritma için aģağıdaki ifadelerin mutlaka doğrulanması gereklidir. Her adım son derece belirleyici olmalıdır. Hiç bir Ģey Ģansa bağlı olmamalıdır. Belirli bir sayıda adım sonunda algoritma sonlanmalıdır. Algoritmalar karģılaģılabilecek tüm ihtimalleri ele alabilecek kadar genel olmalıdır. Bir problemi bilgisayar ile çözmek için geliģtireceğimiz programın yazımında izleyeceğimiz adımlar: Problemin ne olduğunu kavra. Çözüm için gereksinimleri belirle. Problemin girdilerini, çıktılarını ve diğer kısıtlama ve gereksinimleri belirle ( bilgilerin giriģ ve çıkıģ biçimlerinin nasıl olacağına kadar). Problemin çözümünü veren algoritmayı yaz. Algoritmayı bir programla dili ile yaz. Programın doğru çalıģıp çalıģmadığını test et. Bu testi değiģik veriler (girdiler) için tekrarla. AkıĢ Çizelgesi Bir algoritmanın daha görsel gösterimidir. Çizgiler, dörtgen, daire vb. geometrik Ģekillerle algoritmanın gösterilmesini sağlar. Doğal dille yazılmadığı için daha formal olduğu düģünülebilir. Programlama Dili 4

6 Bir problemin algoritmik çözümünün bilgisayara anlatılmasını sağlayan, son derece sıkı-sıkıya kuralları bulunan kurallar dizisidir. Derleyici Bir programlama dili ile bilgisayara aktarılan programın bilgisayarın anlayabileceği makine diline çevirmeyi sağlayan ve yazılan programda söz dizim hatalarının olup olmadığını bulan olup olmadığını bulan yazılımlardır. Her programlama dili için bir derleyici olması gerekmektedir. Yorumlayıcı Derleyici gibi çalıģan ancak yazılmıģ programları o anda Makine diline çeviren yazılımlardır. Bu tür bir yazılımda programın makine dili ile oluģturulmuģ kısmı bilgisayarda tutulmaz. Programın her çalıģtırılmasında her adım için makine dili karģılıkları oluģturulur ve çalıģtırılır. YAZILIM GELĠġTĠRME Yazılım geliģtirilirken bir programcı ve yazılım gurubunun takip edeceği adımlar Ģu Ģekildedir. Bu çizgeden anlaģılacağı gibi adımlardan birinde bir sorunla karģılaģılırsa bu sorunu çözebilmek için bir önceki adıma geri dönmek gerekecektir. Bu geri dönüģ bazen bir kaç adım olabilir. Sistem Analizi : Sorunun çözülebilmesi için tamamen anlaģılmasını sağlayan çalıģmalardır. Tasarım : Ġsteklerle ilgili olarak belirlenen bir takım çözümlerin tanımlanmasıdır. Programlama Stili : Her yiğidin yoğurt yiyiģi farklıdır. Aynı Ģekilde her programcı programındaki mantığı farklı kurar bu her programcının kendine özgün bir stili var anlamına gelir. Ancak bunun yanında Her programcının programın sağlığı bakımından dikkat etmesi gereken Ģeyler vardır. Örneğin 5

7 kodlar açık olmalıdır. Kullanılan değiģkenler kullanıldıkları amacı anlatır tarzda isimlendirilmelidir. Program içi dokümantasyona mutlaka önem verilmelidir. Algoritma : Çözümün adımlarla ifade edilmesidir. AkıĢ Çizgesi : Algoritmanın Ģekillerle ifade edilmesidir. Programlama Dili Seçimi : Çözümün netleģmesinden sonra yapılacak iģlemleri kolay bir Ģekilde bilgisayar ortamına aktaracak dilin seçilmesidir. Önemli olan bu dilin özelliklerinin programcı tarafından iyi bilinmesidir. Programın Yazılması : Seçilen programlama dilinin kuralları kullanılarak program yazılmaya baģlanır. bu amaçla çoğunlukla sade bir metin editörü kullanılır. Bazı durumlarda Syntax highlighting denilen bir özelliğe sahip olan daha akıllı editörler de kullanılabilir. Bazen de editör ile programlama dilinin derleyicisinin, bağlayıcısının hatta hata ayıklayıcısının iç içe bulunduğu IDE (Integrated Development Environment) denilen türde derleyiciler kullanılır. Derleme : Programlama dili ile yazılmıģ programın yazım hatalarının olup olmadığının kontrol edilmesini ve ara kod olarak Obje kodun üretilmesini sağlama adımıdır. Bağlama : DerlenmiĢ ara kod diğer kütüphane ve parça programlarla birleģtirilerek makine dilinde programın oluģturulması adımıdır. Ancak bazı IDE ortamlarda ve derleyicilerde derleme ve bağlama bir bütündür ve beraberce halledilirler. Programcının ayrıca bir bağlama iģlemi yapması gerekmez iģlemi yapması gerekmez. ÇalıĢtırma : OluĢturulan makine dili programının çalıģtırılması adımıdır. Yukarıdaki adımların hepsi yolunda gittiyse program sorunsuz olarak çalıģabilmelidir. Test : Programın mantıksal olarak test edilmesini sağlar ve içerik olarak her ihtimal için doğru sonuçlar üretip üretmediğini kontrol etmenizi sağlar. YaĢam Döngüsünün Sağlanması : Yukarıdaki akıģ çizgesi dikkat edilirse aslında bir döngüdür. Hatta test aģamasında sorun çıkmazsa bile sorunun tanımında yani ihtiyaçlarda bazı değiģiklikler olursa adımlar baģtan aģağı tekrar incelenmek zorunda kalınır. Bu çizgeye bir yazılımımın yaģam döngüsü de denilebilir. Bu çizimde yazılımın bakım süreci göz önüne alınmamıģtır. HATA YAKALAMA VE AYIKLAMA 6

8 Bir programın bilgisayar baģında geçen geliģtirme süreci yukarıdaki gibidir. Bu çizimde kırmızı-turuncu renkle gösterilen kısımlar hata durumlarını göstermektedir. Syntax Error: Yazılan programda programlama dili kurallarına aykırı bir takım ifadelerden dolayı karģılaģılabilecek hatalardır. Düzeltilmesi son derece basit hatalardır. Hatanın bulunduğu satır derleyici tarafından rapor edilir. Hatta bazı derleyiciler hatanın ne olduğunu ve nasıl düzeltilmesi gerektiğini dahi bildirebilirler. Bazen Syntax Error tipi hataları Bağlama zamanında da ortaya çıkabilir. Eğer bir derlemede Syntax Error alındı ise obje kod üretilememiģtir demektir. Soru: Bir Derleyici hatanın nasıl düzeltileceğini bildirebildiğine göre kendisi niçin düzeltmemektedir? Run-time Error: Programın çalıģtırılması sırasında karģılaģılan hatalardır. Programcının ele almadığı bir takım aykırı durumlar ortaya çıktığında programın iģletim sistemi tarafından kesilmesi ile ortaya çıkar. Bu tip hatalarda hata mesajı çoğunlukla çalıģan iģletim sisteminin dili ile verilir. Eğer bu tip hataları kullanıcı ele almıģsa, program programcının vereceği mesajlarla ve uygun Ģekilde sonlandırılabilir. Bu tip hataların nerelerde ve hangi Ģartlarda ortaya çıkabileceğini bazen kestirmek zor olabilir. Çoğunlukla iģletim sistemi ve donanım kaynakları ile ilgili sorunlarda bu tip hatalar ortaya çıkar demiģtik. Örneğin olamayan bir dosya açmaya çalıģmak, var olan bir dosyanın üzerine yazmaya çalıģmak, olmayan bir bellek kaynağından bellek ayırtmaya çalıģmak, olmayan bir donanıma ulaģmaya çalıģmak vs. vs. vs. Logical Error: KarĢılaĢabileceğiniz en tehlikeli hatadır. Programlama mantığında bir takım Ģeylerin yanlıģ düģünülmesinden kaynaklanır. Hata test aģamasında ortaya çıkar. Hesaplanması gereken veya bulunması gereken değerlerin eksik veya yanlıģ hesaplanması ile tespit edilir. Bu sorunun giderilebilmesi için Tasarım hatta çözümleme aģamasına geri dönülmesi gerekebilir. Bazen bu hatanın nereden kaynaklandığını bulabilmek çok zor olmaktadır. Bug: Logical Error diyebileceğimiz Mantıksal hatalara verilen adlar bug yani böcek diye de tanımlanmıģ olabilir. Bu tip hatalar eğer çok net değil ve zamanla ortaya çıkabiliyor ise veya nedeni çok net olarak anlaģılamamıģsa bug diye adlandırılır. Gerek serbest yazılım gerek ticari yazılımların tümünde bug dediğimiz mantıksal hatalar bulunur. Çünkü hatasız program yazabilmek çok zordur. Ġlk seferde yazılan bir programın tamamen hatasız olmasını beklemek son derece hatalıdır. Günümüzde en meģhur yazılım firmaları bile yazılımlarında bug olduğunu kabul eder ve zaman zaman bu bugları giderebilmek için ya yazılımlarına yama yazılımı üretirler ya da o yazılımın yeni bir versiyonunu piyasaya sürerler. Debug: Mantıksal hataları giderebilmek ve yazılımdaki bug'ları bulabilmek için yapılan iģlemin adıdır. Genellikle yazılan programın adım adım ve denetim altında çalıģtırılmasıdır. Programın her adımında ilgili değiģkenlerin hangi değere sahip olduğunu görmeyi sağlar ve anormal bir durumu daha kolay izleyip bulmanızı sağlar. Bu iģlemi gerçekleģtirebilmek için bazı IDE ortamlarında debugger dediğimiz yardımcı komut veya yaz ALGORĠTMALAR Bir bilgisayar programı aslında sıra düzensel olarak tanımlanmıģ bir dizi komuttan baģka bir Ģey değildir. Bu açıdan bizim yazmaya çalıģacağımız programda bir dizi komut yani eylem topluluğudur. Her programda bu eylemler yazıldıkları sırada gerçekleģtirilir veya çalıģtırılırlar. Aslında bizim günlük hayattaki yaģantı tarzımız dahi düzenli olarak bir takım iģlemlerin sıra ile yapılması Ģeklindedir. Yani bir iģ yapabilmek için bir takım alt iģ veya olayları peģ peģe gerçekleģtiririz. Algoritmanın tanımını daha önce vermiģtik burada bu tanımı tekrar etmek faydalı olacaktır. Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Bir algoritmadan beklenen bir takım özellikler olduğunu da yine daha önceki tanımlar bölümünde bahsetmiģtik. Biz Ģimdi mümkün olduğu kadar bu tanım ve özelliklerden yola çıkarak örneklerle bir kaç algoritma vermeye çalıģacağız. Öncelikle bir ev hanımının pasta yapmak istediğini varsayalım. Bu pastanın yapılabilmesi için gerekli bir takım iģlemler ve alt adımlar bellidir. bir ev hanımı da sıra ile bu adımları uygulayarak bu pastayı yapar. ġöyle ki: 7

9 1. Pastanın yapımı için gerekli malzemeleri hazırla 2. Yağı bir kaba koy 3. ġekeri aynı kaba yağın üzerine koy 4. Yağ ve Ģekeri çırp 5. KarıĢımın üzerine yumurtayı kır 6. Tekrar çırp 7. Kıvama geldi mi diye kontrol et 8. a. Kıvamlı ise 9. adıma devam et b. Değilse 6. adıma dön. 9. KarıĢıma un koy 10.KarıĢıma vanilya, kabartma tozu vb. koy 11.KarıĢımı Kıvama gelinceye kadar çırp 12.Pastayı Kek kalıbına koy 13.Yeteri kadar ısınan fırına pastayı koy 14.PiĢtimi diye kontrol et 15. a. PiĢmiĢ ise 16. adıma devam et b. Değilse 14. adıma dön 16.Keki fırından çıkart 17.Fırını kapat 18.Kekin kapağını kapat 19.Kekin soğumasını bekle 20.Keki servis edebilirsin. Bu algoritma günlük hayattan bir örnek. Gerçekte biz her iģimizi algoritmik olarak yaparız ancak bunu farkına varmayız. Yukarıdaki algoritmayı inceleyecek olursak bir kekin yapılması için gerekli tüm adımlar sıra ile yer almıģ durumda. Gerçi algoritma anlatacağımız konuların daha iyi anlaģılabilmesi için biraz farklı ele alınmıģtır ama gerçek bir Pasta yapım aģamasını içerir. Bu algoritma ve diğer tüm algoritmalar için bilmemiz gereken bazı konular bulunmaktadır: Her adım son derece belirleyici olmalıdır. Hiç bir Ģey Ģansa bağlı olmamalıdır. Belirli bir sayıda adım sonunda algoritma sonlanmalıdır. Algoritmalar karģılaģılabilecek tüm ihtimalleri ele alabilecek kadar genel olmalıdır. Algoritmada algoritmanın genel iģleyiģini etkileyebilecek hiç bir belirsizlik olmamalıdır. (Bu örnekte öyle bir belirsizlik var. Bir fırının yeteri kadar ısına bilmesi hangi koģula bağlıdır, bu fırın ne zaman açılmıģ olmalıdır ve kaç dereceye ayarlanmıģ olmalıdır gibi...) Algoritmada bazı adımlar yer değiģtirebilir. Ancak birçok adımın kesinlikle yer değiģtiremeyeceğini bilmeliyiz. YanlıĢ sıradaki adımlar algoritmanın yanlıģ çalıģmasına neden olacaktır. (9 ve 10. adım değiģtirilebilir adımlar yer adımlar yer değiģtirebilir.) Ancak adımlar kesinlikle yer değiģtiremezler. Peki Bilgisayarda çözülecek bir sorunu nasıl algoritma ile ifade ederiz? Bunun için öncelikle bir sorun tanımlayalım. BaĢlangıç ta basit olması için Ģöyle bir problem üzerinde düģünelim: Bilgisayara verilecek iki sayıyı toplayıp sonucu ekrana yazacak bir program için algoritma geliģtirmek isteyelim. Sorun son derece basit ancak sistem tasarımının net yapılabilmesi için sorun hakkında anlaģılamayan tüm belirsiz noktalar açıklığa kavuģturulmalıdır. Örneğin sayılar bilgisayara nereden verilecek, Klavye, Dosya veya belki baģka bir ortam. Bu ve buna benzer soru ve tereddütleriniz varsa sorun sahibine bunları sormalı ve sistem analizi yapmalısınız. Sonra bulacağımız çözümü algoritma haline dönüģtürebiliriz. 1. BAġLA 2. A sayısını oku 3. B sayısını oku 4. TOPLAM=A + B iģlemini yap 5. TOPLAM değerini ekrana yaz 6. SON Biraz daha karmaģık bir sorun Ģöyle olsun: Klavyeden girilecek iki sayıdan büyük olanından küçük olanını çıkarıp sonucu ekrana yazacak program için bir algoritma geliģtiriniz. A. BAġLA B. A sayısını oku 8

10 C. B sayısını oku D. Eğer A büyüktür B SONUC=A-B Değilse SONUC=B-A E. SONUC değerini ekrana yaz F. SON Gerçekte bir algoritma genellikle üç ana bölümden oluģur. Bunlar : - Algoritmanın giriģ ve ilk iģlemlerinin yapıldığı bölüm - Döngüsel bir bölümün olduğu kesim. Bu bölüm iterasyonlarla bir iģlemin sürekli tekrar edilerek sonuca ulaģmayı sağlayan bölümdür. - Son iģlemlerin yapıldığı bölümdür. Bu bölüm elde edilen sonuçların ekrana yazılmasını sağlayan bölümdür. Örneğin birden Klavyeden girilen bir n değerine kadar sayıları toplayan ve sonucu ekrana yazan bir algoritmayı geliģtirelim. 1. BAġLA 2. N OKU 3. T=0 4. X=1 5. T=T+X 6. X=X+1 7. EĞER X<=N ĠSE 5. ADIMA GĠT 8. T YAZ Bu algoritmalar oldukça basit algoritmalar olup algoritma kavramının yerleģmesini sağlayan örneklerdir. AKIġ ÇĠZGELERĠ Bir algoritmanın Ģekillerle görsel gösterimidir. Dikkat edildiyse algoritma doğal dille yazıldığı için herkes tarafından anlaģılamayabilir ya da istenmese de baģka anlamlar çıkarılabilir. Ancak akıģ çizgelerinde her bir Ģekil standart bir anlam taģıdığı için farklı yorumlanıp anlaģılamaması mümkün değildir. Bir algoritmanın ifade edilebilmesi için kullanılan Ģekiller ve anlamları Ģunlardır: 9

11 10

12 Bu Ģekiller kullanılarak algoritma ile oluģturulan çözümler akıģ çizgelerine çevrilir. Bu Ģekiller herkes tarafından anlaģılabilir ve doğru olarak yorumlanabilir bir özellik arz ederler. 11

13 ARĠTMETĠK VE MANTIKSAL ĠFADELER Bir takım iģlemlerin yapılabilmesi için aritmetik iģlemlerin nasıl tanımlandığını bilmeniz gerekecek. Program akıģının doğru bir Ģekilde sağlanabilmesi için bazı yerlerde karar verilmesi gereklidir. Bu kararların verilmesini sağlayacak Mantıksal ifadeler bilgisayarlar tarafından yapılabilmelidir. Aritmetik Ġfadeler Bir programın istenilen iģleri yerine getirebilmesi için hesap yapabilmesi ve bu hesaplar sonucunda elde edilen değerleri saklayabilmesi gerekmektedir. Genel olarak tüm programlama dillerinde aritmetik iģlemler Ģu Ģekilde tanımlanmıģtır: Değer DeğiĢken aritmetik operatör Değer DeğiĢken 12

14 Bu tip bir gösterimde Değer denilen kesim sabit bir değeri temsil eder. DeğiĢken ise içerisinde her an farklı bir değer tutabilecek bir tanım ifade eder. Aritmetik Operatör ise aritmetik iģlemin özünü oluģturan bir iģleçtir. Aritmetik Operatör Kısaca dört iģlem olarak da ifade edebileceğimiz iģleçlerdir. Çoğunlukla dört tanedirler ve cebirde kullanılan öncelikleri aynı Ģekilde kullanırlar. * Çarpma iģlemini gösteren iģleçtir. Bölme ile eģ önceliklidir. / Bölme iģlemini gösteren iģleçtir. Çarpma ile eģ önceliklidir. + Toplama iģlemini gösteren iģleçtir. Çıkarma ile eģ önceliklidir. - Çıkarma iģlemini gösteren iģleçtir. Toplama ile eģ önceliklidir. Temel olarak bu iģleçler her programlama dilinde bulunur. Öncelikleri yukarıdaki sırada olduğu gibidir. EĢ öncelikli aritmetik ifadeler bulunursa bu ifadelerde iģlem soldan sağa doğru yapılır. Bu iģlem önceliklerini değiģtirmek için her programlama dilinde "(", ")" (Parantez aç-kapa) ifadelerini bulabilirsiniz. Bunlardan hariç olarak bazen üz alma operatörlerinden bahsedilebilir. bazen de mod operatörü ve tam bölme operatörü gibi değiģik ve standart olmayan operatörler yar alabiliyor. Aritmetik Operand Aritmetik ifadelerde iģleme giren tarafların her birine aritmetik operand yani aritmetik iģlenen denir. Yukarıdaki tanımda Değer DeğiĢken ikilisinin her biri iģlenen yani operand tanımını sağlar. Bir aritmetik ifade de bir çift operand ve bir operatör minimum olması gereken ifadelerdir. Ancak daha fazla aritmetik iģlenen ve iģleç olabilecektir. Örneğin A * B + (12 + B) iģlemi de bir aritmetik ifadedir. Değer Aktarma deyimi Genellikle bir aritmetik ifade ile hesaplanan değer baģka bir değiģkene aktarılır. Bu iģlem çoğunlukla "=" sembolü ile gerçekleģtirilir. Ancak baģka bir komut, sembol veya ifade ile de bu değer aktarılması yapılabilir. Mantıksal ifadeler Bir değerin baģka bir değer ile karģılaģtırılması sonucu doğru veya yanlıģ sonuç elde edebilen ifadelerdir. Mantıksal operatörler ve karģılaģtırma operatörlerinin değiģik alternatiflerle bir araya gelmesinden oluģur ve Ģu Ģekilde ifade edilir: Değer DeğiĢken Aritmetik ifade KarĢılaĢtırma Operatörü Değer DeğiĢken Aritmetik ifade KarĢılaĢtırma Değimi Mantıksal operatör KarĢılaĢtırma Değimi KarĢılaĢtırma Operatörü Ġki değer veya aritmetik ifadeyi bir biriyle karģılaģtırmayı sağlayan sembollerdir. = Ġki değerin eģit olup olmadığı karģılaģtıran iģleçtir. >, >= Ġki değerden soldakinin sağdakine oranla büyük olup olmadığını veya büyük eģit olup olmadığı kontrol eden operatördür. <, <= Ġki değerden soldakinin sağdakine oranla küçük olup olmadığını veya küçük eģit olup olmadığı kontrol eden operatördür. <> Ġki değerin farklı olup olmadığını karģılaģtırılan iģleçtir. A>=8 ifadesi a değiģkeni içindeki değeri 8 den büyük mü diye karģılaģtırır. A<>12 ifadesi a değiģkeni içindeki değer 12 den farklı mı diye karģılaģtırır. Mantıksal Operatör 13

15 Birden fazla mantıksal karģılaģtırma deyiminin birleģtirilmesini sağlayan iģleçlerdir. VE, VEYA gibi ifadelerdir. Bu operatörler mantıksal ifadelerden iki veya daha fazlasının mantıksal doğruluk tablolarına göre birleģtirilmesini sağlar. VEYA için doğruluk tablosu VE için doğruluk tablosu P Q P BAYA Q D D D D Y D Y D D Y Y Y P Q P VE Q D D D D Y Y Y D Y Y Y Y Son mantıksal operatör DEĞĠL operatörü olup tek iģlenen alır ve aldığı iģlenenin mantıksal değilini alır. Yani doğru olan değeri yanlıģa yanlıģ olan değeri doğruya çevirir. P D Y DEĞĠL(P) Y D Örneğin bir değiģken içindeki değerin 1 ile 10 arasında olup olmadığını kontrol eden ifade Ģu Ģekildedir: (A>=1 VE A<=10). Bu tür ifadeler yazılırken dikkat edilmelidir örneğin (A>=1 VE A<=10) yerine yanlıģlıkla (A>=1 VEYA A<=10) yazılması her zaman doğru sonuç üretecektir. Yada (A=3 VE A=8) gibi bir ifade de asla doğru olamayacaktır. DEĞĠġKEN VE DĠZĠ TANIMLAMA Bilgisayarda yapılacak hesaplar sonucu elde edilecek değerleri ve dıģarıdan bilgisayara girilecek değerler değiģkenlerde tutulur. DeğiĢkenler içlerinde tuttukları değerlerin türlerine göre sınıflandırılır. Bu değiģkenler bazen basit Ģekilde olmaz kayıt yapısında ya da dizi yapısında olabilirler. Sabit Programın her yerinde aynı değeri ifade eden değerlerdir. DeğiĢkenlerde olduğu gibi sabitler de tür kavramına sahiptir. YazılıĢ tarzına bakarak sabitin türünü anlamak mümkündür. Tam Sayı Sabitleri Sadece rakamlardan oluģan ifadelerdir. Bu tip sayıların içerisinde sadece rakam ve gerekiyorsa iģaret sembolü olabilir. Aritmetik iģlemlere girebilirler. (12, 1233, gibi) Kesirli Sayı Sabitleri Rakam ve ondalık ayıracı olarak. (nokta) sembolü kullanılabilir. Ayrıca iģaret sembolü olarak (-) kullanılabilir. Aritmetik iģlemlere girebilirler. (3.14, gibi) Dizgi Sabitleri Tırnak içerisinde yazılan her ifade dizgi sabiti olarak algılanır. Programlama dillerinde farklı tırnak sembolleri kullanılabilir. Çoğunlukla " sembolü tercih edilir. Aritmetik iģlemlere giremez. ('Malatya', "Merhaba", "Dünya", "12322" gibi). DeğiĢken Her seferinde farklı değerler içerebilen yapıdır. Programlarda değiģkenleri kutu olarak sembolize ederek çözümlemek mümkündür. DeğiĢkenler de sabitlerde olduğu gibi türlere sahiptir. Sabitlerdeki türler aynen geçerlidir. 14

16 Dizi Bazı durumlarda kullanım amacı aynı olan birden fazla hatta oldukça fazla sayıda değiģkene ihtiyaç bulunur. Bu tip bir durumda bu değiģkenler tek tek tanımlanmak yerine bir ad altında indisle tanımlanırlar. bu tanıma dizi denir. Bazı sorunların çözümü için bu tanımlar zorunludur. Mesela 1000 sayıyı sıralamak için basit değiģken tanımlama iģlemi baģarısız olacaktır. Veya bir sınıf listesinin tümünü bilgisayarda tutmak isterseniz basit değiģkenler uygun değildir. Çoğunlukla bu tip bir tanımda dizinin bir adı vardır. EriĢmek istediğiniz dizinin eleman indis değeri ile bu dizi içerisinde istediğiniz elemana ulaģabilirsiniz. A dizisi A(1) A(2) A(3) A(4) A(5) A(6) A(7) A(8) A(9) A(10) Bir dizi bu Ģekilde düģünülebilir. Her bir eleman yukarıdaki gibi isimlendirilir. Bunun bize sağlayacağı avantaj indis değerlerinin değiģkenlerle ifade edilebilmesinde yatmaktadır. Yani tek bir satır komut ile tüm dizi elemanları mesela ekranda yazdırılabilir. ALGORĠTMA ÇALIġTIRMA Bazen Bir takım algoritmaların ne iģe yaradığını anlamak veya algoritmanın doğru çalıģıp çalıģmadığını test etmek için algoritmayı çalıģtırmak gereklidir. Algoritmayı çalıģtırmak demek algoritmanın adımlarını sıra ile uygulamak, oluģan değiģken değerlerini bir tablo üzerinde göstermek demektir. 1. BAġLA 2. A OKU 3. B OKU 4. C OKU 5. TOP=0 6. SAY=A 7. TOP = TOP+SAY 8. SAY=SAY+C 9. EĞER SAY<=B ĠSE 7. ADIMA GĠT 10.TOP YAZ 11.SON ġeklinde verilmiģ bir algoritmamız olsun. Bu algoritma için A 3, B 12 ve C 2 değerleri girilince SAY ve TOP değiģkenlerinde hangi değerlerin oluģacağını algoritmayı adımlayarak gösterelim. DeğiĢkenlerin Her birinin Değeri Açıklama A B C TOP SAY adıma kadar programın ilk çalıģtırılıģında değiģkenlerin elde ettiği değer ve 8. adımların çalıģtırılmasından sonraki değerler ve 8. değerler tekrar çalıģtırılıyor <=12 olduğu için 7. ve 8. tekrar çalıģtırılıyor <=12 olduğu için 7. ve 8. tekrar çalıģtırılıyor <=12 olmadığı için algoritma 10. satırdan çalıģmaya devam edecektir. Ve 10. satırdaki ifadeden dolayı ekrana 35 değeri yazılacaktır. 15

17 SAYI SĠSTEMLERĠ Bir Bilgisayar sisteminde tüm bilgi kayıtları ve iģlemleri elektriksel devreler üzerinden gerçekleģtiği için tek bilinen gerçek elektrik akımının varlığı veya yokluğudur. Bu da matematiksel ve mantıksal olarak ikili sayı sistemine karģılık gelir. Çoğunlukla ikili sayı sistemindeki 0 değeri elektrik olmadığını 1 değeri ise bir elektriksel gerilimin olduğunu anlatır. Bu iki sayısal değer (0 ile 1) ikili sayı sisteminin rakamlarıdır. Ve bilgisayarda oluģan tüm değer ve sonuçlar gerçekte bu rakamlar ile anlatılabilirler. Ancak bizim bu sayısal değerleri anlamamız zor olduğu için sayısal olarak onluk sayı sistemini kullanırız. Tabandan Tabana Çevrim Böyle olunca sayıların gerektiği durumlarda tabandan tabana çevrilebilmesi gereklidir. Ġlköğrenim düzeyinde görmüģ olabileceğiniz yöntemlere burada bir değinmekte fayda bulunmaktadır. Bu rakamların her biri bilgisayar da bit denilen alanlarda tutulmaktadır. Ġkili Sayı isteminden onlu sayı sistemine çevrim Elimizdeki ikili sayının en sağındaki basamak sıfırıncı basamak olmak kaydıyla tüm basamaklarımız sola doğru numaralandırılır. Sonra her basamaktaki sayısal değeri 2 basamak değeri ile çarpar ve bulunan tüm değerleri toplarız =1* * * * * * * *2 7 = =155 Onlu Sayı isteminden ikili sayı sistemine çevrim Eldeki onlu sayı sürekli 2 değerine bölünerek iģlem yapılır. Bölme iģlemi en son bölümün 0 olduğu noktaya kadar devam eder. Elde edilen bölme tablosunda en son kalanlar sondan baģa doğru yan yana yazılır ve sayının ikilik tabandaki karģılığı bulunmuģ olur. Örneğin elimizde 156 gibi sayısal bir değer olsun. ĠġLEM BÖLÜM KALAN 155/ / / / / /

18 2/ /2 0 1 Sonuç Kalan sütunundaki değerlerin aģağıdan yukarı dizilmesi ile olarak elde edilir. Diğer Sayı Sistemleri 0..X Ģeklinde bir dizi rakama sahip olan sayı sistemleri X+1 li sayı sistemi olarak anılır. Örneğin 0..7 arasında rakamlarla ifade edilen sayı sistemi 8 li sayı sistemidir. Bunun gibi bir programcının bilmesi gerekebilecek 16 li sayı sistemi vardır. Bu sistemde sayılar 0..9 a kadar gider ve sonrasında A,B,C,D,E,F gibi rakamları da 10,11,12,13,14,15 gibi değerleri ifade etmek için kullanılır. Bu sayı sistemleri haricinde 3 lü, 5 li vb sistemler bulunabilir/bulunur. Ancak bir bilgisayar programcısı ikili, sekizli, onlu, onaltılık sistemleri kullanır ve bu sistemlerden haberdardır. VERĠ ĠġLEME Bilgisayarımızda anlatmak, görmek, duymak istediğimiz her bilgi veya medya bilgisayar ortamında sayısal olarak saklanır. Bunların üzerinde yapacağınız iģlemlerin çoğu da aslında matematiksel veya mantıksal iģlemlerdir. Örneğin bir çizim bilgisayarda nokta nokta saklanır. Ġki boyutlu bir düzlem üzerinde (0,0) koordinatındaki noktanın rengi sayısal olarak verilir. Örneğin bu değer 0 ise renk siyah ise renk beyazdır. Bu sayısal değeri değiģtirerek (0,0) koordinatındaki noktanın rengini değiģtirmiģ olursunuz. Aynen bu Ģekilde tüm bilgiler bilgisayar ortamında uygun sayısal veriler Ģeklinde tutulur. Yapılacak iģlemler bu verilerin üzerinde matematiksel ya da mantıksal yollarla yapılan iģlemlerdir. Bir resmin büyütülüp küçültülmesi resimlerin üzerine efekt eklenmesi, seslere efektlerin eklenmesi, video görüntülerinde istenilen ekleme ve çıkarmaların yapılması, bir nesnenin üç boyutlu görüntüsünün elde edilip hareket kazandırılması gibi onlarca konu veri iģleme esaslarına dayanan hesaplamalarla elde edilir. Bu tip kavramların her biri için internet ten algoritma vb. aratılıp kullanılabilir. ALGORĠTMA ÖRNEKLERĠ VE SORULAR 17

19 Klavyeden girilecek X değerinden N değerine kadar tüm doğal sayıları listeleyen algoritmayı geliģtiriniz. Çözüm: X değiģkeni ve N değiģkeni klavyeden girilecek olup X den N e kadar elde edilecek her bir değer ekrana yazılacaktır. 1. X OKU 2. N OKU 3. X YAZ 4. X=X+1 5. EĞER X<=N ĠSE 3. ADIMA GĠT 6. SON Klavyeden girilecek bir N değerine kadar fibonecci dizisini bulan algoritmayı geliģtiriniz. Fibonecci dizisi 1 1 değerleri ile baģlar ve yeni değer kendinden öndeki iki değerin toplamı olarak bulunur. ( ) Çözüm: Fibonacci dizisi a,b,c Ģeklinde 3 değiģken ile hesaplanabilecek bir dizidir. Çünkü sürekli a ile b toplanarak c üretilir ve sonra bu a, b, c değiģkenleri kaydırılır. 7. N OKU 8. A=1 9. B=1 10.A,B YAZ 11.C=A+B 12.EĞER C>N ĠSE 11. GĠT 13.C YAZ 14.A=B 15.B=C ADIMA GĠT 17.SON Klavyeden girilen bir sayının tüm tam bölenlerini bulup listeleyen (Ekrana yazan) bir algoritma geliģtiriniz. Çözüm: Bu örneği çözebilmek için böleni kalma operatörünün varlığını kabul edeceğiz. Bu amaçla Cdilinde de kullanılan % operatörünü kalanı bulma operatörü olarak kullanacağız. 18.N OKU 19.X=1 20.EĞER N%X=0 ĠSE X YAZ 21.X=X+1 22.EĞER X<=N ĠSE 3. ADIMA GĠT 23.SON Klavyeden girilen üç sayıdan büyüklük sıralamasına göre ortadakini bulup ekrana yazan program için algoritma yazınız. Çözüm: Bu algoritma üç sayının klasik yollarla sıralanmasını ya da büyüklük sıralamasının bulunmasının ne denli zor olduğunu anlatmaya çalıģan bir örektir. 24.A, B, C OKU 25.EĞER A>B VE B>C ĠSE B YAZ 26.EĞER C>B VE B>A ĠSE B YAZ 27.EĞER B>A VE A>C ĠSE A YAZ 28.EĞER C>A VE A>B ĠSE A YAZ 29.EĞER A>C VE C>B ĠSE C YAZ 30.EĞER B>C VE C>A ĠSE C YAZ 31.SON 18

20 Klavyeden girilen A ve B gibi iki sayının bölme iģlemi kullanmadan sadece toplama ve çıkarma kullanarak kalanlı bölme yapan algoritmayı yazınız. Çözüm: Bu örnek çok eski iģlemcilerde çarpma iģleminin tanımlı olmadığı durumlar için çarpma ya da bölme yapmak amacıyla kullanılan algoritma olarak karģımıza çıkmıģtır. Ġlk okulda da fasulye hesabına dayanarak çarpmayı öğrendiğimiz yılları hatırlamamızı sağlayabilir. 32.A,B OKU 33.BOLUM=0 34.KALAN=0 35.EĞER A<B ĠSE KALAN=A, 8. ADIMA GĠT 36.A=A-B 37.BOLUM=BOLUM ADIMA GĠT 39.BOLUM, KALAN YAZ Klavyeden girilen A ve B gibi iki sayıyı, çarpma iģlemi kullanmadan sadece toplama ve çıkarma kullanarak çarpıp sonucu ekrana yazan algoritmayı yazınız. Çözüm: 40.A, B OKU 41.SAY=0 42.TOPLA=0 43.EĞER SAY>=B ĠSE 8. ADIMA GĠT 44.TOPLA=TOPLA+A 45.SAY=SAY ADIMA GĠT 47.TOPLA YAZ Sıfır 0 girilinceye kadar klavyeden okutulan değerlerin ortalamasını hesaplayıp ekrana yazan algoritmayı geliģtiriniz Çözüm: Bu örnekte bir toplam değerini tutabilecek bir de sayıları sayabilecek iki değiģkene ihtiyaç vardır. Klavyeden girilen her değer sıfır ile karģılaģtırılacak değilse iģleme devam edilecektir. Sıfır ise ortalama hesaplanıp ekrana yazılacaktır. 48.T=0 49.SAY=0 50.X OKU 51.EĞER X=0 ĠSE 8. ADIMA GĠT 52.T=T+X 53.SAY=SAY+X ADIMA GĠT 55.ORT=T / SAY 56.ORT YAZ Klavyeden girilecek 20 sayının tek olanlarını ayrı çift olanlarını ayrı toplayıp sonuçları ekrana yazan algoritmayı geliģtiriniz Çözüm: Bu algoritmada yine % operatörünün kalanı bulan operatör olarak kullanılacağını varsayıyoruz. Çünkü bu algoritmada bir sayının çift mi tek mi olduğunu anlamak ancak ve ancak o sayının ikiye bölümünden kalanın 1 mi 0 mı olduğuna bağlıdır 57.CIFT=0 58.TEK=0 59.SAY=0 19

21 60.X OKU 61.SAY=SAY+1 62.EĞER X%2=0 ĠSE CIFT=CIFT+X DEĞĠLSE TEK=TEK+X 63.SAY=SAY+1 64.EĞER SAY<20 ISE 4. ADIMA GĠT 65.TEK, CIFT YAZ Bir n değeri için geliģtiriniz. f( x ) n x x Ģeklindeki fonksiyonun değerini hesaplayıp ekrana yazan algoritmayı Çözüm: Bu algoritma oldukça basit bir Ģekle sahip olup benzer Ģekildeki tüm fonksiyonları küçük değiģikliklerle rahatça hesaplayabilecek bir algoritmadır. Sadece 4. adımı değiģtirerek oldukça fazla sayıda algoritma veya sorun türetilebilir. 66.N OKU 67.F=0 68.X=1 69.F=F+1/(X*X) 70.X=X+1 71.EĞER X<=N ĠSE 4. ADIMA GĠT 72.F YAZ n 1 f ( x ) Ģeklindeki bir fonksiyon için f(x)>=kk Ģartını sağlayan en küçük n değerini bulabilecek 2 x x 1 bir algoritma geliģtiriniz. Kk ve n değerlerinin klavyeden girildiğini düģünelim Çözüm: 73.KK OKU 74.N OKU 75.F=0 76.X=1 77.F=F+1/(X*X) 78.X=X+1 79.EĞER F<KK ĠSE 5. ADIMA GĠT 80.F,X YAZ Genel Gösterimi Xn=n2 Ģeklinde olan bir dizinin n. Elemanına kadar tüm elemanlarını ekranda yan yana gösterecek programın algoritmasını geliģtiriniz. Çözüm: Yan yana veya alt alta bu konuda algoritma düzeyinde yapabilecek bir tanım yok bu iģlem daha çok Programlama dili ile hallolabilecek bir iģlemdir. Bu nedenle burada o ifade dikkate alınmamıģtır. 81.N OKU 82.X=1 83.X*X YAZ 84.X=X+1 85.EĞER X<=N ĠSE 3. ADIMA GĠT 86.SON 20

22 Klavyeden 0-Sıfır girilinceye kadar girilen bir dizi sayının karelerinin ortalamasını bulacak program için algoritma geliģtiriniz. Çözüm: Bu algoritma 7.sorudaki algoritmaya benzer bir algoritmadır. Ve bu Ģekilde biri birine çok benzeyen bir sürü örnek verilebilir ve soru sorulabilir. 87.SAY=0 88.T=0 89.X OKU 90.EĞER X=0 ĠSE 8. ADIMA GĠT 91.T=T+X*X 92.SAY=SAY ADIMA GĠT 94.ORT=T/SAY 95.ORT YAZ Klavyeden girilecek iki pozitif tam sayının OBEB (Ortak Bölenlerin En Büyüğü) ini bulacak algoritmayı geliģtiriniz. Örneğin elimizde 3654 ve 1365 değerleri olsun. Bu değerlerin OBEB i Ģu Ģekilde bulunmaktadır / 1365 Kalan / 924 Kalan / 441 Kalan / 42 Kalan / 21 Kalan 0 Kalan 0-Sıfır oluncaya kadar sıra ile bölme yapılmaktadır. OBEB değeri ise 21 olarak bulunan değerdir. Bu iģlem sırasında ve yineleme özelliklerini kullanarak iki sayının OBEB ini bulunuz. Kalanı bulmak için % operatörünün tanımlı olduğunu varsayıp kullanabilirsiniz. Çözüm: 96.A, B OKU 97.KALAN=A%B 98.EĞER KALAN=0 ĠSE 7. ADIMA GĠT 99.A=B 100.B=KALAN ADIMA GĠT 102.B YAZ 21

23 C C Programlama Dili genel amaçlı orta seviyeli ve yapısal bir programlama dilidir yılında Dennis Ritchie tarafından Bell Telefon Labaraturvarında tasarlanmıģtır. C, özellikle sistem programlamada sembolik makine dili(assembler) ile tercih edilmektedir. ĠĢletim sistemleri, derleyiciler ve debug programları gibi aģağı seviyeli sistem programlarının yazılımında yoğun olarak C programlama dili kullanılır. C güçlü ve esnek bir dildir. C ile iģletim sistemi yazabilir, kelime iģlemciler oluģturabilir veya grafik çizebilirsiniz. C taģınabilir bir dildir. Yani herhangi bir C kodu hiçibir değiģikliğe uğramadan, veya çok az bir değiģimle, baģka bir derleyicide derlenebilir. Örneğin, Windows iģletim sistemlerinde yazılan bir C kodu, Linux, UNIX veya VAX gibi iģletim sistemlerinde de derlenebilir. C yapısal bir dildir. C kodları fonksiyon olarak adlandıralan altprogramlardan oluģmuģtur. AĢağıdaki örnekte verilen C programı derlendikten sonra, ekrana 'Merhaba Dünya!' yazacaktır. Program derlendikten sonra ekrana Merhaba Dünya! yazar. /* ilk.c programi */ #include <stdio.h> printf("merhaba Dünya!\n"); return 0; C Kodlarının Temel Özellikleri Bir C programı aģağıda verilen özellikleri mutlaka taģımalıdır. Her C programı fonksiyonunu içermelidir. Satırın sonuna; iģareti konmalıdır. Her fonksiyonun baģlangıcı ve bitiģi sırasıyla ve sembolleri ile belirlenir. C dilinde yazılan kodlarda küçük-büyük harf ayrımı vardır (case sensitive). Örneğin A ile a derleyici tarafından farklı değerlendirilir. Açıklama operatörü /* */ sembolleridir. DeğiĢken isimleri en fazla 32 karakterden oluģabilir. 32 karakterden uzun değiģken isimlerinin ilk 32 karakteri değerlendirilir. Geriye kalan karakterler iģleme tabi tutulmaz. DeğiĢken adları Ġngiliz alfabesinde bulunan karakterler (A-Z) veya (a-z) ile yazılmalıdır. DeğiĢken adları herhangi bir rakam ile baģlayamaz. Ġlk karakter bir harf olmalıdır. AĢağıda verilen kelimeler C deyimleridir ve değiģken ismi olarak kullanılamaz. 22

24 Auto enum short volatile Break extern signed while Case float sizeof Char for static Const goto struct Continue if switch Default int typedef Do long union Double register unsigned Else return void 2.2 Veri Tipleri Veri tiplerini vermeden önce yazılan bir programın geçtiği aģamalara göz atalım Int Tip Integer = Tamsayı Tamsayıları içerir. Bellekte 2 Byte tutar. 5, -19, gibi Minimum : = Maksimum : = Gerçel Tipler (Float, Double) Gerçel sayıları içerirler. float : Bellekte 4 Byte yer tutar. 3.4E-38 ile 3.4E+38 aralığında değer alır. Hassasiyet 7-8 basamaktır. double : Bellekte 8 Byte ter tutar. 1.7E-308 ile 1.7E308 aralığında değer alır. Hassasiyet basamaktır , -5.2, 4.0 Bilimsel gösterim biçimi 2.5*10 3 = 2.5E3 2.5*10-3 = 2.5E Char Tip Char : Karakter : Alfanumerik karakterleri içerir. '5', '*', 'K' 2.3 Sabitler (CONST) #include <stdio.h> 23

25 const float PI=3.14; // Tanımlama kısmı float r, Alan; scanf("%f",r); alan := PI*r*r; printf(('alan = %f', alan); CONST (sabit) : Değeri programın çalıģması boyunca değiģtirilemez. Kullanım biçimi const tip Belirleyici=değeri; const float PI=3.14; Tip belirtilmez ise tamsayı kabul edilir. 2.4 DeğiĢkenler Değeri programın çalıģması boyunca değiģtirilekir. Kullanım biçimi: Tip Belirleyici [,Belirleyici] ; int i; float alan; Veri Tipi Açıklama Bellekte iģgal Alt sınır ettiği boyut (bayt) Üst sınır char Tek bir karakter veya unsigned 1 küçük tamsayı için char short int -32,768 32,767 unsigned Kısa tamsayı için 2 short int 0 65,535 int -2,147,483,648 2,147,483,647 Tamsayı için 4 unsigned int 0 4,294,967,295 - long int 9,223,372,036,854,775,808 9,223,372,036,854,775,807 Uzun tamsayı için 8 unsigned 0 18,446,744,073,709,551,615 long int float Tek duyarlı gerçel 4 sayı için (7 basamak) -3.4e +/ e +/- 38 double Çift duyarlı gerçel sayı 8 için (15 basamak) -1.7e +/ e +/ Belirleyiciler (Identifier) BileĢenlere isim verme. (Sabit, değiģken, altprogram, etiket, tipler (kullanıcı tanımlı)) Kısıtlamalar. Ġlk karakteri rakam olamaz. Sadece harfler, rakamlar ve _ (underscore) karakterinin birleģiminden oluģabilir.. C diline ait saklı (reserved) sözcükler kullanılamaz.. En fazla 31 karakter olabilir.. Küçük - büyük harf ayırımı vardır. 24

26 2.5.2 isimlerin Seçimi. Belirleyicinin kullanım amacına uygun anlamlı isim seçin. (Hungarian notation). Ne fazla kısa ne de fazla uzun olsun karakter uzunluğunda olmasını alıģkanlı edinin. 2.6 Matematiksel ifadeler Matematiksel ifadeleri günlük hayattaki biçimde bilgisayarda yazamadığımız için belli bir kurallar uymamız gerekir. Kullandığımız matematiksel iģlemler ve anlamları Ģöyledir: +, -, *, / toplama, çıkarma, çarpma, bölme % tamsayı bölme sonucundaki kalanı verir (modulus) 7. / 2 ---> 3.5 (nokta sayının gerçel yorumlanmasını sağlar) 7 / 2 ---> 3 (sayılar int kabul edilip sonuçta int tipine dönüģtürülür) 7 % 2 ---> 1 2 % 7 ---> 2 2 / 7 ---> 0 Matematiksel ifadeler hesaplanırken izlenen adımlar: 1. Önce parantez içindeki ifadeler hesaplanır. Ġçiçe parantezler var ise hesaplamaya en içteki parantezden baģlanır. 2. ilk önce *, / ve % iģlemleri daha sonra + ve - iģlemleri yapılır. 3. Öncelik sırası aynı olan iģlemlerde hesaplama soldan sağa doğru yapılır. 5./2*3 --> 7.5 Bir C Programının Genel Yapısı baģlık dosyaları. Kullanılan deyimler ile ilgili sabitler ; sabitlerin tanımlama bölümü değiģkenler; değiģkenleri tanımlama bölümü deyimler; Program gövdesi 2.7 Atama Deyimi (Assignment) Bir değiģkene bir değer(sabit, değiģken, ifade) vermek. DeğiĢkenAdı = değer; x = 8 ; y = x + 15 ; y = (8 - x) / (2 - x) ; 25

27 5x 2 +2 fonksiyonunun x=4.8 noktasındaki değerini float x, y ; x = 4.8; y = 5 * x * x + 2; Vize ve final notlarınından geçme notu float vize, final, ort; vize = 50; final = 60; ort = vize * final * 0.6; 1998 yılına kadar geçen gün sayısı float gun; int yil = 1998; gun = 365 * (yil - 1); gun = gun + (yil -1 ) / 4; 2.8 printf iģlevi Program içinde istenen değerleri çıktı birimlerine göndermek için kullanılır. Normal kullanımında çıktı birimi olarak ekran kabul edilir. Kullanım biçimi: prinf( kontrol, <parametreler>) <kontrol> ile belirtilen bilgiye göre parametreleri yazar. Kontrol metini iki kısımdan oluģur. o sıradan karakterler: doğrudan yazılırlar. o dönüģüm/biçim belirleyici karakterler: Değerlerin nasıl yazılacağı bildirilir. printf(" sonuç = %d", k); --- integer değer yazılacaktır ekrana aynen aktarılır DönüĢüm belirlemek için önce % karakteri ve ardından dönüģümün nasıl olacağını belirten karakter verilir. Bu karakterlerden bazıları: Değişken Yazım ve Okutma Formatları: %c : Karakter değişkenleri yazdırma yada okutmada kullanılır. Ör: Printf("\n %c",x); %d : Tamsayı değişkenleri yazdırma yada okutmada kullanılır. %f : Ondalık sayı değişenleri yazdırma yada okutmada kullanılır. %lf : Double değişkenleri yazdırma yada okutmada kullanılır. %s : String değişkenleri yazdırma yada okutmada kullanılır. %o : Octal 8' lik taban değişkenleri yazdırma yada okutmada kullanılır. %x : Hexadesimal değişkenleri yazdırma yada okutmada kullanılır. %lf : Daha büyük double değişkenleri yazdırma yada okutmada kullanılır. %e : Üstel yazdırma (sayıyı bilimsel gösterimde yaz) %ld : long integer %lu : unsigned long integer %Le : long double %u : unsigned decimal İmleç Konumlandırma \n : satır başı \a : zil \t : tab \b : bir karakter geri program parçası ekranda görünen / imleçin konumu i = 5 ; printf("%d",i) ; 5 26

28 printf("'i=%d",i) ; i=5 printf("i=") ; printf("%d",i) ; i=5 - printf("i=\n") ; i= printf("%d",i) ; 5 alt satıra geçer printf('i=%d\n",i) ; i=5 alt satıra geçer printf("%d - %d",i, 5*i); 5-25 Biçimli yazdırma % karakteri ile dönüģüm karakteri arasına aģağıdaki karakterler de kullanılabilir. - : sola dayalı yaz m : yazılacak değer için ayırılan alan n : değerin kaç karekteri yazılacağı s = "ABCDEF" printf("%10s ",s); printf("%10.3s ",s);.... A B C D E F A B C x = ; printf("%7.2f",x) ; # x = ; printf("%6.3f",x) ; printf("%6.1f",x) ; ## 85.5 Yarıçapı belli dairenin alanını hesaplayan programı yazınız. (ilk yazılan program) #include <stdio.h> const float PI=3.14; float r, alan; r = 7; alan := PI*r*r; printf(('alan = %f', alan); 27

29 En fazla dört basamak olabilen sayının basamak değerlerini yazdır. % ve / iģlemlerinin kullanımı. #include <stdio.h> int i,y; y=1985; i= y / 1000; printf("%d",i); y= y-i*1000; i= y / 100; printf(" %d",i); y = y-i*100; i= y / 10; printf(" %d",i); y = y-i*10; printf(" %d\n",y); i = 1985; printf("%d ",i / 1000); printf("%d ",(i / 100) % 10); printf("%d ",(i / 10) % 10); printf("%d\n",i % 10); ax 2 +bx+c=0 tipi bir denklemin köklerini veren programı yazınız. Girdi : a, b ve c katsayıları Çıktı : denklemim kökleri Algoritma : 1. a, b ve c katsayılarını oku. 2. Delta= değerini hesapla. 3. x 1 ve x 2 değerlerini hesapla. 4. Kökleri yaz. Programın kodlanması: #include <stdio.h> /* printf iģlevi için */ #include <math.h> /* sqrt iģlevi için */ float a, b, c; float x1, x2; float d; a = 1; b = -3; c = 2; d = b * b - 4 * a * c; x1 = (-b + sqrt(d)) / (2 * a); 28

30 x2 = (-b - sqrt(d)) / (2 * a); printf("kökler = %f, %f",x1, x2); C dilinde karekök almak için bir deyim yoktur. Örnekte bunu yerine getiren C diline eklenmiģ olan sqrt() fonksiyonu kullanılmģtır. AĢağıda buna benzer artık C derleyecilerinde standart olmuģ bazı fonksiyonlar verilmiģtir. Bu iģlevler math.h baģlık dosyasında tanımlıdır. Fonksiyon x,y Sonuç abs(x) int int x'in mutlak değeri fabs(x) double double x'in mutlak değeri pow(x, y) double double x y sqrt(x) double double x'in karekökü exp(x) double double e x değeri log(x) double double ln(x) değeri log10(x) double double log 10 (x) değeri ceil(x) double double x ten büyük ilk tamsayı floor(x) double double x ten küçük ilk tamsayı Örnekler: ceil(5) 5 ceil(5.2) 6 ceil(-5.2) -5 floor(5) 5 floor(5.2) 5 floor(-5.2) -6 #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]) double x,y,sonuc; printf("x sayisini giriniz.\n\n"); scanf("%lf",&x); printf("y sayisini giriniz.\n"); scanf("%lf",&y); sonuc=abs(x); printf("x sayisinin mutlak degeri=%0.2lf\n\n",sonuc); sonuc=pow(x,y); printf("x^y=%0.2lf\n\n",sonuc); sonuc=sqrt(x); printf("x sayisinin koku=%0.2lf\n\n",sonuc); sonuc=exp(x); 29

31 printf("e^x=%0.2lf\n\n",sonuc); sonuc=log(x); printf("ln(x) degeri=%0.2lf\n\n",sonuc); sonuc=log10(x); printf("log10(x) degeri =%0.2lf\n\n",sonuc); sonuc=ceil(x); printf("x ten buyuk ilk tamsayi degeri =%0.2lf\n\n",sonuc); sonuc=floor(x); printf("x ten kucuk ilk tamsayi degeri =%0.2lf\n\n",sonuc); getch(); 2.9 scanf ĠĢlevi Klavyeden veri okumak için kullanılır. Yapı olarak printf iģlevi ile hemen hemen aynıdır. Kullanım biçimi: scanf( kontrol, <değiģkenler>) Girilen karakterler <kontrol> metininde belirtilen biçimlere göre değiģkenlere aktarılır. DeğiĢkenler iģaretçi tipinde olmalıdır. Yani parametre olarak değiģkenin adresi gönderilmelidir. Ayırıcılar boģluk, tab, enter scanf("%f %f %f ", &a, &b, &c); scanf iģlevinin değeri 0 ise hiçbir değiģkene değer atanmamıģ >0 ise baģarılı bir Ģekilde değer atanan değiģken sayısı int a,b,c; float m,n; scanf("%d", &a); scanf("%d %d",&a,&b) aktarılır. scanf("%f %d", &m, &a); Klavyeden tamsayı okur. Girilen değer a değiģkenine aktarılır. Klavyeden girilen ilk değer a değiģkenine, ikinci değer b değiģkenine Klavyeden ilki gerçel, ikincisi tamsayı olmak üzere iki değer okur. Ġkinci dereceden denklem çözümünün yapıldığı örnekte katsayıları klavyeden okutmak istersek scanf("%f %f %f ", &a, &b, &c); Farklı kullanıcı arayüzünde yazarsak printf( Katsayıları sırasıyla giriniz (a b c) : ); scanf("%f %f %f ", &a, &b, &c); printf( a katsayısını giriniz : ); scanf( %f, &a); printf( b katsayısını giriniz : ); scanf( %f, &b); printf( c katsayısını giriniz : ); scanf( %f, &c); 30

32 Vize ve final notlarınından ortalamayı hesaplayan programda değerlerin klavyeden okunmuģ hali. float vize, final, ort; printf( Vize notunu giriniz ); scanf( %f, &vize); printf( Final notunu giriniz ); scanf( %f, &final); ort = vize * final * 0.6; printf( Ortalaması = &f\n, ort); 2.10 Mantıksal ifadeler Sonucu Doğru veya YanlıĢ olan ifadelerdir. Sonuç sıfır ise yanlıģ aksi halde doğru kabul edilir. ĠliĢkisel iģleçler(operatör) : iki değer arasındaki iliģkiyi test etmek için kullanılır. iģleç anlamı > büyük >= büyük - eģit == eģit < küçük <= küçük - eģit!= eģit değil x=8, y=5 için x > y Doğru x < y YanlıĢ x!=y Doğru Mantıksal iģleçler : Ġki mantıksal ifade arasındaki iliģki üzerindeki iliģkide kullanılır.! DEĞĠL (NOT) && VE (AND) VEYA (OR) (X>0) && (X>Y) (X>0) (Y>0) Ġfadelerde iģleçlerin yürütülme sırası iģleç Önceliği ( ) en yüksek (ilk yürütülür)! *, /, % +, - <, <=, >=, > ==,!= &&, = en düģük (son yürütülür) = iģleci sağdan sola, diğerleri soldan sağa doğru yürütülür. 31

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Programlamaya Giriş Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Programın Yazımında İzleyeceğimiz Adımlar Problemi anla. İhtiyaçları belirle. Problemin

Detaylı

Programlamaya Giriş ve Algoritmalar Ders Notları

Programlamaya Giriş ve Algoritmalar Ders Notları Programlamaya Giriş ve Algoritmalar Ders Notları Revizyon ve Baskı Bilgisi 69/17.10.2007 01:51:28 PM Genel Programlama Bilgisi Bir Programcının Program yazabilmesi için yapması gereken çalışmalar ve bilmesi

Detaylı

Programlama Temelleri. Ders notları. Öğr.Gör. Hüseyin Bilal MACİT 2017

Programlama Temelleri. Ders notları. Öğr.Gör. Hüseyin Bilal MACİT 2017 Programlama Temelleri Ders notları Öğr.Gör. Hüseyin Bilal MACİT 2017 İkili (binary) sayı sistemi Bilgisayarın bizim kullandığımız onlu sayı sistemini (decimal) işlemesi mümkün değildir. İkili sayı sistemi

Detaylı

Genel Programlama II

Genel Programlama II Genel Programlama II 15.02.2011 1 Genel Programlama Tekrar Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Önceki bölümde bir problemin çözümü ile

Detaylı

Genel Programlama I

Genel Programlama I Genel Programlama I 30.09.2010 1 Genel Programlama I Ders İçeriği Programlamaya giriş ve algoritma kavramları Basit ve karmaşık veri tipleri Program kontrol komutları (Döngü ve şart yapıları) Diziler ve

Detaylı

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK Giriş-Tanımlamalar Program Nedir? Tanımlanmış bir problemi bilgisayar ortamında çözen ürüne program denir. Programlama Nedir? Tanımlanmış

Detaylı

Program AkıĢ Kontrol Yapıları

Program AkıĢ Kontrol Yapıları C PROGRAMLAMA Program AkıĢ Kontrol Yapıları Normal Ģartlarda C dilinde bir programın çalıģması, komutların yukarıdan aģağıya doğru ve sırasıyla iģletilmesiyle gerçekleģtirilir. Ancak bazen problemin çözümü,

Detaylı

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü Algoritma ve Programlamaya Giriş Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü Güncellenme tarihi: 27.02.2017 Yazılım nedir? Donanım birimlerini istenen işleme

Detaylı

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü Algoritma ve Programlamaya Giriş Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü Güncellenme tarihi: 13.03.2017 Yazılım nedir? Donanım birimlerini istenen işleme

Detaylı

Algoritma ve Programlamaya Giriş - 1

Algoritma ve Programlamaya Giriş - 1 200 2010 Algoritma ve Programlamaya Giriş - 1 Bilgisayar Programcılığı 1. Sınıf öğrencilerinin programlama derslerinde kullanmaları için hazırlanmış ders notlarını içermektedir. Bu çalışma maddi bir amaç

Detaylı

ALGORİTMAYA GİRİŞ. Program: Belirli bir işi gerçekleştirmek için gerekli komutlar dizisi olarak tanımlanabilir.

ALGORİTMAYA GİRİŞ. Program: Belirli bir işi gerçekleştirmek için gerekli komutlar dizisi olarak tanımlanabilir. 1 ALGORİTMAYA GİRİŞ Program: Belirli bir işi gerçekleştirmek için gerekli komutlar dizisi olarak tanımlanabilir. Programlama: Bir programı oluşturabilmek için gerekli komutların belirlenmesi ve uygun biçimde

Detaylı

Algoritma ve Programlamaya Giriş

Algoritma ve Programlamaya Giriş Algoritma ve Programlamaya Giriş Algoritma Bir sorunu çözebilmek için gerekli olan sıralı ve mantıksal adımların tümüne Algoritma denir. Doğal dil ile yazılabilir. Fazlaca formal değildir. Bir algoritmada

Detaylı

Fortran komut satırı toplam 80 kolon ve 5 bölgeden oluģur. Komut satırının yapısı aģağıdaki gibidir:

Fortran komut satırı toplam 80 kolon ve 5 bölgeden oluģur. Komut satırının yapısı aģağıdaki gibidir: FORTRAN (FORmula TRANslation) Fortran komut satırı toplam 80 kolon ve 5 bölgeden oluģur. Komut satırının yapısı aģağıdaki gibidir: 1 2...5 6 7...72 73...80 A B C D E A Bölgesi: (1. kolon) B Bölgesi: (2-5

Detaylı

Programlamaya Giriş ve Algoritmalar Ders Notları

Programlamaya Giriş ve Algoritmalar Ders Notları Programlamaya Giriş ve Algoritmalar Ders Notları Revizyon ve Baskı Bilgisi 69/17.10.2007 01:51:28 PM İçindekiler İçindekiler...2 Genel Programlama Bilgisi...3 Tanımlar...5 Bilgisayar Nedir?...5 Bilgisayar

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 2. BÖLÜM 2 PROGRAMLAMAYA GİRİŞ Programlama Terimleri ve Programlama Ortamı 3 Program Programlama IDE

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları

Detaylı

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

Detaylı

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n KONTROL DEYİMLERİ Kontrol deyimleri bir programın normal akıģını değiģtirmek için kullanılır. Aksi söylenmedikçe programın komut satırları birbiri ardına çalıģtırılır. Program içindeki yapılan sorgulamalara

Detaylı

KİM 103 BİLGİSAYAR І DERS NOTU

KİM 103 BİLGİSAYAR І DERS NOTU KİM 103 BİLGİSAYAR І DERS NOTU Tanımlar Bu ders notlarının daha iyi anlaşılabilmesi için şu tanım ve kavramların bilinmesinde fayda bulunmaktadır. Bilgisayar Nedir? Verileri İşleyerek Özet bilgiler şekline

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler C Programlama Dr. Serkan DİŞLİTAŞ 3.1. Sabitler Sabitler, tanımlanmasıyla birlikte program içerisinde

Detaylı

PROGRAMLAMA DİLİNDE ALGORİTMA

PROGRAMLAMA DİLİNDE ALGORİTMA Algoritma Nedir? PROGRAMLAMA DİLİNDE ALGORİTMA Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne denir. Doğal dille yazılabileceği için fazlaca formal değildir. Bir algoritma için

Detaylı

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA 6. HAFTA EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA Öğr. Gör. S. M. Fatih APAYDIN apaydin@beun.edu.tr EMYO Bülent Ecevit Üniversitesi Kdz. Ereğli Meslek Yüksekokulu ALGORİTMA ÖRNEK1: İki sayının toplamı

Detaylı

Bölüm 2 - C ile Programlamaya Giriş

Bölüm 2 - C ile Programlamaya Giriş 1 Bölüm 2 - C ile Programlamaya Giriş Başlıklar 2.1 Giriş 2.2 Basit C Programları: Bir Metni Yazdırmak 2.3 Basit C Programları: İki Tam Sayıyı Toplamak 2.4 Hafıza Konuları 2.5 C de Aritmetik 2.6 Karar

Detaylı

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız. ÖDEV (Vize Dönemi) CEVAPLAR 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız. PROGRAM Soru1 PRINT Merhaba Dünya! ; 2. Klavyeden girilen negatif bir sayıyı

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)

Detaylı

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié DERSİN WEB SİTESİ: http://nucleus.istanbul.edu.tr/~bilprog2/ DeğiĢkenler ve Data Türleri

Detaylı

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler Veri Tanımları ve Mantıksal Đşlemler Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmeleri gerekir.

Detaylı

C Programlama Dilinde Değişkenler

C Programlama Dilinde Değişkenler C Programlama Dilinde Değişkenler Değişkenler bir programlama dilinin en önemli bileşenlerindendir. En basit bir aritmetik işlemin bile kullanıcının girdiği değerleri saklamak için çeşitlik bellek alanlarına

Detaylı

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Algoritma ve Programlama: Karar Yapıları ve Döngüler Algoritma ve Programlama: Karar Yapıları ve Döngüler Bir algoritma, herhangi bir programlama dili (C, C++, Pascal, Visual Basic, Java gibi) ile kodlandığında program haline gelir. Algoritmada yer alan

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri 49 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B02) Çalıştırılabilir C ifadeleri ya bir işlem gerçekleştirir ( girilen verilerin toplanması

Detaylı

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)

Detaylı

Dr. Musa KILIÇ Öğretim Görevlisi http://kisi.deu.edu.tr/musa.kilic

Dr. Musa KILIÇ Öğretim Görevlisi http://kisi.deu.edu.tr/musa.kilic Dr. Musa KILIÇ Öğretim Görevlisi http://kisi.deu.edu.tr/musa.kilic BİLGİSAYAR DONANIM Donanım birimleri ekran, klavye, harddisk, ram YAZILIM Yazılımlar ise bilgisayarın donanım yapısını kullanılır hale

Detaylı

Temel Giriş/Çıkış Fonksiyonları

Temel Giriş/Çıkış Fonksiyonları Temel Giriş/Çıkış Fonksiyonları Temel giriş/çıkış fonksiyonları, bütün programla dillerinde mevcuttur. Bu tür fonksiyonlar, kullanıcıya ekrana veya yazıcıya bilgi yazdırmasına, ve bilgisayara klavyeden

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini

Detaylı

MTM 305 MĠKROĠġLEMCĠLER

MTM 305 MĠKROĠġLEMCĠLER KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ MTM 305 MĠKROĠġLEMCĠLER ArĢ. Gör. Emel SOYLU ArĢ. Gör. Kadriye ÖZ Assembly Dili Assembly programlama dili, kullanılan bilgisayar

Detaylı

C Programlama Dilininin Basit Yapıları

C Programlama Dilininin Basit Yapıları Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade

Detaylı

C NASIL BİR DİL?.. PROGRAMIN ÇALIŞMASI

C NASIL BİR DİL?.. PROGRAMIN ÇALIŞMASI 1 Programlama Dillerinin Seviyelerine Göre Sınıflandırılması Önce seviye kavramının ne anlama geldiğini açıklamak gerekmektedir. Seviye, bir programlama dilinin insan algılamasına olan yakınlığının bir

Detaylı

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN ESM-361 Mikroişlemciler 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN Bit operatörleri Bit operatörleri bit düzeyinde işlem yapan operatörlerdir; yani sayıları bir bütün olarak değil, bit bit

Detaylı

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ Prof. Dr. Necmettin Kaya C PROGRAMLAMA DİLİ ÖZELLİKLERİ C programlama dili, 1972 yılında Bell Labortuvarı nda Dennis Ritchie tarafından geliştirilmiştir.

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir. 1 Akış diyagramları

Detaylı

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0 Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden

Detaylı

C Programlama. C Programlama. Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu

C Programlama. C Programlama. Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu C Programlama Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu 2014 Sunuma Genel Bakış Sunuma Genel Bakış I 1 Bilgisayar nedir? Bilgisayar Organizasyonu Bilgisayar Türleri Yazılım Programlama dili Problem

Detaylı

C PROGRAMLAMA D İ L İ

C PROGRAMLAMA D İ L İ C PROGRAMLAMA DİLİ C Programlama Dilinin Temelleri C Programlama Dili'ni popüler kılan önemli nedenler aşağıda listelenmiştir: C, güçlü ve esnek bir dildir. C ile işletim sistemi veya derleyici yazabilir,

Detaylı

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.

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. 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

Detaylı

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır stringh floath Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır 32 Sorgulama İfadesi - if Deyimi (5 Hafta) Bu deyim sorgulamanın tek basamakta yapılacağı yerlerde

Detaylı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

Ders 2: Veri Tipleri, Değişkenler ve Sabitler

Ders 2: Veri Tipleri, Değişkenler ve Sabitler Ders 2: Veri Tipleri, Değişkenler ve Sabitler Giriş Orta ve yüksek seviyeli dillerin hemen hemen hepsinde veri tipi ve değişken kavramı bulunmaktadır. Bu kısımda C programlama dilindeki temel veri tipleri,

Detaylı

mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar

mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar Algoritma ve Programlamaya Giriş mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar İçerik Algoritma Akış Diyagramları Programlamada İşlemler o o o Matematiksel Karşılaştırma Mantıksal Programlama

Detaylı

C PROGRAMLAMA D İ L İ

C PROGRAMLAMA D İ L İ C PROGRAMLAMA DİLİ Diziler Dizi bir kümedir. Aynı tipteki verilere tek bir isimle erişmek için kullanılır. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe saklanır. Bu yüzden dizilere

Detaylı

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA BÖLÜM-II ALGORİTMA I. GİRİŞ Bilgisayar dünyasında, insanın

Detaylı

Fonksiyonlar (Altprogram)

Fonksiyonlar (Altprogram) Fonksiyonlar (Altprogram) C Programlama Dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya gelmesi ile oluşur.

Detaylı

Sınav tarihi : Süre : 60 dak.

Sınav tarihi : Süre : 60 dak. Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Final Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 31.05.2016 Süre : 60 dak. 1. Ekranda ne görüntülenir? int i =

Detaylı

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar EM205 26/9/2014 Programlamaya giriş Algoritmalar Temel kavramlar Algoritmalar Amaçlar Algoritma kavramını öğrenmek, Algoritmaları ifade edebilmek, Temel matematiksel algoritmaları yazabilmek C programlama

Detaylı

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü Final Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :09.01.2013, 60 dak. Dikkat!!! Soru kitapçığında ve

Detaylı

PROGRAMLAMA DİLLERİ I

PROGRAMLAMA DİLLERİ I PROGRAMLAMA DİLLERİ I Öğr. Gör. M. Mutlu YAPICI Ankara Üniversitesi Elmadağ Meslek Yüksekokulu Ders İzlencesi Öğr. Gör. M. Mutlu YAPICI Hafta 1. Hafta 2. Hafta 3. Hafta 4. Hafta 5. Hafta 6. Hafta 7. Hafta

Detaylı

BİL1001 Bilgisayar Bilimlerine Giriş 1

BİL1001 Bilgisayar Bilimlerine Giriş 1 DEÜ Bilgisayar Bilimleri Bölümü BİL1001 Bilgisayar Bilimlerine Giriş 1 Öğr. Gör. Dr. Alper VAHAPLAR 2017 Yaz Okulu Tekrarlı Yapılar Algoritmanın belirli bir kısmının, belirli kere ya da belirli durumlar

Detaylı

KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ

KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ MTM211 BĠLGĠSAYAR PROGRAMLAMA I ÖRNEK SORULAR No Ad Soyad Öğretim : : : Arş. Gör. Dr. Emel SOYLU Aşağıda verilen problemlerin akış

Detaylı

FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal)

FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal) FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal) Algoritma Geliştirme ve Akış Diyagramları BİLGİSAYARLA PROBLEM ÇÖZÜMÜ AŞAMALARI Analiz Algoritma Geliştirilmesi

Detaylı

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 6. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Veri Tipleri Yük. Müh. Köksal Gündoğdu 2 Veri Tipleri Tam sayı ve Ondalık sayı veri tipleri Veri Tipi Alt Sınıf Üst Sınıf Duyarlı

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 1 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlamaya C ile Programlamaya Yazılım: Bilgisayarın işlemler yapması ve karar vermesi

Detaylı

Algoritma ve Programlamaya GiriĢ Ders Notları

Algoritma ve Programlamaya GiriĢ Ders Notları Algoritma ve Programlamaya GiriĢ Ders Notları Öğr. Gör. Mükremin BAġ ġubat 2012 (II.BASKI OCAK 2014) AKSARAY 1 Önsöz Algoritma bilgisayar programcılığının anahtar sözcüğüdür. Nedir bu bilgisayar programcılığı?

Detaylı

Algoritma ve Programlama II Dersi 3.ÖDEVĠ

Algoritma ve Programlama II Dersi 3.ÖDEVĠ Algoritma ve Programlama II Dersi 3.ÖDEVĠ 1. 3 boyutlu uzayda koordinatları dıģarıdan girilen bir üçgenin normalini ve açılarını bulan programı yazınız. 3 boyutlu uzaydaki bir V vektörünün x,y ve z koordinatları

Detaylı

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü ra Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :13.04.2017 60 dak. Dikkat!!! Soru kitapçığında ve cevap

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, C++ İÇİN UFAK HATIRLATMALAR Değişken adları bir harf ile başlamalıdır. (a-z, A-Z). Değişken adı numara içerebilir.

Detaylı

Döngü ve Koşul Deyimleri

Döngü ve Koşul Deyimleri Döngü ve Koşul Deyimleri Programlar üç temel blok kullanılarak gerçekleştirilebilirler. art arda, bir koşula bağlı olarak ve sonlu sayıda yineleme (döngü) dir Koşul Deyimleri Birkaç seçenekten birini seçmek

Detaylı

Hansel zeki bir çocukmuģ. Sabah ormana doğru yürürlerken, akģam yemeğinde cebine sakladığı kuru ekmeğin kırıntılarını (yere iz bırakıp kaybolmamak ve

Hansel zeki bir çocukmuģ. Sabah ormana doğru yürürlerken, akģam yemeğinde cebine sakladığı kuru ekmeğin kırıntılarını (yere iz bırakıp kaybolmamak ve ALGORİTMALAR Hansel zeki bir çocukmuģ. Sabah ormana doğru yürürlerken, akģam yemeğinde cebine sakladığı kuru ekmeğin kırıntılarını (yere iz bırakıp kaybolmamak ve daha sonra bu izi takip ederek evin yolunu

Detaylı

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI C programlama dilinde, diğer programlama dillerinde olduğu gibi, işlemler, ilk satırdan başlamak üzere sırayla çalışır. Program kontrol yapıları ise, programın

Detaylı

PASCAL PROGRAMLAMA DİLİ YAPISI

PASCAL PROGRAMLAMA DİLİ YAPISI BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama

Detaylı

Bilgisayar Programlama MATLAB

Bilgisayar Programlama MATLAB Bilgisayar Programlama MATLAB Doç. Dr. Ġrfan KAYMAZ Matlab Ders Notları Konular: MATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) a) Geliştirme ortamı b) Komut penceresi c) Başlatma penceresi

Detaylı

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI MAK 1005 Bilgisayar Programlamaya Giriş Uludağ Üniversitesi, Mühendislik Fakültesi Makine Mühendisliği Bölümü BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI Prof. Dr. Necmettin Kaya 1 KONULAR 1. Bilgisayara giriş,

Detaylı

Kocaeli Üniversitesi C Bilgisayar Programlama Ara Sınavı Test Soruları

Kocaeli Üniversitesi C Bilgisayar Programlama Ara Sınavı Test Soruları Kocaeli Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü ra Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : 11.04.2018, 50 dak. Dikkat!!! Soru kitapçığında ve cevap

Detaylı

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU Diziler Yrd.Doç.Dr.Bülent ÇOBANOĞLU Dizi (Array) Nedir? Bellekte sürekli yer kaplayan artarda sıralanmış aynı türden verilerin oluşturduğu kümeye dizi (array) denir. Dizi, çok fazla miktardaki tek tip

Detaylı

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN Basit C Programları: Bir Metni Yazdırmak #include /* program çalışmaya main fonksiyonundan başlar*/ int main() { printf( "C diline hoşgeldiniz!\n"

Detaylı

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır: C VERİ TÜRLERİ BASİT VERİ TÜRLERİ Değişkenler, program içinde üzerinde işlem yapılan, veri saklanan ve durumlarına göre programın akışı sağlanan nesnelerdir. C de bir değişken kullanılmadan önce tanımlanmalıdır.

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama

Detaylı

PROGRAMLAMA ALGORĠTMA

PROGRAMLAMA ALGORĠTMA PROGRAMLAMA Programlama Nedir? Bir iģi yapmak için gerekli iģlemlerin tespit edilmesi, tanımlanması ve bu iģlerin sırasının bilinmesidir. Programlama Basamakları: 1- Problemi Tanıma: Programın programcı

Detaylı

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları BİLGİSAYAR PROGRAMLAMA Algoritma ve Akış Şemaları Algoritma tanımı Algoritma özellikleri Algoritma tasarımı Akış şemaları Dallanma simgeleri Döngü simgeleri Akış şeması tasarımı Akış şeması örnekleri Konu

Detaylı

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN 1 PROGRAM - ALGORİTMA AKIŞ ŞEMASI Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Algoritma bir sorunun

Detaylı

int printf (const char *format [, argument,...]);

int printf (const char *format [, argument,...]); 1 printf (): Fonksiyonu Sayısal ve alfanümerik değerleri ekrana (çıkış elemanı olarak tanımlı ise) göndermek için kullanılan formatlı çıkış fonksiyonudur. Bu fonksiyon stdio.h başlık dosyası altında tanımlıdır.

Detaylı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne

Detaylı

C PROGRAMLAMA DİLİNE GİRİŞ

C PROGRAMLAMA DİLİNE GİRİŞ C PROGRAMLAMA DİLİNE GİRİŞ C Dilinin Tarihçesi 1972 de Dennis Ritchie tarafından AT&T Bell Laboratuarlarında B dilinden geliştirildi. C dili konusundaki ilk kitap 1978 de Dennis Ritchie ve Brain Kernighan

Detaylı

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri BLM-111 PROGRAMLAMA DİLLERİ I Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Temel Veri Tipleri C dilinde

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Kontrol Yapıları if Seçme Deyimi if... else Seçme Deyimi while Tekrar

Detaylı

Giris {\} /\ Suhap SAHIN Onur GÖK

Giris {\} /\ Suhap SAHIN Onur GÖK Giris 0 \ /\ Suhap SAHIN Onur GÖK Fonksiyon C: Ana Fonksiyon(main) main() main() C: Ana Fonksiyon(main) main() main() C: Ana Fonksiyon(main) Giris? main() Çıkıs main() C: Ana Fonksiyon(main) void main()

Detaylı

Programlama Dilleri 1. Ders 4: Diziler

Programlama Dilleri 1. Ders 4: Diziler Programlama Dilleri 1 Ders 4: Diziler Genel Bakış Tanım Dizilerin tanımlanması Dizilere ilk değer verilmesi Yerel ve Global diziler Dizilerin birbirine atanması Diziler ile ilgili örnekler Çalışma soruları

Detaylı

C Programlama printf() Fonksiyonu

C Programlama printf() Fonksiyonu C Programlama printf() Fonksiyonu Standart C kütüphanesinin bir parçası olan printf() C Programlama Dili'nin genel amaçlı çıktı alma fonksiyonudur. Girdi ve çıktı deyimleri gerçekte C dilinin bir parçası

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

PROGRAMLAMAYA GİRİŞ DERS NOTLARI PROGRAMLAMAYA GİRİŞ DERS NOTLARI PROGRAM Bilgisayar en basit olarak üç ana görevi yerine getiren bir makinedir. Girilen bilgiyi alır (INPUT), işler (PROCESSING) ve bu işlenmiş veriden bir sonuç (OUTPUT)

Detaylı

C++ Operatörler (Operators)

C++ Operatörler (Operators) C++ Operatörler (Operators) Konular Operatörler o Aritmetiksel (Matematiksel) Operatörler o Karşılaştırma Operatörleri o Mantıksal Operatörler o Atama Operatörleri o Bit Düzeyinde Operatörler o Özel Amaçlı

Detaylı

BİL1001 Bilgisayar Bilimlerine Giriş 1

BİL1001 Bilgisayar Bilimlerine Giriş 1 DEÜ Bilgisayar Bilimleri Bölümü BİL1001 Bilgisayar Bilimlerine Giriş 1 Öğr. Gör. Dr. Alper VAHAPLAR 2017 Yaz Okulu Bilgisayar Bilimlerine Giriş 1 Programlama Dillerine (Programming Languages) Giriş Dil

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Koşul Karşılaştırma Operatörleri Mantıksal

Detaylı

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları. Turbo C ++ 3.0 ALGORİTMALAR http://vaibhavweb.tripod.com/others/tc3.zip http://www.top4download.com/turbo-c- /aklqwuba.html 1 2 Bilgisayarda Problem Çözme Adımları Bilgisayarda Problem Çözme Adımları 1-Problemi

Detaylı

1.1. Yazılım Geliştirme Süreci

1.1. Yazılım Geliştirme Süreci Kazanımlar Bu bolümde; Yazılım geliştirme sureci konusunda bilgi sahibi olacak, Yazılım geliştirme surecinde gerekli olan araçları tanıyacak, Python dilinde program geliştirme ortamlarını inceleyebileceksiniz.

Detaylı

Eln 1001 Bilgisayar Programlama I

Eln 1001 Bilgisayar Programlama I Eln 1001 Bilgisayar Programlama I GiriŞ / ǹk¹Ş Fonksiyonlar¹ Ne ÖĆreneceĆiz? Temel Giriş/Çıkış Yapısı Giriş Fonksiyonları Karakterler için giriş fonksiyonları Scanf fonksiyonu Formatlı giriş Çıkış Fonksiyonları

Detaylı

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ Yrd.Doç.Dr. Emel ARSLAN earslan@istanbul.edu.tr C Program Akış Kontrol Yapıları Kontrol Komutları Normal şartlarda C dilinde bir programın çalışması, komutların

Detaylı