bilgisayar programlama i - ijshbahtiyar/dersler/icerik/cplusplus-ders2.pdfsabitler! sabit değerler...
TRANSCRIPT
Bilgisayar Programlama IDERS 2: C++’DA DEĞİŞKENLER, SABİTLER, MATEMATİKSEL İŞLEMLER DR. HÜSEYİN BAHTİYAR
1
Ders 1 Özet
! Programlama nedir, kullanıcı programcı kimdir. ! C++ nasıl bir dildir. ! C++’I nasıl kurabilirim. ! Kurup test etmek.
2
Sabitler! Sabit değerler : rakam, harf, harf katarları (string) sabitler olarak
adlandırılırlar çünkü bu değerler değişmezler.
! Nümerik sabitler ! cout <<95.3<<endl;
! Harf katarları için ise tek ve çift tırnak kullanılır ! cout<<"merhaba ben c++ koduyum"<<end;
3
Değişkenler
! Veriyi kendi içinde depolayan birimlere değişken adı verilir. ! Değişkenin adını kendimiz seçebiliriz. ! Değişkenin içeriğini programın içerisinde değiştirebiliriz.
4
x = 12.2;y = 14;x = 100;
12.2x
14 y
100
6
x:12.2x = 12.2cout<<x<<endl;x = x + 2cout<<x<<endl;y = x - 5cout<<y<<endl;x = x/ycout<<x<<" "<<y<<endl;
7
x:12.2
x:14.2
x = 12.2cout<<x<<endl;x = x + 2cout<<x<<endl;y = x - 5cout<<y<<endl;x = x/ycout<<x<<" "<<y<<endl;
8
x:12.2
x:14.2
x = 12.2cout<<x<<endl;x = x + 2cout<<x<<endl;y = x - 5cout<<y<<endl;x = x/ycout<<x<<" "<<y<<endl;
9
x:12.2
x:14.2
y:9.2
x = 12.2cout<<x<<endl;x = x + 2cout<<x<<endl;y = x - 5cout<<y<<endl;x = x/ycout<<x<<" "<<y<<endl;
10
x:12.2
x:14.2
y:9.2
x:1.54347826087 y:9.2
x = 12.2cout<<x<<endl;x = x + 2cout<<x<<endl;y = x - 5cout<<y<<endl;x = x/ycout<<x<<" "<<y<<endl;
! Değişkenleri C++ da kullanabilmemiz için onların hangi veri türünde olduğunun bildirilmesi gerekir.
12Değişken Tanımlamak
Signed? Unsigned? Global? Local?
! Tam sayı ( integer ) veri türleri, temsil edilecek sayının büyüklüğüne göre, char, short, long ve işaretli ( signed ) veya işaretsiz ( unsigned ) olabilir.
! Değişken tipleri yerel (Local) veya genel (Global) olabilirler. ! Yerel Değişkenler: Fonksiyon veya bir blok içinde tanımlanan ve Bildirimleri yapılan değişkenlerdir. ! Genel Değişkenler: Tüm fonksiyonların dışında, kaynak kodunun Ana fonksiyon kısmında tanımlanan değişkenlerdir.
13
Değişkenlere başlangıç değeri atanması
! Bildirimi yapılan bir yerel değişkenin ilk değeri belirsizdir. Yazdığımız programa göre değişkene bir başlangıç değeri verilmesini isteyebilriz.
14
Tip Önemlidir 15
! Rakamların iki temel tipi vardır ! Tamsayılar: (int) ! 12, -2,4,0,23423423, … ! Ondalık sayılar: (double,float) ! 0.25, -2.3, 0.0 , 1.92 …
! double, tipi float tipine göre 2 kat daha hassastır! Nümerik işlemlerde double türünün kullanılması hassasiyeti arttırır!
Rakamların Tipleri
! Bazı durumlarda girdilerimiz tamsayı olup sonucumuz ondalık sayı olabilir!
! C++ ne istediğimizi bilmez! Bilgisayarlar (şimdilik) aklımızdan geçeni anlayamadığından, bizim anlatmamız gerekir!
16
#include <iostream>using namespace std;int main(){int a = 99;int b = 100;double c,d;c =a/b;d = double(a)/double(b);cout<<c<<endl;cout<<d<<endl;return 0;}
C++ Değişken İsimlendirme Kuralları
! Alt çizgi _ veya bir harf ile başlayabilir. ! Harf, altçizgi veya rakam içerebilir. ! Büyük/küçük harf duyarlılığı vardır.
17
Doğru: spam eggs spam23 _speedYanlış: 23spam #sign var.12Farklı: spam Spam SPAM
Rezerve Edilmiş Kelimeler
! Aşağıdaki kelimeleri değişken olarak kullanamazsınız!!
18
asm, auto, bool, break, case, catch, char, class, const, const_cast, continue, default, delete, do,double,dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto, if, inline, int,long,mutable, namespace, new, operator, private, protected, public, register,reinterpret_cast, return,short,signed, sizeof, static, static_cast, struct, switch, template, this, throw, true, try, typedef,typeid,typename, union, unsigned, using, virtual, void, volatile, wchar_t, while
Belleksel Değişken İsimleri
! Programcılar kendi değişken isimlerini rahatça seçebildiğinden dolayı bazen kendi ihtiyacımıza göre farklı değişkenler seçebiliyoruz.
! Bazı değişkenlerin isimlerini içerisinde ne olduğunu hatırlamamız için bu isimleri kullanırız.
19
x1q39ocd = 35.0 x1q39afd = 12.50x1q3p9afd = x1q39ocd * x1q39afdcout<<x1q3p9afd<<endl;
Bu Program ne yapıyor?
Belleksel Değişken İsimleri
! Programcılar kendi değişken isimlerini rahatça seçebildiğinden dolayı bazen kendi ihtiyacımıza göre farklı değişkenler seçebiliyoruz.
! Bazı değişkenlerin isimlerini içerisinde ne olduğunu hatırlamamız için bu isimleri kullanırız.
20
a = 35.0 b = 12.50 c = a * b cout<<c<<endl;
Bu Program ne yapıyor?
x1q39ocd = 35.0 x1q39afd = 12.50x1q3p9afd = x1q39ocd * x1q39afdcout<<x1q3p9afd<<endl;
Sayı Sistemleri
! Bit : binary digit 1 Byte : 8 bit ! İnternet hızımızı düşünelim saniyede 50 mega bit (Mbps) olan internetimiz
ile saniyede 50/8 = 6.25 megabyte(MBps) hızıyla internete bağlanabiliriz
21
Satırlar ve Betikler 27
x = 2;x = x + 2;Cout<<x;
Değişken Operatör Sabit Fonksiyon
Atama işlemi İfade ile atama işlemi Yazdırma işlemi
Atama İşlemleri
! Değişkene değer atama işlemi = işareti ile yapılır. ! Atama işleminde atamak istediğimiz ifade sağda değişken ise solda
olacak şekilde yapılmaktadır. ! Şimdi aşağıdaki ifadeyi inceleyelim.
28
x = 3.9 * x * ( 1 - x );
29Değişken aslında veriyi tutan bir hafıza noktasıdır. Kaydedilen değişken hafızadaki eski değeri (0.6) yeni değer ile değiştirir (0.936).
Denklemin sağı bir ifadedir. İfade hesaplandığı zaman, sonuç değeri soldaki değişkene atanır.
x = 3.9 * x * ( 1 - x )
0.6x
0.4
0.936
0.6 0.6
30Değişken aslında veriyi tutan bir hafıza noktasıdır. Kaydedilen değişken hafızadaki eski değeri (0.6) yeni değer ile değiştirir (0.936).
Denklemin sağı bir ifadedir. İfade hesaplandığı zaman, sonuç değeri soldaki değişkene atanır.
x = 3.9 * x * ( 1 - x )
0.6 0.936x
0.4
0.936
0.6 0.6
C++ da Matematik İşlemleri31
Operator İşlem
+ Toplama
- Çıkarma
* Çarpma
/ Bölme
% Mod
cout<< 4 + 2;
cout<< 4 – 2;
cout<< 4 * 2;
cout<< 4 / 2;
cout<< 4 % 2;
Bileşik Atamalar
! Bileşik (Compound) atamalar iki işlemi artarda yapmak için kullanılır, böylece kodu uzatmamış oluruz.
! += soldaki değişkene sağdaki değeri ekler. ! ++ soldaki değişkenin değerini bir arttırır. ! *= soldaki değişkene sağdaki değerle çarpımından sonraki değeri
atar. ! /= soldaki değişkene sağdaki değere bölünmüş halini atar. ! %= soldaki değişkene sağdaki değerle modlandıktan sonraki sonucu
aktarır
32
Nümerik ifadeler 34
>>> xx = 2>>> xx = xx + 2>>> cout<<xx<<endl;4>>> yy = 440 * 12>>> cout<<yy<<endl;5280>>> zz = yy / 1000>>> cout<<zz<<endl;5.28
>>> jj = 23>>> kk = jj % 5>>> cout<<kk<<endl;3
Operator İşlem
+ Toplama
- Çıkarma
* Çarpma
/ Bölme
% Mod
Operatör Önceliği Kuralları
! Hesaplamalarımızda birden çok operatör kullanabiliriz. Eğer istediğimiz öncelikte yapmak istiyorsak C++’a hangisini önce yaptırmak istediğimizi söylemeyliz.
! Buna operatör önceliği denmektedir. ! Aşağıdaki işlemi inceleyelim sonucu kaç olur?
35
x = 1.0+2.0*3.0–4.0/5.0*6.0
Operatör Önceliği Kuralları
Operatör Önceliği sıralaması: ! Parantezler ! Üsler ! Çarpım, Bölüm, Mod ! Toplama ve çıkarma ! Soldan sağa
36
Parantez Çarpım Toplam
Soldan sağa
Parantez Çarpım Toplam
Soldan sağa
double x = 1.0 + 2.0 * 3.0 / 4.0 * 5.0cout<<x<<endl;
Ders2-01.cpp
g++ Ders2-01.cpp –o sonuc.o ./sonuc.o
38
double x = 1.0 + 2.0 * 3.0 / 4.0 * 5.0cout<<x<<endl;
Parantez Çarpım Toplam
Soldan sağa
1 + 2 * 3 / 4 * 5
1 + 6 / 4 * 5
1 + 1.5 * 5
1 + 7.5
8.5
Operatör Önceliği Tavsiyeleri.
! Kuralları ezbere bilmelisiniz! ! Program yazarken parantez kullanın! ! Programın içinde matematiksel değişkenleri kolayca anlaşılacak şekilde yazmanız
anlamanızı (sonrasında okuyan başka birinin anlamasını) kolaylaştıracaktır. ! Uzun seri bir matematiksel işlemi küçük parçalara ayırıp anlaşılması kolay şekilde
yazmanız işleri çok kolaylaştırır.
39
Parantez Çarpım Toplam
Soldan sağa
Kaynaklar
! http://www.cplusplus.com/doc/tutorial/ ! www.py4e.com ! C++ How to program (Deitel) ! Ferhat Özok Bilgisayar Programlama I ders notları
40