Giáo trình lập trình căn bản c (nghề kỹ thuật sửa chữa, lắp ráp máy tính trình độ trung cấpcao đẳng)

91 4 0
Giáo trình lập trình căn bản c (nghề kỹ thuật sửa chữa, lắp ráp máy tính   trình độ trung cấpcao đẳ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

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 LẬP TRÌNH CĂN BẢN 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): 10 2.1 Khởi động: 13 2.2 Thoát: 14 2.3 Các ví dụ đơn giản: 14 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 19 Thực hành 21 4.1 In họ tên sinh viên hình 21 4.2 Sinh viên thực hành 21 CHƯƠNG 2: CÁC THÀNH PHẦN CƠ BẢN 23 Hệ thống từ khóa kí hiệu dùng C 23 1.1 Bộ chữ viết C: 23 1.2 Các từ khóa C: 23 1.3 Tên: 23 1.4 Cặp dấu ghi thích: 24 1.5 Các ký tự điều khiển: 24 Các kiểu liệu: kiểu số, chuỗi, ký tự 25 2.1 Kiểu số nguyên: 25 2.2 Kiểu số thực: 27 Các loại biến, cách khai báo, sử dụng 27 3.1 Biến: 27 3.2 Vừa khai báo vừa khởi gán: 31 3.3 Biểu thức: .32 Lệnh khối lệnh, lệnh gán, lệnh gộp .40 4.1 Khái niệm câu lệnh: .40 4.2 Lệnh nhập giá trị từ bàn phím cho biến: 43 Thực thi chương trình, nhập liệu, nhận kết 44 Thực hành 44 6.1 Viết chương trình C sau: 44 6.2 Sinh viên thực hành khảo sát 45 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 69 CHƯƠNG 4: HÀM 70 Khái niệm hàm gì, phải xây dựng sử dụng hàm 70 Nguyên tắc xây dựng phân biệt tham số hàm: 71 2.1 Định nghĩa hàm: 71 2.2 Sử dụng hàm: 73 2.3 Nguyên tắc hoạt động hàm: 73 Truyền tham số 74 3.1 Truyền trị: 74 3.2 Truyền biến: 76 Các lệnh đơn nhằm kết thúc hàm nhận giá trị trả cho tên hàm: 76 4.1 Câu lệnh return: 76 4.2 Câu lệnh exit: 76 Thực hành 77 5.1 Viết chương trình C liệt kê tất số nguyên tố nhỏ n 77 5.2 Sinh viên thực hành khảo sát 78 Kiểm tra 79 CHƯƠNG 5: MẢNG 80 Trình bày khái niệm mảng C 80 Cú pháp khai báo mảng cách gán giá trị cho mảng 81 2.1 Mảng chiều: 81 2.2 Mảng nhiều chiều: 84 Mảng tham số hàm 88 3.1 Địa phần tử mảng: 88 3.2 Truyền tham số mảng: 88 3.3 Sắp xếp mảng: 89 Thực hành 89 4.1 Code mẫu 89 4.2 Sinh viên thực hành khảo sát 90 Kiểm tra 90 TÀI LIỆU THAM KHẢO 91 LẬP TRÌNH CĂN BẢN Tên Mơn học: LẬP TRÌNH CĂN BẢN Mã Mơn học: MH 09 Vị trí, tính chất, ý nghĩa vai trị Mơn học: - Vị trí: Mơn học bố trí sau sinh viên học xong Mơn Học chung - Tính chất: Là Mơn học lý thuyết sở nghề - Ý nghĩa vai trò: Là Môn học 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ơn học: - 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ờ) Thực hành, Số TT Tên Môn học Tổng Lý số thuyết thí Kiểm nghiệm, tra thảo luận, tập Chương 1: Tổng quan ngôn ngữ C Giới thiệu ngôn ngữ C Các thao tác Sử dụng trợ giúp Thực hành 1 Chương 2: Các thành phần 12 6 Từ khóa kí hiệu Các kiểu liệu sơ cấp 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 Khái niệm lệnh cấu trúc 2 Cấu trúc rẽ nhánh 3 Cấu trúc lặp Các lệnh Break, Continue Thực hành 10 10 Kiểm tra Chương 4: Hàm 12 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 1 Chương 5: Mảng 12 Khái niệm mảng Khai báo mảng Truy xuất mảng Thực hành 5 Kiểm tra Cộng 60 30 27 CHƯƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ C Mã chương: MH 09-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 tố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 10 VD06-10 main() { int N; puts(“\nMoi ban thu lenh EXIT Turbo C”); printf(“\nKhong thu nua, bam so de dung”); scanf(“%d”,&N); exit(N); /*lenh exit co tham so*/ } Nếu mơi trường Turbo C, bạn bấm tổ hợp phím để chạy chương trình Khi bạn nhập số (0) trở hình soạn thảo + Nhưng chương trình này, chúng tơi muốn đề cập đến mã MSDOS sau ghi chương trình vào tập tin (ở thư mục C:\BAITAP\NGUON), bạn bấm tổ hơp phím để hình hình MS-DOS giả sử thư mục hành bạn C:\BAITAP\ NGUON Từ dấu nhắc hệ điều hành, bạn dùng lệnh copy để tạo tập tin kt.bat có nội dung sau: C:\BAITAP\NGUON copy kt.bat ↲ @ ECHO OFF : LOOP @ C:\BAITAP\DICH\VD06-10 IF ERRLEVERL GOTO LOOP @ ECHO ON Sau bạn bấm phím tổ hợp phím để ghi nội dung tập tin KT.BAT vào thư mục NGUON Tiếp đến từ dấu nhắc hệ điều hành bạn gõ vào tên tập tin kt.bat xuất hình giống bạn chạy chương trình THOAT.C mơi trường Turbo C lúc trước Về công dụng tâp tin BAT bạn biết, ỏ xin giải thích lệnh IF ERRLEVERL GOTO LOOP Câu lệnh IF MS-DOS khảo sát điều kiện, dây mã thoát ERRLEVERL Nếu mã vị trí khác (0) lệnh GOTO chuyển đến nhãn LOOP để lại chạy tập tin VD06-10.EXE thư mục DICH yêu cầu bạn tạo lập từ trước Cho tới bạn nhập số (0) máy dấu nhắc hệ điều hành Thực hành 5.1 Viết chương trình C liệt kê tất số nguyên tố nhỏ n #include #include int isPrimeNumber(int n) { // so nguyen n < khong phai la so nguyen to if (n < 2) { return 0; } // check so nguyen to n >= int i; int squareRoot = (int) sqrt(n); 77 for (i = 2; i n; printf("Tat ca cac so nguyen to nho hon %d la: \n", n); if (n >= 2) { printf("%d ", 2); } for (i = 3; i < n; i+=2) { if (isPrimeNumber(i) == 1) { printf("%d ", i); } } } Kết quả: Nhập n = 100 Tat ca cac so nguyen to nho hon 100 la: 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 Các bước thực Bước 1: Mở phần mềm Dev C++ Bước 2: Nhập code mẫu Bước 3: Biên dịch chạy chương trình 5.2 Sinh viên thực hành khảo sát Thực trình tự theo bước điền kết vào bảng sau: Thời gian thực chương trình Số lỗi Kết chạy chương trình Những trọng tâm cần ý - Xây dựng hàm - Cách viết hàm gọi hàm - Truyền tham số cho hàm Bài mở rộng nâng cao Viết chương trình C nhắc người dùng nhập số nguyên sau in số nhỏ lớn sử dụng hàm C 78 Viết chương trình C để tính giai thừa số nguyên dương sử dụng hàm C Yêu cầu đánh giá kết học tập chương Nội dung: + Về kiến thức: Trình bày khái niệm hàm + Về kỹ năng: Sử dụng thành thạo hàm C + Năng lực tự chủ trách nhiệm: Tỉ mỉ, cẩn thận, xác, ngăn nắp công việc Phương pháp: + Về kiến thức: Được đánh giá hình thức kiểm tra viết, trắc nghiệm, vấn đáp + Về kỹ năng: Thực việc gọi hàm + Năng lực tự chủ trách nhiệm: Tỉ mỉ, cẩn thận, xác, ngăn nắp cơng việc Kiểm tra 79 CHƯƠNG 5: MẢNG Mã chương: MH 09-05 Mục tiêu: Sau học xong chương sinh viên có khả năng: - Hiểu khái niệm mảng - Khai báo mảng chiều, mảng hai chiều, mảng nhiều chiều - Biết cách gán giá trị cho mảng trực tiếp, gián tiếp - Vận dụng mảng làm tham số cho hàm - Sắp xếp mảng theo thứ tự giảm dần, tăng dần Trình bày khái niệm mảng C Như bạn biết, biến biểu diễn giá trị Muốn biểu diễn dãy số hay bảng số bạn sử dụng nhiều biến bất tiện Vì hầu hết ngơn ngữ lập trình thiết kế kiểu liệu chuyên dụng cho loại gọi kiểu mảng Vậy mảng tập hợp nhiều phần tử có kiểu giá trị có chung tên Mõi phần tử mảng biểu diễn giá trị Có kiểu liệu (kiểu giá trị) có nhiêu kiểu mảng Ví dụ có mảng sau : int a[10], b[4][2] Float x[5], y[3][3] Giải thích: - Mảng a[10]: Mảng 1chiều, có 10 phần tử thuộc kiểu số nguyên (int) đánh số sau : a[0], a[1], a[9] Như mảng a biểu diễn dãy 10 phần tử, phần tử a[1] chứa trị nguyên - Mảng b[4][1]: Mảng chiều b, có phần tử thuộc kiểu nguyên (int) gồm dòng, cột xếp sau: b[0][0] b[0][1] b[1][0] b[1][1] b[2][0] b[2][1] b[3][0] b[3][1] Mỗi phần tử b[i][j] biểu diễn giá trị kiểu nguyên - Mảng X[5]: mảng chiều X, có phần tử thuộc kiểu số thực (float) đánh số sau: X[0], X[1], X[2], X[3], X[4] Mỗi phần tử X[i] biểu diễn giá trị kiểu số thực (float) Mảng X biểu diễn số thực - Mảng y[3][3]: Mảng chiều Y gồm dịng, cột, có phần tử, phần tử y[i][j] chứa giá trị kiểu số thực (float) xếp sau: y[0][0] y[0][1] y[0][2] y[1][0] y[1][1] y[1][2] y[2][0] y[2][1] y[2][2] Như để xác định mảng cần phải định rõ: + Kiểu liệu mảng: int, float, double 80 + + 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 độ toá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: 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() { int i, A[] = {23,65,7,89,76}; clrscr(); 81 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

Ngày đăng: 23/12/2023, 10:28

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan