c++ ders1 - giris

18
Gülşen Demiröz C++ ile Programlamaya Giriş

Upload: semsettin-karakus

Post on 26-Sep-2015

236 views

Category:

Documents


2 download

DESCRIPTION

giriş

TRANSCRIPT

  • Glen Demirz

    C++ ile Programlamaya Giri

  • Bu ders unlar vermeyi amalyor

    Basit bilgisayar bilimleri kavramlar ou C++ programlama kavramlar

    Nesneye Dayal Programlama dili

    Bu dersin sonunda yapabilecekleriniz algoritmalar gelitirmek C++ kullanarak programlar yazmak ama ok byk programlar olmayacaklar

  • Eitmen Hakknda

    Work Experience

    1997-2008 Microsoft Corporation, Redmond WA, USA

    Senior Development Lead(Microsoft Online Services)

    Senior Design Engineer (Office Outlook)

    Software Test Lead (Windows Networking)

    Software Design Engineer(Windows Networking)

    Education

    M.Sc., Bilkent University, Computer Engineering and

    Information Science, 1997

    B.S., Bilkent University, Computer Engineering and

    Information Science, 1995

  • nce

    Belki bilgisayarlardan korkuyordunuz

    Belki nefret ediyordunuz

    Belki de onlar sadece elence amal kullanyordunuz

  • Ders suresinceBalangta kt ryalar grebilirsiniz

    Kafay ttnzdnebilirsiniz

    Ama dzgnce alp yeterince zaman da ayrrsanz eer...

  • Dersin Sonunda

    Baar sizindir!

  • MS Visual Studio .NET (2010)

    C++ programlarn yazacamz ve altracamz yazlm Laptoplarnza yklemeniz gerekiyor Adm adm ykleme ile ilgili sunumu aada bulabilirsiniz:

    http://myweb.sabanciuniv.edu/gulsend/files/2009/02/vs2008_how_to_install.ppt

  • Bilgisayar Bilimi nedir?

    Bilgisayar Bilimi bilginin, zellikle elektronik

    makineler araclyla, dzenli ve ussal biimde

    ilenmesi bilimidir.

    Bilgi data

    lenmek problem zmek (processing)

    Bilgisayar belirli komutlara gre veri ileyen ve depolayan

    bir makinedir.

    Birok lkede zellikle Avrupada enformatik diye bilinir

    Bilgisayar mhendislii daha ok donanm-yazlm entegrasyonu, devre/chip tasarm iin kullanlr.

  • Bilgisayar Bilimi

    Bilgisayar Bilimi sadece programlama deildir programlamadan fazlasdr

    Bilgisayar Bilimi gen bir disiplindir

    50 yldan fazla

    lk yksek lisans program CMU (Carnegie Tech) 1965

    Trkiyede ilk CS blm 1977

    Turing machine (1937)

    abstract machine

    theoretically capable of any computation that we can do with modern computers today

  • Bilgisayar Bilimi Architecture hardware-software interface

    Software Engineering creating software products

    Operating Systems Windows, Linux/UNIX, MacOS

    Graphics animation, entertainment, games

    Computer Security hacking, digital signatures

    Computer Networking made internet a reality

    Artificial Intelligence thinking machines, learning

    Scientific Computing biocomputing

    Theoretical CS analyze algorithms

  • AlgoritAlgoritAlgoritAlgoritmalarmalarmalarmalar

    Arapa kkenli bir kelimedir Bir problemi adm adm zmektir

    nce bunu yap, sonra unu yap, ... en sonunda da bir cevap ile durur bir spesifik programlama diline has deil de genel bir ileme yntemidir

    Ama doruluk Verimlilik

    1 and 100 arasnda bir say seeyim Siz tahmin edeceksiniz Ben de her tahminde yksek, alak, dorudiyeceim.

    Ka tane tahmin gerekir (en kt ihtimalde)?

  • rnek rnek rnek rnek AlgoriAlgoriAlgoriAlgoritmatmatmatma MMMMinimuminimuminimuminimumu bulmau bulmau bulmau bulma lk liste: 4 6 7 3 9 1 4 5

    Sralasak m? 1 3 4 4 5 6 7 9

    (n.log(n)) ilem gerek, n eleman says

    Optimum algoritma Yaklak n ilem lk nce 4 minimum olsun

    4 ve 6 y karlastralm - min hala 4

    4 ve 7 yi karlastralm - min hala 4

    4 ve 3 karlastralm imdi 3 yeni minimum

    3 ve 9 u karlastralm - min is still 3

    3 ve 1 i karlastralm - imdi 1 yeni minimum

    1 ve 4 karlastralm - min hala 1

    1 ve 5 i karlastralm imiz bitti ve minimum 1

  • Bilgisayarda Bilginin Gsterimi Bilgisayarlar bilgi ileyen makinerdir

    Btn bilgiler nmerik ekilde gsterilir ve saklanrlar saylar bariz sekilde nmerik zaten

    karakterler ASCII (Unicode) kodlarla (A=65, Z=90)

    renkler RGB deerleri ile

    erde saklan (en alt dzeyde) ikilik say sistemidir 0 ve 1 (4=100, 5=101)

    btn aritmetik ilemler de ikilik sistemde yaplr

    En dk seviyedeki ynergeler de ikilik sistemdedir Makine dili

    nsan tarafndan okunamaz ve programlanamaz!

  • HighHighHighHigh----level Languages and Assemblylevel Languages and Assemblylevel Languages and Assemblylevel Languages and Assembly

    Rather than instruct computers at the level of 0s and 1s, higher level languages have been developed. Flexible and easier programming

    Compilers translate a high level language, such as C++, into machine-specific executable program (0s and 1s) The compiler is a program, input is C++ program, output is an executable program

    for other languages different compilers are needed Between machine code and high-level languages: assembly language human understandable form of machine code instructions

  • Programlama Dillerinin Seviyeleri st Seviyest Seviyest Seviyest Seviye

    int main()

    {

    int x, y, z;

    x = 7;

    y = 12;

    z = x * y;

    return 0;

    }

  • Programlama Dillerinin Seviyeleri - assemblyassemblyassemblyassembly Makneye has assembly dili, soldaki Sparc, sadaki Pentium, ikisi de ayn C++ kodundan tretilmitir

    main: main:

    save %sp,-128,%sp pushl %ebp

    mov 7,%o0 movl %esp,%ebp

    st %o0,[%fp-20] subl $12,%esp

    mov 12,%o0 movl $7,-4(%ebp)

    st %o0,[%fp-24] movl $12,-8(%ebp)

    ld [%fp-20],%o0 movl -4(%ebp),%eax

    ld [%fp-24],%o1 imull -8(%ebp),%eax

    call .umul,0 movl %eax,-12(%ebp)

    nop xorl %eax,%eax

    st %o0,[%fp-28] jmp .L1

    mov 0,%i0 .align 4

    b .LL1 xorl %eax,%eax

    nop jmp .L1

  • Basit Program Gelitirme Admlar

    Problemi Analiz Edin

    Algoritma Gelitirin

    ProgramTasarlayn

    Kodu kada yazn

    Kodu bilgisayara yazn

    Kaynak Kod

    Derle & Kur

    Syntax Hatalar?

    Evet

    Dzelt

    Hayr

    altr

    Doru Sonular?

    Evet - Bitti

    No

    Dzelt(Debug)

  • Basit bir Program Kullancdan tane tamsay okuyun ve toplamlarn hesaplayn

    Algoritma ekrana bilgi girii iin istemde bulunan bir cmle yazn

    saylar okuyun(say1, say2, say3)

    toplam say1 + say2 + say3 kt (toplam)

    Program Microsoft Visual Studio 2010 ile yazalm (toplam3say.cpp)