Tải bản đầy đủ (.pdf) (95 trang)

giáo trình lập trình cơ bản nghề công nghệ thông tin trung cấp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (729.79 KB, 95 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

Sè LAO ĐâNG, TH¯¡NG BINH VÀ Xà HâI ĐÂK LÂK

<b>TR¯èNG TRUNG CÂP TR¯èNG S¡N </b>

<b>GIÁO TRèNH </b>

<b>MễN HC: LắP TRèNH CĂ BN NGH: CễNG NGHị THƠNG TIN </b>

<b>TRÌNH Đä: TRUNG CÂP </b>

<i>của Hiệu trưởng Trường trung cấp Trường Sơn </i>

<b>Đắk Lắk, năm 2022 </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LèI GIỉI THIÞU </b>

Hián nay, t¿i Trỗng cha cú giỏo trỡnh LÁp trình c¢ bÁn. ĐÁc biỏt trờn thồ trỗng khụng cú ti liỏu hỗc tp, tham kho phự hp vồi chÂng trỡnh khung Cao đẳng nghÅ, trung cÃp nghÅ thuãc nghÅ Công nghá thơng tin (CNTT) trong q trình đào t¿o nghÅ hián nay.

Nhóm tác giÁ biên so¿n giáo trình lÁp trình c¢ bÁn nhÅm māc đích giúp hỗc sinh, sinh viờn (HSSV) s dng giỏo trỡnh lm ti liỏu nghiờn cu v hỗc tp mót cỏch thun tiỏn. ChÂng trỡnh mụn hỗc c s dng ầ ging d¿y cho sinh viên trung cÃp nghÅ Công nghá thông tin (ąng dāng phÅn mÅm) và làm tài liáu tham khÁo cho các nghÅ thuãc các ngành nghÅ kỹ thuÁt.

Vy, rt mong c s gúp ý ca bn ỗc ầ ti liỏu ny ngy cng c hon thiỏn hÂn, chúng tơi xin chân thành cÁm ¢n..

<b>Xin chân thành cÁm ¢n!. </b>

ĐÃk LÃk, ngày 02 tháng 8 năm 2022 Tham gia biên so¿n

1. Ph¿m Hồng Quëc - Chă biên 2. ĐÁu Nguyßn Thanh Nhàn

3. Nguyßn Thái V°¢ng

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

MĀC LĀC

LỉI GIäI THIàU ... III

GIÁO TRÌNH MƠN HỉC ... 1

CH¯¡NG I: GIäI THIàU NGƠN NGĊ LÀP TRÌNH C ... 3

1.1. GIäI THIàU NGÔN NGĊ C ... 3

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

4.3. CÁC THAM Sê CĂA HÀM ... 61

4.3.1. Phân biát các lo¿i tham së<small> ... 61 </small>

5.3.1. Truy xuÃt mÁng 1 chiÅu<small> ... 71 </small>

5.3.2. Truy xuÃt mÁng 2 chiÅu<small> ... 71 </small>

5.4. BAI TÀP... 75

CH¯¡NG VI: CON TRè ... 76

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

6.1. KHAI NIàM VÄ CON TRè VA DäA CHâ ... 76

6.2. KHAI BAO VA SĈ DĀNG BIÂN CON TRè ... 76

6.2.1. Khai báo biÃn con tré<small> ... 77 </small>

6.2.2. Các thao tác trên con tré<small> ... 78 </small>

6.3. BÀI TÀP... 81

CH¯¡NG VII: CHUàI KÝ TČ ... 82

7.1. KHÁI NIàM ... 82

7.2. KHAI BÁO ... 82

7.2.1. Khai báo theo mÁng<small> ... 82 </small>

7.2.2. Khai báo theo con tré<small> ... 82 </small>

7.2.3. Vća khai báo vća gán giá trå<small> ... 82 </small>

7.3. CÁC THAO TÁC TRÊN CHUàI ... 83

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>GIÁO TRÌNH MƠN HàC Tên mơn hác: LÀP TRÌNH C¡ BÀN </b>

<b>Mã mơn hác: MH11 </b>

<b>Vß trí, tính chÃt, ý nghĩa và vai trị cāa mụ un: </b>

- Vồ trớ: L mụn hỗc c¢ sé nghÅ trong ch°¢ng trình đào t¿o Trung cÃp nghÅ Công nghá thông tin (ąng dāng phn mm). Mụn hỗc ny c hỗc sau khởi mụn hỗc chung v mụn Cu trỳc d liỏu v gii thut..

- Tớnh cht: L mụn hỗc cung cp cho hỗc sinh nhng khỏi niỏm, thut toỏn c bn v ngơn ngċ lÁp trình C và kỹ năng lÁp trình c¢ bÁn..

- Ý nghĩa và vai trị căa mơn hỗc:

<b>Mc tiờu ca mụn hỏc: - V kin thức: </b>

- Trình bày đ°ÿc nhċng khái niám c¢ bÁn vÅ ngơn ngċ lÁp trình C;

- Trình bày đ°ÿc ph°¢ng pháp giÁi qut vÃn đÅ trên máy tính bÅng ngụn ng lp trỡnh;

- Cung cp cho hỗc sinh nhċng khái niám c¢ bÁn vÅ ngơn ngċ lÁp trình C: câu lánh, tć khóa, cú pháp, cách khai báo và sĉ dāng biÃn, hàm và các cÃu trúc lánh trong ngơn ngċ C;

- Trình bày đ°ÿc qui tÃc xây dāng hàm, cách sĉ dāng hàm trong mãt ch°¢ng trình;

- Trình bày đ°ÿc ý nghĩa, cách khai báo, cách truy xuÃt våi mãt së cÃu trúc dċ liáu;

- Trình bày đ°ÿc khái niám vÅ kiÇu dċ liáu chuái ký tč và các thao tác cách khai báo biÃn chi;

- Trình bày đ°ÿc ý t°éng và ph°¢ng pháp căa mãt së thuÁt toán..

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>- VÁ năng lăc tă chā và trách nhißm: </b>

- Có khÁ năng t° ̣nghiên cąu, t° ̣hoc,̣ tham kho ti liờ liờn quan n mụn hỗc ầ võ dung ̣ vào hoa球⌀ đông̣ hoc tâp;

- Nghiêm túc, cú tinh thn phởi hp tham gia hỗc, lm nhúm theo yêu cÅu căa giáo viên;

- Rèn luyán tính tò chc, tớnh tp thầ, linh hot, khoa hỗc, cn thn;

- Hỗc sinh phi tớch ly sở giỗ hỗc theo quy ồnh, tham gia y cỏc giỗ thčc hành.

<b>- Nåi dung cāa môn hác: </b>

<b>Théi gian Táng </b>

<b>så thuy<sup>Lý </sup>¿t hành, <sup>Th</sup><sup>ăc </sup><sup>Ki</sup>Ãm tra<sup>* </sup></b>

1 Ch°¢ng I: Giåi thiáu ngơn ngċ lÁp trình C 3 1 2 2 Ch°¢ng II: Các thành phÅn c¢ bÁn căa ngơn

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>CHĂNG I: GIổI THIịU NGễN NG LắP TRèNH C </b>

<b>Giỗi thiòu Mc tiờu </b>

- Trỡnh by s ra ỗi v phát triÇn, vå trí và ąng dāng căa ngơn ngċ lÁp trình C hián nay;

- Trình bày nhng th viỏn thỗng dựng và các khái niám vÅ ngơn ngċ lÁp trình, khái niám vÅ giÁi tht, khái niám vÅ kỹ tht lÁp trình tun tính và ngun lý ho¿t đãng căa ngơn ngċ lÁp trình C;

- Trình bày và sĉ dāng đ°ÿc há thëng trÿ giúp cơng cā (Tools) há trÿ lÁp trình C;

- Tỡm kim, download, la chỗn v ci t mụi trỗng lm viỏc ca ngụn ng lp trỡnh C trờn máy tính cá nhân;

- Chă đãng tìm hiÇu các tính năng căa ngơn ngċ C;

- Rèn lun tính cẩn thÁn, tã mã, chính xác, sáng t¿o, linh ho¿t trong cụng viỏc.

<b>Nồi dung </b>

<b>1.1. Giỗi thiòu ngụn ng C 1.1.1. Lßch sÿ phát triÃn </b>

Ngơn ngċ C là ngơn ngċ lÁp trình cÃp cao, đ°ÿc sĉ dāng rt phò bin ầ lp

<b>trỡnh hỏ thởng cựng vồi Assembler và phát triÇn các ąng dāng. </b>

Vào nhċng năm cuëi thÁp kỷ 60 đÅu thÁp kỷ 70 căa thà kỷ XX, Dennish Ritchie (làm viác t¿i phịng thí nghiám Bell) đã phát triÇn ngơn ngċ lÁp trình C dča trên ngôn ngċ BCPL (do Martin Richards đ°a ra vào năm 1967) và ngôn ngċ B (do Ken Thompson phát triÇn tć ngôn ngċ BCPL vào năm 1970 khi viÃt há điÅu hành UNIX đÅu tiên trên máy PDP-7) và đ°ÿc cài đÁt lÅn đÅu tiên trên há điÅu hành UNIX căa máy DEC PDP-11. Năm 1978, Dennish Ritchie và B.W Kernighan đã cho xt bÁn

<b>qun <Ngơn ngċ lÁp trình C= và đ°ÿc phß biÃn rãng rãi đÃn nay. </b>

Lúc ban đÅu, C đ°ÿc thiÃt kà nhÅm lÁp trình trong mụi trỗng ca hỏ iu hnh Unix nhm mc ớch há trÿ cho các cơng viác lÁp trình phąc t¿p. Nh°ng vÅ sau, våi nhċng nhu cÅu phát triÇn ngày mãt tăng căa cơng viác lÁp trình, C đã v°ÿt qua khn khß căa phịng thí nghiám Bell và nhanh chóng hãi nhÁp vào thà giåi lÁp trình đÇ rồi các cơng ty lÁp trình sĉ dāng mãt cách rãng rãi. Sau đó, các cơng ty sÁn xt phÅn mÅm lÅn l°ÿt đ°a ra các phiên bÁn há trÿ cho viác lÁp trình bÅng ngơn ngċ C và chuẩn

<b>ANSI C cũng đ°ÿc khai sinh tć đó. </b>

Ngơn ngċ lÁp trình C là mãt ngơn ngċ lÁp trình há thëng rÃt m¿nh và rÃt <mÅm d¿o=, có mãt th° vián gồm rÃt nhiÅu các hàm (function) đã đ°ÿc t¿o sn. Ngỗi lp trỡnh cú thầ tn dng cỏc hm này đÇ giÁi qut các bài tốn mà khơng cÅn phÁi t¿o måi. H¢n thà nċa, ngơn ngċ C há trÿ rÃt nhiÅu phép toán nên phù hÿp cho viác giÁi qut các bài tốn kỹ tht có nhiÅu cơng thc phc tp. Ngoi ra, C cng cho phộp ngỗi lÁp trình tč đånh nghĩa thêm các kiÇu dċ liáu tru tng khỏc. Tuy nhiờn, iu m ngỗi mồi va hỗc lp trỡnh C thỗng gp <rc rởi= l <hÂi khó hiÇu= do sč <mÅm

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

d¿o= căa C. Dù vÁy, C đ°ÿc phß biÃn khá rãng rãi và đã tré thành mãt cơng cā lÁp trình khá m¿nh, đ°ÿc sĉ dāng nh° là mãt ngôn ngċ lÁp trình chă yÃu trong viác xây

<b>dčng nhċng phÅn mÅm hián nay. 1.1.2. Să cÅn thi¿t </b>

a) ThuÁt ngċ căn bÁn

