40
Bilgisayar Programlama I DERS 2: C++’DA DEĞİŞKENLER, SABİTLER, MATEMATİKSEL İŞLEMLER DR. HÜSEYİN BAHTİYAR 1

Bilgisayar Programlama I - IJShbahtiyar/dersler/icerik/Cplusplus-Ders2.pdfSabitler! Sabit değerler : rakam, harf, harf katarları (string) sabitler olarak adlandırılırlar çünkü

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

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

5x = 12.2cout<<x<<endl;x = x + 2cout<<x<<endl;y = x - 5cout<<y<<endl;x = x/ycout<<x<<" "<<y<<endl;

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;

C++ da Veri Tipleri 11

! 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

22Sayı Sistemleri

23Sayı Sistemleri

24

25

26

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

Bileşik Atamalar 33

İfade Eşdeğeri

a+=b a=a+b

a++ a=a+1

a*=b a=a*b

a/=b a=a/b

a%=b a=a%b

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