YILDIZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR ve ÖĞRETİM TEKNOLOJİLERİ EĞİTİMİ BÖLÜMÜ. KONU 1: BİLGİSAYARLAR ve C++ İLE PROGRAMLAMAYA GİRİŞ

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

Download "YILDIZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR ve ÖĞRETİM TEKNOLOJİLERİ EĞİTİMİ BÖLÜMÜ. KONU 1: BİLGİSAYARLAR ve C++ İLE PROGRAMLAMAYA GİRİŞ"

Transkript

1 YILDIZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR ve ÖĞRETİM TEKNOLOJİLERİ EĞİTİMİ BÖLÜMÜ DERS: PROGRAMLAMA DİLLERİ 1 DERSİ VEREN: Öğr. Gör. Filiz Eyüboğlu SINIF: 2 DÖNEM: 1 TÜM DERS NOTLARI: ders notları linkinde. Bu notlar aşağıdaki 1.no.lu kaynaktan yararlanılarak hazırlanmıştır. DİĞER KAYNAKLAR: 1. Deitel & Deitel. (2000). C++ How To Program. Third Edition. New Jersey: Prentice Hall 2. KONU 1: BİLGİSAYARLAR ve C++ İLE PROGRAMLAMAYA GİRİŞ HEDEFLER: 1- Programlama dillerinin evrimi bakımından dil sınıflarını öğrenme 2- Tipik bir C++ program geliştirme ortamını anlama 3- C++ ile basit programlar yazabilme 4- Basit G/Ç cümleleri yazabilme 5- Temel veri türlerini tanıma 6- Aritmetik operatörleri kullanabilme 7- Aritmetik operatörlerin önceliklerini anlama 8- Basit karar verme cümleleri yazabilme İÇERİK: Giriş: Bilgisayar nedir? İşletim sistemlerinin evrimi Kişisel, Dağıtık ve İstemci/Sunucu Ortamlar Dil çeşitleri: Makine dili, assembly dili ve yüksek seviyeli diller C ve C++ nın tarihçesi Yapısal programlama Nesne teknolojisi: Yazılımda yeni eğilim C++ programı yürütmenin aşamaları C++ ile programlamaya giriş Basit bir program: bir satır yazma Diğer bir basit program: 2 tamsayının toplanması Bellek kavramları Aritmetik Karar verme: Eşitlik operatörleri ve ilişkisel operatörler Filiz Eyüboğlu YTÜ-BTB 1

2 GİRİŞ BİLGİSAYAR NEDİR?: Bilgisayar, insanın yapabileceğinden milyonlarca hatta milyarlarca kat hızlı hesaplama yapan ve/ya mantıksal kararlar verilebilen bir alettir. Süper bilgisayarlar saniyede yüz milyarlarca toplama yapabilirler ki bu bir insanın basit bir hesap makinesiyle onlarca yılda yapabileceği işlem miktarıdır. Bilgisayarlar, bilgisayar programı denen komut setlerinin kontrolu altında verileri işlerler. Bilgisayarda çalışan bilgisayar programlarına yazılım denir. Bunları geliştiren, yazan kişilere de bilgisayar programcısı denir. Bilgisayar 6 mantıksal bölümden oluşur: 1- Giriş birimi 2- Çıkış birimi 3- Bellek 4- Aritmetik mantık birimi Merkezi işlem birimi 5- Kontrol birimi 6- İkincil bellek İŞLETİM SİSTEMLERİNİN EVRİMİ İlk bilgisayarlar bir anda bir iş yapabiliyorlardı. Delikli kartlarla yazılan programlar, kart okuyucudan bilgisayara okutularak sırayla (bir anda bir iş) çalıştırıldı. Bir anda bir işin çalıştığı bu ortamda bilgisayarın tüm kaynakları verimli biçimde kullanılmamış olmaktadır. MİB çalışırken giriş ve çıkış birimleri boş beklemektedir. Daha verimli kaynak kullanımı için giderek çoklu programlama ya izin veren işletim sistemleri geliştirilmiştir. Bu ortamlarda bir anda birden fazla iş çalışır, ancak hala kullanıcılar programlarını kartlara delerek bilgisayara girmektedir larda timesharing işletim sistemleri geliştirilmiştir. Timesharing bir ortamda kullanıcılar bilgisayara, terminaller (bir ekran ve klavye) aracılığıyla erişirler. Böylelikle onlarca hatta yüzlerce kişi aynı anda tek bir bilgisayara erişebilmekte ve kullanmaktadır. KİŞİSEL, DAĞITIK ve İSTEMCİ/SUNUCU İŞLEM 1977 de Apple şirketi kişisel bilgisayarları popülerleştirdi. İlk başta hobisel bir yaklaşım olan kişisel bilgisayar kullanımı 1981 de IBM in Personal Computer ı tanıtmasıyla sadece evlerde değil iş yaşamında da çok yoğun biçimde kullanılmaya başladı. Fakat bu bilgisayarlar tek başına birimlerdi. Bilgisayardaki veriyi paylaşabilmek için başka bir bilgisayara taşınabilir disklerle taşımak gerekiyordu. Tek başına, bağımsız üniteler halinde bulunan bilgisayarların LAN veya büyük ağlar aracılığıyla birbirine bağlanmasıyla dağıtık işlem ( distributed processing ) başladı. Bugün artık büyük miktarlarda veri, bilgisayar ağlarında yer alan File Server denen ve ortak kullanılacak program ve verileri saklayan bilgisayarlar aracılığıyla istemci bilgisayarlar tarafından kullanılabilmektedir (istemci/sunucu ortam). Filiz Eyüboğlu YTÜ-BTB 2

3 C ve C++ günümüzde, bu ortamları (bilgisayar ağları, dağıtık istemci/sunucu ortamlar, bunları destekleyen işletim sistemleri) yazmakta yaygın olarak kullanılan dillerdir. PROGRAMLAMA DİLLERİ Programlamanın evrimi bakımında 4 sınıftan bahsedebiliriz: 1- Makine dilleri (1.kuşak): sayılardan oluşan, sadece belirli bir makinenin anlayacağı, hata yapmaya çok açık diller 2- Assembly dilleri (2.kuşak): İngilizce benzeri komutlardan oluşan diller. Assembly dili ile yazılmış bir program, bir çevirici (translator) ile makine diline çevrilerek çalıştırılır. Oldukça anlaşılabilir gözükmesine karşın çok basit bir iş için bile çok sayıda komut yazmak gerekmektedir. 3- Yüksek seviyeli diller (3.kuşak) - procedural diller. NASIL yapılacağını ayrıntılı olarak bildirdiğimiz diller. İngilizceye benzer, aritmetik işlemlerde kullandığımız işaretleri kullanır, daha hızlı ve kolay program yazılır. C ve C++ bu gruptadır. Çok sayıda dil geliştirilmiştir. Yaygın kabul görenler: Fortran IBM 1954 Mühendislik uygulamalarında hala yaygın olarak kullanılır. Cobol 1959 Günümüz ticari uygulamalarının yarısı Cobol ile yazılmıştır. Pascal Niklaus Wirth 1971 Akademik kullanım için 4- Çok yüksek seviyeli diller (4.kuşak): NE yapılacağını söyledğimiz diller: LISP, SNOBOL, FORTH, SQL... C ve C++ nin TARİHÇESİ BCPL 1967 Martin Richards B 1970 Ken Thompson Bell Laboratuarları C 1972 Dennis Ritchie Bell UNIX işletim sisteminin yazılmasında kullanıldı. Makineden bağımsız bir dil. C Bjarne Stroustrup AT&T ANSI C nin standart tanımını yaptı, 1990 da yayımlandı: ANSI/ISO 9899:1990 C++, C ye birtakım ek özellikler ile nesne-yönelimli programlama ( object-oriented programming ) yetenekleri getirmiştir. Nesneler tekrar tekrar kullanılabilir yazılım bileşenleridir; yazılım geliştirmede büyük kolaylık (verimlilik) sağlarlar. Diğer nesne-yönelimli diller: Smalltalk Java Xerox s Palo Alto Araştırma Merkezi Sun Microsystems-James Goslin 995 (1993 WWW popülerliği) C++ STANDART KİTAPLIK C++ programları sınıflar ( classes ) ve fonksiyonlardan ( functions ) oluşur. Bunlar program parçalarıdır. Bunların bir kısmını programcı yazar, bir kısmı da standart kitaplıkta hazır bulunur. Filiz Eyüboğlu YTÜ-BTB 3

4 YAPISAL PROGRAMLAMA 1960 lara kadar programlama çok karmaşık, zor, maliyetli larda yapısal programlama ortaya çıkmaya başladı. Yapısal programlama, daha açık, net, anlaşılabilir, okuması, izlemesi, sınaması kolay programlar yazmak için bir yaklaşımdır. 3 temel yapı kullanılır: sıra, tekrar yapısı ve karar verme yapısı. Goto kullanılmaz ya da mümkün olduğunca az kullanılır. Buna uygun ilk dillerden biri (ve en popüleri diyebiliriz) Pascal (Niklaus Wirth,1971). Akademik ortamlarda yapısal programlamayı öğretmek için geliştirildi. Pek çok okulda yaygın olarak kullanıldı. Ancak, ticari uygulamalarda ve her türlü iş ortamına uygun uygulamalarda gereksinilen pek çok olanağı içermemesi, üniversite dışında yaygın kabul görmemesine neden olmuştur. Ada 1970 ler 1980 lerin başı - US Dept. Of Defense ANAHTAR YAZILIM TRENDİ: NESNE TEKNOLOJİSİ Yazılım teknolojisindeki gelişme ve ilerlemeler; yapısal programlama, yapısal tasarım, yapısal analiz ile başladı. Ancak nesne yönelimli analiz, tasarım ve programlama ile daha çok gelişme elde edildi. Nesne yönelimli ile çevremizdeki tüm nesneleri (araba, öğrenci, ders, insan, uçak, sınıf vb) modelleriz. Modellediğimiz bu yazılım parçalarını tekrar tekrar kullanabildiğimiz gibi, bu tarz yazılan yazılımlar, daha iyi organize ve anlaşılır oldukları için bakımları da çok kolay olmakta ve programcıya zaman ve maliyetten büyük tasarruf sağlamaktadır (Yazılım maliyetinin %80 i programlamanın başında ve yazımındaki emeğe değil sonradan yapılan sürekli bakıma aittir). C++, nesne yönelimli bir dil olarak anılmasına karşın hibrid bir dildir. Yani hem yapısal hem de nesne yönelimli program yazmayı mümkün kılar Classes and Data Abstraction konusuna kadar C++ ile procedural programlama kavramlarını göreceğiz: kontrol yapıları, fonksiyonlar, veri türleri, giriş/çıkış, diziler, pointer ve stringler. Bu bölümlerde C++ ın C kısmı, C++ procedural enhancements to C kapsanacaktır. C++ PROGRAMI YÜRÜTME AŞAMALARI Unix ortamında bir C++ programının yürütülmesi için 6 aşamadan geçilir: 1- Edit : kaynak programın bir editör program ile yazılması. Uzantısı.cpp,.cxx veya.c 2- Ön işleme ( preprocess ): derleme öncesi bazı işlemler 3- Derleme: derlemenin çıktısı: amaç program 4- Link: programımızda kullanacağımızı belirttiğimiz standart kitaplık veya özel kitaplıklarda bulunan fonksiyonların amaç programla bir araya getirilmesi (link edilmesi) 5- Yükleme ( load ) programın ve varsa gerekli bazı modüllerin (paylaşılan kitaplıklardan) diskten alınıp belleğe yüklenmesi 6- Yürütme Şema: s. 15 (Deitel) Filiz Eyüboğlu YTÜ-BTB 4

