Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 135 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
135
Dung lượng
1,16 MB
Nội dung
Giáo trình L p trình C b n Trang M BÀI : 1.1 NGÔN NG C L C L P TRÌNH & PH ƠNG PHÁP L P TRÌNH M c tiêu 1.2 Lý thuy t 1.2.1 Ngôn ng l p trình (Programming Language) 1.2.1.1 Thu t gi i (Algorithm) 1.2.1.2 Ch ng trình (Program) 1.2.1.3 Ngơn ng l p trình (Programming language) 1.2.2 Các b c l p trình 1.2.3 Kỹ thu t l p trình 1.2.3.1 I-P-O Cycle (Input-Pprocess-Output Cycle) (Quy trình nh p-x lý-xu t) 1.2.3.2 S d ng l u đồ (Flowchart) BÀI : 2.1 LÀM QUEN L P TRÌNH C QUA CÁC VÍ D ĐƠN GI N 12 M c tiêu 12 2.2 N i dung 12 2.2.1 Khởi đ ng thoát BorlandC 12 2.2.1.1 Khởi đ ng 12 2.2.1.2 Thoát 13 2.2.2 Các ví d đ n gi n 13 2.2.2.1 Ví d 13 2.2.2.2 Ví d 15 2.2.2.3 Ví d 16 2.2.2.4 Ví d 16 BÀI : 3.1 CÁC THÀNH PHẦN TRONG NGÔN NG C 18 M c tiêu 18 3.2 N i dung 18 3.2.1 Từ khóa 18 3.2.2 Tên 18 3.2.3 Ki u d li u 18 3.2.4 Ghi 19 3.2.5 Khai báo bi n 19 3.2.5.1 Tên bi n 19 3.2.5.2 Khai báo bi n 19 3.2.5.3 Vừa khai báo vừa khởi gán 20 3.2.5.4 Ph m vi c a bi n 20 BÀI : NH P / XU T D LI U 21 U 4.1 M c tiêu 21 4.2 N i dung 21 HanoiAptech Computer Education Center Thanghv Giáo trình L p trình C b n Trang 4.2.1 Hàm printf 21 4.2.2 Hàm scanf 24 4.3 Bài t p 25 BÀI : 5.1 C U TRÚC RẼ NHÁNH CÓ ĐI U KI N 26 M c tiêu 26 5.2 N i dung 26 5.2.1 L nh kh i l nh 26 5.2.1.1 L nh 26 5.2.1.2 Kh i l nh 26 5.2.2 L nh if 26 5.2.2.1 D ng (if thi u) 26 5.2.2.2 D ng (if đ ) 30 5.2.2.3 C u trúc else if 33 5.2.2.4 C u trúc if lồng 37 5.2.3 L nh switch 41 5.2.3.1 C u trúc switch…case (switch thi u) 41 5.2.3.2 C u trúc switch…case…default (switch đ ) 44 5.2.3.3 C u trúc switch lồng 46 5.3 Bài t p 48 5.3.1 S d ng l nh if 48 5.3.2 S d ng l nh switch 49 5.4 Bài t p làm thêm 49 BÀI : 6.1 C U TRÚC VÒNG LẶP 51 M c tiêu 51 6.2 N i dung 51 6.2.1 L nh for 51 6.2.2 L nh break 56 6.2.3 L nh continue 56 6.2.4 L nh while 56 6.2.5 L nh do…while 58 6.2.6 Vòng l p lồng 60 6.2.7 So sánh s khác c a vòng l p 61 6.3 Bài t p 62 BÀI : 7.1 HÀM 65 M c tiêu 65 7.2 N i dung 65 7.2.1 Các ví d v hàm 65 7.2.2 Tham s d ng tham bi n tham trị 68 HanoiAptech Computer Education Center Thanghv Giáo trình L p trình C b n Trang 7.2.3 S d ng bi n toàn c c 69 7.2.4 Dùng d n h ng #define 71 7.3 Bài t p 71 BÀI : 8.1 M NG VÀ CHU I 72 M c tiêu 72 8.2 N i dung 72 8.2.1 M ng 72 8.2.1.1 Cách khai báo m ng 72 8.2.1.2 Tham chi u đ n ph n t m ng 72 8.2.1.3 Nh p d li u cho m ng 73 8.2.1.4 Đ c d li u từ m ng 73 8.2.1.5 S d ng bi n ki u khác 74 8.2.1.6 Kỹ thu t Sentinal 74 8.2.1.7 Khởi t o m ng 75 8.2.1.8 Khởi t o m ng khơng bao hàm kích th c 76 8.2.1.9 M ng nhi u chi u 76 8.2.1.10 Tham chi u đ n ph n t m ng chi u 76 8.2.1.11 Nh p d li u cho m ng chi u 77 8.2.1.12 Đ c d li u từ m ng chi u 77 8.2.1.13 S d ng bi n ki u khác m ng chi u 78 8.2.1.14 Khởi t o m ng chi u 78 8.2.1.15 Dùng m ng chi u làm tham s cho hàm 79 8.2.1.16 Dùng m ng chi u làm tham s cho hàm 82 8.2.2 Chu i 84 8.2.2.1 Cách khai báo chu i 84 8.2.2.2 Hàm nh p (gets), xu t (puts) chu i 85 8.2.2.3 Khởi t o chu i 86 8.2.2.4 M ng chu i 86 8.3 Bài t p 87 BÀI : 9.1 CON TR 90 M c tiêu 90 9.2 N i dung 90 9.2.1 Con tr ? 90 9.2.2 Khái báo bi n tr 90 9.2.3 Truy n địa sang hàm 91 9.2.4 Con tr m ng 92 9.2.5 Con tr tr đ n m ng hàm 92 9.2.6 Con tr chu i 93 9.2.7 Khởi t o m ng tr tr đ n chu i 94 9.2.8 X lý tr tr đ n chu i 95 9.2.9 Con tr tr đ n tr 97 9.3 Bài t p 98 HanoiAptech Computer Education Center Thanghv Giáo trình L p trình C b n BÀI 10 : CÁC KI U D 10.1 Trang LI U T T O 99 M c tiêu 99 10.2 N i dung 99 10.2.1 Structure 99 10.2.1.1 Khai báo ki u structure 99 10.2.1.2 Cách khai báo bi n có ki u structure 99 10.2.1.3 Tham chi u ph n t structure 99 10.2.1.4 Khởi t o structure 101 10.2.1.5 Structure lồng 102 10.2.1.6 Truy n structure sang hàm 103 10.2.2 Enum 105 10.2.2.1 Định nghĩa ki u enum 105 10.2.2.2 Cách khai báo bi n có ki u enum 106 10.2.2.3 S d ng enum ch ng trình 106 10.3 Bài t p 108 BÀI 11 : T P TIN 109 11.1 M c tiêu 109 11.2 N i dung 109 11.2.1 Ví d ghi, đ c s nguyên 109 11.2.2 Ghi, đ c m ng 110 11.2.3 Ghi, đ c structure 111 11.2.4 Các mode khác đ mở t p tin 112 11.2.5 M t s hàm thao tác file khác 112 11.3 Bài t p 113 BÀI 12 : Đ QUY 114 12.1 M c tiêu 114 12.2 N i dung 114 12.3 Bài t p 117 BÀI 13 : TRÌNH SO N TH O C A BORLAND C 118 13.1 Mở t p tin so n th o m i 118 13.2 L u t p tin 118 13.2.1 N u t p tin so n th o m i ch a l u 118 13.2.2 N u t p tin l u nh t l n ho c đ c mở l nh Open: 118 13.3 Mở t p tin 119 13.4 Các phím, t h p phím th ng dùng 119 13.4.1 Các phím di chuy n tr 119 HanoiAptech Computer Education Center Thanghv Giáo trình L p trình C b n Trang 13.4.2 Các phím thao tác kh i 120 13.4.3 Các thao tác xóa 120 13.4.4 Các thao tác copy, di chuy n 120 13.4.5 Các thao tác khác 120 13.5 Ghi m t kh i đĩa 121 13.6 Chèn n i dung file từ đĩa vào vị trí tr 121 13.7 Tìm ki m văn b n n i dung so n th o 121 13.8 Tìm thay th văn b n n i dung so n th o 121 13.9 S a l i cú pháp 122 13.10 Ch y b c 122 13.11 S d ng Help (Giúp đỡ) 122 BÀI 14 : CÁC H Đ M 124 14.1 Khái ni m 124 14.2 Quy tắc 124 14.3 Chuy n đ i gi a h 125 14.3.1 Chuy n đ i gi a h h 10 125 14.3.2 Chuy n đ i gi a h h 10 126 14.3.3 Chuy n đ i gi a h 16 h 10 126 14.3.4 Chuy n đ i gi a h h 16 127 BÀI 15 : BI U TH C VÀ PHÉP TOÁN 128 15.1 Bi u th c 128 15.2 Phép toán 128 15.2.1 Phép toán s h c 128 15.2.2 Phép quan h 128 15.2.3 Phép toán lu n lý 129 15.2.4 Phép toán bit (bitwise) 129 15.2.5 Các phép toán khác 130 15.2.6 Đ u tiên c a phép toán 130 15.3 Bài t p 130 BÀI 16 : M T S HÀM CHUẨN TH NG DÙNG 132 16.1 Các hàm chuy n đ i d li u 132 16.1.1 atof 132 16.1.2 atoi 132 16.1.3 itoa 132 16.1.4 tolower 132 HanoiAptech Computer Education Center Thanghv Giáo trình L p trình C b n Trang 16.1.5 toupper 132 16.2 Các hàm x lý chu i ký t 133 16.2.1 strcat 133 16.2.2 strcpy 133 16.2.3 strcmp 133 16.2.4 strcmpi 133 16.2.5 strlwr 133 16.2.6 strupr 133 16.2.7 strlen 134 16.3 Các hàm toán h c 134 16.3.1 abs 134 16.3.2 labs 134 16.3.3 rand 134 16.3.4 random 134 16.3.5 pow 134 16.3.6 sqrt 134 16.4 Các hàm x lý file 135 16.4.1 rewind 135 16.4.2 ftell 135 16.4.3 fseek 135 HanoiAptech Computer Education Center Thanghv Giáo trình L p trình C b n Trang Bài : NGƠN NG L P TRÌNH & PH NG PHÁP L P TRÌNH 1.1 M c tiêu Sau hoàn t t học viên hiểu vận dụng kiến thức kĩ b n sau: - Ý nghĩa, bước lập trình - Xác định liệu vào, - Phân tích toán đơn gi n - Khái niệm so sánh, lặp - Thể toán lưu đồ 1.2 Lý thuy t 1.2.1 Ngơn ng l p trình (Programming Language) Ph n tìm hiểu số khái niệm b n thuật toán, chương trình, ngơn ngữ lập trình Thuật ngữ "thuật gi i" "thuật tốn" dĩ nhiên có khác song nhiều trư ng hợp chúng có nghĩa 1.2.1.1 Thu t gi i (Algorithm) Là dãy thao tác xác định đối tượng, cho sau thực số hữu hạn bước đạt mục tiêu Theo R.A.Kowalski b n ch t thuật gi i: Thuật gi i = Logic + Điều khiển * Logic: Đây ph n quan trọng, tr l i câu hỏi "Thuật gi i làm gì, gi i v n đề gì?", yếu tố tốn có quan hệ với v.v… bao gồm kiến thức chun mơn mà bạn ph i biết để tiến hành gi i tốn Ví d 1: Để gi i tốn tính diện tích hình c u, mà bạn khơng cịn nhớ cơng thức tính hình c u bạn khơng thể viết chương trình cho máy để gi i toán * Điều khiển: Thành ph n tr l i câu hỏi: gi i thuật ph i làm nào? Chính cách thức tiến hành áp dụng thành ph n logic để gi i v n đề 1.2.1.2 Ch ng trình (Program) Là tập hợp mơ t , phát biểu, nằm hệ thống qui ước ý nghĩa 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 = Thuật tốn + C u trúc liệu Các thuật tốn chương trình có c u trúc dựa cấu trúc điều khiển bản: * Tuần tự (Sequential): Các bước thực tu n tự cách xác từ xuống, bước thực l n * Chọn lọc (Selection): Chọn hay nhiều thao tác để thực * Lặp lại (Repetition): Một hay nhiều bước thực lặp lại số l n Muốn tr thành lập trình viên chuyên nghiệp bạn làm trình tự để có thói quen tốt thuận lợi sau nhiều mặt ngư i làm máy tính Bạn làm theo bước sau: Tìm, xây dựng thuật gi i (trên gi y) → viết chương trình máy → dịch chương trình → chạy thử chương trình HanoiAptech Computer Education Center Thanghv Giáo trình L p trình C b n 1.2.1.3 Trang Ngơn ng l p trình (Programming language) Ngơn ngữ lập trình hệ thống ký hiệu tuân theo qui ước ngữ pháp ngữ nghĩa, dùng để xây dựng thành chương trình cho máy tính Một chương trình viết ngơn ngữ lập trình cụ thể (ví dụ Pascal, C…) gọi chương trình nguồn, chương trình dịch làm nhiệm vụ dịch chương trình nguồn thành chương trình thực thi máy tính 1.2.2 Các b c l p trình Bước 1: Phân tích v n đề xác định đặc điểm (xác định I-P-O) Bước 2: Lập gi i pháp (đưa thuật gi i) Bước 3: Cài đặt (viết chương trình) Bước 4: Chạy thử chương trình (dịch chương trình) Bước 5: Kiểm chứng hồn thiện chương trình (thử nghiệm nhiều số liệu đánh giá) 1.2.3 Kỹ thu t l p trình 1.2.3.1 I-P-O Cycle (Input-Pprocess-Output Cycle) (Quy trình nh p-x lý-xu t) Quy trình xử lý b n máy tính gồm I-P-O Input Process Output Ví d 2: Xác định Input, Process, Output việc làm ly nước chanh nóng Input : ly, đư ng, chanh, nước nóng, muỗng Process : - cho hỗn hợp đư ng, chanh, nước nóng vào ly - dùng muỗng khu y Output : ly chanh nóng sẵn sàng để dùng Ví d 3: Xác định Input, Process, Output chương trình tính tiền lương cơng nhân tháng 10/2002 biết lương = lương b n * ngày công Input : lương b n, ngày công Process : nhân lương b n với ngày công Output : lương Ví d 4: Xác định Input, Process, Output chương trình gi i phương trình bậc nh t ax + b = Input : hệ số a, b Process : chia – b cho a Output : nghiệm x Ví d 5: Xác định Input, Process, Output chương trình tìm số lớn nh t số a b Input : a, b Process : Nếu a > b Output = a lớn nh t Ngược lại Output = b lớn nh t # Bài t p Xác định Input, Process, Output chương trình sau: Đổi từ tiền VND sang tiền USD Tính điểm trung bình học sinh gồm mơn Tốn, Lý, Hóa Gi i phương trình bậc 2: ax2 + bx + c = Đổi từ độ sang radian đổi từ radian sang độ (công thức α/π = a/180, với α: radian, a: độ) Kiểm tra số a, b giống hay khác HanoiAptech Computer Education Center Thanghv Giáo trình L p trình C b n 1.2.3.2 Trang S d ng l u đồ (Flowchart) Để dễ quy trình xử lý, nhà lập trình đưa dạng lưu đồ để minh họa bước trình xử lý v n đề (bài toán) Hành động (Activity) Hình dạng (symbol) Dữ liệu vào (Input) Xử lý (Process) Dữ liệu (Output) Quyết định (Decision), sử dụng điều kiện Luồng xử lý (Flow lines) Gọi CT con, hàm… (Procedure, Function…) Bắt đ u, kết thúc (Begin, End) Điểm ghép nối (Connector) Ví d 6: Chu n bị cà phê Ví d 7: Mơ t ví dụ Ví d 8: Mơ t ví dụ Bắt đ u Bắt đ u Bắt đ u Cà phê, nước sôi LCB, ngày cơng Giá trị a, b Hịa cà phê vào nước sôi Nhân LCB với ngày công Chia –b cho a Bỏ đư ng vào Kết qu lương Nghiệm x Khu y hỗn hợp Kết thúc Kết thúc Cà phê sẵn sàng Kết thúc HanoiAptech Computer Education Center Thanghv Giáo trình L p trình C b n Ví d 9: Cộng số Trang 10 Ví d 10: so sánh số Bắt đ u Bắt đ u a, b Số a, Số b c=a+b Không Số a có Số b khơng? c Có Kết thúc Số a Số b Số a không Số b Ví d 11: Kiểm tra tính hợp lệ điểm Bắt đ u Kết thúc Ví d 12: Xếp lon vào thùng Điểm Bắt đ u Điểm >=0 Điểm ? Có Bắt đ u Số dương Không Số < ? Điểm Có Số âm Khơng Số khơng Sai Điểm >=0 Điểm Find, hộp thoại Find Text xu t hiện: + Gõ nội dung c n tìm vào hộp Text to Find + Nếu c n đánh d u / bỏ chọn mục sau: - Case-sensitive: phân biệt chữ hoa chữ thư ng - Whole words only: tìm văn b n đứng riêng từ - Forward: Tìm xi - Backward: Tìm ngược + Chọn OK Khi tìm xong, muốn tìm tiếp n tổ hợp phím Ctrl - L chọn menu Search -> Search again 13.8 Tìm thay th văn b n n i dung so n th o n tổ hợp phím Ctrl - Q - A chọn menu Search -> Replace, hộp thoại Find Text xu t hiện: + Gõ nội dung c n thay vào hộp Text to Find + Gõ nội dung vào hộp New Text + Nếu c n đánh d u /bỏ chọn mục sau: - Case-sensitive: phân biệt chữ hoa chữ thư ng - Whole words only: tìm văn b n đứng riêng từ - Forward: Tìm xi - Backward: Tìm ngược + Chọn OK để thay văn b n tìm th y, chọn Change All để thay t t c Hanoi Aptech Computer Education Center Giáo trình L p trình C b n Trang 122 13.9 S a l i cú pháp Khi biên dịch chương trình, thành cơng bạn nhận thơng báo từ cửa sổ Compile (dịng cuối): Success: Press any key, ngược lại thông báo lỗi Error: Press any key Nếu thơng báo lỗi, n phím b t kỳ cửa sổ Message xu t chứa danh sách lỗi Thông báo lỗi đ u tiên làm sáng dịng có lỗi chương trình làm sáng.kèm theo d u đỏ cho biết trình biên dịch phát vị trí lỗi Dùng phím mũi tên để di chuyển đến thông báo lỗi khác, bạn th y vệt sáng chương trình chuyển đến dòng chứa lỗi tương ứng Nếu bạn Enter dịng thơng báo lỗi trỏ chuyển vào cửa sổ soạn th o dịng chứa lỗi tương ứng Ví dụ: In "Hello" File Edit Search Run Compile Debug Project Option Window Help #include #include void main(void) { printf("Hello"; gech(); } Message Compiling HELLO.CPP Error HELLO.CPP 5: Function call missing ) Error HELLO.CPP 6: Function 'gech' should have a prototype F1 Help Alt-F8 Next Msg Vệt sáng nằm làm sáng: Lỗi Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu thơng báo lỗi đ u tiên dịng chứa lỗi tương ứng chương trình dịng 5, khơng đóng ngoặc hàm printf 13.10 Ch y b 13.10.1 M i l n b c c bước thực ta ph i b n phím F7 Với l n b m F7 đ u tiên, dòng đ u tiên chương trình (dịng main()) làm sáng, dòng làm sáng gọi dịng chu n bị thực hiện, thực l n b m phím F7 Mỗi l n b m phím F7 dịng đuợc làm sáng thực hiện, sau tr màu bình thư ng, tùy theo nội dung dịng mà dịng lệnh làm sáng để chu n bị thực bước Ta dùng phím F8 thay cho F7 với dịng khơng có l i gọi hàm khai báo chương trình Sự khác F7 F8 x y dịng làm sáng có l i gọi hàm khai báo chương trình Như nh chạy bước, ta dễ dàng nắm lỗi logic chương trình 13.10.2 Tái l p l i trình gỡ r i B m Ctrl-F2 vào menu Run chọn Program reset Khi nhớ dùng cho việc gỡ rối gi i tỏa, dịng làm sáng kết thúc q trình gỡ rối Hanoi Aptech Computer Education Center Giáo trình L p trình C b n Trang 123 13.10.3 Dùng c a s Watch L n bước thư ng dùng kèm với việc sử dụng cửa sổ Watch để theo dõi giá trị biến bước thực để dễ tìm nguyên nhân chương trình thực sai Để làm điều ta ph i nhập vào biến c n theo dõi, cách chọn mục Add watch menu Break/Watch b m Ctrl-F7, sau nhập tên biến vào vị trí trỏ cửa sổ Add watch b m Enter Để nhập thêm tên biến vào cửa sổ ph i lập lại chức b m phím Insert Trong soạn th o chưa nhìn th y cửa sổ Watch, ta b m phím F5, hình đồng th i c cửa sổ, để chuyển đổi cửa sổ b m phím F6 Mỗi biến cửa sổ Watch thực dòng Khi cửa sổ Watch chọn có dịng làm sáng để biến chọn Giá trị cửa sổ Watch thay đổi theo kết qu bước thực 13.11 S d ng Help (Giúp đỡ) - n phím F1 để kích hoạt hình Help - Muốn xem Help hàm soạn th o, di chuyển trỏ đến vị trí hàm n tổ hợp phím Ctrl - F1 - n tổ hợp phím Shift - F1 để xem danh sách mục Help - n tổ hợp phím Alt - F1 để quay hình Help trước Hanoi Aptech Computer Education Center Giáo trình L p trình C b n Trang 124 Bài 14 : CÁC H Đ M 14.1 Khái ni m Các chữ số b n hệ đếm chữ số dùng để biểu diễn số hệ đếm y Hệ đếm thư ng gặp nh t hệ thập phân (hệ 16) Nhưng b n ch t nhị phân thiết bị điện tử h u hết dạng biểu diễn liệu phép đại số thực hệ nhị phân (hệ 2) Hệ bát phân (hệ 8) r t dùng hệ thập phân (hệ 10) hệ sử dụng để biểu diễn số sống ngày Hệ nhị phân gồm chữ số : 0, Hệ bát phân gồm chữ số : 0, 1, 2, 3, 4, 5, 6, Hệ thập phân gồm 10 chữ số : 0, 1, 2, 3, 4, 5, 6, 7, 8, Hệ thập lục phân gồm 16 chữ số : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Các chữ số hệ đếm xếp theo quy tắc: B t kỳ số N nguyên dương nào, có N ký hiệu khác để biểu diễn số hệ thống Giá trị N ký hiệu xếp từ đến N-1 Ví dụ 1: Hệ nhị phân có số N = : chữ số đánh từ Hệ bát phân có số N = : chữ số đánh từ Hệ thập phân có số N = 10 : chữ số đánh từ Hệ thập lục phân có số N = 16 : chữ số đánh từ 9, A F Do hệ thập lục phân có 16 chữ số, mà hệ thống chữ viết biểu diễn chữ số, ngư i ta chọn ký tự A F để biểu diễn 10 15 xem chữ số (A, B…F) thay ph i viết 10, 11…15 (2 chữ số) Ví dụ 2: 14.2 Quy tắc Để biểu diễn số hệ đếm, ta dùng số đặt góc ph i số 011012 : biểu thị số nhị phân 0828 : biểu thị số bát phân : biểu thị số thập lục phân 2316 Đối với hệ thập phân ta ghi số khơng ghi (nh m hiểu), số thập phân số mà ta sử dụng quen thuộc ngày Do đó, ta sử dụng công thức sau để chuyển đổi từ hệ đếm sang hệ thập phân (cơ số 10) : X = anan-1 a1a0 = anbn + an-1bn-1 + + a1b1 + a0b0 (*) đó, - b : số hệ đếm - a0…an : chữ số hệ đếm - X : số thuộc hệ đếm số b B ng giá trị t Th p phân ng đ ng h th p phân, nhị phân, bát phân, th p l c phân (**) Nhị phân 0000 0001 0010 0011 0100 0101 Hanoi Aptech Computer Education Center Bát phân Th p l c phân Giáo trình L p trình C b n Trang 125 10 11 12 13 14 15 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 10 11 12 13 14 15 16 17 A B C D E F 14.3 Chuy n đ i gi a h 14.3.1 Chuy n đ i gi a h h 10 Chuyển đổi từ hệ sang hệ 10 X = 010112 , để chuyển sang hệ 10 ta dùng công thức (*) X = 0*24 + 1*23 + 0*22 + 1*21 + 1*20 = 0+8+0+2+1 = 11 Ví dụ 3: X = 10110102, để chuyển sang hệ 10 ta dùng công thức (*) X = 1*26 + 0*25 + 1*24 + 1*23 + 0*22 + 1*21 + 0*20 = 64 + + 16 + + + + = 90 Chuyển đổi từ hệ 10 sang hệ Ví dụ 4: Ví dụ 5: X = 11 11 2 2 11 chia = dư chia = dư chia = dư chia = dư kết qu hệ nhị phân 10112 X = 90 Ví dụ 6: 90 45 22 11 2 1 1011010 Hanoi Aptech Computer Education Center 10112 90 chia = dư 45 chia = dư 22 chia = dư 11 chia = dư chia = dư 2 chia = dư 0 chia = dư kết qu hệ nhị phân 10110102 Giáo trình L p trình C b n Trang 126 14.3.2 Chuy n đ i gi a h h 10 Chuyển đổi từ hệ sang hệ 10 Ví dụ 7: X = 21068 , để chuyển sang hệ 10 ta dùng công thức (*) X = 2*83 + 1*82 + 0*81 + 6*80 = 1024 + 64 + + = 1094 Ví dụ 8: X = 1308 , để chuyển sang hệ 10 ta dùng công thức (*) X = 1*82 + 3*81 + 0*80 = 64 + 24 + = 88 Chuyển đổi từ hệ 10 sang hệ Ví dụ 9: 1094 X = 1094 136 17 8 1094 chia = 136 dư 136 chia = 17 dư 17 chia = dư chia = dư kết qu hệ bát phân 21068 21068 Ví dụ 10: X = 88 88 11 8 1308 88 chia = 11 dư 11 chia = dư chia = dư kết qu hệ bát phân 1308 14.3.3 Chuy n đ i gi a h 16 h 10 Chuyển đổi từ hệ 16 sang hệ 10 Ví dụ 11: X = F4016 , để chuyển sang hệ 10 ta dùng công thức (*) X = 15*162 + 4*161 + 0*160 = 3840 + 64 + = 3904 Ví dụ 12: X = 1D16 , để chuyển sang hệ 10 ta dùng công thức (*) X = 1*161 + 13*160 Hanoi Aptech Computer Education Center Giáo trình L p trình C b n Trang 127 = 16 + 13 = 29 Chuyển đổi từ hệ 10 sang hệ 16 Ví dụ 13: X = 3904 3904 16 3904 chia 16 = 244 dư 244 chia 16 = 15 dư 15 chia 16 = 244 16 15 16 15 F4016 dư 15 kết qu hệ thập lục phân F4016 29 chia 16 = dư 13 chia 16 = dư Số 15 tương ứng hệ 16 F (xem b ng (**)) Ví dụ 14: X = 29 29 16 13 16 1 1D16 kết qu hệ thập lục phân 1D16 14.3.4 Chuy n đ i gi a h h 16 Chuyển đổi từ hệ sang hệ 16 Ví dụ 15: X = 010112 , để chuyển sang hệ 16 ta tra b ng (**) → X = B16 Diễn gi i : 10112 = B16 B16 Ví dụ 16: X = 10110102, để chuyển sang hệ 16 ta tra b ng (**) → X = 5A16 Diễn gi i : 101 10102 = 5A16 A16 Chuyển đổi từ hệ 16 sang hệ Ví dụ 17: X = B16 , để chuyển sang hệ ta tra b ng (**) → X = 10112 Diễn gi i : B16 = 10112 10112 Ví dụ 18: X = 5A16, để chuyển sang hệ ta tra b ng (**) → X = 10110102 Diễn gi i : A16 0101 10102 = 10110102 Hanoi Aptech Computer Education Center Số 13 tương ứng hệ 16 D (xem b ng (**)) Giáo trình L p trình C b n Trang 128 Bài 15 : BI U TH C VÀ PHÉP TOÁN 15.1 Bi u th c Là phối hợp toán tử tốn hạng Ví d 1: a+b b = + * 2/i a = % (7 + 1) x++ * 2/4 + – power(i, 2) Toán hạng sử dụng biểu thức số, biến, hàm 15.2 Phép tốn Trong C có nhóm tốn tử yếu sau đây: 15.2.1 Phép tốn s h c + – * / % : : : : : cộng trừ nhân chia l y ph n dư áp dụng t t c toán hạng có kiểu liệu char, int float, double (kể c long, short, unsigned) áp dụng tốn hạng có kiểu liệu char, int, long * Thứ tự ưu tiên: Đ o d u +, – ( ) *, / , % +, – Ví d 2: 10%4 = (10 chia dư 2); 9%3 = (9 chia dư 0) * + = 19 6+2/2–3=4 –7 + * ((4 + 3) * + 8) = 65 ) sử dụng cặp ngoặc () biểu thức, cặp ngoặc đơn thực theo thứ tự ưu tiên từ 15.2.2 Phép quan h > >= < , >= , < , 10 Tốn tử quan hệ → có giá trị (sai) Hanoi Aptech Computer Education Center Giáo trình L p trình C b n >= == Trái sang ph i < >= Trái sang ph i == != Trái sang ph i & Trái sang ph i ^ Trái sang ph i | 10 Trái sang ph i && 11 Trái sang ph i || 12 Ph i sang trái ? : 13 Ph i sang trái = += –= *= /= %= = &= ^= |= 14 Trái sang ph i , 15 Lưu ý: - Phép đ o (–) dòng 2, phép trừ (–) dòng - Phép l y địa (&) dòng 2, phép AND bit (&) dòng - Phép l y đối tượng trỏ (*) dòng 2, phép nhân (*) dòng 15.3 Bài t p Gi sử a, b, c biến kiểu int với a = 8, b = c = Xác định giá trị biểu thức sau: a+b+c a%c*2 Hanoi Aptech Computer Education Center a * (a % b) Giáo trình L p trình C b n a/b–c a+c/a a%b Trang 131 * b + * (a – c) c * (b / a) (a * b) % c a * (b + (c – * 3)) 5*a–6/b 5%b%c Gi sử x, y, z biến kiểu float với x = 8.8, y = 3.5 z = 5.2 Xác định giá trị biểu thức sau: x+y+z * y + * (x – z) x/z x%z z / (y + x) (z / y) + x 2*y/3*z * y / (3 * z) x/y–z*y 2.5 * x / z – (y + 6) * / ((x + y ) / z) x / y*(6 + ((z–y)+3.4)) Cho chương trình C với khai báo kh i tạo biến sau: int i = 8, j = 5; float x = 0.005, y = –0.01; char c = 'c', d = 'd'; Hãy xác định giá trị tr biểu thức sau: (3 * i – * j) % (4 * d – c) c= (i – * j) % (c + * d) / (x – y) x 'd' ++i + (3 * x + y) == j– – * x + (y == 0) – –j !(i < j) j– – + i !(d == 100) – –j – –5 !(x < 0) ++x (i > 0) && (j < 6) y-(i > 0) !! (j < 5) i >= j (x > y) && (i > 0) || (j < 5) Cho chương trình có khai báo biến kh i tạo sau: int i = 8, j = 5, k; float x = 0.005, y = –0.01, z; char a, b, c = 'c', d = 'd'; Xác định giá trị biểu thức gán sau: k = (i + j * 4) x = (x + y * 1.2) i=j k = (x + y) k=c i = j = 1.1 z=k=x k=z=x z=i/j a=b=d y –=x x *= i /= j i += z = (x >= 0) ? x : z = (y >= 0) ? y : Hanoi Aptech Computer Education Center i %= j i += (j – 3) k = (j = = 5) ? i : j k = (j > 5) ? i : j i += j *= i /= a = (c < d) ? c : d i –= (j > 0) ? j : i = (i*9*(3+(8*j/3))) Giáo trình L p trình C b n Trang 132 Bài 16 : M TS 16.1 Các hàm chuy n đ i d HÀM CHU N TH NG DÙNG li u 16.1.1 atof double atof(const char *s); ) Ph i khai báo math.h stdlib.h Chuyển đổi chuỗi sang giá trị double Ví dụ: float f; char *str = "12345.67"; f = atof(str); Kết qu f = 12345.67; 16.1.2 atoi int atoi(const char *s); ) Ph i khai báo stdlib.h Chuyển đổi chuỗi sang giá trị int Ví dụ: int i; char *str = "12345.67"; i = atoi(str); Kết qu i = 12345 16.1.3 itoa char *itoa(int value, char *string, int radix); ) Ph i khai báo stdlib.h Chuyển đổi số nguyên value sang chuỗi string theo số radix Ví dụ: int number = 12345; char string[25]; itoa(number, string, 10); //chuyển đổi number sang chuỗi theo số 10 Kết qu string = "12345"; itoa(number, string, 2); //chuyển đổi number sang chuỗi theo số Kết qu string = "11000000111001"; 16.1.4 tolower int tolower(int ch); ) Ph i khai báo ctype.h Đổi chữ hoa sang chữ thư ng Ví dụ: int len, i; char *string = "THIS IS A STRING"; len = strlen(string); for (i = 0; i < len; i++) string[i] = tolower(string[i]); //đổi từ kí tự string thành chữ thư ng 16.1.5 toupper int toupper(int ch); ) Ph i khai báo ctype.h Đổi chữ thư ng sang chữ hoa Ví dụ: int len, i; char *string = "this is a string"; len = strlen(string); for (i = 0; i < len; i++) string[i] = toupper(string[i]); //đổi từ kí tự string thành chữ thư ng Hanoi Aptech Computer Education Center Giáo trình L p trình C b n 16.2 Các hàm x Trang 133 lý chu i ký t 16.2.1 strcat char *strcat(char *dest, const char *src); ) Ph i khai báo string.h Thêm chuỗi src vào sau chuỗi dest 16.2.2 strcpy char *strcpy(char *dest, const char *src); ) Ph i khai báo string.h Chép chuỗi src vào dest Ví dụ: char destination[25]; char *blank = " ", *c = "C++", *borland = "Borland"; strcpy(destination, borland); //chép chuỗi borland vào destination strcat(destination, blank); //thêm chuỗi blank vào sau chuỗi destination strcat(destination, c); //thêm chuỗi c vào sau chuỗi destination 16.2.3 strcmp int *strcmp(const char *s1, const char *s2); ) Ph i khai báo string.h So sánh chuỗi s1 với chuỗi s2 Kết qu tr về: • < s1 < s2 • = s1 = s2 • > s1 > s2 Ví dụ: char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "aaa"; strcmp(buf1, buf2); //kết qu tr - strcmp(buf1, buf3); //kết qu tr strcmp(buf2, buf3); //kết qu tr 16.2.4 strcmpi int *strcmp(const char *s1, const char *s2); ) Ph i khai báo string.h So sánh chuỗi s1 với chuỗi s2 không phân biệt chữ hoa, chữ thư ng Kết qu tr về: • < s1 < s2 • = s1 = s2 • > s1 > s2 Ví dụ: char *buf1 = "aaa", *buf2 = "AAA"; strcmp(buf1, buf2); //kết qu tr 16.2.5 strlwr char *strlwr(char *s); Chuyển chuỗi s sang chữ thư ng Ví dụ: char *s = "Borland C"; s = strlwr(s); 16.2.6 strupr char *strupr(char *s); Chuyển chuỗi s sang chữ hoa Ví dụ: char *s = "Borland C"; s = strlwr(s); Hanoi Aptech Computer Education Center ) Ph i khai báo string.h //kết qu s = "borland c" ) Ph i khai báo string.h //kết qu s = "BORLAND C" Giáo trình L p trình C b n 16.2.7 strlen int strlen(const char *s); Tr độ dài chuỗi s Ví dụ: char *s = "Borland C"; int len_s; len_s = strlen(s); Trang 134 ) Ph i khai báo string.h //kết qu len_s = 16.3 Các hàm toán h c 16.3.1 abs int abs(int x); ) Ph i khai báo stblib.h Cho giá trị tuyệt đối số nguyên x Ví dụ: int num = - 123; num = abs(num); //kết qu num = 123 16.3.2 labs long int labs(long int x); ) Ph i khai báo stblib.h Cho giá trị tuyệt đối số nguyên dài x Ví dụ: int num = - 12345678L; num = labs(num); //kết qu num = 12345678 16.3.3 rand int rand(void); ) Ph i khai báo stblib.h Cho giá trị ngẫu nhiên từ đến 32767 Ví dụ: int num; randomize(); //dùng hàm để kh i đ u số ngẫu nhiên num = rand(); //kết qu num = số kho ng 32767 16.3.4 random ) Ph i khai báo stblib.h int random(int num); Cho giá trị ngẫu nhiên từ đến 32767 Ví dụ: int n; randomize(); n = random(100); //kết qu n = số kho ng 99 16.3.5 pow double pow(double x, double y); Tính x mũ y Ví dụ: double x = 2.0, y = 3.0, z; z = pow(x, y); 16.3.6 sqrt double sqrt(double x); Tính bậc x Ví dụ: double x = 4.0, y; y = sqrt(x); Hanoi Aptech Computer Education Center ) Ph i khai báo math.h //kết qu z = 8.0 ) Ph i khai báo math.h //kết qu y = 2.0 Giáo trình L p trình C b n 16.4 Các hàm x Trang 135 lý file 16.4.1 rewind void rewind(FILE *stream); ) Ph i khai báo stdio.h Đưa trỏ đ u file 16.4.2 ftell long ftell(FILE *stream); ) Ph i khai báo stdio.h Tr vị trí trỏ file 16.4.3 fseek int fseek(FILE *stream, long offset, int whence); ) Ph i khai báo stdio.h Di chuyển trỏ file đến vị trí mong muốn • long offset: số byte kể từ vị trí trước đến vị trí bắt đ u đọc • int whence: điểm xu t phát để tính offset gồm giá trị sau: SEEK_SET (đ u tập tin), SEEK_CUR (tại vị trí trỏ hành), SEEK_END (cuối tập tin) Hanoi Aptech Computer Education Center