Giáo trình Lập trình C (Ngành: Quản trị mạng) - CĐ Công nghiệp Hải Phòng

98 9 0
Giáo trình Lập trình C (Ngành: Quản trị mạng) - CĐ Công nghiệp Hải Phòng

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

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

Thông tin tài liệu

(NB) Giáo trình Lập trình C cung cấp cho người học những kiến thức như: Tổng quan về ngôn ngữ lập trình C; Khởi đầu với lập trình C; Các lệnh cấu trúc; Hàm và thư viện; Dữ liệu kiểu mảng; Xâu ký tự (string);...Mời các bạn cùng tham khảo!

UỶ BAN NHÂN DÂN TỈNH HẢI PHÒNG TRƯỜNG CĐCN HẢI PHỊNG GIÁO TRÌNH Tên mơn học: Lập trình C NGHỀ: QUẢN TRỊ MẠNG TRÌNH ĐỘ CAO ĐẲNG HẢI PHỊNG Trang TUYÊN BỐ BẢN QUYỀN Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin phép dùng nguyên trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm LỜI GIỚI THIỆU ”Lập trình bản” mơn học bắt buộc trường nghề Tuỳ thuộc vào đối tượng người học cấp bậc học mà trang bị cho học sinh, sinh viên kiến thức Để thống chương trình nội dung giảng dạy nhà trường biên soạn giáo trình: Lập trình Giáo trình biên soạn phù hợp với nghề trường đào tạo nghề phục vụ theo yêu cầu thực tế xã hội Tài liệu tham khảo để biên soạn gồm: [1] Phạm Văn Ất Kỹ thuật lập trình C sở nâng cao Nhà xuất Giao thông vận tải,2006 [2] Ngô Trung Việt Ngôn ngữ lập trình C C++ Nhà xuất Thống kê, Kết hợp với kiến thức có liên quan mơn học vấn đề thực tế thường gặp sản xuất, đời sống để giáo trình có tính thực tế cao, giúp cho người học dễ hiểu, dễ dàng lĩnh hội kiến thức mơn học Trong q trình biên soạn giáo trình kinh nghiệm cịn hạn chế, chúng tơi mong nhận ý kiến đóng góp bạn đọc để lần hiệu đính sau hồn chỉnh Tổ môn ứng dụng tin học Trang MỤC LỤC LỜI GIỚI THIỆU CHƯƠNG 1: TỔNG QUAN VỀ NGƠN NGỮ LẬP TRÌNH C 1.1 Giới thiệu sơ lược ngơn ngữ lập trình C 1.1.1 Lịch sử phát triển ngôn ngữ C 1.1.2 Các bước viết chương trình C 1.2 Các phần tử C 1.2.1 Tập ký tự 1.2.3 Định danh (Tên) - Identifier 1.2.4 Kiểu liệu 1.2.5 Hằng 11 1.2.6 Biến 12 1.2.7 Hàm 12 1.2.8 Biểu thức 12 1.2.9 Câu lệnh 13 1.2.10 Chú thích 13 1.3 Cấu trúc chương trình C 14 1.4 Cài đặt sử dụng môi trường turbo C 15 1.4.1 Cài đặt 15 1.4.2 Sử dụng môi trường Turbo 15 CHƯƠNG 2: KHỞI ĐẦU VỚI LẬP TRÌNH C 17 2.1 Một số khai báo 17 2.1.1 Khai báo tệp tiêu đề 17 2.1.2 Khai báo 17 2.2 Các phép toán C 19 2.3 Các lệnh vào liệu 25 2.3.2 Lệnh nhập liệu 28 2.3.3 Lệnh gán 30 2.3.4 Các lệnh nhập xuất khác 30 TH 1: CÀI ĐẶT, SỬ DỤNG MƠI TRƯỜNG LẬP TRÌNH C 32 CHƯƠNG 3: CÁC LỆNH CẤU TRÚC 35 3.1 Lệnh khối 35 3.2 Lệnh lựa chọn 36 3.2.1 Lệnh lựa chọn theo điều kiện if 36 3.2.2 Lệnh switch 39 3.3 Lệnh lặp 42 3.3.1 Lệnh for 42 3.3.2 Lệnh while 44 3.3.3 Lệnh … while 46 TH BÀI 2: LẬP TRÌNH VỚI LỆNH KHỐI VÀ LỆNH LỰA CHỌN 50 TH BÀI 3: LẬP TRÌNH VỚI LỆNH LẶP 53 TH BÀI 3: LẬP TRÌNH VỚI LỆNH LẶP (tiếp) 55 CHƯƠNG 4: HÀM TRONG C 57 4.1 Khái niệm hàm thư viện 57 4.1.1 Chương trình (Subprogram) 57 Trang 4.1.2 Một số đặc tính hàm C 58 4.1.3 Thư viện hàm chuẩn 58 4.2 Quy trình xây dựng hàm 59 4.2.1 Khai báo hàm 59 4.2.2 Sử dụng hàm 61 4.2.3 Quy tắc hoạt động hàm 63 4.2.4 Tính tổng thể cục biến 63 CHƯƠNG 5: DỮ LIỆU KIỂU MẢNG 67 5.1 Khái niệm khai báo mảng 67 5.1.1 Khái niệm mảng 67 5.1.2 Khai báo sử dụng mảng 67 5.2 Một số toán với mảng chiều 69 5.2.1 Nhập liệu cho mảng 69 5.2.2 Hiện mảng liệu 70 5.2.3 Tìm giá trị lớn nhất/nhỏ (Max/Min) 71 5.2.4 Sắp xếp mảng 72 5.2.5 Tìm kiếm mảng 74 5.3 Một số toán với mảng chiều 76 5.3.1 Nhập liệu cho mảng chiều 76 5.3.2 Hiện liệu từ mảng chiều 76 5.3.3 Các toán ma trận 76 TH BÀI 4: XÂY DỰNG HÀM VÀ XỬ LÝ MẢNG CHIỀU 79 CÁC HÀM ĐƠN GIẢN 79 TH BÀI 5: XÂY DỰNG HÀM VÀ XỬ LÝ MẢNG CHIỀU 82 CÁC HÀM ĐƠN GIẢN 82 CHƯƠNG 6: XÂU KÝ TỰ (STRING) 85 6.1 Khái niệm khai báo xâu 85 6.1.1 Khái niệm xâu ký tự 85 6.1.2 Khai báo sử dụng biến xâu 85 6.2 Một số hàm xử lý ký tự xâu 86 6.2.1 Hàm xử lý ký tự 86 6.2.2 Hàm xử lý xâu 88 6.3 Một số chương trình xử lý liệu kiểu xâu 90 TH BÀI 6: MẢNG VÀ XỬ LÝ XÂU KÝ TỰ 92 BÀI TẬP TỔNG HỢP 96 Trang LẬP TRÌNH CƠ BẢN I Vị trí, tính chất mơn học: - Vị trí: Là mơn học bố trí sau sinh viên học xong môn chung, môn học sở chuyên ngành đào tạo chuyên môn nghề; - Tính chất: Là mơn học kỹ thuật sở chương trình đào tạo nghề cơng nghệ thơng tin (ƯDPM) II Mục tiêu mơn học: Kiến thức: Trình bày khái niệm lập trình, số cấu trúc, câu lệnh lập trình C Kỹ năng: Sử dụng mơi trường lập trình C để soạn thảo, biên dịch hiệu chỉnh chương trình; Hình thành kỹ thuật lập trình từ việc áp dụng khái niệm để giải toán Về lực tự chủ trách nhiệm: Rèn luyện tư lập trình sinh viên hệ cao đẳng III NỘI DUNG Chương 1: Tổng quan ngôn ngữ lập trình c 1.1 Giới thiệu sơ lược ngơn ngữ lập trình C 1.2 Các phần tử C 1.3 Cấu trúc chương trình C 1.4 Cài đặt sử dụng phần mềm Chương 2: Khởi đầu với lập trình c 2.1 Một số khai báo 2.2 Các phép toán C 2.3 Các lệnh vào liệu TH 1: Cài đặt, sử dụng mơi trường lập trình C Chương 3: Các lệnh cấu trúc 3.1 Lệnh khối 3.2 Lệnh lựa chọn 3.3 Lệnh lặp TH Bài 2: Lập trình với lệnh khối lệnh lựa chọn TH Bài 3: Lập trình với lệnh lặp Chương 4: Hàm thư viện 4.1 Khái niệm hàm thư viện 4.2 Quy trình xây dựng hàm Chương 5: Dữ liệu kiểu mảng 5.1 Khái niệm khai báo mảng 5.2 Một số toán với mảng chiều 5.3 Một số toán với mảng chiều TH Bài 4: Xây dựng hàm xử lý mảng chiều hàm đơn giản TH Bài 5: Xây dựng hàm xử lý mảng chiều hàm đơn giản Chương 6: Xâu ký tự (string) 6.1 Khái niệm khai báo xâu 6.2 Một số hàm xử lý ký tự xâu 6.3 Một số chương trình xử lý liệu kiểu xâu TH Bài 6: Mảng xử lý xâu ký tự Bài tập tổng hợp Trang CHƯƠNG 1: TỔNG QUAN VỀ NGƠN NGỮ LẬP TRÌNH C Kiến thức: Trình bày lịch sử phát triển ngơn ngữ C, phần tử ngôn ngữ C cấu trúc chương trình C Kĩ Thực cài đặt trình biên dịch viết chương trình C Thái độ Vận dụng tích cực, linh hoạt kiến thức học vào học tiếp theo, áp dụng viết chương trình 1.1 Giới thiệu sơ lược ngơn ngữ lập trình C 1.1.1 Lịch sử phát triển ngôn ngữ C Ngôn ngữ C đời phịng thí nghiệm BELL tập đồn AT&T (Hoa Kỳ) Brian W Kernighan Dennis Ritchie phát triển vào đầu năm 1970 hoàn thành vào năm 1972 C phát triển dựa ngôn ngữ BCPL (Basic Combined Programming Language) ngôn ngữ B Cũng phát triển dựa ngơn ngữ B nên ngôn ngữ Brian W Kernighan Dennis Ritchie đặt tên ngôn ngữ C tiếp nối ngơn ngữ B C có đặc điểm ngơn ngữ lập trình hệ thống mạnh, khả chuyển, có tính linh hoạt cao mạnh xử lí dạng liệu số, văn bản, sở liệu Vì C thường dùng để viết chương trình hệ thống hệ điều hành (ví dụ hệ điều hành Unix có 90% mã nguồn viết C, 10% lại viết hợp ngữ) chương trình ứng dụng chuyên nghiệp có can thiệp tới liệu mức thấp xử lí văn bản, sở liệu, xử lí ảnh… W Kernighan Dennis Ritchie cơng bố ngơn ngữ C lần xuất đầu sách "The C programming language" (1978) Sau người ta bổ sung thêm yếu tố khả vào ngơn ngữ C (ví dụ đưa thêm kiểu liệt kê enum, cho phép kiểu liệu trả hàm kiểu void, struct union… đặc biệt bổ sung thư viện cho ngơn ngữ Lúc đồng thời tồn nhiều phiên khác ngôn ngữ C không tương thích với Điều gây khó khăn cho việc trao đổi mã nguồn chương trình C viết phiên ngôn ngữ C khác (bạn khó đọc hiểu chương trình người khác, bạn muốn sửa thành chương trình dịch dịch tốn nhiều cơng sức) dẫn đến nhu cầu chuẩn hóa ngơn ngữ C Hiện có nhiều phiên ngôn ngữ C khác phiên gắn liền với chương trình dịch cụ thể ngơn ngữ C Các chương trình dịch phổ biến ngơn ngữ C kể tên như:  Turbo C++ Borland C++ Borland Inc  MSC VC Microsoft Corp  GCC GNU project  Free C Trang … 1.1.2 Các bước viết chương trình C Để giải tốn chương trình thực theo bước sau: Xác định đối tượng chương trình Xác định phương pháp thuật giải Viết chương trình (lập trình) Chạy chương trình kiểm tra kết Như ta thấy chu trình phát triển chương trình sau: Soạn thảo chương trình nguồn Chúng ta sử dụng trình soạn thảo văn chuẩn (ASCII) để soạn thảo chương trình, sau ghi vào file chương trình nguồn (ngầm định với phần mở rộng C) Do C hầu hết ngơn ngữ lập trình phổ biến sử dụng bảng chữ ASCII nên bạn sử dụng hệ soạn thảo văn chuẩn để viết chương trình, nhiên hầu hết trình biên dịch C mơi trường MS-DOS WINDOWS có tích hợp trình soạn thảo bạn nên sử dụng trình soạn thảo tích hợp thuận lợi Biên dịch chương trình nguồn Hiện có nhiều chương trình dịch cho C như: Turbo C, BC, Microsoft C, mục đích bước chuyển chương trình nguồn thành chương trình mã đối tượng (object) Sau bước (nếu thành cơng) thu file chương trình đối tượng (có phần mở rộng OBJ) Liên kết chương trình Sau bước biên dịch hồn thành ta có chương trình đối tượng, chưa phải chương trình chạy máy tính, bước phải sử dụng trình liên kết để liên kết hàm thư viện với chương trình đối tượng để tạo chương trình đích Bạn sử dụng trình liên kết độc lập đó, với trình biên dịch C mơi trường DOS hay WINDOWS có sẵn trình liên kết Chạy kiểm tra kết chương trình Khi có chương trình đích, cần phải kiểm tra tính đắn nó.Bạn chạy chương trình với liệu mẫu kiểm tra kết có dự kiến hay khơng, có sai sót phải xác định nguyên nhân gây lỗi quay lại bước để hiệu chỉnh Và lặp lại trình chương trình giải toán mong đợi Trang Các bước phát triển chương trình Hiện có nhiều chương trình dịch cho C hầu hết (trên DOS Windows) tích hợp trình soạn thảo, biên dịch, liên kết - gọi mơi trường tích hợp Trong giáo trình sử dụng BC (Borland C) turbo C làm mơi trường lập trình 1.2 Các phần tử C 1.2.1 Tập ký tự Tập kí tự sử dụng ngơn ngữ lập trình C gồm có: 1.2.2 Từ khóa (Keyword) 26 chữ hoa: A B C X Y Z 26 chữ thường: a b c … x y z 10 chữ số: Các kí hiệu tốn + - * / = học: Các dấu ngăn cách: ; , : space tab Các dấu ngoặc: ( ) [ ] { } Các kí hiệu đặc _ ? $ & # ^ \ ! ‘ “ ~ v.v biệt: Từ khóa (Keyword) từ có sẵn ngôn ngữ sử dụng dành riêng cho mục đích xác định Một số từ khóa hay dùng Turbo C Trang break case char const continue default double else enum float for goto if int interrupt long return short signed sizeof static struct switch typedef union unsigned void while Chú ý: Tất từ khóa C viết chữ thường Các từ khóa C sử dụng để - Đặt tên cho kiểu liệu: int, float, double, char, struct, union… - Mô tả lệnh, cấu trúc điều khiển: for, do, while, switch, case, if, else, break, continue… 1.2.3 Định danh (Tên) - Identifier Định danh (Identifier – cịn gọi Tên) dãy kí tự dùng để gọi tên đối tượng chương trình Các đối tượng chương trình gồm có biến, hằng, hàm, kiểu liệu… ta làm quen mục Khi đặt tên cho định danh C, người lập trình cần tuân thủ quy tắc sau : Các kí tự sử dụng định danh ngôn ngữ C gồm có: chữ cái, chữ số dấu gạch “_” (underscore) Bắt đầu định danh phải chữ dấu gạch dưới, không bắt đầu định danh chữ số Định danh người lập trình đặt khơng trùng với từ khóa Turbo C++ không giới hạn độ dài định danh, 32 kí tự đầu định danh chương trình biên dịch sử dụng (khi định danh có độ dài lớn 32 kí tự Turbo C++ tự động cắt bỏ, khơng xem xét kí tự cuối kí tự thứ 33) Một số ví dụ định danh: i, x, y, a, b, _function, _MY_CONSTANT, PI, gia_tri_1… Ví dụ định danh không hợp lệ 1_a, 3d, 55x bắt đầu chữ số so luong, ti le có kí tự khơng hợp lệ (dấu cách – space) tên int, char trùng với từ khóa ngơn ngữ C 1.2.4 Kiểu liệu Dữ liệu đối tượng lưu trữ xử lý máy tính Dữ liệu máy tính lại khơng phải tất giống Có liệu chữ viết, có liệu số, lại có liệu khác hình ảnh, âm thanh… Ta nói liệu thuộc kiểu liệu khác Kiểu liệu C phân loại thành nhóm: - Kiểu đơn giản (cơ bản/cơ sở) gồm kiểu số nguyên,số thực,ký tự - Kiểu liệu có cấu trúc gồm kiểu mảng, xâu (chuỗi), struct (bản ghi),tệp - Kiểu trỏ Một cách hình thức, kiểu liệu định nghĩa gồm điểm sau: Trang Một kiểu liệu tập hợp giá trị mà liệu thuộc kiểu liệu nhận (dải giá trị/miền giá trị) Trên kiểu liệu ta xác định số phép toán liệu thuộc kiểu liệu (tập thao tác/ phép toán tập giá trị) Bảng sau liệt kê kiểu liệu đơn giản C Ví dụ: Trong ngơn ngữ C có kiểu liệu int Một liệu thuộc kiểu liệu int số nguyên (integer) nhận giá trị từ - 32,768 (- 215) đến 32,767 (215 1) Trên kiểu liệu int ngôn ngữ C định nghĩa phép toán số học số ngun Tên phép tốn Kí hiệu Đảo dấu Cộng + Trừ Nhân * Chia lấy phần / nguyên Chia lấy phần dư % So sánh == So sánh lớn > So sánh nhỏ < … Trong máy tính, việc phân biệt kiểu liệu cần thiết qua kiểu liệu máy tính biết đối tượng mà xử lí thuộc dạng nào, có cấu trúc sao, thực phép xử lí đối tượng đó, cần phải lưu trữ đối tượng nào… Trang 10 Giao tập cho sinh viên Sinh viên thực hành theo nhóm theo trình tự bước, thực công việc ghi sổ thực hành Bài 1: Viết chương trình nhập hiển thị mảng chiều a[n][m] từ bàn phím? Bài 2: Viết chương trình tính tổng ma trận kích thước? Bài 3: Tính tổng đường chéo ma trận? Bài 4: Viết hàm tìm giá trị lớn số? Trang 84 CHƯƠNG 6: XÂU KÝ TỰ (STRING) MỤC TIÊU CỦA BÀI Sau học xong người học có khả Kiến thức - Trình bày khái niệm xâu ký tự, cách biểu diễn ký tự, xâu ký tự - Cách lưu trữ xâu ký tự Kĩ - Thực lập trình thao tác với ký tự xâu ký tự - Phân biệt ký tự xâu ký tự Thái độ Vận dụng tích cực, linh hoạt kiến thức học vào học tiếp theo, áp dụng viết chương trình 6.1 Khái niệm khai báo xâu 6.1.1 Khái niệm xâu ký tự Xâu kí tự (string) dãy kí tự viết liên tiếp Xâu rỗng: xâu không gồm kí tự Độ dài xâu số kí tự có xâu Biểu diễn xâu kí tự: xâu kí tự biểu diễn dãy kí tự đặt cặp dấu ngoặc kép Các kí tự nằm cặp dấu ngoặc kép nội dung xâu Ví dụ: • “String” xâu kí tự gồm kí tự: ‘S’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g’ viết liên tiếp • “Tin hoc” xâu kí tự gồm kí tự: ‘T’, ‘i’, ‘n’, dấu cách (‘ ‘), ‘h’, ‘o’, ‘c’ Lưu trữ liệu kiểu xâu kí tự: kí tự xâu lưu trữ kết thúc kí tự kết thúc xâu (kí tự '\0' hay kí tự NUL, có số thứ tự bảng mã ASCII) Nhờ có kí tự NUL mà người ta xác định độ dài xâu kí tự cách đếm kí tự có xâu đến gặp kí tự NUL (kí tự NUL khơng tính vào độ dài xâu) Ví dụ xâu kí tự “Tin hoc” lưu trữ sau ‘T’ ‘i’ ‘n’ ‘‘ ‘h’ ‘o’ ‘c’ ‘\0’ Lưu ý:  Xâu kí tự khác mảng kí tự chỗ xâu kí tự có kí tự kết thúc xâu (kí tự NUL hay ‘\0’) mảng kí tự khơng có kí tự kết thúc  Phân biệt kí tự xâu kí tự có kí tự: ví dụ ‘A’ kí tự, lưu trữ byte, cịn “A” xâu kí tự, lưu trữ bytes, byte lưu trữ kí tự ‘A’, byte thứ lưu trữ kí tự kết thúc xâu (NUL) 6.1.2 Khai báo sử dụng biến xâu a) Khai báo xâu ký tự Trong C, xâu kí tự khai báo với cú pháp sau: Trang 85 char tên_xâu [số_kí_tự_tối_đa]; Trong số_kí_tự_tối_đa cho biết số lượng kí tự nhiều có xâu Sau khai báo, biến xâu kí tự tên_xâu dùng để lưu trữ xâu kí tự bất kì, miễn độ dài xâu kí tự (số kí tự có xâu) khơng vượt q giá trị số_kí_tự_tối_đa Ví dụ char ho_va_ten[20]; Đây khai báo biến xâu kí tự tên ho_va_ten, biến có tối đa 20 kí tự Lưu ý: Đơi ta nhập xâu có nhiều 20 kí tự cho xâu ho_va_ten mà trình biên dịch C khơng báo lỗi, nhiên cần tránh điều chạy chương trình chương trình quản lí nhớ hệ điều hành bắt lỗi buộc chương trình kết thúc b) Truy nhập vào phần tử xâu Có thể truy nhập đến phần tử xâu tương tự truy nhập đến phần tử mảng Cú pháp sử dụng để truy nhập tên_xâu[chỉ_số_của_kí_tự_cần_truy_nhập] Ví dụ ta có khai báo char que_quan[10], giả sử xâu que_quan có nội dung "Ha Noi" Khi ta hình dung xâu kí tự que_quan sau Nội dung lưu Phần tử thứ Chỉ số phần tử Tên phần tử trữ que_quan[0] ‘H’ que_quan[1] ‘a’ que_quan[2] ‘’ que_quan[3] ‘N’ que_quan[4] ‘o’ que_quan[5] ‘i’ que_quan[6] ‘\0’ que_quan[7] que_quan[8] 10 que_quan[9] 6.2 Một số hàm xử lý ký tự xâu 6.2.1 Hàm xử lý ký tự Lưu ý: để sử dụng hàm ta khai báo tệp tiêu đề ctype.h Hàm toupper() int toupper(int ch) Hàm toupper() dùng để chuyển kí tự chữ thường (các kí tự 'a', 'b', …, 'z') thành kí tự chữ hoa tương ứng ('A', 'B', …, 'Z') Hàm tolower() int tolower(int ch) Trang 86 Hàm tolower() dùng để chuyển kí tự chữ hoa ('A', 'B', …, 'Z') thành kí tự chữ thường tương ứng ('a', 'b', …'z') Hàm isalpha() int isalpha(int ch) Hàm isalpha() dùng để kiểm tra kí tự có phải chữ hay khơng ('a', 'b', …, 'z', 'A', 'B', …, 'Z') Hàm trả giá trị khác không chữ cái, trả giá trị ngược lại Hàm isdigit() int isdigit(int ch) Hàm isdigit() dùng để kiểm tra kí tự có phải chữ số hay khơng ('0', '1', …'9') Hàm trả giá trị khác không đúng, trả giá trị ngược lại Hàm islower() int islower(int ch) Hàm islower() dùng để kiểm tra kí tự có phải chữ thường hay khơng ('a', 'b', …'z') Hàm trả giá trị khác không đúng, trả giá trị ngược lại Hàm isupper() int isupper(int ch) Hàm isupper() dùng để kiểm tra kí tự có phải chữ hoa hay không ('A', 'B', …'Z') Hàm trả giá trị khác không đúng, trả giá trị ngược lại Hàm iscntrl() int iscntrl(int ch) Hàm iscntrl() dùng để kiểm tra kí tự có phải kí tự điều khiển hay khơng (là kí tự khơng hiển thị có mã ASCII từ đến 31) Hàm trả giá trị khác không đúng, trả giá trị ngược lại Hàm isspace() int isspace(int ch) Hàm isspace() dùng để kiểm tra kí tự có phải dấu cách (space, mã ASCII 32), kí tự xuống dịng ('\n', mã ASCII 10), kí tự đầu dịng ('\r', mã ASCII 13), dấu tab ngang ('\t', mã ASCII 9) hay dấu tab dọc ('\v', mã ASCII 11) hay không Hàm trả giá trị khác không đúng, trả giá trị ngược lại CHƯƠNG 6: XÂU KÝ TỰ (STRING) MỤC TIÊU CỦA BÀI Sau học xong người học có khả Kiến thức - Trình bày khái niệm xâu ký tự, cách biểu diễn ký tự, xâu ký tự - Cách lưu trữ xâu ký tự Kĩ - Thực lập trình thao tác với ký tự xâu ký tự - Phân biệt ký tự xâu ký tự Thái độ Trang 87 Vận dụng tích cực, linh hoạt kiến thức học vào học tiếp theo, áp dụng viết chương trình 6.2.2 Hàm xử lý xâu 6.2.2.1 Nhập hiển thị liệu Vào liệu xâu kí tự tức nhập liệu cho xâu hiển thị liệu chứa xâu Để nhập liệu cho xâu ta sử dụng hàm scanf() gets() scanf(“%s”,tên_xâu); gets(tên_xâu); Để hiển thị nội dung xâu ta dùng hàm printf() puts() printf(“%s”,tên_xâu); puts(tên_xâu); Các hàm scanf(), gets, printf(), puts() khai báo tệp tiêu đề stdio.h Ví dụ: Nhập vào chuỗi hiển thị hình chuỗi vừa nhập #include #include #include int main() { char Ten[12]; printf("Nhap chuoi: ");gets(Ten); printf("Chuoi vua nhap: ");puts(Ten); getch(); return 0; } 6.2.2.2 Một số hàm xử lý xâu thường dùng - Hàm strlen() size_t strlen(char* tên_xâu); Hàm trả độ dài (số kí tự có xâu) xâu kí tự tên_xâu - Hàm strcpy() char* strcpy(char* xâu_đích, char* xâu_nguồn) Hàm chép nội dung xâu_nguồn ghi lên xâu_đích - Hàm strcmp() int strcmp(char* xâu_thứ_nhất, char* xâu_thứ_hai); - Hàm strcmp trả • giá trị < xâu_thứ_nhất nhỏ xâu_thứ_hai • giá trị xâu_thứ_nhất xâu_thứ_hai • giá trị > xâu_thứ _nhất lớn xâu_thứ_hai - Hàm strcat() char* strcat(char* xâu_đích, char* xâu_nguồn); Hàm strcat ghép nối xâu_nguồn vào sau xâu_đích Kết trả hàm strcat() xâu ghép nối từ xâu xâu_nguồn xâu_đích Trang 88 - Hàm strchr() char* strchr(char* str, int ch); Hàm strchr() dùng để tìm kiếm vị trí kí tự ch xâu str Nếu có kí tự ch str hàm strchr() trả trỏ trỏ tới kí tự ch str, ngược lại trả trỏ NULL - Hàm strstr() char* strstr(char* str1, char* str2); Hàm strstr() dùng để tìm kiếm vị trí xâu str2 xâu str1 Nếu str2 xâu str1 hàm strstr() trả trỏ trỏ tới kí tự xâu str2 str1, ngược lại trả trỏ NULL - Hàm atoi() int atoi(char* str) Hàm atoi() dùng để chuyển xâu kí tự biểu diễn số nguyên thành số nguyên tương ứng Nếu chuyển đổi thành công, hàm atoi() trả giá trị số nguyên chuyển đổi được, ngược lại trả giá trị - Hàm atol() long int atol(char* str) Hàm atol() dùng để chuyển xâu kí tự biểu diễn số nguyên dài (tương ứng với kiểu liệu long int) thành số nguyên dài tương ứng Nếu chuyển đổi thành công, hàm atol() trả giá trị số nguyên chuyển đổi được, ngược lại trả giá trị - Hàm atof() double atof(char* str) Hàm atof() dùng để chuyển xâu kí tự biểu diễn số thực (ở dạng số dấu phẩy tĩnh động được) thành số thực tương ứng Nếu chuyển đổi thành công, hàm atof() trả giá trị số thực chuyển đổi được, ngược lại trả giá trị Các hàm strcpy(), strlen(),strcmp(), strcat(), strchr(), strstr() khai báo tệp tiêu đề string.h Các hàm atoi(), atol(), atof() khai báo tệp tiêu đề stdlib.h Ví dụ minh họa: #include #include #include // Phai co thu vien string.h thi moi // su dung duoc cac ham strcpy, strcmp void main() { char str1[10] = “abc”; char str2[10] = “def”; clrscr(); printf(“ str1: %s”,str1); printf(“\n str2: %s”,str2); printf(“\n strcmp(str1,str2) = %d”,strcmp(str1,str2)); Trang 89 printf(“\n strcat(str1,str2) = %s”,strcat(str1,str2)); printf(“\n str1: %s”,str1); printf(“\n str2: %s”,str2); printf(“\n strcpy(str1,str2) = %s”,strcpy(str1,str2)); printf(“\n str1: %s”,str1); printf(“\n str2: %s”,str2); strcpy(str1,”ab”); strcpy(str2,”abc”); printf(“\n strcmp(str1,str2) = %d”,strcmp(str1,str2)); getch(); } Kết quả: str1: abc str2: def strcmp(str1,str2) = -3 strcat(str1,str2) = abcdef str1: abcdef str2: def strcpy(str1,str2) = def str1: def str2: def strcmp(str1,str2) = -3 Cần lưu ý sử dụng hàm strcat(), strcpy(), kích thước nhớ lưu trữ dành cho xâu đích phải đủ để chứa kết thu sau lời gọi hàm 6.3 Một số chương trình xử lý liệu kiểu xâu  Bài 1: Nhập vào chuỗi hiển thị hình chuỗi vừa nhập #include #include #include int main() { char Ten[12]; char queQuan[15]; printf("Nhap Ten: ");fflush(stdin);gets(Ten); printf("Nhap Que Quan: ");fflush(stdin);gets(queQuan); printf("Chuoi vua nhap: ");puts(Ten);puts(queQuan); getch(); return 0; } Ngồi ra, ta sử dụng hàm printf(), puts() (trong conio.h) để hiển thị chuỗi lên hình Trang 90 Bài 2: Nhập vào họ lót tên người, sau in họ tên họ lên hình #include #include #include int main() { char HoLot[30], Ten[12]; printf("Nhap Ho Lot: ");gets(HoLot); printf("Nhap Ten: ");gets(Ten); strcat(HoLot,Ten); /* Ghep Ten vao HoLot*/ printf("Ho ten la: ");puts(HoLot); getch(); return 0; } Bài 3: Xác định độ dài chuỗi ký tự nhập vào #include #include #include int main(){ char Chuoi[255]; int Dodai; printf("Nhap chuoi: ");gets(Chuoi); Dodai = strlen(Chuoi) printf("Chuoi vua nhap: ");puts(Chuoi); printf("Co dai %d",Dodai); getch(); return 0; } Trang 91 TH BÀI 6: MẢNG VÀ XỬ LÝ XÂU KÝ TỰ MỤC TIÊU CỦA BÀI: Sau học xong người học có khả năng: Kiến thức: Trình bày khái niệm xâu ký tự Kĩ - So sánh xâu ký tự mảng ký tự; - Viết chương trình xử lý ký tự xâu ký tự Thái độ: Vận dụng tích cực, linh hoạt kiến thức học vào học tiếp theo, áp dụng viết chương trình Nội dung: Thiết bị, dụng cụ, vật tư Máy tính cài phần mềm Code Block 16.01 phần mềm Turbo C++ 3.0 Trang 92 Giấy, bút Trình tự thực STT Các bước BẢNG TRÌNH TỰ THỰC HIỆN Thao tác Dụng cụ, thiết Trang 93 Yêu cầu kỹ thực Bước 1: Tạo file Bước 2: Tìm giải thuật tốn đếm số lần xuất ký tự xâu Bước 3: Viết chương trình Cách 1: File->New->emtyfile Cách 2: Ctrl+Shift+N bị vật tư Máy tính cài đặt phần mềm codeblock Cách 1: Vẽ lưu đồ sơ đồ giải thuật Cách 2: Biểu diễn ngôn ngữ tự nhiên Giấy, bút Soạn thảo chương trình file vừa tạo Máy tính cài đặt phần mềm codeblock Bước 4: Chạy Kick chọn biểu tượng Build and chương trình run Máy tính cài đặt phần mềm codeblock Máy tính cài đặt phần mềm codeblock Bước 5: Kiểm tra kết 3.An toàn lao động - Chọn nơi làm việc sẽ, rộng rãi, thoáng mát; - Mặc quần áo bảo hộ vào phịng thực hành - Chú ý an tồn điện thực hành; - Kiểm tra cẩn thận trước cấp nguồn cho máy Thao tác mẫu Bước 1: Tạo file Bước 3: Viết chương trình Bước 4: Chạy chương trình Bước 5: Kiểm tra kết BẢNG SAI HỎNG THƯỜNG GẶP Trang 94 thuật, an toàn Tạo 1file C Lưu file folder Giải thuật đề đếm số lần xuất ký tự xâu Hồn thành chương trình hồn chỉnh gồm đầy đủ phần Không báo lỗi, hiển thị hình kết Tìm số lần xuất ký tự Thực hành Giao tập cho sinh viên Sinh viên thực hành theo nhóm theo trình tự bước, thực cơng việc ghi sổ thực hành Bài 1: Nhập vào xâu ký tự từ bàn phím, đếm số lần xuất ký tự ‘A’ xâu? Bài 2: Nhập xâu ký tự từ bàn phím, so sánh độ dài xâu? Bài 3: Nhập xâu ký tự từ bàn phím, nối xâu thứ vào xâu thứ 2? STT Sai lầm Chương trình báo lỗi, khơng chạy chương trình Tìm sai nghiệm Nguyên nhân Thiếu câu lệnh, Gõ sai cú câu lệnh Để hệ số kiểu nguyên Chọn biểu tượng Run Trình biên dịch chưa cập chưa lưu chương nhật thay đổi trình Trang 95 Biện pháp phịng tránh Kiểm tra lỗi trước chạy, tìm sửa lỗi dịng báo đỏ Ít hệ số a,b ép kiểu kiểu số thực Lưu chương trình trước chạy BÀI TẬP TỔNG HỢP MỤC TIÊU CỦA BÀI: Sau học xong người học có khả năng: Kiến thức: - Trình bày kiến thức ngơn ngữ lập trình C; - Nêu bước để giải toán; - Mơ tả thành phần chương trình C Kĩ năng: - Sử dụng câu lệnh để giải toán; - Sửa lỗi chương trình gặp lỗi Thái độ - Vận dụng tích cực, linh hoạt kiến thức học vào học tiếp theo, áp dụng viết chương trình bản; - Đảm bảo an tồn cho người thiết bị trình thực hành Nội dung: Thiết bị, dụng cụ, vật tư Máy tính cài phần mềm Code Block 16.01 phần mềm Turbo C++ 3.0 Giấy, bút Trang 96 Trình tự thực STT Các bước thực Bước 1: Tạo file Bước 2: Tìm giải thuật toán viết hàm kiểm tra số nguyên tố, hàm nhập hiển thị mảng n số nguyên Bước 3: Viết chương trình BẢNG TRÌNH TỰ THỰC HIỆN Dụng cụ, thiết Thao tác bị vật tư Cách 1: File->New->emtyfile Máy tính cài đặt Cách 2: Ctrl+Shift+N phần mềm codeblock Cách 1: Vẽ lưu đồ sơ đồ giải thuật Cách 2: Biểu diễn ngôn ngữ tự nhiên Giấy, bút Soạn thảo chương trình file vừa tạo Máy tính cài đặt phần mềm codeblock Bước 4: Chạy Kick chọn biểu tượng Build and chương trình run Máy tính cài đặt phần mềm codeblock Trang 97 Yêu cầu kỹ thuật, an toàn Tạo 1file C Lưu file folder Giải thuật đề kiểm tra số nguyên tố Hoàn thành chương trình hồn chỉnh gồm đầy đủ phần Khơng báo lỗi, hiển thị hình kết Bước 5: Kiểm tra kết 3.An toàn lao động - Chọn nơi làm việc sẽ, rộng rãi, thoáng mát; - Mặc quần áo bảo hộ vào phòng thực hành - Chú ý an toàn điện thực hành; - Kiểm tra cẩn thận trước cấp nguồn cho máy Thao tác mẫu Bước 1: Tạo file Bước 3: Viết chương trình Bước 4: Chạy chương trình Bước 5: Kiểm tra kết STT Sai lầm Chương trình báo lỗi, khơng chạy chương trình Tìm sai nghiệm Nguyên nhân Thiếu câu lệnh, Gõ sai cú câu lệnh Để hệ số kiểu nguyên Chọn biểu tượng Run Trình biên dịch chưa cập chưa lưu chương nhật thay đổi trình Máy tính cài đặt phần mềm codeblock Hiển thị số nguyên tố Biện pháp phòng tránh Kiểm tra lỗi trước chạy, tìm sửa lỗi dịng báo đỏ Ít hệ số a,b ép kiểu kiểu số thực Lưu chương trình trước chạy BẢNG SAI HỎNG THƯỜNG GẶP Thực hành Giao tập cho sinh viên Sinh viên thực hành theo nhóm theo trình tự bước, thực công việc ghi sổ thực hành Bài 1: Nhập vào xâu ký tự từ bàn phím, đếm số lần xuất ký tự ‘A’ xâu? Bài 2: Nhập xâu ký tự từ bàn phím, so sánh độ dài xâu? Bài 3: Nhập xâu ký tự từ bàn phím, nối xâu thứ vào xâu thứ 2? Trang 98 ... LẬP TRÌNH C M? ?c tiêu bài: Kiến th? ?c: - Trình bày thành phần chương trình C; - Nêu c? ?u lệnh vào C Kĩ năng: - Soạn thảo chương trình bản; - Chạy sửa lỗi chương trình turbo C Thái độ: - Tích c? ? ?c. .. liền với chương trình dịch c? ?? thể ngơn ngữ C C? ?c chương trình dịch phổ biến ngơn ngữ C kể tên như:  Turbo C+ + Borland C+ + Borland Inc  MSC VC Microsoft Corp  GCC GNU project  Free C Trang... sơ lư? ?c ngơn ngữ lập trình C 1.2 C? ?c phần tử C 1.3 C? ??u tr? ?c chương trình C 1.4 C? ?i đặt sử dụng phần mềm Chương 2: Khởi đầu với lập trình c 2.1 Một số khai báo 2.2 C? ?c phép toán C 2.3 C? ?c lệnh

Ngày đăng: 08/06/2021, 03:04