5 TAŞINABİLİRLİK ( portability ) Taşınabilir programlar yazmak mümkünse de değişik sistemler ve değişik derleyiciler arasında birtakım problemler çıkmaktadır. Taşınabilirlikle ilgili konular ANSI C Standart dokümanında yer almaktadır: Doküman adı: Information Technology Programming languages C++. Doküman numarası: ISO/IEC Daha eski taslak versiyonu (ücretsiz): İYİ PROGRAM YAZMA TAVSİYELERİ: C++ programlarınızı basit ve straightforward biçimde yazın: KIS ( Keep It Simple ). Kullandığınız C++ sürümünün kılavuzu elinizin altında olmalı. En iyi öğretici bilgisayarınızdır. Kitaplarda veya derslerde işlenen konuları, verilen örnekleri, bilgisayarda çalıştırarak, çıkan hata mesajlarını okuyup, tekrar deneyerek öğrenebilir ve tecrübe kazanabilirsiniz. C++ İLE PROGRAMLAMAYA GİRİŞ BASİT BİR PROGRAM: BİR SATIR METNİN YAZDIRILMASI // C++ ile ilk programım #include <iostream> std::cout << Herkese Merhaba!\n ; return 0; // program sonu Herkese Merhaba! // C++ de açıklama satırının başına konur. Bu satırlar için derleyici bir iş yapmaz; bu satırlar program dökümünde aynen yer alan; programın okunabilirliği, anlaşılabilirliği için gerekli açıklama satırlarıdır. İyi bir programcı gerekli yerlere gerekli açıklamaları koyar. C dilinde ise açıklama /* */ arasına konur. # ile başlayan satırlar ön derleyici ( preprocessor ) içindir. Örnek programımızda # ile başlayan satır ön derleyiciye giriş/çıkış ile ilgili iostream başlık dosyasını ( header file ) programa dahil etmesini söyler. int main () her C++ programında olması gerekir. Filiz Eyüboğlu YTÜ-BTB 5

6 Her C++ programı bir veya birkaç fonksiyondan oluşur. () ler main in bir fonksiyon olduğunu; main sözcüğü de bunun ana fonksiyon olduğunu belirtmektedir. int integer (tamsayı) anlamında. int main () in anlamı: bu ana fonksiyonun çalıştıktan sonra verdiği değer, bir tamsayıdır. (return 0 ile dönen sıfır ) Bir fonksiyonun gövdesi ( body ) köşeli sol parantez ile başlar, köşeli sağ parantez ile biter. std::cout std::cin ekrana çıkış almak için. İlerki bölümlerde daha ayrıntılı göreceğiz. klavyeden girileni okumak için << stream insertion operator \n karakterlerinin çıktıda yer almadığına dikkat edin! \ escape karakteri n imlecin alt satıra konumlanmasını söyler. \n yeni satır \t bir tab ileri gitmek için \r imleç yeni yazılan sol başına konumlanır ( carriage return ) \a uyarı sesi Herkese Merhaba! cümlesini başka nasıl yazdırabilirdik? std::cout << Herkese ; std::cout << Merhaba!\n ; ŞÖYLE YAZARSAM ÇIKTI NASIL OLUR??? Herkes e Merhaba! std::cout << Herkes\ne\nMerhaba!\n ; BAŞKA BİR BASİT PROGRAM: iki tamsayının toplanması // İKİ TAMSAYIYI TOPLAYAN PROGRAM #include <iostream> int tamsayi1, tamsayi2, toplam; //tanımlamalar std::cout << Birinci tamsayıyı giriniz\n ; std::cin >> tamsayi1; //klavyeden girilen sayıyı oku Filiz Eyüboğlu YTÜ-BTB 6

7 std::cout << İkinci tamsayıyı giriniz\n ; std::cin >> tamsayi2; // klavyeden girilen sayıyı oku toplam = tamsayi1 + tamsayi2; std::cout << Toplam = << toplam << std::endl; return 0; // programın başarıyla bittiğini gösterir std::endl = endl end line yani satır sonu demektir. Yaptığı iş, yeni satırı yazdıktan (ekrana yolladıktan sonra) çıkış buffer larını temizlemektir. Bilindiği gibi, çıkışa gönderilecek veriler, gönderilmeden önce çıkış buffer larında biriktirilir. Çıkış işleminden sonra buffer ların boşaltılması/temizlenmesi için endl kullanırız. ÖNEMLİ NOTLAR: C++, büyük ve küçük harfe duyarlı bir dildir. Cümleler ; (noktalı virgül) ile biter. İYİ PROGRAM YAZMA TAVSİYELERİ: 1- Bir fonksiyonun gövdesinin içine yazılan satırlar 3 boşluk içerden yazılır ( indentation ) 2- Tanımlamalar ile yürütülebilir cümleler arasında bir satır boşluk bırakınız. 3- Anlamlı değişken isimleri kullanınız. 4- İkili ( binary ) operatörlerin sağ ve solunda birer boşluk bırakınız. ARİTMETİK OPERATÖRLER C++ işlemi Aritmetik operatör Cebirsel ifade C++ ifadesi Toplama + f+7 f + 7 Çıkarma - p-c p c Çarpma * bm b * m Bölme / x/y x / y Modulus % r mod s r % s C++ da aritmetik işlemlerde operatörlerin öncelik sırası kuralları: 1- Parantez içleri en önce hesaplanır. 2- Daha sonra, çarpma, bölme, modulus işlemleri yapılır. Bir aritmetik ifadede birden fazla çarpma, bölme, modulus işlemi varsa, bu işlemlerdeki operatörler SOLDAN SAĞA doğru uygulanır. Çarpma, bölme, mod operatörlerinin önceliği aynıdır. 3- En son toplam ve çıkarma işlemleri yapılır. Bir ifade, birden fazla toplama ve çıkarma işlemi içeriyorsa, bunlara ait operatörler SOLDAN SAĞA uygulanır. ÖRNEKLER: ss (Deitel) Filiz Eyüboğlu YTÜ-BTB 7

8 İYİ PROGRAM YAZMA TAVSİYELERİ: Cebirde olduğu gibi, gereksiz parantezler konmayabilir. Ancak, özellikle uzun ifadelerde alt ifadeleri parantez içlerin alarak anlaşılabilirliği artırmak iyidir. İLİŞKİSEL OPERATÖRLER ve EŞİTLİK OPERATÖRLERİ İlişkisel operatörler C++ karşılığı C++ örneği Anlamı > > x > y x, y den büyüktür < < x < y x, y den küçüktür >= x >= y x, y den büyüktür veya y ye eşittir <= x <= y x, y den küçüktür veya y ye eşittir. Eşitlik operatörleri = == x ==y x, y ye eşittir!= x!= y x, y ye eşit değildir SIK YAPILAN HATALAR: ==, >=, <=,!= operatörlerini yazarken iki karakter arasında boşluk bırakılmamalıdır veya iki karakterin yeri değiştirilmemelidir. Eşitlik operatörü == yi, atama için kullanılan = ile karıştırmayınız. EŞİTLİK VE BAĞINTI OPERATÖRLERİNİ KULLANAN BİR PROGRAM ÖRNEĞİ // if cümlesi ile eşitlik ve ilişki/bağıntı operatörlerini kullanan bir program #include <iostream> using std::cout; // program cout kullanır using std::cin; // program cin kullanır using std::endl; // program endl kullanır. int main () int sayi1, sayi2; endl; cout << İki tamsayi giriniz.\n << Ben aralarındaki ilişkiyi söyleyeceğim: ; cin >> sayi1 >> sayi2; if (sayi1 == sayi2) cout << sayi1 << sayi2 << ye eşittir. << endl; if (sayi1!= sayi2) cout << sayi1 << sayi2 << ye eşit değildir. << endl; if (sayi1 < sayi2) cout << sayi1 <<, << sayi2 << den küçüktür. << endl; if (sayi1 > sayi2) cout << sayi1 <<, << sayi2 << den büyüktür. << endl; if (sayi1 <= sayi2) cout << sayi1 <<, << sayi2 << den küçük veya eşittir. << Filiz Eyüboğlu YTÜ-BTB 8

9 if (sayi1 >= sayi2) cout << sayi1 <<, << sayi2 << den büyük veya eşittir. << endl; return 0; İki tamsayı giriniz. Ben size aralarındaki ilişkiyi söyleyeceğim: 3 7 3, 7 ye eşit değildir. 3, 7 den küçüktür. 3, 7 den küçük veya eşittir. İki tamsayı giriniz. Ben size aralarındaki ilişkiyi söyleyeceğim: , 12 ye eşit değildir. 22, 12 den büyüktür. 22, 12 den büyük veya eşittir. İki tamsayı giriniz. Ben size aralarındaki ilişkiyi söyleyeceğim: 7 7 7, 7 ye eşittir. 7, 7 den küçük veya eşittir. 7, 7 den büyük veya eşittir. using cümleleri: cout ve cin den önce std:: kullanımını ortadan kaldırır. Hatırlanacağı gibi ilk basit örneğimizde std::cout kullanmıştık. Çok sayıda giriş / çıkış yapılacağı zaman her cout ve cin den önce std:: kullanmak çok pratik olmayacaktır. Bu nedenle using kullanmakta fayda vardır. İYİ PROGRAM YAZMA TAVSİYELERİ: 1- Programın okunabilirliğini artırmak için if yapısının içinde yer alan cümleleri 3 boşluk içerden yazınız. 2- Bir satırda birden fazla cümle yer almamalı. 3- Bir cümle bir satıra sığmayıp alt satırdan devam edecekse, cümleyi anlamlı bir yerinden bölmeye özen gösteriniz. *** Konu 1 in sonu *** YILDIZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR ve ÖĞRETİM TEKNOLOJİLERİ EĞİTİMİ BÖLÜMÜ DERS: PROGRAMLAMA DİLLERİ 1 Filiz Eyüboğlu YTÜ-BTB 9