Khi mãt máy tính đ°ÿc khéi đãng, tč đãng thčc thi mãt së tiÃn trình và xuÃt kÃt q ra màn hình. ÐiÅu này dißn ra thà nào? Cõu tr lỗi Ân gin l nhỗ vo Hỏ iu hành cài đÁt bên trong máy tính. Há điÅu hành (operating system) đ°ÿc xem nh° phÅn mÅm há thëng. PhÅn mÅm này khéi đãng máy tính và thiÃt lÁp các thụng sở ban u

<b>trồc khi trao quyn cho ngỗi dùng. </b>

ĐÇ làm đ°ÿc điÅu này, há điÅu hành phÁi đ°ÿc cÃu t¿o tć mãt tp hp cỏc chÂng trỡnh. Mỗi chÂng trỡnh u cở gng a ra lỗi gii cho mót hay nhiu bi toỏn no ú Mỗi chÂng trỡnh cở gng đ°a ra giÁi pháp cho mãt hay nhiÅu vÃn đÅ. Mái ch°¢ng trình là tÁp hÿp các câu lánh giÁi qut mãt bài tốn cā thÇ. Mãt nhóm lánh t¿o

<b>thành mãt ch°¢ng trình và mãt nhóm các ch°¢ng trình t¿o thành mãt phÅn mÅm. </b>

PhÅn này chúng ta sÁ tìm hiÇu mãt së khái niám căn bÁn vÅ lánh (Command), tht tốn, ch°¢ng trình, ngơn ngċ lÁp trình. Tht ngċ thuÁt giÁi, thuÁt toán và PhÅn

<b>mÅm (Software). </b>

<i>Vớ d 1: Mót ngỗi bn n nh chÂi v c mỗi mún sa dõu. Anh ta thy </i>

ngon miỏng và muën xin công thąc làm. Ta h°ång d¿n cho anh ta các b°åc làm nh°

<b>sau: </b>

<i><b>Bước 1: LÃy mãt ít sċa. Bước 2: Đß n°åc ép dâu vào. </b></i>

<i><b>Bước 3: Trãn hán hÿp này và làm l¿nh. </b></i>

Bây giỗ nu ngỗi bn theo nhng chó dn ny, hỗ cng cú thầ to ra mún sa

<b>dõu tuyỏt vỗi. Hãy phân tích chã thå (lánh) é trên. </b>

 Lánh đÅu tiên: Lánh này hồn chãnh ch°a? Nó có trÁ lỗi c cõu hội ly sa

<b>8ộ õu9?. </b>

<b>Lỏnh thą hai: Mãt lÅn nċa, lánh này khơng nói rõ n°åc ép dâu đÇ 8é đâu9. </b>

May mÃn là b¿n căa chúng ta đă thơng minh đÇ hiÇu đ°ÿc cơng thąc pha chà nói trên, dù rÅng cịn nhiÅu điÇm ch°a rõ ràng. Do vÁy nÃu chúng ta muën phß biÃn

<b>cách làm, chúng ta cÅn bß sung các b°åc nh° sau: </b>

<i><b>Bước 1: Rót mãt ly sċa vào máy trãn. Bước 2: Đß thêm vào mãt ít n°åc dâu ép. Bước 3: Ðóng nÃp máy trãn </b></i>

<i><b>Bước 4: Mé đián và bÃt đÅu trãn Bước 5: Dćng máy trãn l¿i </b></i>

<i><b>Bước 6: NÃu đã trãn đÅu thì tÃt máy, ng°ÿc l¿i thì trãn tiÃp. Bước 7: Khi đã trãn xong, rót hán hÿp vào tơ và đÁt vào tă l¿nh. Bước 8: ÐÇ l¿nh mãt lúc rồi lÃy ra dùng. </b></i>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

So sánh hai cách h°ång d¿n nêu trên, h°ång d¿n thą hai chÃc chÃn hoàn chãnh,

<i>Bước 3: Thčc hián phép cãng giċa së thą nhÃt và së thą hai, nhå kÃt quÁ phép </i>

<b>cãng. </b>

<i><b>Bước 4: HiÇn thå kÃt quÁ. Bước 5: KÃt thúc. </b></i>

TÁp lánh trên tuân thă tÃt cÁ các quy tÃc đã đÅ cÁp. Vì vÁy, tÁp lánh này là mãt

<b>ch°¢ng trình và nó sÁ thčc hián thành cơng viác cãng hai së trên máy tính. </b>

 ThuÁt giÁi (Algorithm):

Là mãt dãy các thao tác xác đånh trên mãt đëi t°ÿng, sao cho sau khi thčc hián mãt së hċu h¿n các b°åc thì đ¿t đ°ÿc māc tiêu. Theo R.A.Kowalski thì bÁn chÃt căa

<b>giÁi bài tốn này đ°ÿc). </b>

iu khiần: Thnh phn ny tr lỗi cõu héi: giÁi thuÁt phÁi làm nh° thà nào?.

<b>Chính là cách thąc tiÃn hành áp dāng thành phÅn logic đÇ giÁi qut vÃn đÅ. </b>

 Ch°¢ng trình (Program):

Là mãt tÁp hÿp các mơ tÁ, các phát biÇu, nÅm trong mãt há thëng qui °åc vÅ ý

<b>nghĩa và thą tč thčc hián, nhÅm điÅu khiÇn máy tính làm viác. Theo Niklaus Wirth thì: Ch°¢ng trình = Tht tốn + CÃu trúc dċ liáu </b>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Các thuÁt tốn và ch°¢ng trình đÅu có cÃu trúc dča trên 3 cu trỳc iu khiần cÂ

<b>bn: </b>

<b>xuởng, mỏi b°åc chã thčc hián đúng mãt lÅn. </b>

Muën tré thành lÁp trình viên chuyên nghiáp hãy làm đúng trình tč đÇ có thói quen tët và thn lÿi sau ny trờn nhiu mt ca mót ngỗi lm mỏy tớnh. Hãy làm theo các b°åc

 Ngơn ngċ lÁp trình (Programming language):

Ngơn ngċ lÁp trình là há thëng các ký hiáu tuân theo các qui °åc vÅ ngċ pháp

<b>v ng ngha, dựng ầ xõy dng thnh cỏc chÂng trình cho máy tính. </b>

Mãt ch°¢ng trình đ°ÿc viÃt bÅng mãt ngơn ngċ lÁp trình cā thÇ (ví dā Pascal, C&) gỗi l chÂng trỡnh ngun, chÂng trỡnh dồch làm nhiám vā dåch ch°¢ng trình

<b>nguồn thành ch°¢ng trình thčc thi đ°ÿc trên máy tính. </b>

I-P-O Cycle (Input-Pprocess-Output Cycle) là quy trình xĉ lý c¢ bÁn căa máy

<b>tính nh° mơ hình sau: </b>

<small>Xử lý(Process)Đầu vào</small>

<small>Đầu ra(output)</small>

<i><b>Hình 1.2: Quy trình nhập – xử lý – xuất cơ bản của máy tính </b></i>

<i><b>Ví dụ 3: Xác đånh Input, Process, Output căa viác làm 1 ly n°åc chanh nóng </b></i>

- dùng muáng khuÃy đÅu.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<i>Output:</i> <b>ly chanh nóng đã s¿n sàng đÇ dùng. </b>

<i>Ví dụ 4: Xác đånh Input, Process, Output căa ch°¢ng trình tính tiÅn l°¢ng cơng </i>

<b>nhân tháng 10/2002 biÃt rÅng l°¢ng = l°¢ng cn bn * ngy cụng </b>

ầ dò hÂn v quy trình xĉ lý, các nhà lÁp trình đ°a ra dng lu ầ minh hỗa

<b>tng bồc quỏ trỡnh xĉ lý mãt vÃn đÅ (bài tốn). </b>

<i><b>Bảng 1.1: Hình ảnh minh họa lưu đồ </b></i>

TT Hình d¿ng (Symbol) Hnh óng (Activity)

