Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 96 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
96
Dung lượng
2,83 MB
Nội dung
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 Giáo Trình Lập trình C biên soạn nhằm đáp ứng yêu cầu học tập sinh viên bước đầu làm quen với công việc lập trình, đồng thời giúp cho sinh viên có tài liệu học tập, rèn luyện tốt khả lập trình, tạo tảng vững cho Mơn học Giáo trình khơng phù hợp cho người bắt đầu mà phù hợp cho người cần tham khảo Nội dung giáo trình chia thành chương: Chương 1: Tổng quan ngôn ngữ C Chương 2: Các thành phần Chương 3: Các lệnh có cấu trúc Chương 4: Hàm Chương 5: Mảng Khi biên soạn, tham khảo giáo trình tài liệu giảng dạy Mơn học số trường Cao đẳng, Đại học để giáo trình vừa đạt yêu cầu nội dung vừa thích hợp với đối tượng sinh viên trường Cao đẳng Chúng hy vọng sớm nhận ý kiến đóng góp, phê bình bạn đọc nội dung, chất lượng hình thức trình bày để giáo trình ngày hồn thiện Cần Thơ, ngày… tháng… năm 2021 Tham gia biên soạn Chủ biên: Lư Thục Oanh MỤC LỤC TRANG TUYÊN BỐ BẢN QUYỀN LỜI GIỚI THIỆU MỤC LỤC GIÁO TRÌNH MÔ ĐUN CHƯƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ C Giới thiệu lịch sử phát triển ngôn ngữ, cần thiết phải học ngôn ngữ C Cách khởi động chương trình (Turbo C): 2.1 Màn hình sau khởi động 12 2.2 Thoát: 12 2.3 Các ví dụ đơn giản: 12 Cách sử dụng trợ giúp từ helpfile cú pháp lệnh, cú pháp hàm, chương trình mẫu 17 Thực hành 20 4.1 In họ tên sinh viên hình 20 4.2 Sinh viên thực hành 20 CHƯƠNG 2: CÁC THÀNH PHẦN CƠ BẢN 22 Hệ thống từ khóa kí hiệu dùng C 22 1.1 Bộ chữ viết C: 22 1.2 Các từ khóa C: 22 1.3 Tên: 22 1.4 Cặp dấu ghi thích: 23 1.5 Các ký tự điều khiển: 23 Các kiểu liệu: kiểu số, chuỗi, ký tự 24 2.1 Kiểu số nguyên: 24 2.2 Kiểu số thực: 26 Các loại biến, cách khai báo, sử dụng 26 3.1 Biến: 26 3.2 Vừa khai báo vừa khởi gán: 30 3.3 Biểu thức: .31 Lệnh khối lệnh, lệnh gán, lệnh gộp .39 4.1 Khái niệm câu lệnh: .39 4.2 Lệnh nhập giá trị từ bàn phím cho biến: 42 Thực thi chương trình, nhập liệu, nhận kết 43 Thực hành 43 6.1 Viết chương trình C sau: 43 6.2 Sinh viên thực hành khảo sát 44 CHƯƠNG 3: CÁC LỆNH CÓ CẤU TRÚC 47 Khái niệm lệnh cấu trúc .47 1.1 Lệnh: 47 1.2 Khối lệnh: .47 Các lệnh cấu trúc rẽ nhánh như: if, switch 49 2.1 Dạng không đầy đủ: .49 2.2 Dạng đầy đủ: 51 Các lệnh lặp for, while, while 55 3.1 Vòng lặp for: 55 3.2 Vòng lặp while: 58 3.3 Vòng lặp do…while: 60 3.4 So sánh vòng lặp: .62 Các lệnh đơn nhằm kết thúc sớm vòng lặp 63 4.1 Lệnh break: 63 4.2 Lênh continue: 64 4.3 Lênh goto: 65 Thực hành: .66 5.1 Code mẫu: Tính tổng bình phương số lẻ từ đến n .66 5.2 Sinh viên thực hành khảo sát 69 Kiểm tra 70 CHƯƠNG 4: HÀM 71 Khái niệm hàm gì, phải xây dựng sử dụng hàm 71 Nguyên tắc xây dựng phân biệt tham số hàm: 72 2.1 Định nghĩa hàm: 72 2.2 Sử dụng hàm: 74 2.3 Nguyên tắc hoạt động hàm: 74 Truyền tham số 75 3.1 Truyền trị: 75 3.2 Truyền biến: 77 Các lệnh đơn nhằm kết thúc hàm nhận giá trị trả cho tên hàm: 77 4.1 Câu lệnh return: 77 4.2 Câu lệnh exit: 77 Thực hành 78 5.1 Viết chương trình C liệt kê tất số nguyên tố nhỏ n 78 5.2 Sinh viên thực hành khảo sát 80 Kiểm tra 80 CHƯƠNG 5: MẢNG 81 Trình bày khái niệm mảng C 81 Cú pháp khai báo mảng cách gán giá trị cho mảng 82 2.1 Mảng chiều: 82 2.2 Mảng nhiều chiều: 85 Mảng tham số hàm 89 3.1 Địa phần tử mảng: 89 3.2 Truyền tham số mảng: 89 3.3 Sắp xếp mảng: 90 Thực hành 90 4.1 Code mẫu 90 4.2 Sinh viên thực hành khảo sát 91 Kiểm tra 92 BÀI TẬP MẪU 93 TÀI LIỆU THAM KHẢO 96 GIÁO TRÌNH MÔ ĐUN Tên Mô đun: LẬP TRÌNH CĂN BẢN Mã Mô đun: MĐ08 Vị trí, tính chất, ý nghĩa vai trị Mơ đun: - Vị trí: Mơ đun bố trí sau sinh viên học xong Môn Học chung - Tính chất: Là Mơ đun lý thuyết sở nghề - Ý nghĩa vai trị: Là Mơ đun sở, giúp sinh viên bước đầu làm quen với cơng việc lập trình Mục tiêu Mơ đun: - Trình bày khái niệm lập máy tính; - Mơ tả ngơn ngữ lập trình: cú pháp, cơng dụng câu lệnh; - Phân tích chương trình: xác định nhiệm vụ chương trình; - Thực thao tác môi trường phát triển phần mềm: biên tập chương trình, sử dụng cơng cụ, điều khiển, thực đơn lệnh trợ giúp, gỡ rối, bẫy lỗi, v.v.; - Viết chương trình thực chương trình máy tính - Bố trí làm việc khoa học đảm bảo an toàn cho người phương tiện học tập Thời gian (giờ) Số TT Tên chương, mục Tổng số Chương 1: Tổng quan ngôn ngữ C Thực hành, thí Lý Kiểm nghiệm, thuyết tra thảo luận, tập Giới thiệu ngôn ngữ C Các thao tác Sử dụng trợ giúp Thực hành Chương 2: Các thành phần Từ khóa kí hiệu Các kiểu liệu sơ cấp 12 Biến, hằng, biểu thức Câu lệnh Thực thi chương trình Thực hành Chương 3: Các lệnh có cấu trúc 20 12 12 12 60 30 27 Khái niệm lệnh cấu trúc Cấu trúc rẽ nhánh Cấu trúc lặp Các lệnh Break, Continue Thực hành Kiểm tra Chương 4: Hàm Khái niệm hàm Xây dựng hàm Các tham số hàm Các lệnh đơn nhằm kết thúc hàm nhận giá trị trả cho tên hàm Thực hành Kiểm tra Chương 5: Mảng Khái niệm mảng Khai báo mảng Truy xuất mảng Thực hành Kiểm tra Cộng CHƯƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ C Mã chương: MĐ 08-01 Mục tiêu: Sau học xong sinh viên có khả năng: - Hiểu lịch sử phát triển ngôn ngữ C - Biết ngơn ngữ có ứng dụng - Biết cách khởi động khỏi chương trình - Sử dụng hệ thống trợ giúp từ help file Giới thiệu lịch sử phát triển ngôn ngữ, cần thiết phải học ngôn ngữ C C ngôn ngữ lập trình cấp cao, sử dụng phổ biến để lập trình hệ thống với Assembler phát triển ứng dụng Vào năm cuối thập kỷ 60 đầu thập kỷ 70 kỷ XX, Dennish Ritchie (làm việc phịng thí nghiệm Bell) phát triển ngơn ngữ C dựa ngôn ngữ BCPL (Basic Conbined Programming Languages) Martin Richards đưa vào năm 1967 ngôn ngữ B Ken Thompson phát triển từ ngôn ngữ BCPL vào năm 1970 viết hệ điều hành UNIX máy PDP-7 cài đặt lần hệ điều hành UNIX máy DEC PDP-11.Từ trước tới nay, ngôn ngữ C ngôn ngữ lập trình nhiều người sử dụng, C xây dựng thành tựu tin học Hình 1: (Dennis Ritchie(trái) Ken Thompson trước hệ thống PDP-11với text-terminal (1972)) Hình 2: (Dennis Ritchie (trái) Kernighan) Hiện nước Âu, Mỹ ngơn ngữ lập trình dùng để giảng dạy bậc trung học đại học ngôn ngữ C C++ Trong tương lai ngôn ngữ C trở thành ngôn ngữ quốc tế tin học giống ngày người ta sử dụng tiếng Anh giao tiếp Ngơn ngữ C có thư viện khổng lồ hàm (function) mà khơng có ngơn ngữ sánh kịp Lập trình viên sử dụng hàm C cần truyền tham số nhận kết mà không cần phải nhiều thời gian để viết chức tương tự Vì cơng việc lập trình trở nên dễ dàng, nhanh chóng, ngắn gọn tạo nhiều sản phẩm chương trình ứng dụng lĩnh vực có chất lượng cao Ngơn ngữ C thích hợp để giải tốn kỹ thuật có cơng thức thuật tốn phức tạp, ngơn ngữ C có tốn tử điều khiển mạnh mẽ Ngồi khái niệm cấu trúc C cho phép mô tả khối liệu lớn, ngơn ngữ C sử dụng để giải tốn quản lý xử lý mơ hình lựa chọn tối ưu Một chương trình viết ngơn ngữ C chạy nhanh gần Assembler Ngồi ngơn ngữ C ngơn ngữ dễ học, chương trình viết ngắn gọn, súc tích có cấu trúc rõ ràng, dễ phát sai lầm có Vì ngày nhiều người đặt biệt ưa chuộng đặt biệt bạn học sinh sinh viên Ngôn ngữ C có đặc điểm sau: + Tính động (compact): C có 32 từ khóa chuẩn 40 toán tử chuẩn, biểu diễn chuỗi ký tự ngắn gọn + Tính cấu trúc (structured): C có tập hợp thị lập trình cấu trúc lựa chọn, lặp,… Từ chương trình viết C tổ chức rõ ràng, dễ hiểu - Tính tương thích (compatible): C có tiền xử lý thư viện chuẩn vô phong phú nên chuyển từ máy tính sang máy tính khác chương trình viết C hồn tồn tương thích - Tính linh động (flexible): C ngôn ngữ uyển chuyển cú pháp, chấp nhận nhiều cách thể hiện, thu gọn kích thước mã lệnh, làm chương trình chạy nhanh - Biên dịch (compile): Cho phép C biên dich nhiều tập tin chương trình riêng lẽ thành tập tin đối tượng (object) liên kết (link) đối tượng lại với thành chương trình thực (executable) thi thống Cách khởi động chương trình (Turbo C): Giới thiệu môi trường làm việc Turbo C: - Turbo C hãng Borland cung cấp - Gồm chức sau: soạn thảo chương trình, dịch, thực thi chương trình,… - Phiên sử dụng Turbo C 3.0 - Đây hình gọi Turbo C: Hình 3: Màn hình Turbo C - Giao diện soạn thảo chương trình mới: vào menu File ->New Hình 4: Giao diện soạn thảo chương trình - Ghi chương trình soạn thảo vào đĩa: - Sử dụng File->Save gõ phím F2 - Lệnh Save As để lưu lại chương trình với tên khác 10 + + + Kiểu liệu mảng: int, float, double Tên mảng: Là ký tự từ a đến z, viết thường viết hoa Số chiều kích thước chiều đặt cặp dấu ngoặc vuông [] Cú pháp khai báo mảng cách gán giá trị cho mảng 2.1 Mảng chiều: Nếu xét góc độ tốn học, mảng chiều giống vector Mõi phần tử mảng chiều có giá trị khơng phải mảng khác 2.1.1 Khai báo mảng với số phần tử xác định (khai báo tường minh): Cú pháp: ; Ý nghĩa: Tên mảng: môt tên đặt theo quy tắc đặt tên danh biểu Tên mang ý nghĩa tên biến mảng Số phần tử: số nguyên, cho bit số lượng phần tử tối đa mảng (hay kích thước mảng gì) Kiểu: phần tử mảng có liệu thuộcc kiểu Ở đây, ta khai báo biến mảng gồm có số phần tử phần tử, phần tử thứ tên mảng [0], phần tử cuối tên mảng [số phần tử -1] Ví dụ: int a[10]; /* Khai báo biến mang tên a, phần tử thứ a[0], phần tử cuối a[9].*/ Ta coi mảng a dãy liên tiếp phần tử nhớ sau: Hình 1: Hình ảnh mảng a nhớ 2.1.2 Khai báo mảng với số phần tử không xác định (khai báo không tường minh): Cú pháp: ; Khi khai báo, không cho biết rõ số phần tử mảng, kiểu khai báo thường áp dụng trường hợp: vừa khai báo vừa gán giá trị, khai báo mảng tham số hình thức hàm Vừa khai báo vừa gán trị: Cú pháp: []= {Các giá trị cách dấu phẩy}; Nếu vừa khai báo vừa gán giá trị C hiểu số phần tử mảng số giá trị mà gán cho mảng cặp dấu {} Chúng ta sử dụng hàm sizeof() để lấy số phần tử mảng sau: Số phần tử=sizeof(tên mảng)/ sizeof(kiểu) Ví dụ: vừa khai báo vừa gán trị cho mảng #include main() { 82 int i, A[] = {23,65,7,89,76}; clrscr(); for(i=0;i=0;i ) printf("%d",NhiPhan[i]); getch(); return 0; } Ví dụ 4: Nhập vào dãy n số xếp số theo thứ tự tăng Đây tốn có ứng dụng rộng rãi nhiều lĩnh vực Có nhiều giải thuật xếp Một số mơ tả sau: Đầu tiên đưa phần tử thứ so sánh với phần tử cịn lại, lớn phần tử so sánh đổi chổ hai phần tử cho Sau tiếp tục so sánh phần tử thứ hai với phần tử từ thứ ba trở tiếp tục phần tử thứ n-1 Chương trình chia thành hàm Nhap (Nhập số), SapXep (Sắp xếp) InMang (In số); tham số hình thức hàm mảng không định rõ số phần tử tối đa, ta cần có thêm số phần tử thực tế sử dụng mảng bao nhiêu, giá trị nguyên #include #include void Nhap(int a[],int N) { int i; for(i=0; i< N; i++) { printf("Phan tu thu %d: ",i);scanf("%d",&a[i]); } } void InMang(int a[], int N) { int i; for (i=0; i