10 DERSİ VEREN: Öğr. Gör. Filiz Eyüboğlu SINIF: 2 DÖNEM: güz dönemi TÜM DERS NOTLARI: ders notları linkinde. Bu notlar aşağıdaki 1.no.lu kaynaktan yararlanılarak hazırlanmıştır. DİĞER KAYNAKLAR: 3. Deitel & Deitel. (2000). C++ How To Program. Third Edition. New Jersey: Prentice Hall 4. HEDEFLER: KONU 2: KONTROL YAPILARI 9- Yukarıdan aşağı ( top-down ) algoritma geliştirebilme 10- Yapısal programlamayı anlama 11- Seçim yapma yapılarını (if, if/else, switch) kullanabilme 12- Tekrar etme yapılarını (while, do/while, for) kullanabilme 13- Sayaç kontrollu tekrarı anlama 14- Mantıksal işlem, atama operatörleri, artırma ve eksiltmeyi kullanabilme 15- Program kontrol cümlelerini (break, continue) kullanabilme İÇERİK: Algoritmalar Pseudocode Kontrol yapıları: if, if/else, while Yukarıdan-aşağı yaklaşımla algoritma tasarlama Atama operatörleri Tekrar için sayaç-kontrollu yapı: for Çoklu-seçme yapısı: multiple Tekrar yapısı: do/while Break ve continue cümleleri Mantıksal operatörler GİRİŞ Bir problemi çözecek programı yazmaya başlamadan önce, problemi tam olarak anlamak ve çözüm için dikkatlice planlama yapmak gerekir. Daha sonra program yazamaya başlanabilir. Programı yazarken de planlama kadar önemli bir konu - dilin sunduğu yapı bloklarını ve program yapılandırma ilkelerini çok iyi bilmektir. Bu konumuzda, yapısal programlama yaklaşımını, C++ nin bu konuda sağladığı yapıları kullanarak öğreneceğiz. ALGORİTMA Filiz Eyüboğlu YTÜ-BTB 10

11 Algoritma, bir problemi çözmek için - yürütülecek eylemlerin, ve - bu eylemlerin sırasını belirten bir talimattır, prosedürdür. Bir bilgisayar programında yürütülecek cümlelerin sırasını belirlemeye program denetimi ( program kontrol ) denir. Bu derste, C++ ın program denetimiyle ilgili yeteneklerini göreceğiz. PSEUDOCODE Pseudocode, algoritma geliştirmede programcılara yardımcı olan dildir; günlük konuşma dilimizde kullandığımız sözcüklerden oluşur. Bu dille yazılan program bilgisayarda yürütülemez; ancak programcıya geliştirmeye çalıştığı algoritma üzerinde düşünmesini, onu şekillendirmesini, oluşturmasına yarar. İyi yazılmış bir pseudocode u gerçek bir programlama diline çevirmek kolay olur. Pseudcode ile sadece yürütülecek cümleleri yazarız. int x gibi tanımlamaları yazmayız. Tanımlamalar ( declarations ) yürütülebilir cümleler değildir. int x dediğimiz zaman bilgisayar x için bir yer ayırır. Bazı programcılar, pseudocode un baş kısmında, kullanacakları değişkenlerin ad ve amaçlarını listelemeyi tercih ederler. KONTROL YAPILARI Normalde, bir programdaki cümleler yazıldıkları sırayla, biri diğerinin ardından yürütülürler. Buna sıralı yürütme ( sequential execution ) denir. Sıralı yürütmeye basit bir örnek ver, akış şeması ile. s.62 Yürütmek istediğimiz cümle, sıradaki cümle değil de, programın daha ilerisinde veya baş tarafında olabilir. Yürütmenin bir sonraki cümleye değil de programın başka bir yerindeki cümleye yönlendirilmesine kontrolun transferi denir larda kontrolun transferi için çokça kullanılan goto cümlesi yazılım geliştirenlerin işini zorlaştırmıştır. Goto nun fazlaca kullanıldığı bir programı yazmak, takip etmek, anlamak zordur. Yapısal programlama dediğimiz kavramla goto lar mümkün olduğunca ya da tümden yok edilirler. Bohm ve Jacopini bir programın goto suz, üç tür yapı - sıralı, seçme, tekrar yapıları kullanılarak yazılabileceğini göstermiştir lerde yapısal programlamadan çok ciddi biçimde söz edilmeye ve kullanılmaya başlanmıştır. Bu yaklaşım yazılım geliştirme zamanını azaltmıştır. Bildiğiniz gibi, akış şeması bir algoritmanın ya da algoritma parçasının görsel ifadesidir. Pseudocode gibi akış şeması da algoritma geliştirmede kullanışlıdır. Akış şeması sembolleri geçen dönem EBT2 de öğrenildi. if SEÇME YAPISI ( if selection structure ) Seçme yapısı, çeşitli eylem seçeneklerinden birini seçmek için kullanılır. Örneğin, öğrencinin notu 60 dan fazla ise, geçti yaz demek istiyorsak...bunu ifade edebilmek için, öğrenci notunun 60 dan büyük eşit olup olmadığını sınamamız gerekir. Sınama yaptığımızda Filiz Eyüboğlu YTÜ-BTB 11

12 koşul doğru ise geç yazdırırız, koşul yanlış ise hiçbir şey yaptırmadan sıradaki cümle ile yürütme devam eder. Bunu C++ ile şöyle ifade ederiz: if (not >= 60) cout << geçti ; ((((( BU İFADEYİ AKIŞ ŞEMASI İLE GÖSTER ))))) s.64 şekil. 2.3 SIK YAPILAN HATALAR: C++ anahtar kelimelerini değişken veya fonksiyon adı olarak kullanmak. Anahtar sözcükler aşağıda verilmiştir. C ve C++ da ortak olan anahtar kelimeler: s.63 auto break case char const continue default do double else enum extern float for goto if int long register return Short signed sizeof static struct switch typedef union unsigned void volatile while Sadece C++ da geçerli olan anahtar sözcükler: asm bool catch class const_cast delete dynamic_cast explicit false friend inline mutable namespace new operator private protected pubic reinterpret_cast static_cast template this throw true try typeid typename using virtual wchar_t İYİ PROGRAM YAZMA TAVSİYELERİ: if cümlesinde koşulun doğruluğuna göre yapılacak eylemi (if in gövdesine yazılacak cümleleri) bir sonraki satırdan ¼ inç veya 3 boşluk içeriden yazınız. if/else SEÇME YAPISI ( if/else selection structures ) if/else yapısı, koşulun doğruluğuna veya yanlışlığına göre değişik işlemler yaptırmak için kullanılır. if (not >= 60) cout << geçti ; else cout << kaldı ; ((((( BU İFADEYİ AKIŞ ŞEMASI İLE GÖSTER ))))) Filiz Eyüboğlu YTÜ-BTB 12

13 Yukarıdaki if/else örneğini C++ da,?: koşul operatörü kullanarak şöyle de yazabiliriz. cout << (not >= 60? geçti : kaldı ); Birden fazla durumu sınamak için içiçe if/else cümleleri kullanılır. if (grade >= 90) cout << A ; else if (grade >= 80) cout << B ; else if (grade >= 70) cout << C ; else if (grade >= 60) cout << D ; else cout << F ; Aynı kod şöyle de yazılabilir (çok fazla sağa doğru uzamayı engellemek için): if (grade >= 90) cout << A ; else if (grade >= 80) cout << B ; else if (grade >= 70) cout << C ; else if (grade >= 60) cout << D ; else cout << F ; PERFORMANS İLE İLGİLİ İPUCU: İçiçe if/else yapısı, bir seri tek seçim yapan if cümlelerinden daha hızlı çalışır. if yapısında gövdeye tek bir cümle koymayı gördük. Birden fazla sayıda cümle koyacaksak bunlar parantezlerinin arasına alınır ve bu tarz parentezler arasında bulunan cümleler topluluğuna Bileşik Cümle ( compound statement ) denir. Örnek: if (not >= 60) cout << geçti.\n ; else Filiz Eyüboğlu YTÜ-BTB 13

14 cout << kaldı.\n; cout << Bu dersi tekrar almak zorundasınız.\n; SIK YAPILAN HATALAR - if cümlesinde, koşuldan sonra ; (noktalı virgül) koymak - if, if/else gövdesinde parantezi kapamayı unutmak, veya yanlış yerde kapatmak while TEKRAR YAPISI (while repetition structure) Tekrar yapısı, programcının bir eylemi belirli bir koşul doğru olduğu müddetçe tekrar etmesini sağlar. Alış veriş listesinde daha mal olduğu müddetçe Bir sonraki malı al, sonra üzerini çiz gibi. Örnek bir program: 2 nin 1000 den büyük yapan ilk üssünü bulunuz. carpim isimli degişkene 2 sayısını atamış olalım. int carpim = 2; Aşağıdaki w h i l e yapısı bittiğinde, carpim degiskeni istenen cevabı içerecektir. while (carpim <= 1000) carpim = 2 * carpim; Carpim, ilk giriste 2, daha sonra 4,8,16,32,64,128, 256, 512, 1024 değerlerini alır > 1000 oldugunda while ın yürütülmesi durur. ALGORİTMA GELİŞTİRME ÇALIŞMA-1: (sayaç kontrollu tekrar kullanarak) On öğrencilik bir sınıf sınava girdi. Aldıkları notlar size verildi. Sınıfın ortalamasını bulacak algoritmayı geliştirip, daha sonra C++ ile yazınız. Ortalama ne demek? 10 notu toplayıp, 10 a böleceğiz. 10 not okumamız gerektiği için s a y a ç kullanarak okuma işlemini tekrar etmemiz gerekir. Sayaç, 10 u geçtiği anda tekrar işlemi bitmeli. Okuduğumuz notları üstüste toplayacağımız bir değişkenimiz olmalı. Buna t o p l a m diyelim. toplam = 0 sayac = 1 while s a y a c ondan küçük eşit olduğu müddetçe Filiz Eyüboğlu YTÜ-BTB 14