<b>6 Gỗi CT con, hm& (Procedure, Function&) </b>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>8 ĐiÇm ghép nëi (Connector) </b>

 Mãt së l°u đồ minh ho¿:

<i>Lưu đồ 1: Chuẩn bå pha cà </i>

<b>phê </b>

<i>Lưu đồ 2: Ch°¢ng trình </i>

tính tiÅn l°¢ng công nhân tháng 10/2015 biÃt rÅng l°¢ng = l°¢ng căn bÁn *

<b>ngày công </b>

<i>Lưu đồ 3: Ch°¢ng </i>

trình giÁi ph°¢ng trình

<b>bÁc nhÃt ax + b = 0 </b>

<b>Ngụn ng C cú nhng c iầm c bn sau: </b>

<b>nhng hu ht u c biầu diòn bng nhng chuỏi ký t ngn gỗn. </b>

cu trỳc la chỗn, lp& T ú cỏc chÂng trỡnh vit bng C c tò chc rừ rng, dò

<b>hiầu. </b>

cựng phong phú nên khi chun tć máy tính này sang máy tính khác các ch°¢ng trình

<b>viÃt bÅng C v¿n hồn tồn t°¢ng thích. </b>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

 <i>Tính linh động (flexible): C là mãt ngôn ngċ rÃt uyÇn chuyÇn và cú pháp, </i>

chÃp nhn nhiu cỏch thầ hiỏn, cú thầ thu gỗn kớch th°åc căa các mã lánh làm ch°¢ng

<b>trình ch¿y nhanh h¢n. </b>

thành các tÁp tin đëi t°ÿng (object) và liên kÃt (link) các đëi t°ÿng đó l¿i våi nhau

<b>thnh mót chÂng trỡnh cú thầ thc thi c (executable) thëng nhÃt. 1.2. Các thao tác c¢ bÁn </b>

 Há trÿ các màu sÃc khác nhau våi các dòng code có thc tính khác nhau nh°

<b>Class/Struct/Union hay Functions, Variables, Constants khi so¿n thÁo code. </b>

 Há trÿ các gÿi ý các tć khố giúp các lÁp trình viên có thầ code nhanh v dò

<b>Viỏc ci t C-Free giởng nh mót phn mm bỡnh thỗng. </b>

Sau khi ti v ch¿y file setup và cài đÁt ch°¢ng trình, sau khi cài đÁt xong khéi

<b>đãng ch°¢ng trình ta sÁ nhÁn đ°ÿc hình nh° sau: </b>

<i><b>Hình 1.1: Hộp thoại đăng nhập C-Free </b></i>

T¿i đây C-Free cung cÃp mãt së ch°¢ng trình m¿u nh CppHello.cpp. Chỗn mót chÂng trỡnh ầ xem hc nhÃn Close đÇ vào màn hình chính, t¿i đây có nhċng

<b>chąc năng nh° sau: New (hoÁc nhÃn tò hp phớm ctrl + N) ầ to mồi mót tÁp tin: </b>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<i><b>Hình 1.2: Màn hình làm việc C-Free </b></i>

Dß dàng tra cąu công dāng mãt lánh nào đó bÅng cách tơ đen dịng lánh và

<b>nhÃn phím F1. </b>

Dß dàng biên dåch ch°¢ng trình (phím F9), nÃu code bå lái, chã viác nhÃp vào

<b>dịng thơng báo, ch°¢ng trình sÁ báo vå trí phát sinh lái. </b>

<b>Dß dàng biên dồch thụng qua biầu tng hoc phớm F5. Dò dng t¿o và đ°a file vào Project thông qua menu Project... </b>

Våi phÅn mÅm C-Free này dò dng hỗc C/C++ m không cÅn phÁi sĉ dāng Visual Studio. Tuy nhiên mái phÅn mÅm l¿i có nhċng °u điÇm và nh°ÿc điÇm khác

<b>nhau, hc cũng có thÇ do sộ thớch ca mỏi ngỗi m chỗn phn mm khỏc nhau. 1.2.2. Thoỏt khói </b>

<b>Chỗn menu File, chỗn Exit; Hc Ãn tß hÿp phím Alt – F4. </b>

<b>1.2.3. To mỗi, ghi mồt chÂng trỡnh C </b>

Muởn son tho mót chÂng trỡnh mồi ta bm biầu tng New (hoc dựng tò hp phớm Ctrl+N) ầ to mót tp tin må, tÁp tin này sÁ có đånh d¿ng là .cpp. Trong khung so¿n thÁo căa ch°¢ng trình, chã viác gõ nhċng dòng code, nÃu là tć khúa, chÂng trỡnh s t óng hiần thồ giỳp các phÅn cịn l¿i.

a) Quy trình gõ mãt ch°¢ng trình trong C:

<i>T¿i màn hình làm viác ngơn ngċ C, hãy gõ ch°¢ng trình sau và l°u våi tên VD1 </i>

<b>sau đó dåch, quan sát kÃt q </b>

Dịng Ch°¢ng trình

<b>[1] [2] [3] [4] [5] [6] </b>

<b>/* Chuong trinh in ra cau: <bai hoc C dau tien= */ #include <stdio.h> </b>

<b> </b>

<b>void main(void) { </b>

<b> printf("Bai hoc C dau tien."); </b>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>[7] } </b>

<b>KÃt quÁ: Bài hỗc C dau tien._ </b>

<i><b>í ngha: </b></i>

<i>[1]: Bt u bng /* và kết thúc bằng */ cho biÃt hàng này là hàng dißn giÁi </i>

(chú thích). Khi dåch và ch¿y ch°¢ng trình, dịng này khơng đ°ÿc dåch và cũng khơng thi hành lánh gì cÁ. Māc đích căa viác ghi chú này giúp ch°¢ng trình rõ ràng h¢n. Sau

<b>ny ỗc li chÂng trỡnh bit chÂng trỡnh lm gỡ. </b>

<i>[2]: Chąa phát biÇu tiÅn xĉ lý #include <stdio.h>. Vì trong ch°¢ng trình này ta </i>

sĉ dāng hàm th° vián căa C là printf, do đó cÅn phÁi có khai báo căa hàm th° vián này

<i><b>đÇ báo cho trình biên dåch C biÃt. Nếu khơng khai báo chương trình sẽ báo lỗi. </b></i>

[3]: Hàng <b>trÃng viÃt ra våi ý lm cho bng chÂng trỡnh thoỏng, dò ỗc. </b>

<i>[4]: void main(void) l thnh phn chớnh ca mỗi chÂng trỡnh C (có thể viết main() hoặc void main() hoặc main(void)). Tuy nhiên, nên viÃt theo d¿ng void </i>

main(void) ầ chÂng trỡnh rừ rng hÂn. Mỗi chÂng trỡnh C đÅu bÃt đÅu thi hành tć hàm main. CÁp dÃu ngoÁc () cho biÃt đây là khëi hàm (function). Hàm void main(void) có tć khóa void đÅu tiên cho biÃt hàm này không trÁ vÅ giá trå, tć khóa void trong

<b>ngc đ¢n cho biÃt hàm này không nhÁn vào đëi së. </b>

[5] và [7]: CÁp dÃu ngoÁc móc {} giåi h¿n thân căa hàm. Thân hàm bÃt đÅu

<b>bÅng dÃu {và kÃt thúc bÅng dÃu}. </b>

<i>[6]: Printf("Bai hoc C dau tien.");, chã thå cho máy in ra chuái ký tč nÅm trong </i>

nháy kép (""). Hng ny c gỗi l mót cõu lỏnh, kt thúc mãt câu lánh trong C phÁi

<b>là dÃu chÃm phẩy (;) </b>

<i>Chú ý:</i>

 Các tć include, stdio.h, void, main, printf phi vit bng ch thỗng. <b>Chuỏi trong nháy kép cÅn in ra "B¿n có thÇ viÃt chċ HOA, thỗng tựy, ý". </b>

Kt thỳc cõu lỏnh phÁi có dÃu chÃm phẩy.

 KÃt thúc tên hàm khơng có dÃu chÃm phẩy hc bÃt cą dÃu gì.  <b>Ghi chú phÁi đÁt trong cÁp /* &. */. </b>

 Thân hàm phÁi đ°ÿc bao béi cÁp { }.

 Các <b>câu lánh trong thân hàm phÁi viÃt thāt vào. </b>

b) Ghi ch°¢ng trình đang so¿n thÁo vào đĩa:

<b>Sĉ dāng File/Save hoÁc gõ phím F2. Cú hai trỗng hp xy ra: </b>

Nu ch°¢ng trình ch°a đ°ÿc ghi lÅn nào thì xt hián mãt hãi tho¿i cho phép xác đånh tên tÁp tin (FileName). Tên tÁp tin phÁi tuân thă quy cách đÁt tên căa DOS và khơng cÅn có phÅn mé rãng (ch°¢ng trình sÁ tč đãng có phÅn mé rãng là .C hoÁc .CPP

<b>sÁ nëi thêm trong phÅn Option). Sau đó gõ phím Enter. </b>

 NÃu ch°¢ng trình đã đ°ÿc ghi mãt lÅn rồi thì sÁ ghi nhċng thay òi bò sung

<b>lờn tp tin chÂng trỡnh c. </b>

c) Thc hiỏn chÂng trỡnh:

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

ầ thc hián ch°¢ng trình hãy dùng Ctrl-F9 (giċ phím Ctrl và gõ phím F9). Thčc hián ch°¢ng trình vća so¿n thÁo xong và quan sát trên màn hình đÇ thÃy kÃt q

<b>căa viác thčc thi ch°¢ng trình sau đó gõ phím bÃt kỳ đÇ tré l¿i våi Turbo. </b>

d) Mé mãt ch°¢ng trình đã có trên đĩa:

Våi mãt chÂng trỡnh ó cú trờn a, ta cú thầ mộ ra ầ thc hiỏn hoc sa cha

