Giáo trình ―Lập trình cơ bản bao gồm những kiến thức cơ bản về ngôn ngữ lập trình C như cách khai báo biến, cấu trúc lập trình, cách xây dựng hàm, làm việc với mảng dữ liệu, biến con trỏ, chuỗi kí tự trong C, kiểu dữ liệu cấu trúc. Mời các bạn cùng tham khảo phần 1 giáo trình sau đây.
ev UBND TỈNH THANH HĨA TRƢỜNG CAO ĐẲNG NGHỀ CƠNG NGHIỆP THANH HĨA GIÁO TRÌNH LẬP TRÌNH CƠ BẢN NGHỀ: CƠNG NGHỆ THƠNG TIN (ƢDPM) TRÌNH ĐỘ: TRUNG CẤP Năm 2018 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 đƣợc 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 Mơ đun lập trình cung cấp cho sinh viên kiến thức lập trình thơng qua ngơn ngữ lập trình C Mô đun tảng để tiếp thu hầu hết mơn học/mơ đun khác chƣơng trình đào tạo Mặt khác, nắm vững ngơn ngữ lập trình C sở phát triển ứng dụng Giáo trình ―Lập trình bản‖ bao gồm kiến thức ngơn ngữ lập trình C nhƣ cách khai báo biến, cấu trúc lập trình, cách xây dựng hàm, làm việc với mảng liệu, biến trỏ, chuỗi kí tự C, kiểu liệu cấu trúc Giáo trình đƣợc biên soạn dựa Chƣơng trình khung nghề Công nghệ thông tin (Ứng dụng phần mềm) trình độ Trung cấp Tài liệu dùng cho việc nghiên cứu, giảng dạy giáo viên, học tập sinh viên đƣợc sử dụng làm tài liệu tham khảo cho lập trình viên Trong trình biên soạn giáo trình có sử dụng số tài liệu liên quan đến ngơn ngữ lập trình C, nhiên khơng tránh khỏi thiếu sót, mong nhận đƣợc đóng góp ý kiến ngƣời đọc để giáo trình ngày hồn thiện Xin chân thành cảm ơn! Thanh Hóa, ngày 10 tháng 05 năm 2018 Tham gia biên soạn Lê Thị Bằng Vũ Thị Tuyết Lê Ngọc Tâm MỤC LỤC ĐỀ MỤ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 BÀI 1: GIỚI THIỆU CHUNG VỀ NGƠN NGỮ LẬP TRÌNH C 10 MÔ TẢ THUẬT GIẢI 10 GIỚI THIỆU VỀ NGÔN NGỮ C VÀ MÔI TRƢỜNG LẬP TRÌNH TURBO C 2.1 Giới thiệu ngơn ngữ C 11 2.2 Mơi trƣờng lập trình Turbo C 12 VIẾT CHƢƠNG TRÌNH C ĐƠN GIẢN 23 3.1 Cấu trúc chƣơng trình C đơn giản 23 3.2 Các tập tin thƣ viện thông dụng 25 3.3 Cú pháp khai báo phần bên mơt chƣơng trình C 25 BÀI TẬP 26 BÀI 2: SỬ DỤNG CÁC THÀNH PHẦN CƠ BẢN TRONG 27 KHAI BÁO VÀ SỬ DỤNG BIẾN 27 1.1 Bộ chữ viết C 27 1.2 Các từ khóa C 27 1.3 Các kiểu liệu C 28 1.4 Tên số C 29 1.5 Biến biểu thức 32 NHẬP, XUẤT DỮ LIỆU TRONG C 38 2.1 Câu lệnh 38 2.2 Các lệnh đơn 38 SỬ DỤNG CÁC HÀM CƠ BẢN TRONG C 45 BÀI TẬP 46 BÀI 3: SỬ DỤNG CẤU TRÚC RẼ NHÁNH 48 SỬ DỤNG LỆNH RẼ NHÁNH IF 48 1.1 Khối lệnh 48 1.2 Cấu trúc rẽ nhánh if 50 SỬ DỤNG CẤU TRÚC LỰA CHỌN 55 BÀI TẬP 59 BÀI 4: SỬ DỤNG CẤU TRÚC VÒNG LẶP 62 SỬ DỤNG CẤU TRÚC VÒNG LẶP FOR 62 1.1 Khái niệm cấu trúc vòng lặp 62 1.2 Vòng lặp for 62 SỬ DỤNG VÒNG LẶP WHILE 65 SỬ DỤNG VÒNG LẶP DO WHILE 67 CÁC CÂU LỆNH ĐẶC BIỆT 70 4.1 Lệnh break 70 4.2 Lệnh continue 70 BÀI TẬP 71 BÀI 5: SỬ DỤNG HÀM 73 XÂY DỰNG HÀM 73 1.1 Khái niệm hàm C 73 1.2 Xây dựng hàm 75 SỬ DỤNG HÀM 76 HÀM ĐỆ QUY 80 3.1 Định nghĩa 80 3.2 Đặc điểm cần lƣu ý viết hàm đệ quy 81 BÀI TẬP 81 BÀI LÀM VIỆC VỚI MẢNG DỮ LIỆU 84 NHẬP/ XUẤT MẢNG MỘT CHIỀU 84 1.1 Khái niệm mảng 84 1.2 Khai báo mảng 84 1.3 Truy xuất phần tử mảng 85 SẮP XẾP MẢNG 88 2.1 Thuật toán 88 2.2 Các bƣớc thực 88 CHÈN PHẦN TỬ VÀO MẢNG 89 3.1 Thuật toán 89 3.2 Các bƣớc thực 89 XÓA PHẦN TỬ MẢNG 89 4.1 Thuật toán 89 4.2 Các bƣớc thực 89 MẢNG NHIỀU CHIỀU 89 5.1 Khai báo 89 5.2 Truy xuất phần tử mảng chiều 90 BÀI TẬP 92 BÀI 7: SỬ DỤNG BIẾN CON TRỎ 95 KHAI BÁO VÀ SỬ DỤNG BIẾN CON TRỎ 95 THAO TÁC TRÊN CON TRỎ 96 2.1 Gán địa biến cho biến trỏ 96 2.2 Nội dung ô nhớ trỏ tới 96 2.3 Cấp phát vùng nhớ cho biến trỏ 97 2.4 Cấp phát lại vùng nhớ cho biến trỏ 98 2.5 Giải phóng vùng nhớ cho biến trỏ 98 2.6 Một số phép toán trỏ 98 SỬ DỤNG CON TRỎ VÀ MẢNG MỘT CHIỀU 99 3.1 Truy cập phần tử mảng theo dạng trỏ 99 3.2 Truy xuất phần tử đƣợc quản lý trỏ theo dạng mảng 101 3.3 Sử dụng trỏ đến phần tử mảng 101 BÀI TẬP 102 BÀI 8: LÀM VIỆC VỚI CHUỖI KÍ TỰ 104 NHẬP/ XUẤT CHUỖI KÍ TỰ 104 1.1 Khái niệm 104 1.2 Khai báo 104 1.3 Nhập xuất chuỗi 105 SỬ DỤNG HÀM XỬ LÝ CHUỖI 106 2.1 Cộng chuỗi - Hàm strcat() 106 2.2 Xác định độ dài chuỗi - Hàm strlen() 106 2.3 Đổi ký tự thƣờng thành ký tự hoa - Hàm toupper() 107 2.4 Đổi chuỗi chữ thƣờng thành chuỗi chữ hoa, hàm strupr() 107 2.5 Đổi chuỗi chữ hoa thành chuỗi chữ thƣờng, hàm strlwr() 107 2.6 Sao chép chuỗi, hàm strcpy() 107 2.7 Sao chép phần chuỗi, hàm strncpy() 108 2.8.Trích phần chuỗi, hàm strchr() 108 2.9 Tìm kiếm nội dung chuỗi, hàm strstr() 108 2.10 So sánh chuỗi, hàm strcmp() 109 2.11 So sánh chuỗi, hàm stricmp() 109 2.12 Khởi tạo chuỗi, hàm memset() 109 2.13 Đổi từ chuỗi số, hàm atoi(), atof(), atol() (trong stdlib.h) 109 BÀI TẬP 110 BÀI 9: LÀM VIỆC VỚI KIỂU CẤU TRÚC 111 KHAI BÁO KIỂU CẤU TRÚC TRONG C 111 1.1 Khái niệm 111 1.2 Định nghĩa kiểu cấu trúc 111 1.3 Khai báo biến cấu trúc 113 THAO TÁC TRÊN BIẾN KIỂU CẤU TRÚC 113 2.1 Truy xuất đến trƣờng biến cấu trúc 113 2.2 Khởi tạo cấu trúc 116 BÀI TẬP 116 TÀI LIỆU THAM KHẢO 118 GIÁO TRÌNH MƠ ĐUN Tên mơ đun: Lập trình Mã mơ đun: MĐ 10 Vị trí, ý nghĩa, tính chất vai trị mơ đun: - Vị trí mơ đun: Mơ đun đƣợc bố trí sau học xong mơn học chung - Tính chất mơ đun: Là mơ đun bắt buộc thuộc nhóm mơ đun trung cấp nghề Cơng nghệ thơng tin (Ứng dụng phần mềm) - Ý nghĩa, vai trò mô đun: Mô đun trang bị kiến thức cho ngƣời học ngơn ngữ lập trình C Mục tiêu mơ đun: - Kiến thức: + Trình bày đƣợc thành phần giao diện làm việc phần mềm Turbo C + Trình bày đƣợc cơng dụng ngơn ngữ lập trình, ý nghĩa, cú pháp câu lệnh dùng ngơn ngữ lập trình C + Biết đƣợc số thuật toán để xử lý số yêu cầu đơn giản + Trình bày đƣợc ý nghĩa, cách khai báo, cách truy xuất với số cấu trúc liệu + Trình bày đƣợc ý nghĩa, cách khai báo, cách sử dụng hàm, mảng liệu, chuỗi kí tự + Trình bày đƣợc ý nghĩa, cách khai báo, cách sử dụng biến trỏ, kiểu cấu trúc - Kỹ năng: + Cài đặt đƣợc số chƣơng trình ứng dụng đơn giản ngơn ngữ lập trình C; + Tạo thực thi chƣơng trình ứng dụng C + Áp dụng cấu trúc lệnh để viết đƣợc số chƣơng trình xử lý yêu cầu đơn giản + Viết đƣợc số hàm đơn giản sử dụng ứng dụng + Xử lý đƣợc liệu mảng xâu ký tự + Khắc phục đƣợc số lỗi trình viết chƣơng trình C - Năng lực tự chủ trách nhiệm: + Có tính tự giác, học hỏi + Có đƣợc tính sáng tạo, nghiêm túc, tích cực, linh hoạt - Nội dung chính: + Bài 1: Giới thiệu chung ngơn ngữ lập trình C + Bài 2: Sử dụng thành phần C + Bài 3: Sử dụng câu lệnh rẽ nhánh + Bài 4: Sử dụng cấu trúc vòng lặp + Bài 5: Sử dụng hàm + Bài 6: Làm việc với mảng liệu + Bài 7: Sử dụng biến trỏ + Bài 8: Làm việc với chuỗi kí tự + Bài 9: Làm việc với kiểu cấu trúc BÀI 1: GIỚI THIỆU CHUNG VỀ NGÔN NGỮ LẬP TRÌNH C MÃ BÀI: MĐ10/01 Giới thiệu: Trƣớc ngƣời học viết đƣợc chƣơng trình C, ngƣời học phải biết diễn tả đƣợc thuật giải ngôn ngữ tự nhiên lƣu đồ khối biết sử dụng mơi trƣờng lập trình C Trong giáo trình bày tập trung sử dụng phần mềm Turbo C++ để thực viết chƣơng trình C Mục tiêu: - Trình bày đƣợc khái niệm thuật giải cách để diễn tả thuật giải - Khái niệm ngơn ngữ lập trình, sử dụng lƣu đồ để biểu diễn giải thuật - Hiểu đƣợc lịch sử phát triển ngôn ngữ C - Biết đƣợc ứng dụng thực tế ngơn ngữ lập trình C - Thao tác thành thạo môi trƣờng phát triển C - Sử dụng đƣợc hệ thống trợ giúp phần mềm C - Nghiêm túc, chủ động tìm hiểu tính ngơn ngữ C Nội dung chính: MÔ TẢ THUẬT GIẢI Thuật giải: Là tập hợp hữu hạn thao tác (các công việc, phép tốn… ) đƣợc thực theo trình tự thích hợp Có nhiều cách diễn đạt thuật giải: Bằng lời (ngơn ngữ tự nhiên) Bằng ngơn ngữ lập trình Bằng lƣu đồ - Ngôn ngữ tự nhiên ngôn ngữ sử dụng, sử dụng ngôn ngữ tự nhiên để mô tả giải thuật Ví dụ: Ta có giải thuật giải phƣơng trình bậc dạng ax + b = nhƣ sau: Bƣớc 1: Nhập giá trị a, b Bƣớc 2: Xét giá trị a xem có hay khơng? Nếu a=0 làm bƣớc 3, a khác khơng làm bƣớc Bƣớc 3: (a 0) Nếu b ta kết luận phƣơng trình vơ số nghiệm, b khác ta kết luận phƣơng trình vơ nghiệm Bƣớc 4: (a khác 0) Ta kết luận phƣơng trình có nghiệm x=-b/a - Ngơn ngữ lập trình: Là hệ thống đƣợc kí hiệu hố để diễn tả tính tốn dạng mà ngƣời máy đọc hiểu đƣợc - Lƣu đồ (Flowchart): Sử dụng kí hiệu sơ đồ hình khối để thực thuật giải 10 break; case '/': if (so2!=0) { thuong=float(so1)/float(so2); printf("\n %d / %d =%f", so1, so2, thuong); } else printf("Khong chia duoc cho 0"); break; default : printf("\n Chua ho tro phep toan %c", pheptoan); break; } getch(); return 0; } Trong ví dụ trên, phải xóa ký tự vùng đệm trƣớc nhập phép tốn? Ví dụ 3: Yêu cầu ngƣời thực chƣơng trình nhập vào số nguyên dƣơng tháng năm in số ngày tháng - Tháng có 31 ngày: 1, 3, 5, 7, 8, 10, 12 - Tháng có 30 ngày: 4, 6, 9, 10 - Tháng có 28 29 ngày : - Nếu nhập vào số 12 in câu thơng báo ―khơng có tháng ― #include #include int main () { int thang; clrscr(); printf("\n Nhap vao thangs nam "); scanf("%d",&thang); switch(thang) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf("\n Thang %d co 31 ",thang); break; case 4: case 6: case 9: case 11: printf("\n Thang %d co 30 ",thang); break; 58 case 2: printf ("\ Thang co 28 hoac 29 ngay"); break; default : printf("\n Khong co thang %d", thang); break; } getch(); return 0; } Trong ví dụ trên, phải sử dụng case 1:, case 3:, …case 12: ? BÀI TẬP Mục đích yêu cầu Làm quen nắm vững lệnh có cấu trúc C, biết cách chọn lựa trƣờng hợp sử dụng cấu trúc Thực các chƣơng trình phần nội dung cách kết hợp lệnh rẽ nhánh lệnh đơn Bài Viết chƣơng trình nhập vào số nguyên a Nếu a chia hết cho thơng báo số chia hết cho tăng a lên đơn vị Bài Viết chƣơng trình nhập vào số nguyên a Kiểm tra a>=3 thực lấy a-3 Hiển thị kết hình Bài Viết chƣơng trình nhập vào số nguyên a Kiểm tra a chia hết cho đƣa thơng báo ― số a số chẵn‖, ngƣợc lại thông báo ―số a sổ lẻ‖ Bài Viết chƣơng trình nhập số từ bàn phím, tìm số lớn số đó, in kết lên hình Bài Viết chƣơng trình tính chu vi, diện tích tam giác với yêu cầu sau nhập số a, b, c phải kiểm tra lại xem a, b, c có tạo thành tam giác khơng? Nếu có tính chu vi diện tích Nếu khơng in câu " Khơng tạo thành tam giác" Bài Viết chƣơng trình giải phƣơng trình bậc ax+b=0 với a, b nhập từ bàn phím Bài Viết chƣơng trình giải phƣơng trình bậc hai ax 2+bx + c = với a, b, c nhập từ bàn phím Bài Viết chƣơng trình nhập từ bàn phím số a, b ký tự ch Nếu: + ch ―+― thực phép tính a + b in kết lên hình + ch ―–― thực phép tính a - b in kết lên hình + ch ―*‖ thực phép tính a * b in kết lên hình + ch ―/‖ thực phép tính a / b in kết lên hình Bài Viết chƣơng trình nhập vào số tháng năm năm Xét xem tháng có ngày? Biết rằng: 59 Nếu tháng 4, 6, 9, 11 số ngày 30 Nếu tháng 1, 3, 5, 7, 8, 10, 12 số ngày 31 Nếu tháng năm nhuận số ngày 29, ngƣợc lại số ngày 28 10 Có hai phƣơng thức gửi tiền tiết kiệm: gửi khơng kỳ hạn lãi suất 2.4%/tháng, tháng tính lãi lần, gửi có kỳ hạn tháng lãi suất 4%/tháng, tháng tính lãi lần Viết chƣơng trình tính tổng cộng số tiền vốn lẫn lời sau thời gian gửi nhập từ bàn phím Bài 10 Một số nguyên dƣơng chia hết cho tổng chữ số chia hết cho Viết chƣơng trình nhập vào số có chữ số, kiểm tra số có chia hết cho dùng tính chất (if) Bài 11 Trị chơi "Oẳn tù tì": trị chơi có ngƣời chơi ngƣời dùng tay để biểu thị công cụ sau: Kéo, Bao Búa Nguyên tắc: Kéo thắng bao Bao thắng búa Búa thắng kéo Viết chƣơng trình mơ trò chơi cho hai ngƣời chơi ngƣời chơi với máy (switch) Bài 12 Viết chƣơng trình tính tiền điện gồm khoản sau: Tiền thuê bao điện kế : 1000 đồng / tháng Định mức sử dụng điện cho hộ 50 Kw Phần định mức tính giá 450 đồng /Kwh Nếu phần vƣợt định mức