15 bir sonraki notu oku bu notu t o p l a m a ekle s a y a c ı bir artır t o p l a m ı ona bölerek o r t a l a m a yı hesapla o r t a l a m a yı yazdır. // sayac kontrollu tekrar ile sınıf ortalamasını bulan program #include <iostream> using std::cout using std::cin; using std::endl; int toplam, // notların toplamı sayac, // girilen notların sayısı not // bir not ortalama; // notların ortalaması // ilk değerlerin atanması toplam = 0; sayac = 1; while (sayaca <= 10) cout << notu giriniz: ;// bir notun girilmesini iste cin >> not; // girilen değeri not değişkenine al toplam = toplam + not; // notu toplama ekle sayac = sayac + 1; // sayacı artır ortalama = toplam / 10; cout << Sınıf ortalaması = << ortalama << endl; return 0; SIK YAPILAN HATALAR - Toplam, sayac gibi değişkenlere ilk değer atamalarını unutmayınız. Unutursanız değişkenin içinde hangi sayı olduğunu bilemezsiniz ve program beklenenden farklı değerler üretir. İlk değer atamalarını unutmak, yazım ( syntax ) hatası vermez, ancak programınız istenen sonucu vermediği için mantık hatası oluşmuş olur. Filiz Eyüboğlu YTÜ-BTB 15

16 - Sayaç kontrollu döngüde, döngüden çıkıldığında (while dan çıkıldığında) sayacın değeri saydığımızdan / istediğimizden 1 fazla olacaktır (örneğimizde döngüden çıkıldığında sayac 11 dir. Öğrenci sayısı ondur). Dolayısıyla hesaplamalarda s a y a c değişkenini kullanırsak hesap hatası oluşur. İYİ PROGRAM YAZMA TAVSİYESİ Her bir değişkeni ayrı bir satırda tanımlayınız. ÇALIŞMA-2 Yukarıdan aşağı yaklaşımla ( top-down ) algoritma geliştirme (işaret kontrollu tekrar ile - flag controlled repetition ) Sınıf ortalaması problemini genelleştirelim.: herhangi bir sayıda notu okuyup ortalama alacak bir algoritma geliştiriniz. Herhangi bir sayıda giriş yapılacağına göre girişlerin bittiğini nasıl anlayacağız? Bunun bir yolu, sentinel veya flag veya dummy değer denen özel bir değer ile girişlerin sonunu belirtmektir. Bu değer, giriş verileri ile karışmayacak bir değer olmalıdır. Giriş verileri arasında yer alan bir flag değeri seçmek mantık hatasıdır. Sorumuzda, öğrenci notları girileceğinden ve notlar negatif olmayacağından, negatif bir sayıyı örneğin -1 i kullanabiliriz. Buna göre, girilen sayılar 75, 82, 67, 30, 25, -1 şeklinde olacaktır. 1 giriş sonunu belirtir ve hesaplamalara karışmaması gerekir. Sınıf ortalaması problemini yukarıdan-aşağı yaklaşımla ele alacak olursak: Yapacağımız işte temel aşamalar nelerdir? 1- İlk değer atamalarını yap 2- Oku; topla, sayacı artır 3- Ortalamayı al, yazdır. 1. aşamayı ele alıp detaylandıracak olursak: toplam a sıfır ata sayac a bir ata 2. aşama bir tekrar yapısı / döngü gerektirir. Kaç not okuyacağımızı bilmediğimiz için flag kontrollu bir yapı kurmamız gerekir. Notu okuyup, okur okumaz bu özel değeri içerip içermediğini test etmeliyiz. Buna göre 2.aşama şöyle detaylandırılır: ilk değeri oku okunan değer f l a g değerinden farklı olduğu müddetçe notu toplama ekle sayacı bir artır bir sonraki notu oku 3. aşama için de şunları yazabiliriz: sayac sıfır değilse Filiz Eyüboğlu YTÜ-BTB 16

17 toplamı sayaca bölerek ortalamayı hesapla ortalamayı yazdır değilse (else) herhangi bir not girilmedi yazdır. ÖNEMLİ NOT: Bölme işlemlerine dikat!!! Divide by zero is a fatal logic error. // Örnek: Deitel s. 77 de, fig.2.9 // flag kontrollu olarak yazılmış sınıf ortalaması programı #include <iostream> using std::cout; using std::cin; using std::endl; using std::ios; #include <iomanip> // setprecision kullanmak için bu olmalı using std::setprecision; using std::setiosflags; int toplam, sayac, not; double ortalama; toplam = 0; sayac = 0; cout << Notu giriniz: (bitirmek için 1 giriniz) ; cin >> grade; while (not!= -1) toplam = toplam + not; sayac = sayac + 1; cout << Notu giriniz: (bitirmek için 1 giriniz) ; cin >> grade; if (sayac!= 0 ) ortalama = static_cast<double>(toplam) / sayac; Ondalık cout << Sınıf ortalaması: << setprecision (2) << setiosflags( ios::fixed ios::showpoint) virgülden << ortalama << endl; else Ondalık cout << hiç not girimedi << endl; virgülden Bilimsel sonra sıfırlar Filiz Eyüboğlu YTÜ-BTB gösterim varsa onları da yazması 17 için yerine

18 return 0; d o u b l e & float i n t reel sayı; ondalık virgülü olan sayılar tamsayı double, float tan daha büyük sayıları veya daha fazla duyarlılıkla saklar. Ortalamayı hesaplarken, toplam ve sayac değişkenlerimiz int türünde olduğu için bunların bölümünden elde edilecek sayı int olacak ve ondalık virgülden sonraki kısmı olmayacaktı. Oysa bir ortalama alırken virgülden sonraki kısma da ihtiyacımız vardır. Bunun için cast operatörü kullandık (lab daki bilgisayarlarda yüklü Turbo C/C++ V3 de bu geçerli olmayabilir). The cast operator static_cast<double>() creates a temporary floating-pint copy of its operand in parentheses toplam. Using a cast operator in this manner is called explicit conversion. The value stored in t o p l a m is still an integer. The calculation now consists of a floating-point value (temporary double version of total) divided by the integer sayac. Implicit Conversion (Programcı açıkça belirtmediği halde yapılan dönüştürme): Bir aritmetik ifadede hem int hem de double operand lar varsa, derleyici int operand ları double a dönüştürür. ÇALIŞMA 3 Yukarıdan aşağı algoritma geliştirme (içiçe kontrol yapıları kullanarak) Bir derste birinci konu sonunda yapılan sınavın sonuçlarını değerlendirmek üzere bir algoritma geliştireceksiniz (Bu değerlendirmeye göre bir sonraki konuya geçilip geçilmeyeceğine karar verilecek) Size 10 öğrencinin notlarını içeren bir liste verilecek. Listede, her ismin yanında öğrenci sınavı geçtiyse 1, kaldıysa 2 yazıyor olacak. Programınız sınavın sonuçlarını şu şekilde analiz etmeli: 1. Her bir sonucu (1 veya 2) oku. Program her seferinde başka bir sonuç okumak istediğinde ekranda sonucu girin: mesajı görüntülenmeli. 2. Her sonuç türünün kaç tane olduğunu say. 3. Geçen ve kalan öğrencilerin sayılarını görüntüle. 4. Eğer sekizden fazla öğrenci sınavı geçtiyse Bir sonraki konuya geçilebilir mesajını görüntüle. Bunları dikkatlice okuduktan sonra şu kararlara varabiliriz: 1- program 10 sonuç işleyecek. Bunun için sayac-kontrollu döngü kullanılmalı. 2- her bir sonuç okuduktan sonra bunun 1 mi 2 mi olduğunu program kontrol etmeli. Programımızda 1 için kontrol edip, 1 değilse 2 olduğunu varsayabiliriz. 3- Hem geçenlerin hem de kalanların sayısı istendiğine göre 2 sayac kullanmak gerekir. 4- Tüm sonuçlar işlendikten sonra geçenlerin sayının 8 den fazla olup olmadığına karar vermeliyiz. Filiz Eyüboğlu YTÜ-BTB 18

19 Pseudocode ile yazmaya başlayalım. Değişkenlere ilk değerlerini ata On sınav notunun girişini yap; kalan ve geçenleri say Sonuçları yazdır ve bir sonraki konuya geçilip geçilmeyeceğine karar ver Değişkenlere ilk değerlerini ata kısmını açalım: Gecenler e sıfır ata Kalanlar a sıfır ata OgrenciSayaci na bir ata On sınav notunun girişini yap; kalan ve geçenleri say ı açalım: While OgrenciSayaci ondan küçük veya eşit olduğu müddetçe Bir sonraki sonucu oku Ogrenci geçtiyse Gecenler i bir artır degilse Kalanlar ı bir artır OgrenciSayaci ni bir artır Sonuçları yazdır ve bir sonraki konuya geçilip geçilmeyeceğine karar ver kısmını açalım: Gecenlerin sayısını yazdır Kalanların sayısını yazdır Gecenler 8 den fazla ise Bir Sonraki Konuya Geç yaz Bu pseudocode, C++ a geçmeyi sağlayacak kadar rafine edilmiş durumda. // Şekil s.84 // Sınav sonuçlarının analizi #include <iostream> using std::cout; using std::cin; using std::endl; int gecenler = 0, kalanlar = 0, ogrencisayaci = 1, Değişkenleri tanımladığımız anda bu şekilde ilk değer atamalarını da yapabiliriz. Bu yaklaşım, bazı değişkenlere ilk değer atamalarını unutmamızı engeller. Filiz Eyüboğlu YTÜ-BTB 19