<i>bò sung. ầ mé mãt ch°¢ng trình dùng File/Open hc gõ phím F3. Sau đó gõ tên tÁp </i>

tin vào hãp File Name hoc la chỗn tp tin trong danh sỏch cỏc tp tin rồi gõ Enter.

<i>Mé ch°¢ng trình trên (VD1) và sĉa l¿i dòng thą 6 bÅng câu lánh printf("Bai hoc C dau tien.\n");</i><b>, sau đó l°u l¿i, dåch và ch¿y l¿i ch°¢ng trình, quan sát kÃt q </b>

<i>Kết quả: </i> Bi hỗc C dau tien_

Dũng va sa cú thêm \n, \n là ký hiáu xuëng dòng sĉ dāng trong lánh printf.

<b>Sau đây là mãt së ký hiáu khác: </b>

<b>/* Chuong trinh in ra cau bai hoc C dau tien */ #include <stdio.h> </b>

<b>#include <conio.h> </b>

<b>void main(void) { </b>

<b>printf("\t\tBai hoc C \rdau tien.\n"); </b>

<b>getch(); } </b>

<i><b>KÃt quÁ: dau tien. Bai hoc C_ Ý nghĩa: </b></i>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<i>[3]: Chąa phát biÇu tiÅn xĉ lý #include <conio.h>. Vì trong ch°¢ng trình này ta sĉ dāng hàm th° vián căa C là getch, do đó cÅn phÁi có khai báo căa hàm th° vián này </i>

<b>đÇ báo cho trình biên dåch C biÃt. NÃu khơng khai bỏo chÂng trỡnh s bỏo lỏi. </b>

[8]: getch() ầ chỗ nhn 1 ký t bt k t bn phớm, nh°ng khơng in ra màn hình. Vì thà ta sĉ dng hm ny ầ khi chy chÂng trỡnh xong s dćng l¿i é màn hình

<b>kÃt q, sau đó ta Ãn phím bÃt kỳ sÁ quay l¿i màn hình so¿n thÁo. 1.3. Sÿ dÿng trợ giúp </b>

 <b>Các phím xem thơng tin trÿ giúp: </b>

 F1: Xem tồn bã thông tin trong phÅn trÿ giúp.

 Ctrl-F1: Trÿ giúp theo ngċ cÁnh (tąc là khi con tré đang é trong mãt tć nào đó, chẳng h¿n int mà b¿n gõ phím Ctrl-F1 thì b¿n sÁ có đ°ÿc các thơng tin vÅ kiÇu dċ

<b>liáu int) </b>

Các <b>phím di chuyần con trộ trong vựng son tho chÂng trỡnh: </b>

<i><b>Bng 1.2: Phím tắt và ý nghĩa của các phím di chuyển con trỏ trong ngôn ngữ C </b></i>

<b>2 Mũi tên đi lên Đ°a con tré lên hàng tr°åc Ctrl-E 3 Mũi tên đi xuëng Đ°a con tré xuëng hàng sau Ctrl-X 4 Mũi tên sang trái Đ°a con tré sang trái mãt ký tč Ctrl-S 5 Mũi tên sang phÁi Đ°a con tré sang phÁi mãt ký tč Ctrl-D </b>

<b>8 PgUp Đ°a con tré lên trang tr°åc Ctrl-R 9 PgDn Đ°a con tré xuëng trang sau Ctrl-C </b>

<b>4 </b> Xóa tć vå trí con tré đÃn cuëi

 Các phím chèn ký tč/ dịng:

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<i><b>Bảng 1.4: Phím tắt và ý nghĩa của các phím chèn ký tự hoặc dịng trong ngơn ngữ C </b></i>

<b>1 Insert Thay đßi viÃt xen hay viÃt chồng </b>

<b>2 Ctrl-N Xen mãt dòng trëng vào tr°åc vå trí con tré </b>

 <b>Sĉ dāng khëi: </b>

Khëi là mãt đo¿n văn bÁn ch°¢ng trình hình chċ nhÁt đ°ÿc xác đånh béi đÅu khëi là góc trên bên trái và ci khëi là góc d°åi bên phÁi căa hình chċ nhÁt. Khi mãt khëi đã đ°ÿc xác đånh (trên màn hỡnh khởi cú mu sc khỏc chỏ bỡnh thỗng) thỡ ta có thÇ chép khëi, di chun khëi, xố khëi... Sĉ dāng khëi cho phép chúng ta so¿n thÁo

<b>ch°¢ng trình mãt cách nhanh chóng. sau đây là các thao tác trên khëi: </b>

<i><b>Bảng 1.5: Phím tắt và ý nghĩa của các phím sử dụng khối trong ngơn ngữ C </b></i>

<b>6 Ctrl-K-W Ghi khëi vào đĩa nh° mãt tÁp tin </b>

<b>7 Ctrl-K-R ỗc khởi (tp tin) t a vo sau vå trí con tré </b>

<b>3 F3 T¿o tÁp tin måi </b>

<b>1 Tab </b> Di chuyÇn con tré mãt khoÁng đồng thỗi y

<b>5 Hiỏn hóp thoi tỡm kim v thay thà Ctrl-Q-A </b>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>6 Tìm kiÃm tiÃp tāc Ctrl-L 1.4. Bài t¿p </b>

Xác đånh đÁc điÇm Input, Process, Output căa các ch°¢ng trình sau, tć đó vÁ

<b>l°u đồ cho các ch°¢ng trình đã xác đånh đÁc iầm trờn: 1. òi t tin VND sang tin USD. </b>

<b>2. Tớnh iầm trung bỡnh ca hỗc sinh gồm các mơn Tốn, Lý, Hóa. 3. GiÁi ph°¢ng trình bÁc 2: ax2 + bx + c = 0 </b>

4. Đßi tć đã sang radian và đßi tć radian sang đã (công thąc α/π = a/180, våi α:

<b>radian, a: đã) </b>

5. KiÇm tra 2 së a, b giëng nhau hay khác nhau.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>CH¯¡NG II: CÁC THÀNH PHÄN C¡ BÀN CĀA NGÔN NG LắP TRèNH C </b>

<b>Giỗi thiòu Mc tiờu </b>

- Trỡnh bày đ°ÿc các khái niám: tÁp kí tč, tć khóa, kiÇu dċ liáu, biÃn, hÅng, biÇu thąc, câu lánh, khëi lánh trong ngơn ngċ C;

- Trình bày đ°ÿc cÃu trúc, ph°¢ng thąc thčc thi căa mãt ch°¢ng trình C; - ViÃt đ°ÿc mãt së đo¿n ch°¢ng trình cā thầ ầ thc hiỏn cỏc yờu cu Ân gin; - Ci t mót sở chÂng trỡnh c thầ ầ thc hián các yêu cÅu đ¢n giÁn;

- Nghiêm túc, tã mã trong viác tiÃp nhÁn các kiÃn thąc và áp dāng vào thčc hành.

- Rèn luyán tính cẩn thÁn, tã mã, chính xác, sáng t¿o, linh ho¿t trong công viác.

<b>Nåi dung </b>

<b>2.1. Từ khóa và kí hißu 2.1.1. Từ khóa </b>

 Các tć khố trong C:

Tć khóa là các tć dnh riờng (reserved words) ca C m ngỗi lp trỡnh cú thầ s dng nú trong chÂng trỡnh tựy theo ý nghĩa căa tćng tć. Ta không đ°ÿc dùng tć khóa đÇ đÁt cho các tên căa riêng mình. Các tć khóa căa Turbo C 3.0 bao gồm:

<i><b>Bảng 2.1: Mơ tả các từ khóa trong ngơn ngữ C </b></i>

<b>const continue _cs default delete extern _export virtual far _fastcall float for friend goto huge void if inline int interrupt _loadds long Near volatile new operator pascal private protected public Register void return _saveregs _seg short signed sizeof _ss while static struct switch template this typedef Union </b>

 <b>CÁp dÃu ghi chú thích: </b>

Khi viÃt ch°¢ng trình đơi lúc ta cÅn phÁi có vi lỗi ghi chỳ v 1 on chÂng trỡnh no ú ầ dò nhồ v dò iu chónh sau ny; nhÃt là phÅn nãi dung ghi chú phÁi không thuãc vÅ ch°¢ng trình (khi biên dåch phÅn này bå bé qua). Trong ngơn ngċ lÁp

<b>trình C, nãi dung chú thích phÁi đ°ÿc viÃt trong cÁp dÃu /* và */. </b>

<i><b>Ví dụ 1: </b></i>

<b>#include <stdio.h> #include<conio.h> int main () </b>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<b>{ </b>

<b>char ten[50]; /*khai bao bien ten kieu char 50 ky tu*/ </b>

<b>/*Xuat chuoi ra man hinh*/ </b>

<b>printf(<Xin cho biet ten cua ban !=); </b>

<b>scanf(<%s=,ten); /*Doc vao 1 chuoi la ten cua ban*/ </b>

<b>printf(<Xin chao ban %s\n =,ten); </b>

<b>printf(<Chao mung ban den voi Ngon ngu lap trinh C=); </b>

<b>/*Dung chuong trinh, cho go phim*/ getch(); </b>

<b>return 0; } </b>

<b>2.1.2. T¿p ký tă dùng trong ngôn ngā C </b>

Bã chċ viÃt trong ngôn ngċ C bao gồm nhċng ký tč, ký hiáu sau: (phõn biỏt

<b>ch in hoa v in thỗng): </b>

 <b>26 chċ cái latinh lån A,B,C...Z </b>

 26 chċ cái latinh nhé a,b,c ...z.  10 chċ së thÁp phân 0,1,2...9.

 <b>Các ký hiáu toán hỗc: +, -, *, /, =, <, >, (, ) </b>

 Các ký hiáu đÁc biát: :. , ; " ' _ @ # $ ! ^ [ ] { } ...  <b>DÃu cách hay khoÁng trëng. </b>

