Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
616,67 KB
Nội dung
Gi¸o tr×nh tin häc c¬ së II - N gôn ngữ C 26 13. ? : trái sang phải 14. =, +=, -=, *=, /=, %=, <<=, >>=, &=, \+, ^=, |= phải sang trái 15. , (dấu phẩy) trái sang phải ( bảng độ ưu tiên các toán tử) III. ChươngtrìnhC Trước khi nói đến cấu trúc tổng quát của một chươngtrình nguồn C, chúng ta hãy xem một ví dụ đơn giản sau đây – chươngtrình in xâu ‘Chao cac ban!’ ra màn hình 1: #include <stdio.h> 2: #include <conio.h> 3: void main() 4: { 5: clrscr(); 6: printf("\n\n Chao cac ban !"); 7: getch(); 8: } (trong đoạn mã nguồn trên chúng ta thêm các số dòng và dấu : để tiện cho việc giải thích, còn trong chươngtrình thì không được có chúng) Trong chươngtrình trên gồm hai phần chính đó là : - Các dòng bao hàm tệp – dòng 1, 2; đăng ký sử dụng các tệp tiêu đề. Trong chươngtrình này chúng ta cần dùng hai file tiêu đề stdio.h và conio.h. - Hàm main từ dòng 3 tới dòng 8. Đây là hàm chính của chươngtrình , dòng 3 là tiêu đề hàm cho biết tên: main, kiểu hàm: void, và đối của hàm (trong ví dụ này không có đối). Thân của hàm main bắt đầu ngay sau dấu { (dòng 4), và kết thúc tại dấu } (dòng 8). Gi¸o tr×nh tin häc c¬ së II - N gôn ngữ C 27 III.1. Cấu trúc chươngtrình Một chươngtrìnhC nói chung có dạng như sau 1: [ các bao hàm tệp ] 2: [ các khai báo nguyên mẫu hàm của người dùng ] 3: [ các định nghĩa kiểu ] 4: [ các định nghĩa macro ] 5: [ các định nghĩa biến, hằng ] 6: <kiểu_hàm> main ( [khai báo tham số ] ) 7: { 8: < thân hàm main> 9: } 10: [ các định nghĩa hàm của người dùng] ( trong cú pháp trên chúng ta thêm số hiệu dòng và dấu: để cho việc giải thích được thuận lợi, các thành phần trong ngoặc [] là các thành phần tuỳ chọn) a. Các bao hàm tệp (dòng 1) Trong chươngtrìnhC (trong hàm main cũng như các hàm khác do người lập trình viết) có thể sử dụng các hàm, hằng, kiểu dữ liệu, (gọi chung là các thành phần) đã được định nghĩa trong thư viện của C. Để sử dụng các thành phần này chúng ta phải chỉ dẫn cho chươngtrình dịch biết các thông tin về các thành cần sử dụng, các thông tin đó được khai báo trong tệp gọi là tệp tiêu đề (có phần mở rộng là H – viết tắt của header). Và phần các bao hàm tệp là các chỉ dẫn để chươngtrình gộp các tệp này vào chươngtrình của chúng ta. trong một chươngtrình chúng ta có thể không dùng hoặc dùng nhiều tệp tiêu đề. Cú pháp của một dòng bao hàm tệp: #include <tên_tệp> hoặc #include “tên_tệp” trong đó tên_tệp là tên có thể có cả đường dẫn của tệp tiêu đề (.H) mà chúng ta cần sử dụng, mỗi lệnh bao hàm tệp trên một dòng. Ví dụ: #include <stdio.h> #include <conio.h> Gi¸o tr×nh tin häc c¬ së II - N gôn ngữ C 28 #include “phanso.h” Sự khác nhau giữa cặp <> và “” bao quanh tên tệp là với cặp <> chươngtrình dịch tìm tên tệp tiêu đề trong thư mục ngầm định xác định bởi đường dẫn trong mục Option/Directories, còn với cặp “” chươngtrình dịch tìm tệp trong thư mục hiện tại, nếu không có mới tìm trong thư mục các tệp tiêu đề ngầm định như trường hợp <>. b. Các khai báo nguyên mẫu và định nghĩa hàm của người dùng Trong phần này chúng tôi nêu một số thông tin về khai báo nguyên mẫu và định nghĩa hàm để giải thích cấu trúc chươngtrình chứ không có ý định trình bày về hàm, chi tiết về hàm sẽ được trình bày trong phần về hàm. • Các nguyên mẫu (dòng 2) Nguyên mẫu một hàm là dòng khai báo cung cấp các thông tin: tên hàm, kiểu hàm, số đối số và kiểu từng đối số của hàm. Cú pháp khai báo nguyên mẫu <kiểu_hàm> <tên_hàm> ([ khai báo đối ]); Ví dụ: int min (int, int); float binhphuong (float y); float giatri(int , float); Lưu ý: Phần khai báo đối của nguyên mẫu, mục đích là xác định số đối số và kiểu của từng đối số, do vậy bạn có thể không viết tên của đối số nhưng kiểu của chúng thì phải có và bạn phải liệt kê đầy đủ kiểu của từng đối. • Các định nghĩa hàm của người dùng (dòng 10) Trong phần này chúng ta định nghĩa các hàm của người dùng, một định nghĩa hàm bao gồm dòng tiêu đề của hàm và thân của hàm, với cú pháp như sau: <kiểu_hàm> <tên_hàm> ([ khai báo đối ]) { < thân hàm > } Ví dụ: int min(int a, int b) { if(a>=b) return b; else return a; } Giáo trình tin học cơ sở II - N gụn ng C 29 Lu ý: - Tiờu hm trong nh ngha hm phi tng ng vi nguyờn mu hm - Nu trong chng trỡnh nh ngha hm xut hin trc khi gp li gi hm ú thỡ cú th khụng nht thit phi cú dũng khai bỏo nguyờn mu hm. c. nh ngha kiu mi (dũng 4) Ngoi nhng kiu chun ó c cung cp sn ca ngụn ng, ngi lp trỡnh cú th nh ngha ra cỏc kiu mi t nhng kiu ó cú bng cỏch s dng t khoỏ typedef (type define) Vi cỳ phỏp nh sau typedef <mụ_t_kiu> <tờn_kiu_mi>; Trong ú <tờn_kiu_mi> l tờn kiu cn to do ngi lp trỡnh t theo quy tc v tờn ca ngụn ng, v <mụ_t_kiu> l phn chỳng ta nh ngha cỏc thnh phn cu thnh lờn kiu mi. Vớ d: typedef unsigned char byte; typedef long nguyendai; Sau nh ngha ny cỏc tờn mi byte c dựng vi ý ngha l tờn kiu d liu nú tng t nh unsigned char, v nguyendai tng t nh long. Vớ d: chỳng ta cú th nh ngha bin a, b kiu byte nh sau byte a,b; d. nh ngha macro (dũng 5) Khỏi nim macro l gỡ? Gi s nh bn cú mt ni dung (giỏ tr) no ú v bn mun s dng nú nhiu ln trong chng trỡnh, nhng bn khụng mun vit trc tip nú vo chng trỡnh lỳc bn son tho vỡ mt vi lý do no ú (chng hn nh nú s lm chng trỡnh khú c, khú hiu, hoc khi thay i s khú, ). Lỳc ny bn hóy gỏn cho ni dung ú mt tờn v bn s dng tờn ú vit trong chng trỡnh ngun. Khi biờn dch chng trỡnh, chng trỡnh dch s t ng thay th ni dung ca tờn vo ỳng v trớ ca tờn ú. Thao tỏc ny gi l phộp th macro v chỳng ta gi tờn l tờn ca macro v ni dung ca nú c gi l ni dung ca macro. Mt macro c nh ngha nh sau: #define tờn_macro ni_dung Trong ú tờn macro l mt tờn hp l, ni dung (giỏ tr) ca macro c coi thun tuý l 1 xõu cn thay th vo v trớ xut hin tờn ca macro tng ng, gia tờn v ni dung cỏch nhau 1 hay nhiu khong trng (du cỏch). Ni dung ca macro bt u t kớ t khỏc du trng u tiờn sau tờn macro cho ti ht dũng. Giáo trình tin học cơ sở II - N gụn ng C 30 Vớ d : # define SOCOT 20 # define max(a,b) (a>?b a:b) Vi hai vớ d trờn, khi gp tờn SOCOT chng trỡnh dch s t ng thay th bi 20 v max(a,b) s c thay th bi (a>b?a:b) Chỳ ý: Phộp thay th macro n gin ch l thay ni dung macro vo v trớ tờn ca nú do vy s khụng cú c ch kim tra kiu. Khi nh ngha cỏc macro cú tham s cú th sau khi thay th biu thc mi thu c cú trt t tớnh toỏn khụng nh bn mong mun. Vớ d ta cú macro tớnh bỡnh phng 1 s nh sau: # define bp(a) a*a v bn cú cõu lnh bp(x+y) s c thay l x+y*x+y v kt qu khụng nh ta mong i. Trong trng hp ny bn nờn s dng du ngoc cho cỏc tham s ca macro # define bp(a) ( a)*(a) e. nh ngha bin, hng (dũng 5) Cỏc bin v hng c nh ngha ti õy s tr thnh bin v hng ton cc. í ngha v bin, hng, cỳ phỏp nh ngha ó c trỡnh by trong mc bin v hng. f. Hm main (dũng 6-9) õy l thnh phn bt buc duy nht trong mt chng trỡnh C, thõn ca hm main bt u t sau du m múc { (dũng 7) cho ti du úng múc } (dũng 8). Khụng ging nh chng trỡnh ca Pascal luụn cú phn chng trỡnh chớnh, chng trỡnh trong Cc phõn thnh cỏc hm c lp cỏc hm cú cỳ phỏp nh nhau v cựng mc, v mt hm m nhim phn thõn chớnh ca chng trỡnh, tc l chng trỡnh s bt u c thc hin t dũng lnh u tiờn v kt thỳc sau lnh cui cựng trong thõn hm main . Trong nh ngha mt hm núi chung u cú hai phn ú l tiờu ca hm, dũng ny bao gm cỏc thụng tin : Tờn hm, kiu hm (kiu giỏ tr hm tr v), cỏc tham s hỡnh thc (tờn tham s v kiu ca chỳng). Phn th hai l thõn ca hm, õy l tp cỏc lnh (hoc khai bỏo) thc hin cỏc thao tỏc theo yờu cu v chc nng ca hm ú. Hm main cng ch l mt trng hp riờng ca hm nhng cú tờn c nh l main, cú th cú hoc khụng cú cỏc i s, v cú th tr v giỏ tr cho h iu hnh, kiu ca giỏ tr ny c xỏc nh bi <kiu_hm> (dũng 6) chi tit v i, kiu ca hm main s c cp k hn trong cỏc phn sau. Thõn hm main c bao bi cp {(dũng 7), v } (dũng 9) cú th gm cỏc lnh, cỏc khai bỏo hoc nh ngha bin, hng, kiu, cỏc thnh phn ny tr thnh cc b trong hm main - vn cc b, ton cc s cp ti trong phn phm vi. Gi¸o tr×nh tin häc c¬ së II - N gôn ngữ C 31 ¾ Lưu ý: • Các thành phần của chươngtrình mà chúng ta vừa nêu trừ hàm main là thành phần phải có và duy nhất trong một chươngtrình C, còn các thành phần khác là tuỳ chọn, có thể không có hoặc có nhiều. • Thứ tự các thành phần không bắt buộc theo trật tự như trên mà chúng có thể xuất hiện theo trật tự tuỳ ý nhưng phải đảm bảo yêu cầu mọi thành phần phải được khai báo hay định nghĩa trước khi sử dụng. • Các biến, hằng khai báo ngoài mọi hàm có phạm vi sử dụng là toàn cục (tức là có thể sử dụng từ sau lệnh khai báo cho tới hết file chương trình). Các hằng, biến khai báo trong 1 hàm (hoặc trong 1 khối) là thành phần cụ bộ (có phạm vi sử dụng trong hàm hoặc trong khối đó mà thôi). • Các hàm trong C là một mức (tức là trong hàm không chứa định nghĩa hàm khác). Ví dụ: chươngtrình nhập bán kính từ bàn phím, tính và in diện tích hình tròn #include <stdio.h> #include <conio.h> #define PI 3.1415 float r; // Khai báo biến r có kiểu float void main() { printf("\nNhap ban kinh duong tron r ="); scanf("%f",&r); //nhập số thực từ bàn phím vào r printf("Dien tich = %5.2f", r*r*PI); //tính và in diện tích getch(); } III.2. Câu lệnh và dòng chú thích III.2.1. Câu lệnh Trong chươngtrình có thể có nhiều câu lệnh, mỗi câu lệnh đảm nhiệm một chức năng nào đó. Trong C một lệnh nói chung có thể viết trên một hay nhiều dòng (trừ xâu kí tự và macro) và kết thúc bởi dấu chấm phẩy ( ; ) và cũng có thể viết nhiều lệnh trên một dòng, giữa các thành phần của lệnh có thể có các dấu cách. Ví dụ: a = b +5; a = b + Gi¸o tr×nh tin häc c¬ së II - N gôn ngữ C 32 5; printf("Dien tich = %5.2f", r*r*PI); Một lệnh có thể viết trên nhiều dòng nhưng trong 1 xâu kí tự hay định nghĩa macro thì chúng ta phải viết trên 1 dòng, trường hợp nhất thiết phải viết trên nhiều dòng thì bạn phải thêm kí tự \ vào cuối dòng trên để báo cho chươngtrình dịch nối nội dung dòng dưới vào cuối của dòng trên. Ví dụ printf("Dien tich \ = %5.2f", r*r*PI); III.2.2. Lệnh và khối lệnh Các lệnh cúa chươngtrìnhC bao gồm 2 loại đó là câu lệnh đơn và khối lệnh (câu lệnh ghép - nhóm lệnh). Câu lệnh đơn là những lệnh đơn giản (chỉ một phát biểu, kết thúc bởi ;) như phép gán, một lời gọi hàm, Khối lệnh là nhóm các lệnh được bao bởi cặp { và } , bên trong khối lệnh là dãy các lệnh có thể là lệnh đơn hoặc khối lệnh con khác, tức là khối lệnh có thể lồng nhau, các dấu móc { và } phải xuất hiện tương ứng theo cặp. Ví dụ: if (a>0) { d = b*b - 4*a*c; if(d>=0) { x1 = (-b - sqrt(d))/(2*a); x2 = (-b + sqrt(d))/(2*a); printf(“ nghiem x1 = %4.2f, x2 = %4.2f”,x1,x2); } else printf(“phuong trinh khong co nghiem thuc”); } III.2.3. Lời chú thích Trong chươngtrình chúng ta có thể thêm các lời chú thích để giải thích câu lệnh hoặc chức năng của chươngtrình , nhằm cho chươngtrình dễ đọc. Gi¸o tr×nh tin häc c¬ së II - N gôn ngữ C 33 Các chú thích được đặt giữa cặp /* và */, có thể trên một hoặc nhiều dòng. Với các chươngtrình dịch của C++ bạn có thể sử dụng // để ghi một chú thích trong chương trình, với cách này nội dung lời chú thích bắt đầu sau dấu // tới hết dòng. Các lời chú thích chỉ có tác dụng với người đọc chứ không ảnh hưởng tới chương trình, tức là chươngtrình dịch sẽ bỏ qua các lời chú thích. Ví dụ: scanf("%f",&r); /* nhập số thực từ bàn phím vào r */ printf("Dien tich = %5.2f", r*r*PI); //tính và in diện tích III.3. Nhập và xuất dữ liệu Trong phần này chúng ta giới thiệu cú pháp và ý nghĩa một số hàm cơ bản để nhập dữ liệu từ thiết bị vào chuẩn là bàn phím và xuất dữ liệu ra màn hình máy tính. Để sử dụng các hàm nói chung của thư viện bạn phải bao hàm các tệp tiêu đề (tệp .h) chứa khai báo nguyên mẫu của chúng vào chương trình. ¾ Một số hàm nhập dữ liệu từ bàn phím a. Hàm getch, getche nhập 1 ký tự Cú pháp: int getch(); int getche(); Chức năng: Hai hàm này thực hiện đợi người dùng nhập một ký tự từ bàn phím và trả về một số nguyên là mã của kí tự được bấm, ví dụ bạn gõ phím ‘a’ thì hàm sẽ trả về 97. Sự khác nhau giữa hai hàm là hàm getche hiện kí tự được nhập lên màn hình, còn getch thì không. Khi phím được bấm là phím mở rộng thì hệ thống sẽ đẩy vào bộ đệm nhập liệu 2 byte, byte thứ nhất có giá trị 0, byte thứ 2 là mã mở rộng của phím đó. Ví dụ khi bạn bấm phím mũi tên lên ↑ thì hai byte có giá trị là 0 72 và hàm getch hay getche trả về 0, byte có giá trị 72 vẫn còn lưu trong bộ đệm nhập liệu, nếu ta gọi getch hoặc getche sẽ nhận được giá trị này. b. Hàm scanf Đây là một trong những hàm nhập dữ liệu phổ biến nhất của C, nó cho phép nhập nhiều loại dữ liệu (có các kiểu khác nhau). Khi nhập dữ liệu bằng hàm này bạn phải xác định địa chỉ (vùng nhớ, hay biến) để lưu dữ liệu và kiểu của dữ liệu cần nhập. cú pháp int scanf(const char * format, ds_các_con_trỏ); chức năng Gi¸o tr×nh tin häc c¬ së II - N gôn ngữ C 34 Hàm scanf cho phép chúng ta nhập dữ liệu từ bàn phím theo khuôn dạng được xác định bởi xâu kí tự format, dữ liệu nhập vào sẽ lưu vào các biến hoặc vùng nhớ có địa chỉ tương ứng là các con trỏ trong ds_các_con_trỏ ( có thể có nhiều con trỏ, mỗi con trỏ cách nhau bởi dấu phẩy). Ví dụ: nhập giá trị cho 3 biến a có kiểu int, x có kiểu float, và b có kiểu int Trong cú pháp trên format là một xâu quy định quy cách dữ liệu cần nhập, gồm nhiều đặc tả dữ liệu tương ứng với các kiểu của con trỏ trong phần ds_các_con_trỏ, có bao nhiêu con trỏ thì cần đúng bấy nhiêu đặc tả, đặc tả thứ nhất quy định khuôn dạng dữ liệu cho con trỏ thứ nhất, đặc tả thứ 2 quy định khuôn dạng dữ liệu cho con trỏ thứ 2, . Mỗi đặc tả bắt đầu bằng dấu % có dạng sau ( các thành phần trong [] là tuỳ chọn) : %[*][n]<ký_tự_định_kiểu> Trong đó - n là một số nguyên dương quy định độ dài tối đa (tính theo số kí tự) được nhập cho thành phần tương ứng - <ký_tự_định_kiểu> là kí tự quy định kiểu dữ liệu cần nhập ví dụ bạn muốn nhập số nguyên kiểu int thì kí tự định kiểu là d, kiểu ký tự là c. Các kí tự định kiểu khác bạn xem bảng sau. Kí tự định kiểu dữ liệu nhập kiểu con trỏ của đối nhập liệu d integer int *arg D, ld integer long *arg e, E Float float *arg f Float float *arg g, G Float float *arg o Octal int *arg O Octal long *arg i Decimal,octal, hex int *arg I Decimal,octal, hex long *arg Gi¸o tr×nh tin häc c¬ së II - N gôn ngữ C 35 u Unsigned int unsigned int *arg U Unsigned int unsigned long *arg x Hexadecimal int *arg X Hexadecimal int *arg s Character string char arg[] c Character char *arg - * đây cũng là thành phần tuỳ chọn, nếu có thì tác dụng của nó là sẽ bỏ qua một thành phần dữ liệu được xác định bởi đặc tả này, như vậy sẽ không có đối tương ứng với đặc tả này. Ví dụ: scanf(“%d%*c%d”,&a,&b); trong dòng này chúng ta sẽ nhập 1 thành phần (gọi là 1 trường) số nguyên vào a, sau đó bỏ qua một thành phần là kí tự, và tiếp theo là một số nguyên vào b. • Quy cách nhập dữ liệu Khi chúng ta nhập dữ liệu từ bàn phím, kết thúc nhập bằng Enter (↵), thì tất cả những kí tự chúng ta gõ trên bàn phím đều được lưu trong vùng đệm nhập dữ liệu (gọi là dòng vào- stdin) - dòng vào kết thúc bởi (↵), dữ liệu trên dòng vào này sẽ được cắt thành từng trường tuần tự từ trái qua phải và gán vào các biến (hoặc vùng nhớ) xác định tương ứng bởi các con trỏ, các phần đã tách được sẽ bị loại khỏi dòng vào. Trước khi tách giá trị một trường thì các khoảng trắng phía trước của trường nếu có sẽ bị loại bỏ. Nếu trong đặc tả không có thành phần (n) quy định độ dài tối đa một trường thì các trường được xác định bởi các ký tự dấu cách, tab, enter (gọi chung là khoảng trắng ký hiệu là ) hoặc khi gặp ký tự không phù hợp với đặc tả hiện tại. Nếu trên dòng vào có nhiều hơn các thành phần yêu cầu của hàm nhập thì các thành phần chưa được nhận vẫn còn lưu trên dòng vào. Ví dụ: int a,b; float x; scanf(“%d%%d%f”,&a,&b, &x); với dòng vào là: 143 535 34 ↵ thì : - khoảng trắng đầu tiên bị loại bỏ, 143 là trường thứ nhất được gán vào a, - hai khoảng trắng bị loại bỏ, 535 là trường thứ hai được gán vào b, - một khoảng trắng bị loại bỏ, 34 được gán vào x ( còn lại ↵ trong dòng vào) [...]... ngụn ng C Cng nh hm scanf, hm printf cng yờu cu chỳng ta phi cung cp cc giỏ tr v nh dng ca d liu cn in thụng qua cc i ca hm 36 Giáo trình tin h c cơ sở II - Ngụn ng C Cỳ phỏp int printf (const char * format [, ]); Trong ú: l phn tu chn, nu c thỡ ú l cc giỏ tr cn in, cc giỏ tr (c th l bin, hng, li gi hm, hay biu thc núi chung) c ch nhau bi du phy Lu... main(){ int c; c = 97; printf("\nprint printf("\nputch c = 354; printf("\nprint printf("\nputch getch(); } c = %d", c) ; c = "); putch (c) ; c = %d" , c) ; c = "); putch (c) ; khi thc hin chng trỡnh trờn cc bn s thu c kt qu nh sau: s print c = 97 putch c = a c = 354 print c = 354 putch c = b Cc bn bit l mt kớ t ch c kớch thc 1 byte, nhng trong hm putch li c i l int (2 byte), trong trng hp giỏ tr ca ch >255... ý: - S ccc t phi tng ng vi s con tr trong danh sỏch con tr - Ký t nh kiu trong c t phi phự hp vi kiu ca con tr cn nhp liu - D liu nhp t bn phớm phi phự hp vi ccc t - Hm scanf tr v s nguyờn l s trng c nhp d liu c Hm gets C phỏp: char * gets(char * s); Chc nng ca hm gets l nhp mt xõu kớ t t bn phớm, kh c vi hm scanf vi c t %s kt th c ni xõu khi gp du c ch hoc enter, tc l xõu khụng th c du c ch, hm... c th nhiu hn s ccc t, khi ú cc giỏ tr cui (khụng cc t tng ng) s b b qua format l xõu ký t iu khin, nhim v chớnh ca nú l iu khin khuụn dng thụng tin c in ra mn hỡnh Vớ d: Trong format gm ba loi: cc kớ t iu khin, ccc t, cc kớ t thng Cc ký t iu khin õy l cc kớ t c bit, bt u bng kớ t \ tip theo l 1 kớ t dựng iu khin: chuyn con tr mn hỡnh, v trớ in d liu, - \n : chuyn con... l cc s nguyờn dng, n quy nh rng ca thụng tin (tớnh theo s ký t) c in ra mn hỡnh, m s ch s cho phn thp phõn (ch dựng cho s thc), nu c m thỡ s thc c lm trũn vi m ch s thp phõn Nu rng thc s ca giỏ tr cn in < rng c dnh cho nú (n) thỡ cc du trng c thờm vo (bờn trỏi hay bờn phi tu vo s c mt ca thnh phn [-] hay khụng ) Lu ý: c th thay s n bng kớ t *, khi ú thụng tin s c in ra theo ỳng rng thc s ca... - \b : (backspace) lựi mt kớ t (xoỏ kớ t trc v trớ con tr hin ti) Cc ký t thng L nhng kớ t khụng thuc loi iu khin v c t, cc kớ t ny c in ra mn hỡnh ỳng nh nú xut hin trong format Ngoi ra c n c mt vi kớ t c bit m khi mun in ra mn hỡnh chỳng ta phi t nú ngay sau kớ t \, ú l: - \\ : in chớnh du \ - \ : in du nhỏy n() - \\ : in du nhỏy kộp () Ccc t Trong format c th c nhiu c t, ccc t quy nh... a/b); getch(); } kt qu chy chng trỡnh l 39 Giáo trình tin h c cơ sở II - Ngụn ng C nhap a+b= a-b= a*b= a/b= a, b : 5 2 7 3 10 2 b Hm putch C phỏp: int putch(int ch); Chc nng: Hm ny in kớ t c mó l ch ra mn hỡnh ti v trớ hin ti ca con tr, chuyn con tr sang phi 1 ký t, hm tr v s nguyờn chớnh l mó kớ t in ra Vớ d: minh ho putch 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: #include #include ... in ra 1.4 v chim 5 v trớ trờn mn hỡnh, bờn trỏi ca s c in 2 du c ch Thnh phn [-]: X c nh kiu cn bờn trỏi hay bờn phi Khi mt giỏ tr c in ra trờn mn hỡnh, nu rng thc s ca nú nh hn rng x c nh bi thnh phn n, ngm nh chỳng c cn bờn phi (trong vựng n kớ t trờn mn hỡnh), nu c du - thỡ d liu c cn trỏi 38 Giáo trình tin h c cơ sở II - Ngụn ng C Vớ d: Giỏ tr tr v ca hm printf l tng di thụng tin c in (tớnh... ch kt th c khi gp enter (kớ t \n) Xõu kớ t c ghi vo s (vi s l mng cc kớ t hoc con tr kớ t), du kt th c xõu (\0 - kớ t c mó 0 ) c t ng thờm vo cui xõu Hm tr v a ch ca xõu c nhp Chỳ ý: hm gets loi b ký t Enter(\n) trờn dũng vo nhng ký t ny khụng c a vo s m t ng thờm ký t kt th c xõu (\0) vo cui ca s Mt s hm xut d liu ra mn hỡnh a Hm printf Hm prinntf l hm in d liu ra mn hỡnh rt a dng ca ngụn ng C Cng... quy nh khuụn dng d liu cn in ra, mi c t c dng nh sau : %[-][n[.m]] 37 Giáo trình tin h c cơ sở II - Ngụn ng C í ngha cc thnh phn Thnh phn õy l kớ t quy nh kiu ca d liu cn in vớ d bn mun in mt giỏ tr int thỡ l d, bn mun in mt kớ t thỡ kớ t nh kiu l cCc kiu kh cc cho trong bng sau: Kớ t nh Kiu ca giỏ tr kiu cn in d i o u x,X f e, E c s p int int int unsigned . co nghiem thuc”); } III.2.3. Lời chú thích Trong chương trình chúng ta c thể thêm c c lời chú thích để giải thích c u lệnh ho c ch c năng c a chương trình. dòng. C c lời chú thích chỉ c t c dụng với người đ c chứ không ảnh hưởng tới chương trình, t c là chương trình dịch sẽ bỏ qua c c lời chú thích. Ví dụ: scanf("%f",&r);