20 sonuc; while (ogrencisayaci <= 10) cout << Sonuç gir (geçti için 1, kaldı için 2): ; cin >> sonuc; if ( sonuc == 1) gecenler = gecenler + 1; else kalanlar = kalanlar + 1; ogrencisayacı = ogrencisayaci + 1; cout << Geçenlerin sayısı: << gecenler << endl; cout << Kalanların sayısı: << kalanlar << endl; if (gecenler > 8 ) cout << BİR SONRAKİ KONUYA GEÇİLEBİLİR << endl; return 0; Sonuç gir ( geçti için 1, kaldı için 2): 1 Sonuç gir ( geçti için 1, kaldı için 2): 1 Sonuç gir ( geçti için 1, kaldı için 2): 1 Sonuç gir ( geçti için 1, kaldı için 2): 1 Sonuç gir ( geçti için 1, kaldı için 2): 1 Sonuç gir ( geçti için 1, kaldı için 2): 1 Sonuç gir ( geçti için 1, kaldı için 2): 2 Sonuç gir ( geçti için 1, kaldı için 2): 1 Sonuç gir ( geçti için 1, kaldı için 2): 1 Sonuç gir ( geçti için 1, kaldı için 2): 1 Geçenlerin sayısı: 9 Kalanların sayısı: 1 BİR SONRAKİ KONUYA GEÇİLEBİLİR TAVSİYE: Bazı programcılar pseudocode ile algoritma geliştirmeyi zaman kaybı olarak görerek doğrudan dil ile kodlamaya geçseler de bu yaklaşım basit ve bilinen problemler için uygundur; karmaşık ve büyük projelerde çok ciddi hatalara yol açabilir. ATAMA OPERATÖRLERİ c = c + 3; şeklindeki bir atama cümlesi c += 3 şeklinde yazılabilir. Bu ifadedeki += (toplama atama operatörü), sağ taraftaki değeri, sol taraftaki değere ekler ve sonuc sol taraftaki değişkenin içine konur. Diğer aritmetik atama operatörleri: -= c -= 7; c = c 7; *= b *= 5; b = b * 5; /= a /= 2; a = a / 2; %= d %= 4; d = d % 4; Filiz Eyüboğlu YTÜ-BTB 20

21 ARTIRMA ve AZALTMA OPERATÖRLERİ Birli ( unary ) operatörler - yani tek bir operandı olan. ++a ön artırma operatörü a yı 1 artır, sonra, a nın bulunduğu ifadede bu yeni değeri kullan. a++ sonra artırma operatörü a nın bulunduğu ifadede a nın mevcut değerini kullan; sonra a yı 1 artır. --b ön eksiltme operatörü b yi 1 azalt; b nin bulunduğu ifadede bu yeni değeri kullan. b-- sonra eksiltme operatörü b nın bulunduğu ifadede b nın mevcut değerini kullan; sonra b yı 1 azalt. DİKKAT: Bu operatörleri yazarken operand ile arasında boşluk bırakılmamalıdır. Aşağıdaki 3 atama cümlesi gecenler = gecenler + 1; kalanlar = kalanlar + 1; Atama operatörleri kullanılarak şöyle yazılır: gecenler += 1; kalanlar += 1; Ön artırma operatörleri ile ++gecenler; ++kalanlar; şeklinde yazılır. ŞU ANA KADAR GÖRDÜĞÜMÜZ OPERATÖRLERİN ÖNCELİK SIRASI ( ) soldan sağa parentez static cast<türü> () soldan sağa unary (postfix) sağdan sola unary (prefix) * / % soldan sağa multiplicative + - soldan sağa additive << >> soldan sağa insertion/extraction < <= > >= soldan sağa relational ==!= soldan sağa equality?: sağdan sola conditional = += -= *= /= %= sağdan sola assignment, soldan sağa comma Filiz Eyüboğlu YTÜ-BTB 21

22 Aşağıdaki program parçasını inceleyelim: // sayaç-kontrollu tekrar #include <iostream> using std::cout; using std::endl; int sayac = 1; while (sayac <= 10) cout << sayac << endl; ++sayac; return 0; Şekil: 2.16 Şekil 2.16 daki programda, s a y a c a 1 atanarak başlanmış ve w h i l e cümlesine koşul olarak ( s a y a c <= 10 ) konmuştur. Buna göre sayac = 11 olduğunda döngü biter. Döngüden çıkışta sayac ın değeri 11 dir. s a y a c = 0 ile başlatılıp döngü şu şekilde yapılabilir: while ( ++sayac <= 10) cout << sayac << endl; Bu tür kullanımda, sayac, while daki koşul test edilmeden önce artırılır. Daha az satır kodlama bakımından tercih edenler olabilir. Ancak bu yazış, deneyim gerektirdiği gibi programı izleme, anlama, bakımı zorlaştırmaktadır.. İYİ PROGRAMLAMA TAVSiYELERİ: Her kontrol yapısından önce ve sonra okunabilirliği/anlaşılabilirliği sağlamak için birer boş satır bırakınız. Filiz Eyüboğlu YTÜ-BTB 22

23 for TEKRAR YAPISI Şekil 2.16 daki programı for kullanarak yazalım. // for yapısı kullanarak sayaç-kontrollu tekrar #include <iostream> using std::cout; using std::endl; // ilk değer atama, tekrar koşulu, artırma...herşey f o r // yapısının başlığında for (int sayac = 1; sayac <= 10; sayac++) cout << sayac << endl; return 0; Şekil s.91 SIK YAPILAN HATALAR: While ve for cümlelerinin koşulllarında yanlış bağıntısal operatörler ve/veya yanlış son değerler kullanmak. Örneğin, birden ona kadar sayılar yazdırılacaksa, sayac = 1 ile başlayıp, (sayac <= 10) koşulu sınanmalıdır. Ancak çoğu kişi sayac = 0 ile başlayıp koşulu (sayac < 10) şeklinde yazmayı tercih eder. İkide doğru. ANCAK İKİSİNİ BİRBİRİNE KARIŞTIRMAYIN! for yapısının genel formatı: for ( ilk değer atama; döngü devam koşulu; artırma ) cümle İlk değer atama kısımında döngü kontrol değişkenine ilk değer ataması yapılır. Dööngünün devam testi kısmında, döngünün devam koşulu sınanır. Artırma kısmında da döngü kontrol değişkeni artırılır. Daha anlaşılır olması bakımından pek çok durumda f o r yerine ona denk şu w h i l e yapısı kullanılır. ilk değer atama; while ( döngü devam koşulu ) cümle Filiz Eyüboğlu YTÜ-BTB 23

24 artırma SIK YAPILAN HATALAR: s.93 for yapısının başlık kısmı içinde tanımlanıp değer atanan bir değişkeni, for un gövdesi dışında kullanmak. ANCAK bu kural özellikle eski C++ derleyicilerinde farklılıklar gösterebilir. Bu bakımdan, taşınabilirlik için, 1- her for yapısında farklı bir kontrol değişkeni kullanın ya da 2- aynı değişkeni kullanmak birden fazla for yapısında kullanmak istiyorsanız, bu değişkeni ilk for yapısının dışında ve yapıdan önce tanımlayınız. for yapısının başlık bölümünde yer alan ilk değer atama ve artırma kısımlarında birden fazla ifade yer alabilir, bu durumda bunlar virgül ile ayrılırlar. Yani ilk değer atama kısmında birden fazla değişkeni tanımlayıp değer atayacaksanız bunlar virgülle ayrılırlar. Döngünün devam koşuluna geçmek için noktalı virgül kullanılmalıdır. Devam koşulunun sınanmasından sonra, artırma kısmına geçerken de arada noktalı virgül olmalıdır. Noktalı virgül yerine virgül koymak yazım (syntax) hatasına yol açar. İlk değer atamalarda sadece for için gerekli değişkenleri tanımlayınız. for dışında kullanılacak değişkenleri for yapısının dışında tanımlayınız. for yapısının başlık bölümünde yer alan 3 ifade seçimliktir; yani hepsinin konması gerekmez. Örneğin döngü devam koşulu kaldırılırsa sonsuz döngü meydana gelir. Artırma kısmı kaldırılıp, aşağıdaki ifadelerden biri kullanılarak for un gövde kısmına konabilir. Bu ifadeler birbirine denktir. sayac = sayac + 1 sayac sayac sayac ı bir artırıp gövdeyi çalıştırır. sayac gövdeyi çalıştırdıktan sonra sayac bir artırılır. Bu nedenle bu daha doğal bir kullanımdır. Önce veya sonra artırmadaki farklılık böyle bir kullanımda sorun yaratmaz çünkü s a y a c değişkeni bir aritmetik ifadede yer almamaktadır. for yapısının başlık bölümündeki 3 ifade (ilk değer atama; döngü devam koşulu; artırma) aritmetik ifadeler içerebilir. Örnek olarak, x=2 ve y=10 kabul edelim. Eğer x ve y döngünün gövdesinde değiştirilmiyorsa şu iki cümle birbirine denktir: for ( int j = x; j <= 4 * x + y; j += y / x) for ( int j = 2; j <= 80; j += 5) NOT: - artırma kısmı negatif olabilir. Bu durumda kontrol değişkeninin değeri eksiltilerek aşağı doğru sayma yapılmış olur. Filiz Eyüboğlu YTÜ-BTB 24

25 - for a ilk başlayışta döngü devam koşulu yanlış ise, for un gövdesi yürütülmez, kontrol, for yapısından sonraki ilk cümleye geçer. F o r yapısının akış şeması, w h i l e ın akış şemasına benzer. Örnek olarak: f o r ( int j = 1; j <= 10; j++) cout << j << endl; j = 1 doğru j <= 10 Cout << j << endl; j++ yanlış Şekil s. 95 Tipik bir for tekrara yapısının akış şeması for yapısı kullanan örnekler a) kontrol değişkenini 1 den 100 e kadar 1 artırın. for ( int i = 1; i <= 100; i++ ) b) kontrol değişkenini 100 den 1 e kadar 1 azaltın. for ( int i = 100; i >= 1; i-- ) kontrol değişkeninin azaltma veya artma durumuna göre doğru bağıntısal operatörü kullanmaya dikkat ediniz. c) kontrol değişkenini 7 den 77 ye kadar 7 şer artırın. for ( int i = 7; i <= 77; i += 7 ) d) kontrol değişkenini 20 den 2 ye 2 şer azaltın. for (int i = 20; i >= 2; i-=2) e) kontrol değişkenini 2,5,8,11,14,17,20 değerlerini alacak şekilde ayarlayın. for (int j = 1; j <= 20; j += 3) Filiz Eyüboğlu YTÜ-BTB 25