<b>2.1.3. Tp ký hiòu </b>

Mỗi ngụn ngċ lÁp trình đÅu đ°ÿc xây dčng tć mãt bã ký tč nào đó. Các ký tč đ°ÿc nhóm l¿i theo nhiÅu cách khác nhau đÇ lÁp nên các tć. ĐÃn l°ÿt mình các tć l¿i đ°ÿc liên kÃt theo mãt quy tÃc (đó là cú pháp căa ngơn ngċ lÁp trình) nào đó đÇ t¿o thành các câu lánh. Mót chÂng trỡnh gm nhiu cõu lỏnh ầ diòn t mãt thuÁt giÁi

 <i><b>KiÇu së nguyên 1 byte (8 bits, gồm có 2 kiÇu): </b></i>

<i><b>Bảng 2.2: Mơ tả kiểu số nguyên một byte trong ngôn ngữ C </b></i>

TT KiÇu dċ liáu MiÅn giá trå (Domain)

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>1 <sup>unsigned char </sup></b> Tć 0 đÃn 255 (t°¢ng đ°¢ng 256 ký tč trong bÁng mã

<b>ASCII) </b>

báo mãt biÃn là kiÇu ký tč thì ta khai báo biÃn kiÇu unsigned char. Mái së trong miÅn

<b>giá trå căa kiÇu unsigned char t°¢ng ąng våi mãt ký tč trong bÁng mã ASCII. </b>

đÇ làm bit dÃu. Tć đó, nÃu gán giá trồ lồn hÂn 127 cho bin kiầu char thỡ giỏ trå căa

<b>biÃn này có thÇ là së âm (?). </b>

 <b>KiÇu së ngun 2 bytes (16 bits, gồm có 4 kiÇu): </b>

<i><b>Bảng 2.3: Mơ tả kiểu số ngun hai byte trong ngơn ngữ C </b></i>

TT KiÇu dċ liáu MiÅn giá trå (Domain)

<b>1 enum Tć -32,768 đÃn 32,767 2 unsigned int Tć 0 đÃn 65,535 3 short int Tć -32,768 đÃn 32,767 4 int Tć -32,768 đÃn 32,767 </b>

bit bên trái nhÃt đÇ làm bit dÃu. Tć đó, nÃu gán giá trå lån h¢n 32.767 cho biÃn có 1

<b>trong 3 kiÇu trên thì giá trå căa biÃn này có thÇ là së âm. </b>

<b>65535. </b>

 KiÇu së ngun 4 byte (32 bits, gồm có 2 kiÇu):

<i><b>Bảng 2.4: Mơ tả kiểu số ngun bốn byte trong ngơn ngữ C </b></i>

TT KiÇu dċ liáu MiÅn giá trå (Domain)

<b>1 unsigned long Tć 0 đÃn 4,294,967,295 </b>

<b>2 long Tć -2,147,483,648 đÃn 2,147,483,647 </b>

bên trái nhÃt đÇ làm bit dÃu. Tć đó, nÃu gán giá trå lån h¢n 2.147.483.647 cho biÃn có

<b>kiÇu long thì giá trå căa biÃn này có thÇ là së âm. </b>

<b>4294967295 </b>

<b>2.2.2. KiÃu så thăc (KiÃu dÃu phẩy đång) </b>

<b>Dùng đÇ l°u các së thčc hay các së có dÃu chÃm thÁp phân gồm có 3 kiÇu sau: </b>

<i><b>Bảng 2.5: Mơ tả kiểu số thực trong ngơn ngữ C </b></i>

TT KiÇu dċ liáu Kích th°åc (Size) MiÅn giá trå (Domain)

<b>1 float 4 bytes </b> Tć 3.4 * 10<small>-38</small> đÃn 3.4 * 10<small>38</small>

<b>2 <sup>Double </sup><sup>8 bytes </sup></b> Tć 1.7 * 10<small>-308</small> đÃn 1.7 * 10<sup>308</sup>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>3 <sup>long double </sup><sup>10 bytes </sup></b> Tć 3.4 *10<small>-4932</small> đÃn 1.1 *10<sup>4932</sup>

Mái kiÇu së thčc é trên đÅu có miÅn giá trå và đã chính xác (së së l¿) khác nhau. Tùy vào nhu cÅu sĉ dāng mà ta có thÇ khai báo biÃn thc 1 trong 3 kiÇu trên. Ngồi ra ta cịn có kiÇu dċ liáu void, kiÇu này mang ý nghĩa là kiÇu ráng khơng chąa

<i><b>Có hai kiÇu dċ liáu char: kiÇu signed char và unsigned char. </b></i>

<i><b>Bảng 2.7: Mô tả kiểu ký tự signed char và unsigned char </b></i>

TT KiÇu <sup>Ph¿m vi biÇu </sup><sub>dißn </sub> Së ký tč Kích th°åc

<b>1 </b> <sup>char (signed char </sup>

<i><b>Ví dụ 3: Minh ho¿ sč khác nhau giċa hai kiÇu dċ liáu trên </b></i>

<b>char ch1; </b>

<b>unsigned char ch2; ... </b>

<b>ch1=200; ch2=200; Khi đó thčc chÃt: </b>

<b> ch1=-56; ch2=200; </b>

<b>Nh°ng cÁ ch1 v ch2 u biầu diòn cựng mót ký t cú mã 200. </b>

<i><b>Phân loại ký tự: Có thÇ chia 256 ký tč làm ba nhóm </b></i>

 Nhóm các ký tč điÅu khiÇn có mã tć 0 đÃn 31. Chẳng h¿n ký tč mã 13 dùng đÇ chuyÇn con tré vÅ đÅu dịng, ký tč 10 chun con tré xng dịng d°åi (trên cùng

<b>mãt cãt). Các ký tč nhóm này nói chung khơng hiÇn thå ra màn hình. </b>

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

 Nhóm các ký tč văn bÁn có mã tć 32 đÃn 126. Các ký tč này có thÇ đ°ÿc đ°a

<b>ra màn hình hc máy in. </b>

 Nhóm các ký tč đồ ho¿ có mã së tć 127 đÃn 255. Các ký tč này có thÇ đ°a ra

<b>màn hình nh°ng khơng in ra đ°ÿc (bÅng các lánh DOS). 2.3. Bi¿n, hằng, biÃu thức </b>

<b>2.3.1. Phân lo¿i, khai báo và sÿ dÿng bi¿n </b>

Tên hay cũn gỗi l danh biầu (identifier) c dựng ầ t cho chÂng trỡnh, hng, kiầu, bin, chÂng trỡnh con... Tờn cú hai loi l tờn chun v tờn do ngỗi lÁp

<b>trình đÁt. </b>

 Tên chuẩn là tên do C đÁt s¿n nh° tên kiÇu: int, char, float,&; tên hm: sin,

<b>cos... </b>

Tờn do ngỗi lp trỡnh t t ầ dựng trong chÂng trỡnh ca mỡnh. S dāng

<b>bã chċ cái, chċ së và dÃu g¿ch d°åi (_) đÇ đÁt tên, nh°ng phÁi tuân thă quy tÃc: </b>

 BÃt đÅu bÅng mãt chċ cái hoÁc dÃu g¿ch d°åi.  Khơn<b>g có khng trëng é giċa tên. </b>

 Khơng đ°ÿc trùng våi tć khóa.

 Đã dài tëi đa căa tên là không giåi h¿n, tuy nhiên chã có 31 ký tč đÅu tiên là

<b>có ý nghĩa. </b>

 Khơng cÃm viác đÁt tên trùng våi tên chuẩn nh°ng khi đó ý nghĩa căa tên

<b>chuẩn khơng cịn giá trå nċa. </b>

<i>Lưu ý: Trong C, tên phân biát ch hoa, ch thỗng (Vớ dā: number khác </i>

<b>Number, case khác Case: case là tć khóa, do đó đÁt tên là Case v¿n đúng). 2.3.2. Hằng (Constant) </b>

<b>Là đ¿i l°ÿng không òi trong suởt quỏ trỡnh thc thi ca chÂng trỡnh. </b>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

Cách 1: Sĉ dāng cách vit thụng thỗng m chỳng ta ó s dng trong các mơn

<b>Tốn, Lý,& ĐiÅu cÅn l°u ý là sĉ dāng dÃu thÁp phân là dÃu chÃm (.); </b>

Së nguyên gồm các kiÇu int (2 bytes), long (4 bytes) đ°ÿc thÇ hián theo nhċng

<b>cách sau. </b>

<i>Hằng số nguyên 2 bytes (int) hệ thập phân: Là kiÇu së mà chỳng ta s dng </i>

thụng thỗng, hỏ thÁp phân sĉ dāng các ký së tć 0 đÃn 9 ầ biầu diòn mót giá trå

<b>nguyên. </b>

<i><b>Ví dụ 7: 123 (mãt trăm hai m°¢i ba), -242 (trć hai trăm bën m°¢i hai). </b></i>

<i>Hằng số nguyên 2 byte (int) hệ bát phân: Là kiÇu së nguyên sĉ dāng 8 ký së t </i>

<b>0 n 7 ầ biầu diòn mót sở nguyờn. </b>

<i><b>Cỏch biầu diòn: 0 <cỏc ký sở t 0 đÃn 7> </b></i>

<i><b>Ví dụ 8: 0345 (së 345 trong há bát phân) </b></i>

-<b>020 (së -20 trong há bát phân) c) HÅng ký tč: </b>

HÅng ký tč là mãt ký tč riêng biát đ°ÿc viÃt trong cÁp dÃu nháy đ¢n (8). Mái mãt ký tč t°¢ng ąng våi mãt giá trå trong bÁng mã ASCII. HÅng ký tč cũng đ°ÿc xem

<b>nh° trå së nguyên. </b>

