lect01 basics

Upload: hanhoainguyen

Post on 05-Oct-2015

246 views

Category:

Documents


0 download

DESCRIPTION

Lect01 Basics

TRANSCRIPT

  • Bi 1: Cn bn v C++

    Ging vin: Hong Th ipKhoa Cng ngh Thng tin H Cng Ngh

  • Chapter 1

    C++ Basics

    Copyright 2010 Pearson Addison-Wesley. All rights reserved

  • Mc tiu bi hc

    Gii thiu C++ Ngun gc, Lp trnh hng i tng, Thut ng

    Bin, Biu thc v Cu lnh gn

    c ghi trn thit b vo/ra chun

    Phong cch lp trnh

    Th vin v Khng gian tn (namespace)

    INT2202DTH

  • Gii thiu C++

    Ngun gc Ngn ng bc thp

    Ngn ng my, hp ng

    Ngn ng bc cao C, C++, ADA, COBOL, FORTRAN

    Lp trnh hng i tng trong C++

    Thut ng C++ Program v function c/ghi c bn vi cin v cout

    INT2202DTH

  • Display 1.1 Mt chng trnh C++ mu (1/2)

    INT2202DTH

  • Display 1.1 Mt chng trnh C++ mu (2/2)

    INT2202DTH

  • Bin

    nh danh trong C++ Phn bit khi nim t kha v nh danh nh danh phn bit vit hoa vit thng v c quy

    tc Hy t tn c ngha!

    Bin L ni trong b nh lu d liu cho chng trnh Tt c d liu cn c khai bo trc khi s dng

    trong chng trnh

    INT2202DTH

  • Cc kiu d liu: Display 1.2 Cc kiu d liu n gin (1/2)

    INT2202DTH

  • Cc kiu d liu: Display 1.2 Cc kiu d liu n gin (2/2)

    INT2202DTH

  • Gn gi tr cho bin

    Dng cu lnh khai bo khi to gi tr cho bin Nu khng khi to, kt qu s l khng xc nh!

    int myValue = 0;

    Gn gi tr cho bin khi ang thc thi Lvalue (v tri) & Rvalue (v phi)

    Lvalue phi l bin Rvalue c th l biu thc bt k V d:

    distance = rate * time;Lvalue: "distance"Rvalue: "rate * time"

    INT2202DTH

  • Php gn: K hiu tt

    DTH INT2202

  • Cc quy tc gn

    D liu gn phi tng thch Lch kiu

    Quy tc chung: Khng th gn gi tr kiu ny cho bin kiu khc

    intVar = 2.99; // 2 s c gn cho intVar! Ch c phn nguyn l va nn ta ch ly c phn ny

    cho bin y l chuyn kiu t ng hay khng tng minh"

    Gi tr hng 2, 5.75, "Z", "Hello World" Coi l hng s v chng khng thay i trong sut chng

    trnh

    INT2202DTH

  • D liu hng

    Gi tr hng V d:

    2 // Hng int 5.75 // Hng double "Z" // Hng char "Hello World" // Hng string

    Khng th thay i cc gi tr ny trong sut qu trnh thc hin chng trnh

    Called "literals" because you "literally typed"them in your program!

    INT2202DTH

  • Cc xu escape

    M rng tp k t Gm du xc ngc (\) ng trc mt k t

    Bo cho trnh bin dch chun b lm vic vi mt k t escape c bit

    Display 1.3 trong slide sau lit k cc xu escape

    INT2202DTH

  • Display 1.3Mt s xu escape (1/2)

    INT2202DTH

  • Display 1.3Mt s xu escape (2/2)

    INT2202DTH

  • Hng

    Hy t tn hng s ca bn Dng gi tr hng cng tm c nhng t tn hng

    s cung cp mt cht ngha v d: khi bn thy s 24 trong 1 chng trnh bn s khng

    hiu c n biu din g

    Hy s dng cc hng t tn t tn ngha biu din d liu

    const int NUMBER_OF_STUDENTS = 24; Gi l mt hng khai bo hoc hng c tn Sau hy dng tn hng bt c ch no bn cn ti Gi tr gia tng: ch cn sa i gi tr ca hng 1 ch

    INT2202DTH

  • Cc php ton s hc:Display 1.4 Hng c tn (1/2)

    Cc php ton s hc chun Lut u tin lut chun

    INT2202DTH

  • Cc php ton s hc:Display 1.4 Hng c tn (2/2)

    INT2202DTH

  • chnh xc s hc

    chnh xc ca cc php tnh Rt quan trng!

    C++ c th tnh gi tr biu thc khc vi mong i ca bn!

    Ton hng bc cao nht" xc nh kiu ca chnh xc s hc s c thc hin

    Li hay gp!

    INT2202DTH

  • V d chnh xc s hc

    V d: 17 / 5 c gi tr bng 3 trong C++

    C 2 ton hng u l s nguyn Php chia s nguyn c thc hin

    17.0 / 5 c gi tr bng 3.4 trong C++ Ton hng bc cao nht c kiu double Php chia vi chnh xc double c thc hin

    int intVar1 =1, intVar2=2;intVar1 / intVar2;

    Thc hin php chia s nguyn Kt qu: 0

    INT2202DTH

  • chnh xc s hc ring l

    Tng php tnh mt c thc hin 1 / 2 / 3.0 / 4 thc hin 3 php chia ring r.

    u tin 1 / 2 bng 0 Sau 0 / 3.0 bng 0.0 Sau 0.0 / 4 bng 0.0

    Do ch bin i mt ton hng trong biu thc ln l khng Bn cn nh l tng php tnh s c thc hin khi

    tnh gi tr biu thc.

    INT2202DTH

  • Chuyn i kiu

    i kiu cho bin Vi gi tr hng, c th b sung ".0 p chnh

    xc s hc. Nhng vi bin th sao? Ta khng th vit "myInt.0"

    static_castintVar Chuyn kiu tng minh cho intVar thnh kiu double

    Sau kt qu ca php chuyn i s c s dng Biu thc v d:

    doubleVar = static_castintVar1 / intVar2; Php chuyn i kiu p thc hin php chia double cho 2 bin

    nguyn.

    INT2202DTH

  • Chuyn i kiu (2)

    Hai loi Khng tng minh cn gi l t ng

    Chng trnh t ng lm vic ny cho bn17 / 5.5Biu thc ny dn ti php chuyn kiu khng tng minh, chuyn 17 17.0

    Tng minh Ngi lp trnh xc nh php chuyn i s dng ton t

    chuyn i(double)17 / 5.5Cng ging biu thc trn, dng chuyn kiu tng minh(double) myInt / myDoubleCch dng ph bin hn, chuyn i trn bin

    INT2202DTH

  • Cc ton t vit tt

    Ton t t tng v t gim Ch l k hiu vit tt Ton t t tng, ++

    intVar++; tng ng viintVar = intVar + 1;

    Ton t t gim, --intVar--; tng ng vi intVar = intVar 1;

    INT2202DTH

  • Cc ton t vit tt: Hai la chn

    Tng sauintVar++ S dng gi tr hin thi, SAU mi tng n

    Tng trc++intVar Tng gi tr ca bin trc, SAU s dng gi tr

    mi S dng" c ngha l bt c ng cnh hin thi

    no ca bin Khng khc nhau nu cu lnh ch c php t

    tng:intVar++; v ++intVar; kt qu ging ht nhau

    INT2202DTH

  • V d tng sau

    Php tng sau trong biu thc:int n = 2,

    valueProduced;valueProduced = 2 * (n++);cout

  • V d tng trc

    Gi ta s dng php tng trc:int n = 2,

    valueProduced;valueProduced = 2 * (++n);cout

  • c/ghi chun

    Cc i tng c/ghi cin, cout, cerr nh ngha trong th vin ca C++ Bn phi vit nhng dng sau (gi l ch th tin

    x l) gn u file: #include

    using namespace std; Bo cho C++ dng nhng th vin thch hp ta c

    th s dng cc i tng cin, cout, cerr trong chng trnh

    INT2202DTH

  • Ghi chun

    Ta c th output nhng g? C th output bt c d liu no ra mn hnh

    Bin Hng Gi tr hng Biu thc (bao gm tt c)

    cout

  • Tch output thnh nhiu dng

    K hiu xung dng trong output Nhc li: "\n" l chui escape cho k t xung dng

    Cch th 2: i tng endl

    V d:cout

  • nh dng output

    nh dng gi tr s cho output Gi tr hin th c th khng nh bn mong i.

    cout

  • nh dng cc con s

    Cng thc mu nhim" p c thp phn:cout.setf(ios::fixed);cout.setf(ios::showpoint);cout.precision(2);

    Nhng cu lnh ny p tt c cc gi tr s ccout pha sau: phi c chnh xc 2 ch s sau du phy V d:

    cout

  • Ghi li

    Bn output li vi cerr cerr lm vic ging nh cout Cung cp c ch phn bit ghi thng thng vi ghi

    li Chnh hng lung ghi

    Hu ht cc h thng cho php cout v cerr c chnh hng" sang thit b khc

    v d: my in, ghi ra file, trnh ghi li, ....

    INT2202DTH

  • c d liu bng cin

    cin c vo, cout ghi ra S khc bit:

    ">>" (php ton trch ra) hng ngc li Hy ngh n l hng d liu s i

    i tng tn l "cin" c dng thay cho "cout" Gi tr hng khng c php dng vi cin

    Bn phi c vo mt bin

    cin >> num; Mn hnh i nhp vo bn phm Gi tr nhp t bn phm c gn cho num

    INT2202DTH

  • Nhc nhp d liu: cin v cout

    Bn nn nhc ngi dng nhp d liucout > numOfDragons; Ch l khng cn "\n" trong cout. Du nhc s i

    trn cng dng li nhc:

    Enter number of dragons: ____

    Du gch di bo hiu ni d liu nhp t bn phm s c ghi ra

    Mi cin nn c mt li nhc bng cout Cn ti a tnh thn thin ca input/output

    INT2202DTH

  • Phong cch lp trnh

    Yu cu ti thiu: Chng trnh d c v chnh sa

    C 2 phng php ch thch: // Hai du xc bo hiu c dng s b b qua /*Cp xc sao bo hiu mi th nm gia chng s b b qua

    */ C 2 u c dng thng xuyn

    t tn VIT_HOA cho hng vitThngRiVitHoaChCiuTing cho bin Quan trng nht: TN PHI C NGHA!

    INT2202DTH

  • Th vin

    Cc th vin chun ca C++ #include

    Ch dn thm ni dung ca file th vin vo chng trnh ca bn

    Gi l ch th tin x l Thc hin trc trnh bin dch, ch n gin copy

    file th vin vo file chng trnh ca bn C++ c rt nhiu th vin

    Input/output, ton, xu, ...

    INT2202DTH

  • Khng gian tn

    Cc khng gian tn nh ngha: L tp cc nh ngha tn

    Ti gi ta ch quan tm ti khng gian tn "std" C tt c cc nh ngha trong th vin chun ta cn

    V d:#include using namespace std;

    Bao gm tt c cc nh ngha tn trong th vin chun#include using std::cin;using std::cout;

    Ta c th ch inh nhng i tng m ta cn

    DTH INT2202

  • Tm tt 1

    nh danh trong C++ phn bit vit hoa vit thng Dng cc tn c ngha

    cho bin v hng Cc bin phi c khai bo trc khi s dng

    Nn khi to bin Cn thn khi tnh ton d liu s

    chnh xc, du ngoc, th t u tin cc php ton

    #include cc th vin C++ khi cn

    INT2202DTH

  • Tm tt 2

    i tng cout ghi ra thit b ra chun

    i tng cin c t thit b vo chun

    i tng cerr ghi thng ip bo li

    Dng ch thch lm chng trnh d hiu hn khng nn ch thch qu nhiu

    INT2202DTH

  • Chun b bi ti

    c chng 1, 2 gio trnh.

    DTH INT2202

    Bi 1: Cn bn v C++Chapter 1Mc tiu bi hcGii thiu C++Display 1.1 Mt chng trnh C++ mu (1/2)Display 1.1 Mt chng trnh C++ mu (2/2)BinCc kiu d liu: Display 1.2 Cc kiu d liu n gin (1/2)Cc kiu d liu: Display 1.2 Cc kiu d liu n gin (2/2)Gn gi tr cho binPhp gn: K hiu ttCc quy tc gnD liu hngCc xu escapeDisplay 1.3 Mt s xu escape (1/2)Display 1.3 Mt s xu escape (2/2)HngCc php ton s hc:Display 1.4 Hng c tn (1/2)Cc php ton s hc:Display 1.4 Hng c tn (2/2) chnh xc s hcV d chnh xc s hc chnh xc s hc ring lChuyn i kiuChuyn i kiu (2)Cc ton t vit ttCc ton t vit tt: Hai la chnV d tng sauV d tng trcc/ghi chunGhi chunTch output thnh nhiu dngnh dng outputnh dng cc con sGhi lic d liu bng cinNhc nhp d liu: cin v coutPhong cch lp trnhTh vinKhng gian tnTm tt 1Tm tt 2Chun b bi ti