26 f) kontrol değişkenini 99,88,77,66,55,44,33,22,11,0 değerleini alacak şekilde ayarlayın. for ( int j = 99; j >= 0; j-=11 ) BASİT BİR PROGRAM // 2 den 100 e kadar çift sayıların toplamı bulan program #include <iostream> using std::cout; using std:: endl; int toplam = 0; for (int sayi = 2; say,i <= 100; sayi +=2 ) toplam += sayi; cout << Toplam = << toplam << endl; return 0; Toplam = 2550 Şekil s.96 for un gövde kısmı, başlık kısmının içine alınarak şöyle de yazılabilirdi: for (int sayi = 2; sayi <= 100; toplam += sayi; sayi += 2) // ilk değer ata // devam koşulu // toplamı oluştur // kontrol değişkenini artır ANCAK BU ŞEKİLDE gövdeyi başlığın içine alarak - KODLAMAK PROGRAMIN OKUNABİLİRLİĞİNİ AZALTMAKTADIR. BAŞKA BİR for ÖRNEĞİ: 1000 lirasını %5 den yıllık faize yatıran bir kişinin, faiz ve anaparadan hiç çekmediğini düşünürsek 10 sene sonra kaç lirası birikmiş olur. a = p (1 + r)ⁿ p: ilk yatırılan anaparanın miktarı r: yıllık faiz oranı n: yıl sayısı a: n sene sonunda oluşan toplam para for döngüsü 10 kez dönmeli kontrol değişkeni birer birer artacak Filiz Eyüboğlu YTÜ-BTB 26

27 C++, üs alma operatörü içermediğinden pow standart kitaplık fonksiyonu kullanacağız. pow (x,y) x in y ninci üssünü alır. x ve y double tanımlanmalıdır. Bu programımızın çalışması için <cmath> dahil edilmelidir. pow un argümanı oalacak sene değişkeni tamsayıdır (int). Pow çalışırken int i double a çevirerek geçici bir yere koyar. Yukardaki formüle göre programda Belirli bir senenin sonunda oluşan para = anapara * pow (1.0 + oran, sene) şeklinde hesaplanacatır. DİKKAT: Bilgisayarda ve olarak saklı olan iki para değeri, print işlemi esnasında setprecision(2) belirtilmişse ve olarak yazılırlar. Bu değerler toplandığında siz sonucu beklerken, virgülden sonraki ve printte görmediğimiz 3.basamaktaki değerler nedeniyle toplam olacaktır. Bunun farkında olun. Para hesaplarına dikkat! Faiz probleminin C++ ile kodlanması // Bileşik faiz hesabı yapan program #include <iostream> using std::cout; using std::endl; using std::ios; #include <iomanip> using std::setw; using std::setiosflags; using std::setprecision; #include <cmath> double miktar, anapara = , oran =.05; // Çıktının başlığını yazdır cout ( SENE << setw (21) << HESAPTAKİ MİKTAR << endl; // set the floating-point number format cout << setiosflags( iosfixed ios::showpoint ) << setprecision (2); for (int sene =1; sene <= 10; sene++) miktar = anapara * pow (1.0 + oran, sene); cout << setw (4) << sene << setw(21) << miktar << endl; return 0; Filiz Eyüboğlu YTÜ-BTB 27

28 SENE HESAPTAKİ MİKTAR Şekil s. 98 switch YAPISI: ÇOKTAN SEÇME İÇİN ( multiple-selection ) Anımsanacağı gibi if cümlesi tek bir koşulun doğru olma durumuna göre bir seçeneğin (single-selection) yürütülmesini; if / else koşulun doğru veya yanlışlığına göre iki değişik seçenekten (double selection) birinin yürütülmesini sağlıyordu. Zaman zaman algoritmamız ikiden fazla seçeneğin sınanıp her bir seçenek için değişik işlerin yapılmasını gerektirebilir. C++ da bu iş için switch yapısı kullanılır. Örnek Program: Harf notlarının sayılması // Harf notlarını sayan program #include <iostream> using std::cout; using std::cin; using std::endl; int not, sayaca = 0, // A ların sayısı sayacb = 0, // B lerin sayısı sayacc = 0, // C lerin sayısı sayacd = 0, // D lerin sayısı sayacf = 0; // F lerin sayısı EOF, IBM PC uyumlu makinelerde ctrl Z cout << Harf notlarını giriniz. << endl << Girdi sonunu belirtmek için EOF karakterini giriniz. << endl; while ( ( not = cin.get () )!= EOF ) switch (not) cin.get() klavyeden girilen bir karakteri okur ve not değişkenine koyar. Bu komutun detayı konu 6 da...not, integer bir değişken. Aslında okunan karakterin, karakter bir değişkene konması gerekirdi, ancak C++ in çok önmeli bir özelliği karakterlerin int değişkenlere atanmasına izin vermesidir. Filiz Eyüboğlu YTÜ-BTB 28

29 case A : case a : ++sayaca; break; switch den çıkmak için break gerekli case B : case b : ++sayacb; break;... hepsini yazmadım... case F : case f : ++sayacf; break; case \n : case \t : case : break; // ignore new lines, // tabs, // spaces in input default: // catch all other characters cout << Yanlış bir harf girdiniz. << Yeni bir harf giriniz. << endl; cout << \n\nher BİR HARF NOTUNDAN KAÇ TANE OLDUĞU: << \na: << sayaca << \nb: << sayacb << \nc: << sayacc << \nd: << sayacd << \nf: << sayacf << endl; return 0; Harf notlarını giriniz. Girdi sonunu belirtmek için EOF karakterini giriniz. A B C C A D F C E Yanlış harf girdiniz. Yani bir harf giriniz. D A B HER BİR HARF NOTUNDAN KAÇ TANE OLDUĞU: A: 3 B: 2 C: 3 D: 2 F: 1 Şekil s. 101 switch örneği Filiz Eyüboğlu YTÜ-BTB 29

30 Yukarıda, karakterlerin tamsayı değişkenlere atanabildiğini gördük, çünkü her bir karakter 1 bayt yer tutar. Dolayısıyla, kullanım alanına göre, bir karaktere, bir tamsayı ya da bir karakter muamelesi yapabiliriz. Örneğin, cout << a karakterin değeri: << static_cast< int > ( a ) << endl; cümlesinin yazdığı satır aşağıdaki gibidir: a karakterinin değeri: DENEMEDİM...AMA static-cast ı denediğim başka bir programda ÇALIŞMADI. Static-cast ın Turbo C++ version 3 deki karşılığını bulmak gerek do / while TEKRAR YAPISI do/while yapısı while yapısına benzemekle beraber fark şudur: while yapısında, döngü devam koşulu döngünün başında sınanır. do/while yapısında ise, döngü devam koşulu döngü yürütüldükten sonra sınanır. Buna göre döngü gövdesi içinde yer alan ifadeler en az bir kere yürütülmüş olur. do/while bittiğinde, while dan sonraki cümle yürütülür. do/while yapısının gövdesi içinde tek bir cümle varsa gövdeyi paranteze almak gerekmez (while ve for daki gibi), birden fazla cümle varsa parantez içine alınmalıdır (yoksa mantık hatası oluşur). Ancak tek bir cümle bile olsa, do/while yapısında parantez kullanmak iyidir; karışıklığı önlemek için. Yani do Cümle while (koşul); cümle do yerine while (koşul); SIK YAPILAN HATALAR while, do/while ve for yapılarında döngü devam koşulunda sınanan kontrol değişkeninin değeri, başlık veya gövde bölümlerinden birinde mutlaka değiştiriliyor olmalıdır. Kontrol değişkenini değiştirmemek sonsuz döngüye neden olur. // fig do/while yapısı #include <iostream.h> Do/while ın akış şeması s.107 Filiz Eyüboğlu YTÜ-BTB fig

31 int sayac = 1; do cout << sayac << ; while (++sayac <= 10); cout << endl; return 0; break ve continue CÜMLELERİ break ve continue cümleleri kontrolun akışını ( flow of control ) değiştirirler. break cümlesi; while, for, do/while, switch yapılarında kullanıldığında, yapıdan anında çıkmayı sağlar; bu durumda kontrol, yapıdan sonraki ilk cümleye geçer (programın yürütülmesi bu cümleyle devam eder). Şekil f o r yapısı içinde b r e a k in kullanımını göstermektedir. // f o r içinde b r e a k kullanan program #include <iostream.h> int x; for ( x = 1; x <= 10; x++ ) if (x==5) break; // break loop only if x is 5 cout << x << ; cout << \nbroke out of loop at x of << x << endl; return; Broke out of loop at x of 5 Şekil s. 108 Deitel continue cümlesi, while, for, do/while yapıları içinde kullanıldığında, gövdenin içinde continue dan sonra gelen cümleleri atlayarak, döngüye devam eder: kullanılmakta olan yapı while veya do /while ise döngü devam koşulu sınanır, for ise, kontrol değişkeninin artırım işlemi yapılır, sonra devam koşulu sınanır. for ve continue kullanımına başka bir örnek: // şekil.2.27 f o r ve c o n t i n u e kullanımına örnek Filiz Eyüboğlu YTÜ-BTB 31

32 #include <iostream.h> for ( x = 1; x <= 10; x++ ) if (x==5) continue; // skip the remaining code in loop only if x is 5 cout << x << ; cout << \n5 i yazmamak için c o n t i n u e kullanıldı. << endl; return; şekil i yazdırmamak için c o n t i n u e kullanıldı. ÖNEMLİ NOT: Bazı programcılar break ve continue kullanımının yapısal programlamayı ihlal ettiğini düşünürler. Esasen bu cümlelerin işlevleri, ilerde görceğimiz yapısal programlama teknikleriyle sağlanabilir. Bu durumda, break ve continue kullanmaya gerek kalmaz. MANTIKSAL OPERATÖRLER Şimdiye kadar basit koşulların nasıl ifade edildiğini (tek bir koşul) gördük: sayac <= 10, toplam > 1000, flag!= 0 gibi. Birden fazla koşulu sınamak içinse içiçe if ler veya if/else yapıları kullanabileceğimizi gördük. Daha karmaşık koşulların ifadesi için veya basit koşulların biraraya getirilmesi için C++, mantıksal operatörler sağlar: && (mantıksal AND) ve (mantıksal OR) ve! (mantıksal NOT). İki koşulun aynı anda doğru olması durumunda belirli bir işlem yapmak istiyorsak bu koşulları mantıksal VE ile bağlayarak ifade etmeliyiz: Örneğin: if (cinsiyet == 1 && yas >= 65) ++grup1; if in başlığındaki koşul, ancak, && ile bağlanmış her iki koşul da doğruysa doğrudur. ((((( logical AND, OR, NOT biliniyor mu???? ))))) Mantıksal AND: ifade1 ifade2 ifade1 && ifade2 yanlış yanlış yanlış yanlış doğru yanlış doğru yanlış yanlış Filiz Eyüboğlu YTÜ-BTB 32