<i><b>Ví dụ 9: 8a9, 8A9, 809, 899 </b></i>

Chúng ta có thÇ thčc hián các phép tốn së hỗc trờn 2 ký t (thc cht l thc

<b>hiỏn phép toán trên giá trå ASCII căa chúng) d) HÅng chuái ký tč: </b>

HÅng chuái ký tč là mãt chuái hay mãt xâu ký tč đ°ÿc đÁt trong cÁp dÃu nháy

<b>kép (<&=) </b>

<i><b>Ví dụ 10: <Ngon ngu lap trinh C=, <Khoa CNTT-CDKTDL=, <LEVANTUNG= </b></i>

<i>Chú ý: </i>

<b>1. Mãt chi khơng có nãi dung <= c gỗi l chuỏi rỏng. </b>

<b>2. Khi lu trċ trong bã nhå, mãt chuái đ°ÿc kÃt thúc bÅng ký tč NULL (8\09: mã Ascii là 0). </b>

<b>3. ầ biầu diòn ký t c biỏt bờn trong chuỏi ta phÁi thêm dÃu \ phía tr°åc. </b>

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<i><b>Ví dụ 11: <I9m a student= phÁi viÃt <I\9m a student= </b></i>

<b><Day la ky tu <dac biet== phÁi viÃt <Day la ky tu \=dac biet\=< 2.3.3. Bi¿n và BiÃu thức </b>

a) BiÃn:

Bin l mót i lng c ngỗi lp trỡnh đånh nghĩa và đ°ÿc đÁt tên thông qua viác khai báo biÃn. BiÃn dùng đÇ chąa dċ liáu trong quá trình thčc hián ch°¢ng trình và giá trå căa biÃn cú thầ bồ thay òi trong quỏ trỡnh ny. Cỏch đÁt tên biÃn giëng

<b>nh° cách đÁt tên đã nói trong phÅn trên. </b>

Mái biÃn thuãc vÅ mãt kiÇu dċ liáu xác đånh và có giá trå thc kiÇu đó.  Cú pháp khai báo biÃn:

<i><b>Lưu ý: ĐÇ kÃt thúc 1 lánh phÁi có dÃu chÃm phẩy (;) é cuëi lánh. </b></i>

 Vå trí khai báo biÃn trong C:

Trong ngôn ngċ lÁp trình C, ta phÁi khai báo biÃn đúng vå trí. NÃu khai báo (đÁt các biÃn) khơng đúng vå trí sÁ d¿n đÃn nhċng sai sót ngồi ý mn mà ngỗi lp trỡnh

<b>khụng lỗng trồc (hiỏu ng l). Chỳng ta có 2 cách đÁt vå trí căa biÃn nh° sau: </b>

<i>Khai báo biến ngoài: Các biÃn này đ°ÿc đÁt bên ngồi tÃt cÁ các hàm và nó có </i>

<b>tác dāng hay Ánh h°éng đÃn tồn bã ch°¢ng trình (cịn gỗi l bin ton cc). </b>

<i><b>Vớ d 13: </b></i>

<b>int i; /*Bien ben ngoai */ float pi; /*Bien ben ngoai*/ int main() </b>

<b>{ & } </b>

<i>Khai báo biến trong: Các biÃn đ°ÿc đÁt é bên trong hàm, ch°¢ng trình chính </i>

hay mãt khëi lánh. Các biÃn này chã có tác dāng hay Ánh h°éng đÃn hàm, ch°¢ng trình hay khëi lánh chąa nó. Khi khai báo biÃn, phÁi đÁt các biÃn này é đÅu căa khëi lánh,

<b>tr°åc các lánh gán, & </b>

<i><b>Ví dụ 15: </b></i>

<b>#include <stdio.h> #include<conio.h> </b>

<b>int bienngoai; /*khai bao bien ngoai*/ int main () </b>

<b>{ </b>

<b> int j,i; /*khai bao bien ben trong chuong trinh chinh*/ clrscr(); </b>

<b> i=1; j=2; </b>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<b> bienngoai=3; </b>

printf("\n Gia tri cua i la %d",i);<i><b>/*%d là số nguyên*/ </b></i>

<b> printf("\n Gia tri cua j la %d",j); </b>

<b> printf("\n Gia tri cua bienngoai la %d",bienngoai); getch(); </b>

<b> return 0; } </b>

<i><b>Ví dụ 16: </b></i>

<b>#include <stdio.h> #include<conio.h> int main() </b>

<b>{ </b>

<b>int hieu=j-i; /*Bien ben trong */ </b>

<b>printf("\n Hieu so cua j tru i la %d",hieu); </b>

<b>} else </b>

<b>{ </b>

<b>int hieu=i-j ; /*Bien ben trong*/ </b>

<b>printf("\n Gia tri cua i tru j la %d",hieu); </b>

<b>} getch(); return 0; } </b>

b) BiÇu thąc:

Là mãt sč kÃt hÿp giċa các toán tĉ (operator) và các toán h¿ng (operand) theo

<b>đúng mãt trÁt tč nhÃt đånh. </b>

<b>Mái toán h¿ng có thÇ là mãt hÅng, mãt biÃn hc mãt biầu thc khỏc. </b>

Trong trỗng hp, biầu thc cú nhiÅu tốn tĉ, ta dùng cÁp dÃu ngc đ¢n () đÇ

<b>chã đånh tốn tĉ nào đ°ÿc thčc hián tr°åc. </b>

<i>Vớ d 17: </i>

<b>Biầu thc nghiỏm ca phÂng trỡnh bÁc hai: (-b + sqrt(Delta))/(2*a) Trong đó 2 là hÅng; a, b, Delta là biÃn. </b>

 Các toán tĉ sở hỗc:

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

Trong ngụn ng C, các tốn tĉ +, -, *, / làm viác t°¢ng tč nh° khi chúng làm viác trong các ngôn ngċ khác. Ta có thÇ áp dāng chúng cho đa së kiÇu dċ liáu có s¿n đ°ÿc cho phép béi C. Khi ta áp dāng phép / cho mãt së nguyên hay mãt ký tč, bÃt kỳ

<b>phÅn d° nào cũng bå cÃt bé. Chẳng h¿n, 5/2 bÅng 2 trong phép chia ngun. </b>

<i><b>Bảng 2.8: Mơ tả tốn tử trong ngôn ngữ C </b></i>

<i><b>Tăng và giảm: (++ & --) </b></i>

<b>Toán tĉ ++ thêm 1 vào tốn h¿ng căa nó và – trć båt 1. Nói cách khác: </b>

<i><b>Thứ tự ưu tiên của các tốn tử số học: ++ -- sau đó là * / % rồi måi đÃn + - </b></i>

 Các toán tĉ quan há và các toán tĉ Logic:

Ý t°éng chính căa tốn tĉ quan há và tốn t Logic l ỳng hoc sai. Trong C mỗi giỏ trồ khỏc 0 c gỗi l ỳng, cũn sai l 0. Các biÇu thąc sĉ dāng các tốn tĉ

<b>quan há và Logic trÁ vÅ 0 nÃu sai và trÁ vÅ 1 nÃu đúng. </b>

<i><b>Bảng 2.9: Mơ tả tốn tử quan hệ và tốn tử logic trong ngơn ngữ C </b></i>

<i><b>Các toán tử quan hệ </b></i>

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

Các tốn tĉ quan há và Logic đÅu có đã u tiờn thp hÂn cỏc toỏn t sở hỗc. Do

<b>đó mãt biÇu thąc nh°: 10 > 1+ 12 sÁ đ°ÿc xem là 10 > (1 + 12) và kÃt q là sai (0). </b>

<b>Ta có thÇ kÃt hÿp vài tốn tĉ l¿i våi nhau thành biÇu thąc nh° sau: </b>

10>5&&!(10<9)||3<=4 KÃt quÁ là đúng 5>3 and 8a9= 8b9 and 8/2=4 kÃt quÁ là sai

<i><b>Thứ tự ưu tiên của các toán tử quan hệ là Logic </b></i>

<b>Cao nhÃt: ! </b>

<b> > >= < <= </b>

<b>&& ThÃp nhÃt: || </b>

 Toán tĉ con tré & và *:

Mãt con tré là đåa chã trong bã nhå căa mãt biÃn. Mãt biÃn con tré là mãt biÃn

<b>đ°ÿc khai báo riêng đÇ chąa mãt con tré đÃn mãt đëi t°ÿng căa kiÇu đã chã ra nú. </b>

Ta s tỡm hiầu k hÂn v con tré trong ch°¢ng vÅ con tré. è đây, chúng ta s

<b>cp ngn gỗn n hai toỏn t đ°ÿc sĉ dāng đÇ thao tác våi các con tré. </b>

Toán tĉ thą nhÃt là &, là mãt toán tĉ quy °åc trÁ vÅ đåa chã bã nhå căa

<b>há së căa nó. </b>

<i><b>Ví dụ 19: m = &temp </b></i>

<i><b>ĐÁt vào biÃn m đåa chã bã nhå căa biÃn temp. </b></i>

<i>Chẳng h¿n, biÃn temp é vå trí bã nhå 2000, giÁ sĉ temp có giá trå là 100. </i>

<b>Sau câu lánh trên m sÁ nhÁn giá trå 2000. </b>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

Toán tĉ thą hai là *, là mãt bß sung cho &; đây là mãt tốn tĉ quy °åc

<b>trÁ vÅ giá trå căa biÃn đ°ÿc cÃp phát t¿i đåa chã theo sau đó. </b>

<i><b>Ví dụ 20: q = *m </b></i>

SÁ đÁt giá trå căa m vào q. Bây giỗ q s cú giỏ trồ l 100 vỡ 100 đ°ÿc l°u

<b>trċ t¿i đåa chã 2000. </b>

<b>2.4. CÃu trúc mồt chÂng trỡnh 2.4.1. Tin x lý v biờn dòch </b>

