1. Trang chủ
  2. » Công Nghệ Thông Tin

Ngôn ngữ lập trình C - Chương 4 ppt

36 350 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 424,3 KB

Nội dung

Ch Ch −¬ −¬ ng ng 4 4 H H μ μ m v m v μ μ ph ph −¬ −¬ ng ph ng ph ¸ ¸ p p l l Ë Ë p tr p tr × × nh th nh th ñ ñ tôc tôc Bài ging C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 2 4.1 C++ v 4.1 C++ v à à phng ph phng ph á á p p l l Ë Ë p tr p tr × × nh th nh th ñ ñ tôc tôc  4.1.1 Tng quan v phng pháp lp trình th tc – Phng pháp lp trình tuyn tính (hay lp trình tun t): • Khi các ng dng tin hc còn đn gin, s dòng lnh phi vit ít å chng trình đc vit tun t. – Các câu lnh thc hin tun t t đu đn cui. • Khoa hc máy tính phát trin, phn mm ln và phc tp: – Phng pháp này không hiu qu. – Ngi lp trình có th không th kim soát đc chng trình. – Phng pháp lp trình th tc (hay lp trình cu trúc) • Khc phc nhc đim ca lp trình tun t bng cách t chc chng trình thành các chng trình con. • Các ngôn ng nh FoxPro, Pascal hay C/C++ đu cho phép trin khai phng pháp lp trình th tc. • T tng chung: cu trúc d liu + gii thut = chng trình! Bài ging C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 3 4.1 C++ v 4.1 C++ v à à phng ph phng ph á á p p l l Ë Ë p tr p tr × × nh th nh th ñ ñ tôc tôc  4.1.1 Tng quan v phng pháp lp trình th tc – Các khái nim chính trong lp trình th tc • Chng trình con – Là mt chng trình đc lp dùng đ thc hin mt phn vic nào đó (nhp s liu, in kt qu, thc hin mt s thao tác tính toán). – Chng trình con cn có đi, bin, mng… cc b dùng riêng – Vic trao đi d liu gia các chng trình con thc hin thông qua các đi và các bin toàn cc. • Cu trúc d liu và gii thut – Mt chng trình th tc bao gm các cu trúc d liu (nh bin, mng, cu trúc, …) và các hàm, th tc. – Trong PASCAL có 2 kiu chng trình con là th tc và hàm, còn trong C++ ch có mt loi chng trình con là hàm. •  s dng đc thành tho C++ trong lp trình th tc å phi hiu rõ t tng lp trình th tc ! Bài ging C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 4 4.1 C++ v 4.1 C++ v à à phng ph phng ph á á p p l l Ë Ë p tr p tr × × nh th nh th ñ ñ tôc tôc  4.1.2 Lp trình th tc trong C++ – Nhc li v đc đim C++ • C: ngôn ng lp trình th tc. • C++: tha hng tt c đim mnh ca C. – Là ngôn ng bao trùm lên C å tha hng đy đ sc mnh ca C (ví d tính kh chuyn, tính mm do, ). • C++ có mt s ci tin å tng cng sc mnh cho C: – S khác nhau gia C trong C++ so vi ANSI C. – Thay đi, thêm mi å phù hp hn. • Nh vy, C++ là ngôn ng lai å cho phép c lp trình th tc và lp trình hng đi tng. – Các ngôn ng hin đi (nh Java, C#, …) ch cho phép lp trình hng đi tng (thun túy hng đi tng). Bài ging C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 5 4.1 C++ v 4.1 C++ v à à phng ph phng ph á á p p l l Ë Ë p tr p tr × × nh th nh th ñ ñ tôc tôc  4.1.2 Lp trình th tc trong C++ – C++ và lp trình th tc • C++ có mt s đim khác vi các ngôn ng khác (ví d Pascal) v mt cu trúc chng trình và biên dch mã ngun. • Cu trúc khi: – C++ xem các hàm là các thc th tách bit. – Mt s ngôn ng khác có th gp nhiu hàm đn gin thành hàm phc tp hn. – Vi cu trúc khi å chú ý đn tên bin và phm vi bin. • Dch tách bit: – B trí chng trình trong nhiu tp tin tách bit. – S dng tp tin tiêu đ å thun li cho vic thng nht chng trình, d dàng hiu chnh và bo trì chng trình. Bài ging C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 6 4.2 H 4.2 H µ µ m m  4.2.1 Khai báo và đnh ngha hàm – Cu trúc tng quát ca hàm: [kiu_giá_tr_tr_v] tên_hàm([danh_sách_tham_s]){ khai báo & lnh; } • VD: int max(int a, int b) { int tmp; tmp = (a > b) ? a : b; return tmp; } • Tr li quyn điu khin (và giá tr) cho hàm: – Dùng lnh return [biu_thc]; – Lnh return có th vit bt k đâu trong thân hàm. – Khi hàm không tr v giá tr, ch cn vit return; – Trong C không cn lnh return nu hàm không tr v giá tr Bài ging C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 7 4.2 H 4.2 H µ µ m m  4.2.1 Khai báo và đnh ngha hàm – Kiu giá tr tr v: • Hàm không tr v giá tr å kiu_giá_tr_tr_v là void. • Không vit kiu giá tr tr v å ngm đnh là int. • Không cho tr v kiu mng. – Danh sách tham s: • Các tham s hình thc (cùng vi kiu tng ng) cách nhau bng du “,” không hn ch kiu (có th là kiu c s hay phc hp). • Hàm không có tham s å danh_sách_tham_s là void. – Lúc này danh sách tham s cng có th đ trng. • Không vit kiu tham s å ngm đnh là int. • Chú ý: trong C có th khai báo kiu tham s riêng ra sau, ví d: double func(a,b) int a; float b; Bài ging C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 8 4.2 H 4.2 H µ µ m m  4.2.1 Khai báo và đnh ngha hàm – Khai báo hàm nguyên mu: • Tt c hàm dùng trong chng trình phi khai báo nguyên mu. – Trong nguyên mu có th b tên các tham s (ch cn khai báo kiu). – C++ cho phép ép kiu tham s truyn vào cho phù hp. • Trong C có th không khai báo nguyên mu, hoc ch cn khai báo tên hàm và giá tr tr v, không cn danh sách kiu tham s. – Nu không khai báo, C t to ra nguyên mu vi kiu tr v là int. – Tp tin tiêu đ (header file): • Mi th vin trong C++ đu có mt tp tin tiêu đ dng *.h. – Tp tin này cha khai báo ca các hàm trong th vin (nguyên mu), đnh ngha ca các kiu d liu, hng dùng trong hàm đó. • Ngi lp trình có th to các tp tin tiêu đ riêng cho mình. Bài ging C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 9 4.2 H 4.2 H µ µ m m  4.2.1 Khai báo và đnh ngha hàm – Con tr hàm: • Ging nh bin, mi hàm đu có đa ch å có th khai báo mt con tr hàm tr đn hàm đó. • Khai báo con tr hàm: [kiu_gtr_tr_v](*tên_bin_tr_hàm) ([dsách_ths]); – VD: int(*fp) (int n, float x); • Ý ngha các thành phn trong khai báo con tr hàm ging nh khai báo hàm. • Mun s dng phép gán, con tr hàm phi tng thích vi hàm c v kiu giá tr tr v ln danh sách tham s. • Con tr hàm có th dùng làm tham s hình thc cho hàm. – Khi đótrong li gi hàm, có th dùng tên hàm làm tham s thc. Bài ging C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 4.2 H 4.2 H µ µ m m  4.2.2 Tham s và giá tr tr v trong li gi hàm – Tham s và truyn tham s • Tham s – Tham s hình thc: đi din cho tham s thc (s truyn cho hàm). Kiu giá tr ca tham s hình thc å quyt đnh kiu tham s thc. – Tham s thc: thông tin đc truyn trong li gi hàm. Mi tham s thc tng ng vi mt tham s hình thc. • Truyn tham s – Truyn theo tr (tham tr): bn sao giá tr đc truyn cho hàm (tham tr) å vic thay đi giá tr đc truyn vào trong thân hàm không nh hng đn giá tr ban đu ca bin. – Truyn theo bin (tham bin): bn thân bin đc truyn cho hàm (tham bin) å vic thay đi trong hàm s làm thay đi giá tr bin. – Chú ý 1: trong C++ tt c tham s đc truyn theo tr. – Chú ý 2: nu tham s truyn vào có kích thc ln (ví d nh cu trúc) hoc cn thay đi giá tr bin, nên truyn theo bin. [...]... Ngôn ng l p trình C c a hai t c gi ngôn ng C và cu n Ngôn ng l p trình C+ +” c a t c gi ngôn ng C+ +) • C th tham kh o sách ti ng Vi t, chú ý hai cu n sách (v ngôn ng C và C+ +) c a GS.Ph m V n t (ph n ph l c c a sách) • C th s d ng Help c a Turbo C+ +3.0 – Dùng thành th o m t s hàm thông d ng • C c hàm tính toán theo c ng th c toán h c (math.h) • C c hàm chuy n i d li u (stdlib.h) • C c hàm tính giá... p å l n, khó c, khó theo dõi, kích th c l n • kh c ph c tr ng i trên å vi t trên nhi u t p kh c nhau, liên k t chúng v i nhau b ng hình th c t p Project – N i dung t p Project ~ danh sách tên c c t p t o nên ch ng trình – C c t p thành ph n c th là ch ng trình ngu n ho c c c t p i t ng *.obj (sinh ra do vi c d ch c c ch ng trình ngu n *.cpp ho c c c t p vi t trên ngôn ng Assembly) • Ch c duy nh t... s c a vào – agrv[] : m ng c c tham s a vào, c ch nhau b i d u c ch • Khai báo này c dùng khi c n s d ng c c tham s dòng l nh cho vi c th c thi ch ng trình V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 14/ 10/2008 4. 3 Chång hµm vµ chång phÐp to¸n 4. 3.1 nh ngh a ch ng hàm – Ch ng hàm • C+ + cho phép s d ng c ng m t tên nh ngh a c c hàm kh c nhau (kh c ki u giá tr tr v và danh sách ki u c c tham s ) å ch... – C ng là khai báo bi n c c b nh ng yêu c u trình d ch l u giá tr khai báo trong c c thanh ghi (å x lý nhanh h n) Yêu c u này s b b qua n u không c n thanh ghi Nói chung nó ch áp d ng cho ki u int hay char – Ngày nay c c trình d ch ã c kh n ng nh n bi t c c bi n hay dùng a vào thanh ghi, không c n thi t ph i c c c t khóa này n a V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 14/ 10/2008 4. 5 T ch c. .. B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 14/ 10/2008 4. 6 c thêm 4. 6.2 Ti n x lý ch ng trình – G p t p tin và t o macro thay th • Ch th g p t p tin #include • Ch th t o macro #define – Biên d ch c i u ki n • C u tr c biên d ch c i u ki n : ~ c u tr c r nhánh if [elsse] å dùng c c ch th #if, #else, #elif, #endif ~ c c o n r nhánh • Ngoài ra, c th dùng c c ch th : #ifdef (~#if define (tên_macro) #ifndef... • Ch ng hàm c n c g i là a d ng hóa hàm, t i b i hàm • Vi c x c nh g i hàm nào khi trong ch ng trình c hàm trùng tên là do trình d ch m nhi m – Trình d ch d a vào s kh c nhau c a t p tham s i tên c c hàm å c c hàm c tên kh c nhau sau khi d ch – N u hai hàm c tên và t p tham s trùng nhau, trình d ch s báo l i, k c khi ki u tr v kh c nhau V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 14/ 10/2008 4. 3... ho c c c bài toán c n di n t tr c quan và d hi u quá trình gi i quy t bài toán V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 14/ 10/2008 4. 4 §Ö quy 4. 4.2 quy trong C+ + L p trình quy trong C+ + • Trong C+ + hoàn toàn c th vi t c c ch ng trình – S c m nh c a C+ + t ra h u hi u trong vi c x lý b nh ch ng trình • Thu t toán chung vi t hàm quy b t k quy và qu n lý quy: hàm (tham s ban u) { if (tr ng h p c. .. ch c n thêm t khóa inline tr c khai báo hàm – Ch ng trình ch a hàm inline s dài h n ( c bi t khi hàm cg i nhi u l n) nh ng ch y nhanh h n å ch nên dùng hàm inline v i nh ng hàm nh , không ch a c u tr c l p • Trình d ch x lý hàm inline gi ng nh c c macro – Macro c nhi u h n ch h n å trong th c t nên dùng hàm inline V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 14/ 10/2008 4. 2 Hµm 4. 2.3 C c v n kh c. .. gi ng C+ + 14/ 10/2008 4. 3 Chång hµm vµ chång phÐp to¸n 4. 3.2 nh ngh a ch ng phép toán – Ch ng phép toán • th c hi n c c thao t c trên ki u d li u ph c h p hay ki u t nh ngh a ta th ng xây d ng c c hàm • C+ + cho phép dùng c c phép toán chu n nh ngh a hàm å nh ngh a ch ng phép toán (overloading) – M c ích là tránh dài dòng, thi u t nhiên khi s d ng hàm th c hi n c c phép toán trong ch ng trình – Ch ng... sau: – C tham s t ng ng th c s : phân bi t c c ki u d li u kh c nhau (c v d u) – C tham s t ng ng g n nh t (sau c c chuy n i ki u d li u t ng: char và short å int, float å double) – C tham s t ong ng sau c c chuy n i ki u c C++ ch p nh n – C tham s t ong ng sau c c chuy n i ki u do ng i dùng nh ngh a V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 14/ 10/2008 4. 3 Chång hµm vµ chång phÐp to¸n 4. 3.1 . th ñ ñ t c t c  4. 1.2 Lp trình th t c trong C+ + – C+ + và lp trình th t c • C+ + c mt s đim kh c vi c c ngôn ng kh c (ví d Pascal) v mt c u tr c chng trình và biên dch mã ngun. • C u. lp trình tun t bng c ch t ch c chng trình thành c c chng trình con. • C c ngôn ng nh FoxPro, Pascal hay C/ C++ đu cho phép trin khai phng pháp lp trình th t c. • T tng chung:. toàn c c. • C u tr c d liu và gii thut – Mt chng trình th t c bao gm c c cu tr c d liu (nh bin, mng, c u tr c, …) và c c hàm, th t c. – Trong PASCAL c 2 kiu chng trình con

Ngày đăng: 06/08/2014, 01:20

TỪ KHÓA LIÊN QUAN

w