33 doğru doğru doğru SIK YAPILAN HATALAR: 3 < x < 7 şeklinde bir ifade, her ne kadar matematiksel olarak doğruysa da bunu C++ da (3<x && x<7) şeklinde yazmak gerekir. Mantıksal OR: ifade1 ifade2 ifade1 ifade2 yanlış yanlış yanlış yanlış doğru doğru doğru yanlış doğru doğru doğru doğru if (donem_ortalamasi <= 90 final_notu >= 90 ) cout << Ogrencinin notu: A << endl; && operatörünün, ye göre önceliği vardır. Soldan sağa işlem yapılır. && ve içeren bir ifadenin doğruluğu ya da yanlışlığı kesin olarak belli olduğu anda daha sağdaki ifadelerin değerlendirilmesinde gerek kalmaz. Örneğin, if (cinsiyet == 1 && yas >= 65 ) ifadesinde cinsiyet bire eşit değilse yani birinci ifade yanlış ise, yaş koşulunu sınamaya gerek yoktur çünkü && ile bağlı iki ifadeden biri yanlış ise tüm ifadenin sonucu yanlış olacaktır. Mantıksal NOT ( logical negation ) ifade doğru yanlış!ifade yanlış doğru EŞİTLİK (==) ve ATAMA (=) OPERATÖRLERİNİN KARIŞMASI Ne kadar deneyimli olursa olsun C++ programcıları zaman zaman atama operatörü = ile eşitlik koşulu sınamasa kullanılan == i birbirinin yerine kullanabilmektedirler. Böyle bir hata durumunda program doğru olarak derlenmekte ancak yürütüldüğü zaman ya yanlış sonuçlar veya mantık hatası vermektedir. Örneğin if ( odeme_kodu == 4) Filiz Eyüboğlu YTÜ-BTB 33

34 yerine cout << ikramiye kazandınız! << endl; if (odeme_kodu = 4) cout << ikramiye kazandınız! << endl; kodladığınızı düşünelim. Hatırlanacağı gibi, if in koşulunun doğru olması demek parantez içindeki kısımdan 1 (true doğru) dönmesi demektir. Ancak bu durumda if in gövde kısmı yürütülür. Örnekte ilk if de (doğru kodlanmış olan) odeme_kodu 4 ise, koşul doğru (1) olur. İkinci yanlış - yazılanda ise bize problem yaratan C++ ın şu kuralıdır: Bir değer yaratan herhangi bir ifade if kontrol yapısının karar kısmında kullanılabilir. Bu değer sıfır ise, yanlış ( false ) olarak değerlendirilir, değer sıfırdan farklıysa doğru ( true ) olarak değerlendirilir. Buna göre odeme_kodu = 4 atama cümlesi hem odeme_kodu na 4 atayarak bunun orijinal değerini bozar hem de sıfırdan büyük olduğu için if in koşulunun her zanman doğru olması sonucunu doğurur, buna göre de kişi her durumda ikramiye kazanır. = ATAMA ve EŞİTLİK OPERATÖRLERİNE DİKKAT!!!!!!! AYRICA, ATAMA CÜMLESİNDE, DEĞİŞKEN, = İŞARETİNİN SOL TARAFINDA YER ALMALIDIR. YAPISAL PROGRAMLAMA ÖZETİ Sınfta yapılar tahtaya çizilerek anlatılacak. A computer program is said to be structured if it has a modular design and uses only the three types of logical structures: 1- sequences 2- decisions (decision structures: if / else, switch) 3- loops (repetition structures: for, do while) Diğer bir tanım: Structured programmimg is a technique for organizing and coding computer programs in which a hierarchy of modules is used, each having a single entry point and a single exit point, in which control is passed downward through the structure without unconditional branches to higher levels of the structure. ***** YILDIZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR ve ÖĞRETİM TEKNOLOJİLERİ EĞİTİMİ BÖLÜMÜ Filiz Eyüboğlu YTÜ-BTB 34

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ı

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak:  Published by Juan Soulié Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama

Detaylı

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin); case 2 : C = 0.5088-0.0011*(B-135); break; case 3 : C = 0.4978-0.0010*(B-145); break; case 4 : C = 0.4878-0.0009*(B-155); break; default : printf("yanlış seçenek\n");} cout

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ı

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

BMT 101 Algoritma ve Programlama I 5. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 5. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Programlamaya Giriş Yük. Müh. Köksal Gündoğdu 2 Programlama Dili Bilgisayar dünyası 1960 lardan bu yana pek çok dille tanıştı.

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ı

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ı

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ı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

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ı

Bölüm 3 Yapısal Programlama

Bölüm 3 Yapısal Programlama 1 Bölüm 3 Yapısal Programlama Konular 3.1 Giriş 3.2 Algoritmalar 3.3 Pseudocode (Sahte kodlar) 3.4 Kontrol yapıları 3.5 If Seçim yapısı 3.6 If Else Seçim yapısı 3.7 While Döngü yapısı 3.8 Algoritmaları

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ı

BMT 106 Algoritma ve Programlama II Bahar Dönemi

BMT 106 Algoritma ve Programlama II Bahar Dönemi BMT 106 Algoritma ve Programlama II 2016 2017 Bahar Dönemi DERS AKIŞI 1. C++ a Giriş, Veri Tipleri Yorum Satırı, Bool İfadesi, If Else Kullanımı, If Else Yapısı Örnekleri, Switch Case Yapısı, Operatörler

Detaylı

C++ Statements. { ve } arasında ifade edilen bir dizi statement bir compound statement (birleşik ifade) oluşturur.

C++ Statements. { ve } arasında ifade edilen bir dizi statement bir compound statement (birleşik ifade) oluşturur. C++ Statements En küçük çalışabilir birime statement (ifade) denir. Statements semicolon (;) ile sonlandırılır. Yalnız başına ; null statement ifade eder Örnek: while (*str++ = *inbuf++) ; { ve } arasında

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 da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

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ı

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ı

Bölüm 4 C de Program Kontrolü

Bölüm 4 C de Program Kontrolü 1 Bölüm 4 C de Program Kontrolü Outline 4.1 Giriş 4.2 Döngülerin Temelleri 4.3 Sayıcı Kontrollü Döngüler 4.4 for Döngü Yapısı 4.5 for Döngü Yapısıyla İlgili Notlar ve Gözlemler 4.6 for Yapısıyla İlgili

Detaylı

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ C# Yazım Kuralları 1 İçindekiler C# Yazım Kuralları Veritipleri Değişkenler Operatörler Sınıflar Nesneler, Özellik, Metot ve Olay Bileşenler 2 C# yazım kuralları Deyimlerde büyük küçük harf yazıma uyulmalı

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ı

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ı

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu BBS515 Nesneye Yönelik Programlama Ders 3 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ Bağıntısal Operatörler operatör tanımı < küçüktür > büyüktür = büyük eşittir eşittir!= eşit

Detaylı

Programlamaya Giriş Karar Yapıları, Tekrarlı İfadeler(Döngüler)

Programlamaya Giriş Karar Yapıları, Tekrarlı İfadeler(Döngüler) Programlamaya Giriş Karar Yapıları, Tekrarlı İfadeler(Döngüler) Konular Program Blokları Sıra Yapısı Kontrol Yapıları Karar Yapıları (İf) İf/Else İç İçe İf/Else Switch-Case (Çoklu Dallanma Yapıları) Döngüler

Detaylı

En kucuk calisabilir birime satetement denir Statements semicolon (;) ile sonlanir Yalniz basina ; null statement i ifade eder