Trong C, viác dåch (translation) mãt tÁp tin nguồn đ°ÿc tiÃn hành trên hai b°åc

<b>hoàn toàn đãc lÁp våi nhau: </b>

 TiÅn xĉ lý.  <b>Biên dåch. </b>

Hai bồc ny trong phn lồn thỗi gian đ°ÿc nëi tiÃp våi nhau mãt cách tč đãng theo cách thąc mà ta có Ãn t°ÿng rÅng nó đã đ°ÿc thčc hián nh° là mãt xĉ lý duy nhÃt. Núi chung, ta thỗng núi n viỏc tn ti ca mãt bã tiÅn xĉ lý (preprocessor?) nhÅm chã rõ ch°¢ng trình thčc hián viác xĉ lý tr°åc. Ng°ÿc l¿i, các thuÁt ngċ trình biên dåch hay sč biên dåch v¿n cịn nhÁp nhÅng béi vì nó chã ra khi thì tồn bã hai giai đo¿n, khi

<b>thì l¿i là giai đo¿n thą hai. </b>

B°åc tiÅn xĉ lý t°¢ng ąng våi viác cÁp nhÁt trong văn bÁn căa ch°¢ng trình nguồn, chă u dča trên viác dißn giÁi các mó lỏnh rt c biỏt gỗi l cỏc chó thồ d¿n h°ång căa bã tiÅn xĉ lý (destination directive of preprocessor); các chã thå này đ°ÿc

<b>nhÁn biÃt béi chúng bÃt đÅu bÅng ký hiáu (symbol) #. Hai chã thå quan trỗng nht l: </b>

<b>Chó thồ s gãp vào căa các tÁp tin nguồn khác: #include </b>

 Chã thå viác đånh nghĩa các macros hoÁc ký hiáu: #define

Chã thå đÅu tiên đ°ÿc sĉ dāng tr°åc hÃt là nhÅm gãp vào nãi dung căa các tÁp tin cÅn có (header file), khơng thÇ thiÃu trong viác sĉ dāng mãt cách tët nhÃt các hàm

<i><b>căa th° vián chuẩn, phß biÃn nhÃt là: #include <stdio.h> </b></i>

Chã thå thą hai rÃt hay đ°ÿc sĉ dāng trong các tÁp tin th° vián (header file) ó c ồnh ngha trồc ú v thỗng c khai thác béi các lÁp trình viên trong viác

<i><b>đånh nghĩa các ký hiáu nh° là: #define NB_COUPS_MAX 100 và #define SIZE 25 </b></i>

<b>2.4.2. CÃu trúc måt ch°¢ng trình C </b>

Mãt ch°¢ng trình C bao gồm các phÅn nh°: Các chã thå tiÅn xĉ lý, khai báo biÃn

<b>ngoài, các hàm tč t¿o, ch°¢ng trình chính (hàm main). CÃu trúc có thÇ nh° sau: </b>

<b>1. Đånh nghĩa kiÇu dċ liáu (phÅn này khơng bÃt bc): dùng đÇ đÁt tên l¿i cho </b>

mãt kiÇu dċ liáu nào đó đÇ gÿi nhå hay đÁt 1 kiÇu dċ liáu cho riêng mình dča trên các

