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. (0-9). Değişken adında özel karakter kullanılmaz. Değişken adında boşluk bırakılmaz. Sadece İngilizce karakterler yer almalıdır. (ö, ü, ç, ş, ğ, ı olmamalı). Değişkenler büyük ve küçük harf duyarlıdır. (sayi3 eşit değil Sayi3). Değişkenin uzunluğu 32 karakteri geçmemelidir. Değişken C/C++ a ayrılmış özel adlardan olmamalıdır.
C++ İÇİN UFAK HATIRLATMALAR Geçerli Tanımlama: Sayi1 Ogr_Numarasi Adres OLCME Sayi1 a_switch Hatalı Tanımlama: 1ncisayi Ogr Numarasi Genel#Toplam ölçme 1Sayi switch
C++ İÇİN UFAK HATIRLATMALAR DEĞİŞKEN OLAMAYACAK ÖZEL KELİMELER
C++ İÇİN UFAK HATIRLATMALAR Açıklama Satırı /* Açıklama Satırı: Program ile ilgili bilgiler yazılır. Bu program iki sayıyı toplar ekrana yazar 22 Şubat 2017 */ // Açıklama satırları yukarıda görüldüğü gibi /* açıklama*/ arasına yazılabilecegi gibi // iki slash kullanılarak da oluşturulabilir. //... sadece satırı temsil eder /*... */ bir bloğu temsil eder.
C++ İÇİN UFAK HATIRLATMALAR using namespace std; kullanımı: #include<iostream> int main() { int i = 5; float f = 4.6; using namespace std; Kullanılmadığında örnekte olduğu gibi de kullanılabilir. std::cout << "Tamsayı i=" << i ; std::cout << "Kayan noktalı sayı f=" << f; }
C++ İÇİN UFAK HATIRLATMALAR #define ve const kullanımı; #include<iostream> # define PI 3.14 const double pi = 3.1415; int main() { const double pi = 3.1415; int i = 5; float f = 4.6; std::cout << "Tamsayı i=" << i ; std::cout << "Kayan noktalı sayı f=" << f; } Kesinlikle GLOBAL!!! LOCAL veya GLOBAL tanımlanabilir
C++ İÇİN UFAK HATIRLATMALAR Ekran çıktılarında TÜRKÇE karakter desteği; #include<iostream> using namespace std; int main() { int i = 5; float f = 4.6; cout << "Tamsayı i=" << i << endl; cout << "Kayan noktalı sayı f=" << f << endl; system("pause"); } ÇIKTI
C++ İÇİN UFAK HATIRLATMALAR Ekran çıktılarında TÜRKÇE karakter desteği; #include<iostream> #include <locale.h> using namespace std; int main() { int i = 5; float f = 4.6; setlocale(lc_all, "turkish"); cout << "Tamsayı i=" << i << endl; cout << "Kayan noktalı sayı f=" << f << endl; system("pause"); } ÇIKTI
C++ İÇİN UFAK HATIRLATMALAR OPERATÖRLER; 1-İşlevlerine göre; Aritmetik operatörler(+,*,/...) İlişkisel operatörler(<,>,<=,...) Mantıksal operatörler(and,or,not,xor,..) Bit operaörleri(belli bir sayının kaçıncı bitinin kaç olduğu hakkında bilgi verir) Gösterici operatörleri Özel amaçlı operatörler
C++ İÇİN UFAK HATIRLATMALAR 2-Operand sayılarına göre; İki operand alanlar (binary) Tek operand alanlar (unary) Üç opernd alanlar (ternary)
C++ İÇİN UFAK HATIRLATMALAR 3-Operatörün konumuna göre; Ara ek operatörler (infix) Ön ek operatörle (prefix) Son ek operatörleri (postfix)
C++ İÇİN UFAK HATIRLATMALAR +, -, *, / binary, infix % operatörü Binary infix bir operatördür. Bölüm işlemindeki kalanı hesaplar. ++ ve -- ++ arttırma -- eksiltme operatörüdür. İkisi de unary operatörlerdir. Postfix ve prefix olarak kullanılabilir. Fakat kullanımlarda fark vadır. a++ veya ++a yanlız kullanıldığında aynıdır. b=++a; c=a++; aynı değildir. (+ ve -) tek başına kullanılırsa?
C++ İÇİN UFAK HATIRLATMALAR int main(){ int i = 5; int j = 5; int x = 0; int y = 0; x=++i; y=j++; cout << "x=" << x << endl; cout << "y=" << y << endl; system("pause"); }
SORU; En fazla dört basamak olabilen sayının basamak değerlerini yazdır.
C++ İÇİN UFAK HATIRLATMALAR MANTIKSAL OPERATÖRLER(&&) AND && (VE) OR (VEYA) NOT! (DEĞİL)
C++ İÇİN UFAK HATIRLATMALAR AND OPERATÖRÜ(&&) A B A&&B 0 0 0 1 0 0 0 1 0 1 1 1 OR OPERATÖRÜ( ) a b a b 0 0 0 0 1 1 1 0 1 1 1 1 NOT OPERATÖR(!) Bu operatör unary prefixtir. a!a 0 1 1 0
C++ İÇİN UFAK HATIRLATMALAR KARŞILAŞTIRMA KOMUTLARINDA OPERATÖR KULLANIMI; > büyük mü? >= büyük veya eşit mi? < küçük mü? <= küçük veya eşit mi? == eşit mi?!= farklı mı? C dilinde karşılaştırma operatörleri karakter katarları (strings) için kullanılmazlar.
C++ İÇİN UFAK HATIRLATMALAR Örnek; bool a; a = 2>3; std::cout << a;?
SORU; Girilen tarihteki günün adını veren programı yazınız.
SWİTCH
SWİTCH Switch bilindiği gibi bir anahtarlama demektir. Programlada girilen bir klavye tuşuna karşılık gelen işlemlerin gerçekleştirilmesi görevini yüklenir. Yardımcı olarak; CASE (olması durumunda) yapısı ile birlikte kullanılır. Ayrıca istenilen durumların dışında bir çıktı için; DEFAULT; deyimi kullanılır switch (<seçici>) { case seçenek1: Deyim; case seçenek2: Deyim;... default: Deyim; }
SWİTCH Klavye tuşu Blok kırıcı komut. Sadece switch ve loop ile birlikte kullanılırlar. İstenilen durumlar İstenilen durum dışı çare NOT: secim değişkeni rakam ise direk, karakter ise içerisinde yazılırlar. Büyük küçük harf duyarlıdırlar.
SORU; 1-12 arasında girilen sayıya göre mevsimlerin ismini veren programı yapınız
STRİNG İFADELER String ifadeler karaktelerin oluşturduğu anlamlı kelime veya kelime gruplarıdır. Bir isim veya adres bir string ifade olarak söylenebilir. string yapıların kullanılabilmesi için #include<string> kütüphanesinin program başında belirtilmesi gerekmektedir. string kelime; şeklindeki tanımlama kelime değişkenine string türünden yani bir metin girileceğinin belirtilmesi şeklindedir.
STRİNG KULLANIMI String tanımlama Bir boyut fonksiyonudur. Girilen string ifadenin karakter sayısını verir. String tanımlama ile kullanılır Tek bir kelimelik (boşluğa kadar olan kısmı sayar)
SAYAÇLAR 1,2,3,4,5... 1,3,5,7,9... 1,4,7,10,13......10,8,6,4,2,0 Şeklinde ifade edilen kavramlar bir sıralama çeşididir. Bu sıralama işlemleri algoritma mantığında SAYAÇ olarak isimlendirilen kavramlar ile gerçekleştirilir. Bu kavramın oluşabilmesi için gerekli şart sıralamada artış miktarının sabit olmasıdır. Sayaçlar genelde Döngü yapıları ile birlikte kullanılılar.
SAYAÇLAR Sayaçlar mantığını bir programlama dilinde ifade ederken; int sayac=0 Şeklinde tanımlayabilirsiniz. Başlangıç değeri Değişken ismi Değişken türü (genelde int) Bu işleme tanımlama denir
SAYAÇLAR Sayaç değişkeninin program içerisinde istenilen miktar kadar arttırılması veya azaltılması aşağıdaki formülün program içerisinde kullanımı ile gerçekleştirililr. Sayac = sayac ± artış veya azalış miktarı Sayısal değer Önceki değer Bu formül; Sayac+= artış miktarı şeklinde de ifade edilebilir. veya Yeni değer Sayac-= azalış miktarı
DÖNGÜLER Algoritma tasarımlarında bazı işlemlerin istenilen sayıda veya belirli bir şartı sağlayana kadar tekrar tekrar gerçekleştirilmesine olanak sağlayan yapılardır. While Do-While For olarak bilinirler.
DÖNGÜLER WHİLE DO FOR Yanlış Şartı Sorgula KOMUT BAŞLANGIÇ SAYAÇ Doğru Doğru Şartı Sorgula KOŞUL Doğru İŞLEM KOMUT Yanlış Yanlış DEVAM DEVAM DEVAM
DÖNGÜLER while (koşul) { komut_1; komut_2; komut_3;... //komutlar } şekline yapılan tanımlamalardır. do { komut_1; komt_2; komut_3;...} while (koşul); şekline yapılan tanımlamalardır. for (int a=0; a<hedef; a++) {komutlar;} şeklinde yapılan tanımlamalardır.
SORU; 2016 yılı itibarı ile ülke nüfüsu 78 milyondur. Yıllık nüfüs artış oranı %2.1 dir. Sonraki 10 yılda ülke nüfusunu yıllara göre listeleyen program. 1.yıl=... 2.yıl=... 3.yıl=... gibi