En kucuk calisabilir birime satetement denir Statements semicolon (;) ile sonlanir Yalniz basina ; null statement i ifade eder C++ Statements C++ control structures En kucuk calisabilir birime satetement denir Statements semicolon (;) ile sonlanir Yalniz basina ; null statement i ifade eder Ornek: while (*str++ = *inbuf++) ; {

Detaylı

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama İçerik Java da İşleçler, Kontrol Akış ve Döngü Deyimleri Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu ders: Java da işleçler ( operators ) Java da kontrol-akış

Detaylı

Java da İşleçler, Ders #3 (4 Kasım 2009)

Java da İşleçler, Ders #3 (4 Kasım 2009) Java da İşleçler, Kontrol Akış ve Döngü Deyimleri BS-515 Nesneye Yönelik Programlama Ders #3 (4 Kasım 2009) İçerikç Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu

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ı

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir. www.csharpturk.net Türkiye nin C# Okulu Yazar Yunus Özen Eposta yunus@yunus.gen.tr Tarih 08.04.2006 Web http://www.yunusgen.tr ARİTMETİK OPERATÖRLER VE KULLANIM ŞEKİLLERİ Bilgisayarlar yapıları gereği,

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ı

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ MTK467 Nesneye Yönelik Programlama Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ while döngüsü while(koşul){ } döngü ifadeleri Koşul boolean değerli olmalıdır. Koşulun değeri true

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ı

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 Ekrana Metin Yazdırmak Ekranda metin yazdırmak istendiğinde print komutu kullanılır. Kullanımı aşağıda verilmiştir. Parantez içinde

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ı

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ı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 JAVA DA PROGRAM DENETİMİ VE OPERATÖRLER Java programlama dilinde temel tipleri ve nesneleri yönlendirmek ve değiştirmek için operatörler kullanılır. Atamalar sağ taraftaki

Detaylı

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

if (ad == Sabri) Console.WriteLine(Merhaba Sabri. Ne zamandır gözükmüyodun...); Koşul İfadeleri ve Akış Kontrolü Koşul ifadeleri ve akış kontrolleri programlama dillerinde her zaman en önemli yeri tutmaktadır. Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir

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ı

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ı

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ı

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN GİRİŞ Ekrana «Merhaba Java» şeklinde bir mesajı 100 defa yazmak istediğinizi düşünelim. Aşağıdaki komut satırını 100 kez yazmak sıkıcı

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

Program Akış Kontrol Yapıları

Program Akış Kontrol Yapıları Program Akış Kontrol Yapıları Giriş Normal şartlar altında program içerisindeki çalıştırılabilir satırlar, yazılmış oldukları sırada, yani birinden sonra diğerinin çalışması şeklinde ilerler. Programın

Detaylı

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA Muhammet BAYKARA 1 İlkel Veri Türleri Type Name Kind of Value Memory Used Size Range byte integer 1 byte -128 to 127 short integer 2 bytes -32768

Detaylı

Algoritma. 19. yüzyılda Persli matematikçi Al- Khowarizmi (Al-Harezmi) tarafından bulunmuş ve onun adında türetilmiştir.

Algoritma. 19. yüzyılda Persli matematikçi Al- Khowarizmi (Al-Harezmi) tarafından bulunmuş ve onun adında türetilmiştir. Algoritma 19. yüzyılda Persli matematikçi Al- Khowarizmi (Al-Harezmi) tarafından bulunmuş ve onun adında türetilmiştir. Algoritma Problem çözmek için geliştirilen Adım adım çözüm yöntemidir. Verilen bir

Detaylı

BÖLÜM 1: PROGRAMLAMAYA GİRİŞ

BÖLÜM 1: PROGRAMLAMAYA GİRİŞ BÖLÜM 1: PROGRAMLAMAYA GİRİŞ Bilgisayar, verileri klavye, dosya ve veritabanı gibi değişik ortamlardan girdi olarak alan, istendiğinde bunları saklayan, veriler üzerinde çok hızlı işlem yapan ve sonuçları

Detaylı

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN TEMEL AMAÇLAR Bir dairenin yarıçapını kullanıcıdan alarak dairenin alanını hesaplamak istediğimizi düşünelim. Eğer girilen değer

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ı

Java da Program Denetimi ve Operatörler

Java da Program Denetimi ve Operatörler Java da Program Denetimi ve Operatörler 1 Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! 2 Temel (Primitive) Tiplerde Atama int a, b ; a=4 ; b=5 ; a=b ; Sonuç : a=5, b=5 3 Nesneler

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ı

Ç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ı

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ı

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir: Programın Akışının Denetimi Bir program komutların yazıldığı sırada akar. Ama çoğunlukla, bu akışı yönlendirmek gerekir. Bu iş için denetim yapılarını kullanırız. Bunlar iki gruba ayrılabilir: Yönlendiriciler

Detaylı

KONU 7: DOSYA İŞLEME ( File Processing )

KONU 7: DOSYA İŞLEME ( File Processing ) DERS: PROGRAMLAMA DİLLERİ 1 DÖNEM: 2002-2003 Güz yarı yılı KONU 7: DOSYA İŞLEME ( File Processing ) HEDEFLER: 1- Dosyaları yaratabilme, okuyabilme, yazabilme ve güncelleyebilme 2- Sıralı erişim dosyalarını

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Ders konuları 1. Programlamaya Giriş 2. Program Denetimi ve Operatörler 3. Nesnelerin

Detaylı

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) { Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel

Detaylı

C Dersi Bölüm 1. Bilgisayar Donanımı

C Dersi Bölüm 1. Bilgisayar Donanımı C Dersi Bölüm 1 M Bodur 1 Bilgisayar Donanımı Bilgisayarın yapısını ve çalışma prensiplerini bilmemiz Bir bilgisayar programından neler bekleyebileceğimizi anlamamızı sağlar. Bigisayar dört temel birimden

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ı

C#(Sharp) Programlama Dili

C#(Sharp) Programlama Dili Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin

Detaylı

Akış Kontrol Mekanizmaları

Akış Kontrol Mekanizmaları Akış Kontrol Mekanizmaları 1 Akış Kontrol Mekanizmaları if else switch for döngüsü for döngüsünün çalışma prensibi for döngüsüyle ilgili örnekler for döngüsüyle ilgili kurallar while döngüsü while döngüsünün

Detaylı

Döngüler - Loops 4/9/2010. ENF-102 Jeoloji Giriş. Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

Döngüler - Loops 4/9/2010. ENF-102 Jeoloji Giriş. Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler. Giriş Döngüler - Loops Bir ifade kümesinin tekrarlanması, yani birden fazla çalıştırılması işlemine döngü (loop) dendiğiğ programlamaya giriş ş kısmında belirtilmişti. Bu derste döngülerin C programlama

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ı

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ı

C Dersleri Bölüm 3 : Program akışı

C Dersleri Bölüm 3 : Program akışı İzmir Ekonomi Üniversitesi Bilgisayar Topluluğu www.ieubt.org C Dersleri Bölüm 3 : Program akışı Sorularınız için : programlama@ieubt.org Hazırlayan : Görkem PAÇACI (gorkem.pacaci@std.ieu.edu.tr) C Program

Detaylı

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Uzman Mehmet ŞİMŞEK Ofis : Gazi Ünv., Bilgisayar Mühendisliği

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Elemanları Bu bölümde;

Detaylı

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu https://zumrakavafoglu.github.io/

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ BBS515 Nesneye Yönelik Programlama Ders 2 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ print metodu System.out.print imleci aynı satırda tutar, System.out.println imleci bir alt satıra indirir Tamsayı

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ı

Bilgisayarda Programlama. Temel Kavramlar

Bilgisayarda Programlama. Temel Kavramlar Bilgisayarda Programlama Temel Kavramlar KAVRAMLAR Programlama, yaşadığımız gerçek dünyadaki problemlere ilişkin çözümlerin bilgisayarın anlayabileceği bir biçime dönüştürülmesi / ifade edilmesidir. Bunu

Detaylı

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu. Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html

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ı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi BLM111 Programlama Dilleri I Hafta 7 C Programlama Diline Giriş ve C Derleyicisi Yrd. Doç. Dr. Caner ÖZCAN C Programlama Dili Tarihçesi C programlama dili 1972 yılında Bell Laboratuarlarında Dennis Ritchie

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Veri Hiyerarşisi Dosyalara Giriş

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ı

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ı

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ı

Döngüler - Loops 4/13/2011. ENF-102 Jeoloji Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

Döngüler - Loops 4/13/2011. ENF-102 Jeoloji Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler. Giriş Döngüler - Loops Bir ifade kümesinin tekrarlanması, yani birden fazla çalıştırılması işlemine döngü (loop) dendiği programlamaya giriş kısmında belirtilmişti. Bu derste döngülerin C programlama dilinde

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ı

Giri. Program yazmaya balamadan önce

Giri. Program yazmaya balamadan önce Kontrol Yapıları Giri Algoritmalar Pseudocode Kontrol Yapıları if Seçme Yapısı if/else Seçme Yapısı while Tekrar Yapısı Algoritma Düzenleme : Örnek Çalıma 1 (Sayaç Kontrollü Tekrar) Algoritma Düzenleme

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ı

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 Kodlarına Yorum Satırı Eklemek Java Paket Kavramı Java Kütüphane Kavramı Konsoldan Veri Çıkışı ve JOPtionPane Kütüphanesi JOptionPane Kütüphanesi Kullanarak

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ı

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir. PHP'nin Temelleri PHP Nedir? PHP, bir programlama dili olarak, değişkenler, değişkenlerin değerleriyle bir işlem yapmayı sağlayan işlemciler (operatörler), işlemcilerle oluşturulan deyimler ve nihayet

Detaylı

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları) BLGM108 1. BÖLÜM Problem Çözme Kavramları (Algoritma ve Akış Şemaları) 1 Yazılım Geliştirme Adımları 1. Gereksinimlerin belirlenmesi Problemin ne olduğunu anlama: sorunu çözmek için ne gereklidir, çözüm

Detaylı

BMT 101 Algoritma ve Programlama I 2. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

BMT 101 Algoritma ve Programlama I 2. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1 BMT 0 Algoritma ve Programlama I 2. Hafta Yük. Müh. Köksal GÜNDOĞDU Algoritma ve Programlama Yük. Müh. Köksal GÜNDOĞDU 2 Algoritma Kavramı Yük. Müh. Köksal GÜNDOĞDU 3 Algoritma ve Programlama Bilgisayardaki

Detaylı

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma TEMEL BİLGİSAYAR BİLİMLERİ Programcılık, problem çözme ve algoritma oluşturma Programcılık, program çözme ve algoritma Program: Bilgisayara bir işlemi yaptırmak için yazılan komutlar dizisinin bütünü veya

Detaylı

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8 BTP 27 İNTERNET PROGRAMCILIĞI I Ders 8 Değişkenler 2 Tamsayı Değerler (Integer) Tamsayılar, tabanlı (decimal), 8 tabanlı (octal) veya 6 tabanlı (hexadecimal) olabilir. 8 tabanındaki sayıları belirtmek

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince

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 Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C ve Fonksiyonlar Fonksiyon Tanımı 8. BÖLÜM 3 Fonksiyonlar

Detaylı

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır. GİRİŞ Algoritması tasarlanmış (metin olarak yazılmış, sözde kodlarla kodlanmış veya akış diyagramı çizilmiş) bir problemi/işlemi, bilgisayar programlama dillerinden birisiyle kodlamak son derece kolaydır.

Detaylı

Bölüm 7. İfadeler ve atamalar ISBN

Bölüm 7. İfadeler ve atamalar ISBN Bölüm 7 İfadeler ve atamalar ISBN 0-321-49362-1 7. Bölüm konuları Giriş Aritmetik ifadeler Çok anlamlı (overloaded) operatörler Tip dönüşümleri (conversions) İlişkisel ve Boolean İfadeler Kısa-devre hesaplama

Detaylı

Algoritmalar ve Programlama. Algoritma

Algoritmalar ve Programlama. Algoritma Algoritmalar ve Programlama Algoritma Algoritma Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Algoritma bir sorunun çözümü

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya

Detaylı

ALGORİTMA NEDİR? (Adım adım işlem basamaklarının yazılmasıdır.)

ALGORİTMA NEDİR? (Adım adım işlem basamaklarının yazılmasıdır.) PROGRAM YAZMAK SÜRECİ 1. Problemin farkına varmak, 2. Problemi analiz etmek, 3. Çözüm yolları düşünmek, 4. İyi çözüm yolları seçip algoritma oluşturmak, 5. Akış diyagramı çizmek, 6. Uygun bir dilde kodlamak,

Detaylı

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu BBS515 Nesneye Yönelik Programlama Ders 2 Zümra Kavafoğlu https://zumrakavafoglu.github.io/ Bu derste neler öğreneceğiz? IntelliJ ile proje oluşturma Yorum satırları Sınıf deklarasyonu İsimlendirme kuralları

Detaylı

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları BLM111 Programlama Dilleri I Hafta 9 C Dilinde Kontrol ve Döngü Yapıları Yrd. Doç. Dr. Caner ÖZCAN Karar (Karşılaştırma) Komutları if-else Koşulların kontrolünde kullanılan komutlardır. Koşulların doğru

Detaylı

C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 1: Bilgisayarlar ve Programlama Dillerine Kısa Bakış

C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 1: Bilgisayarlar ve Programlama Dillerine Kısa Bakış C++ Programming: Program Design Including Data Structures, Third Edition Bölüm 1: Bilgisayarlar ve Programlama Dillerine Kısa Bakış Bölüm 1 : Amaçlar Farklı tipteki bilgisayarların öğrenilmesi Bir bilgisayar

Detaylı