<i>kiÇu dċ liáu đã có.Cú pháp: typedef <Tên kiÇu cũ> <Tên kiÇu måi> (Ví dā: typedef </i>

<b>int SoNguyen; // KiÇu SoNguyen là kiÇu int) </b>

<b>2. Khai báo các prototype (tên hàm, các tham së, kiÇu kÃt quÁ trÁ vÅ,& căa các </b>

hàm sÁ cài đÁt trong phÅn sau, phÅn này không bÃt buãc): phÅn này chã là các khai báo

<b>đÅu hàm, không phÁi là phÅn đånh nghĩa hàm. </b>

<b>3. Khai báo các biÃn ngoài (các biÃn toàn cāc) phÅn này không bÃt buãc: phÅn này khai báo các biÃn tồn cāc đ°ÿc sĉ dāng trong cÁ ch°¢ng trình. </b>

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<b>4. Ch°¢ng trình chính phÅn này bÃt bc phÁi có </b>

Mãt ch°¢ng trình C bt u thc thi t hm main (thụng thỗng l tć câu lánh

<b>đÅu tiên đÃn câu lánh cuëi cùng). </b>

<b>2.4.3. Các th° vißn thơng dÿng </b>

Đây là các tÁp tin chąa các hàm thông dāng khi lÁp trinh C, muën sĉ dāng các hàm trong các tÁp tin header này thì phÁi khai báo #include <Tên tÁp tin> é phÅn đÅu

<b>căa ch°¢ng trình, gồm các tć khóa sau: </b>

<b>1. stdio.h: TÁp tin đånh nghĩa các hàm vào/ra chuẩn (standard input/output). </b>

Gồm các hàm in dċ liáu (printf()), nhÁp giá trå cho biÃn (scanf()), nhÁn ký tč tć bàn phím (getc()), in ký tč ra màn hình (putc()), nhÁn mãt dãy ký tč tć bàm phím (gets()), in chuái ký tč ra màn hình (puts()), xóa vùng đám bàn phím (fflush()), fopen(),

<b>fclose(), fread(), fwrite(), getchar(), putchar(), getw(), putw()& </b>

<b>2. conio.h: TÁp tin đånh nghĩa các hàm vào ra trong chà đã DOS (DOS </b>

console). Gồm các hàm clrscr(), getch(), getche(), getpass(), cgets(), cputs(), putch(),

<b>clreol(),& </b>

<b>3. math.h: TÁp tin đånh nghĩa các hàm tính tốn gồm các hàm abs(), sqrt(), log(). log10(), sin(), cos(), tan(), acos(), asin(), atan(), pow(), exp(),& </b>

<b>4. alloc.h: TÁp tin đånh nghĩa các hàm liên quan đÃn viác quÁn lý bã nhå. Gồm </b>

các hàm calloc(), realloc(), malloc(), free(), farmalloc(), farcalloc(), farfree(), &

<b>5. io.h: TÁp tin đånh nghĩa các hàm vào ra cÃp thÃp. Gồm các hàm open(), </b>

_open(), read(), _read(), close(), _close(), creat(), _creat(), creatnew(), eof(),

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<b>2.5. Câu lßnh 2.5.1. Khái nißm </b>

Mãt câu lánh (statement) xác đånh mãt cơng viác mà ch°¢ng trình phÁi thčc hián đÇ xĉ lý dċ liáu đã đ°ÿc mô tÁ và khai báo. Các câu lánh đ°ÿc ngăn cách våi

<b>nhau béi dÃu chÃm phẩy (;). Có hai lo¿i lánh đó là lánh đ¢n và lánh có cÃu trúc. </b>

 Lánh đ¢n là mãt lánh khơng chąa các lánh khác. Các lánh đ¢n gồm: lánh gán, các câu lánh nhÁp xuÃt dċ liáu&

 Lánh có cÃu trúc là lánh trong đó chąa các lánh khác. Lánh có cÃu trúc bao gồm: cÃu trúc điÅu kián r nhỏnh, cu trỳc iu kiỏn la chỗn, cu trỳc lÁp và cÃu trúc lánh hÿp thành. Lánh hÿp thành (khëi lánh) là mãt nhóm bao gồm nhiÅu khai báo biÃn

<b>và các lánh đ°ÿc gom vào trong cÁp dÃu {}. 2.5.2. Lßnh gán và lßnh gåp </b>

<b>int x,y; </b>

x =10; /*Gá<b>n hÅng së 10 cho biÃn x*/ </b>

<b>y = 2*x; /*Gán giá trå 2*x=2*10=20 cho x*/ return 0; </b>

<b>int x,y; </b>

<b>x = 10; /*Gán hÅng së 10 cho biÃn x*/ y = <Xin chao=; </b>

<b>/*y có kiÇu int, cịn <Xin chao= có kiÇu char* */ return 0; </b>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

<i><b>Ví dụ 22: </b></i>

<b>int main() { </b>

<b>int x,y; float r; char ch; r = 9000; </b>

<b>x = 10; /* Gán hÅng së 10 cho biÃn x */ y = 'd'; /* y có kiÇu int, cịn 8d9 có kiÇu char*/ r = 'e'; /* r có kiÇu float, 8e9 có kiÇu char*/ </b>

<b>ch = 65.7; /* ch có kiÇu char, cịn 65.7 có kiÇu float*/ return 0; </b>

<i><b>Ví dụ 23: </b></i>

<b>int x, y; </b>

<b>y = x = 3; /* y lúc này cùng bÅng 3*/ </b>

<b>Ta có thÇ gán trå cho biÃn lúc biÃn đ°ÿc khai báo theo cách thąc sau: </b>

<i><b><Tên kiểu> <Tên biến> = <Biểu thức>; Ví dụ 24: int x = 10, y=x; </b></i>

 <b>Lánh gãp (khëi lánh): </b>

Mãt câu lánh trong C đ°ÿc thiÃt lÁp tć các tć khố và các biÇu thąc & và luôn luôn đ°ÿc kÃt thúc bÅng dÃu chÃm phẩy. Các ví dā vào/ra hoÁc các phép gán t¿o thành nhċng câu lánh đ¢n giÁn nh°:

<b>x = 3 + x ; </b>

<b>y = (x = sqrt(x)) + 1 ; </b>

<b>printf(<x = %4d, y=%4.2f=, x, y ); </b>

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

Các câu lánh đ°ÿc phép viÃt trên cùng mót hoc nhiu dũng. Mót sở cõu lỏnh c gỗi là lánh có cÃu trúc, tąc bên trong nó l¿i chąa dãy lánh khác. Dãy lánh này phÁi đ°ÿc bao gia cp du ngoc {} v c gỗi l khởi lánh. Ví dā tÃt cÁ các lánh trong mãt hàm (nh° hàm main()) luôn luôn là mãt khëi lánh. Mãt đÁc điÇm căa khëi lánh là các biÃn đ°ÿc khai báo trong khëi lánh nào thì chã có tác dāng trong khëi lánh đó.

Mãt dãy các câu lánh đ°ÿc bao bội cỏc du { } gỗi l mót khởi lánh.

<i><b>Ví dụ 25: </b></i>

<b>{ </b>

<b>a=2; b=3; </b>

<b>printf("\n%6d%6d",a,b); } </b>

TURBO C xem khëi lánh cũng nh° mãt câu lánh riêng l¿. Nói cách khác, chá nào viÃt đ°ÿc mãt câu lánh thì é đó cũng có qun đÁt mãt khëi lánh.

<i>Khai báo ở đầu khối lệnh: </i>

Các khai báo biÃn và mÁng chẳng nhċng có thÇ đÁt é đÅu căa mãt hàm mà cịn

<b>có thÇ viÃt é đÅu khëi lánh: { </b>

<b>int a, b; float x, y, z; a=b=3; </b>

<b>x=5.5; y=a*x; z=b*x; </b>

<b>printf("\n y= %8.2f\n z=%8.2f",y,z); } </b>

<i>Sự lồng nhau của các khối lệnh và phạm vi hoạt động của các biến và mảng: </i>

Bên trong mãt khëi lánh l¿i có thÇ viÃt lồng khëi lánh khác. Sč lồng nhau theo cách nh° vÁy là không h¿n chÃ. Khi máy bÃt đÅu làm viác våi mãt khëi lánh thì các biÃn và mÁng khai báo bên trong nó måi đ°ÿc hình thành và đƣÿc hình thành và đ°ÿc cÃp phát bã nhå. Các biÃn này chã tồn ti trong thỗi gian mỏy lm viỏc bờn trong khởi lánh và chúng lÁp tąc biÃn mÃt ngay sau khi máy ra khéi khëi lánh. VÁy: Giá trå căa mãt biÃn hay mãt mÁng khai báo bên trong mãt khëi lánh khơng thÇ đ°a ra sĉ dāng é

<b>bÃt kỳ chá nào bên ngồi khëi lánh đó. </b>

è bÃt kỳ chá nào bên ngồi mãt khëi lánh ta khơng thÇ can thiáp đÃn các biÃn và các mÁng đ°ÿc khai báo bên trong khëi lánh. NÃu bên trong mãt khëi ta dùng mãt biÃn hay mãt mÁng có tên là a thì điÅu này khơng làm thay đßi giá trå căa mãt biÃn khác cũng có tên là a (nÃu có) đ°ÿc dùng é đâu đó bên ngồi khëi lánh này. NÃu có mãt biÃn đã đ°ÿc khai báo é ngồi mãt khëi lánh và khơng trùng tên våi các biÃn khai báo bên trong khëi lánh này thì biÃn đó cũng có thÇ sĉ dāng cÁ bên trong cũng nh° bên

<b>ngồi khëi lánh. </b>

<i><b>Ví dụ 26: Xét đo¿n ch°¢ng trình sau : </b></i>

<b>{ </b>

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

<b>int a=5,b=2; { </b>

<b>int a=4; b=a+b; </b>

<b>printf("\n a trong =%3d b=%3d",a,b); } </b>

<b>printf("\n a ngoai =%3d b=%3d",a,b); } </b>

<b>//Khi đó đo¿n chƣ¢ng trình sÁ in kÃt q nh° sau: a trong =4 b=6 </b>

 printf: tên hàm, phÁi viÃt bÅng chċ thỗng.

ởi mc 1,&: l cỏc mc d kián cÅn in ra màn hình. Các đëi māc này có thÇ

<b>là biÃn, hÅng hc biÇu thąc phÁi đ°ÿc đånh trå tr°åc khi in ra. </b>

 chuái đånh d¿ng: đ°ÿc đÁt trong cÁp nháy kép (<&=), gồm 3 lo¿i:  <b>Đëi våi chuái kí tč ghi nh° thà nào in ra giëng nh° vÁy. </b>

 Đëi vồi nhng kớ t chuyần òi dng thc cho phộp kÃt xuÃt giá trå căa các

<b>đëi māc ra màn hỡnh tm gỗi l mó ồnh dng. </b>

Cỏ ký tč điÅu khiÇn và ký tč đÁc biát

<i><b>Bảng 2.11: Mô tả ký tự chuyển đổi dạng thức và điều khiển: </b></i>

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<b>10 l </b> TiÅn të dùng kèm våi %d, %u, %x, %o đÇ chã

<b>1 <Ma dinh dang= và </b>

<b><in ra dau= <sup>chuái ký tč </sup></b>

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

 <i>chuỗi định dạng: đ°ÿc đÁt trong cÁp nháy kép (<&=) là hình Ánh d¿ng dċ liáu </i>

<b>nhÁp vào. </b>

<b>sÁ tiÃp nhÁn giá trå nhÁp vào. </b>

<i><b>Ví dụ 30: scanf("%d", &i); // %d: mã đånh d¿ng; &i: đëi māc 1 </b></i>

<b>è đây, nhÁp vào 12abc, biÃn i chã nhÁn giá trå 12. NhÁp 3.4 chã nhÁn giá trå 3 </b>

<i><b>Ví dụ 31: scanf("%d%d", &a, &b); </b></i>

<b>NhÁp vào 2 së a, b phÁi cách nhau bÅng khoÁng trÃng hoÁc enter. </b>

<i><b>Ví dụ 32: scanf("%d/%d/%d", &ngay, &thang, &nam); </b></i>

<b>NhÁp vào ngày, tháng, năm theo d¿ng ngay/thang/nam (20/12/2002) </b>

<i><b>Ví dụ 33: scanf("%d%*c%d%*c%d", &ngay, &thang, &nam); </b></i>

<b>NhÁp vào ngày, tháng, năm våi dÃu phân cách /, -,&; ngo¿i trć së. </b>

<i><b>Ví dụ 34: scanf("%2d%2d%4d", &ngay, &thang, &nam); </b></i>

<b>NhÁp vào ngày, tháng, năm theo d¿ng dd/mm/yyyy. 2.6. Thăc thi ch°¢ng trình </b>

 Dåch ch°¢ng trình:

Sau khi đã so¿n thÁo xong ch°¢ng trình nguồn, bồc tip theo thỗng l dồch (n tò hp phớm Alt-F9) ầ tỡm v sa cỏc lỏi gỗi l lỏi cú pháp. Trong khi dåch C sÁ đÁt con tré vào n¢i gây lái (viÃt sai cú pháp) trong văn bn. Sau khi sa xong mót lỏi ngỗi lp trỡnh có thÇ dùng Alt-F8 đÇ chun con tré đÃn lái tiÃp theo hoÁc dåch l¿i. ĐÇ chuyÇn con tré vÅ ng°ÿc l¿i lái tr°åc đó có thÇ dùng Alt-F7. Q trình sĉa lái − dåch đ°ÿc lÁp l¿i cho đÃn khi văn bÁn đã đ°ÿc sĉa hÃt lái cú pháp.

ầ dồch chÂng trỡnh ta chỗn menu\Compile\Compile hoc\Compile\Make hoc nhanh chúng hÂn bÅng cách Ãn tß hÿp phím Alt-F6.

 <b>Ch¿y chÂng trỡnh: </b>

n Ctrl-F9 ầ chy chÂng trỡnh, nu chÂng trình ch°a dåch sang mã máy, máy sÁ tč đãng dåch l¿i tr°åc khi ch¿y. KÃt quÁ căa chÂng trỡnh s hiỏn ra trong mót ca sò kt qu ầ ngỗi lp trỡnh kiầm tra. Nu kt qu chƣa đ°ÿc nh° mong muën, quay l¿i văn bÁn đÇ sĉa và l¿i ch¿y l¿i ch°¢ng trình. Q trình này đ°ÿc lÁp l¿i cho đÃn khi ch°¢ng trình ch¿y đúng nh° u cÅu đã đÅ ra. Khi ch°¢ng trình ch¿y, ca sò kt qu s hiỏn ra tm thỗi che khuÃt cĉa sß so¿n thÁo.

Sau khi kÃt thúc chy chÂng trỡnh ca sò son tho s t óng hián ra tré l¿i và che khuÃt cĉa sß kÃt quÁ. ĐÇ xem l¿i kÃt quÁ đã hián Ãn Alt-F5 (hoÁc thêm lánh getch() vào cuëi hàm main(). Sau khi xem xong ầ quay li ca sò son tho n phím bÃt kỳ.

<b>2.7. Bài t¿p </b>

<b>1. ViÃt ch°¢ng trình đßi mãt së ngun há 10 sang há 2. </b>

2. Vit chÂng trỡnh òi mót sở nguyờn hỏ 10 sang há 16.

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

3. Vit chÂng trỡnh ỗc vo 2 sở nguyờn v in ra kÃt quÁ căa phép (+), phép

<b>trć (-), phép nhân (*), phép chia (/). NhÁn xét kÃt quÁ chia 2 së ngun. </b>

4. ViÃt ch°¢ng trình nhÁp vào bán kính hình cÅu, tính và in ra dián tích, thầ tớch

6. Vit chÂng trỡnh ỗc t bn phớm 3 sở nguyờn biầu diòn ngy, thỏng, nm

<b>v xut ra màn hình d°åi d¿ng "ngay/thang/nam" (chã lÃy 2 së ci căa năm). </b>

7. ViÃt ch°¢ng trình nhÁp vào së giây tć 0 đÃn 86399, đßi së giây nhÁp vào

<i>thành d¿ng "gio:phut:giay", mái thành phÅn là mãt së nguyên có 2 chċ së. Ví dụ: </i>

<i>02:11:05</i>

</div>

×