Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 51 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
51
Dung lượng
1,2 MB
Nội dung
Giáo trình: Lập trình Trường Cao đẳng nghề n Bái LỜI NĨI ĐẦU Giáo trình “Lập trình bản” giáo trình nghề Cơng nghệ thơng tin, xây dựng biên soạn sở chương trình khung đào tạo nghề Bộ Lao động – Thương binh Xã hội ban hành chi tiết hóa chương trình đào tạo nghề Cơng nghệ thông tin (ứng dụng phần mềm) Trường Cao đẳng nghề Yên Bái Đối tượng phục vụ học sinh sinh viên khố đào tạo trình độ cao đẳng nghề, trung cấp nghề Công nghệ thông tin, sở sản xuất làm tài liệu học tập nghiên cứu Các nhà quản lý người sử dụng nhân lực sở sản xuất làm tài liệu tham khảo Giáo trình mơn học “Lập trình bản” biên soạn theo nguyên tắc: Tính định hướng thị trường lao động, tính hệ thống khoa học, tính ổn định linh hoạt, hướng tới liên thông, chuẩn đào tạo nghề nước giới, tính đại sát thực với sản xuất Nội dung giáo trình gồm chương: Cung cấp cho sinh viên khái niệm ngôn ngữ lập trình C: câu lệnh, từ khóa, cú pháp, cách khai báo sử dụng biến, hàm cấu trúc lệnh ngôn ngữ C;Hiểu ý nghĩa, cách khai báo, cách truy xuất với số cấu trúc liệu;Biết số thuật toán để xử lý số yêu cầu đơn giản; Cài đặt số chương trình ứng dụng đơn giản ngơn ngữ lập trình C;Đọc hiểu chỉnh sửa chương trình C có sẵn; Trong q trình thực nhóm biên soạn tham khảo nhiều tài liệu liên quan trường bạn, sách kỹ thuật chuyên gia đồng thời tham khảo nhiều tài liệu trường đào tạo, hãng sản xuất; yêu cầu thực tế, kiến thức nhóm biên soạn cố gắng cập nhật thể giáo trình Ngồi cịn có tham gia đóng góp ý kiến tích cực cán bộ, kỹ sư kỹ thuật chuyên ngành tỉnh để giáo trình hồn thiện Giáo trình mơn học “Lập trình bản” Hội đồng thẩm định Trường Cao đẳng nghề Yên Bái nghiệm thu trí đưa vào sử dụng làm tài liệu thống nhà trường phục vụ giảng dạy học tập học sinh sinh viên Giáo trình biên soạn lần đầu nên cố gắng song khó tránh khỏi thiếu sót, chúng tơi mong nhận ý kiến đóng góp người sử dụng đồng nghiệp để giáo trình ngày hoàn thiện Xin trân trọng giới thiệu! HIỆU TRƯỞNG Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái Thạc sỹ: Trịnh Tiến Thanh MỤC LỤC LỜI MỞ ĐẦU Chương 1:TỔNG QUAN VỀ NGÔN NGỮ C Giới thiệu ngôn ngữ C 1.1 Lịch sử phát triển 1.2 Sự cần thiết Các thao tác 2.1 Khởi động 2.2 Thoát khỏi 2.3 Tạo mới, ghi chương trình C Sử dụng trợ giúp 10 Một số thao tác menu bar 10 Chương 2: CÁC THÀNH PHẦN CƠ BẢN 17 Từ khóa kí hiệu 17 1.1 Từ khóa .17 1.2 Ký hiệu .17 1.3 Tập ký hiệu .17 Các kiểu liệu sơ cấp 18 2.1 Kiểu số nguyên 18 2.2 Kiểu số dấu phẩy động 19 2.3 Kiểu ký tự 19 Biến, hằng, biểu thức 20 3.1 Phân loại, khai báo sử dụng biến 20 3.2 Hằng 20 3.3 Biểu thức 22 4.Cấu trúc chương trình 23 Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái 4.1 Tiền xử lý biên dịch 23 4.2 Cấu trúc chương trình C 24 4.3 Các thư viện thông dụng 25 4.4 Chú thích chương trình 25 Các phép toán 26 Câu lệnh 27 6.1 Khái niệm 27 6.2 Lệnh gán lệnh gộp .27 6.3 Nhập xuất liệu .29 6.4 Các lệnh toán học 31 6.5 Một số lệnh làm việc với hình bàn phím .31 Thực thi chương trình 32 BÀI TẬP THỰC HÀNH 33 Chương 3: CÁC LỆNH CẤU TRÚC 37 Cấu trúc rẽ nhánh 37 1.1 Dạng đầy đủ 37 1.2 Dạng không đầy đủ 38 Cấu trúc lặp 41 3.1 Cấu trúc lặp for 41 3.2 Cấu trúc lặp while, while 42 Các lệnh đặc biệt 44 4.1 Lệnh Break 44 4.2 Lệnh continue 45 4.3 Lệnh goto 45 BÀI TẬP THỰC HÀNH 46 Chương 4: HÀM 52 Khái niệm hàm 52 1.1Khái niệm phân loại 52 1.2 Quy tắc hoạt động hàm .53 Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái Xây dựng hàm 53 2.1 Định nghĩa hàm 53 2.2 Sử dụng hàm 55 Các tham số hàm 56 3.1 Phân biệt loại tham số 56 3.2 Cách truyền tham số 57 Truyền tham trị .57 Truyền biến 57 Các đối số mặc định .57 Chiều dài biến đổi danh sách tham số .57 Các tham số danh định 58 3.3 Biến toàn cục biến cục 58 Hàm đệ quy 59 4.1 Khái niệm đệ quy 59 4.2 Các toán dùng đệ quy 59 4.3 Cách xây dựng hàm đệ quy .60 4.4 Các ví dụ hàm đệ quy 60 BÀI TẬP VẬN DỤNG 63 Chương 5: MẢNG 67 Khái niệm mảng 67 Khai báo mảng 67 Truy xuất mảng 70 3.1 Truy xuất mảng chiều 70 3.2 Truy xuất mảng chiều 70 BÀI TẬP THỰC HÀNH 72 Chương 6: CON TRỎ 77 Khái niệm trỏ địa 77 Khai báo sử dụng biến trỏ 78 2.1 Khai báo biến trỏ .78 Giáo trình: Lập trình 2.2 Trường Cao đẳng nghề Yên Bái Các thao tác trỏ 78 Con trỏ mảng chiều 82 3.1 Phép toán lấy địa 83 3.2 Tên mảng địa .84 3.3 Con trỏ trỏ tới phần tử mảng chiều 85 Con trỏ hàm 87 BÀI TẬP THỰC HÀNH 88 Chương : CHUỖI KÝ TỰ 91 Khái niệm 91 Khai báo 91 2.1 Khai báo theo mảng 91 Các thao tác chuỗi 92 3.1 Nhập chuỗi từ bàn phím 92 3.2 Xuất chuỗi hình 92 3.3 Một số hàm xử lý chuỗi 93 3.4 Một số thao tác chuỗi 94 BÀI TẬP THỰC HÀNH 97 PHỤ LỤC 101 HƯỚNG DẪN DEBUG TRÊN MÔI TRƯỜNG BORLAND C 101 TÀI LIỆU THAM KHẢO 104 Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái CHƯƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ C Giới thiệu ngôn ngữ C 1.1 Lịch sử phát triển 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ữ lập trình C dựa ngôn ngữ BCPL (do Martin Richards đưa vào năm 1967) ngôn ngữ B (Do 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 DEC PDP-11 Năm 1978, Dennish Ritchie B.W Kernighan cho xuất “Ngơn ngữ lập trình C” phổ biến rộng rãi đến ngày Lúc ban đầu, C thiết kế nhằm lập trình mơi trường hệ điều hành UNIX nhằm mục đích cho cơng việc lập trình phức tạp Nhưng sau, với nhu cầu phát triển ngày tăng công việc lập trình, C vượt qua khn khổ phịng thí nghiệm Bell nhanh chóng hội nhập vào giới lập trình để cơng ty lập trình sử dụng cách rộng rãi Sau đó, cơng ty sản xuất phần mềm đưa phiên hỗ trợ cho việc lập trình ngơn ngữ C chuẩn ANSI C khai sinh từ 1.2 Sự cần thiết Ngơn ngữ lập trình C làm thay đổi giới máy tính Sự tác động nhiều khơng đánh giá mức Nó thay đổi cách tiếp cận nhìn nhận lập trình cách Sự đời C kết trực tiếp cần thiết phải thay đổi cấu trúc, hiệu quả, ngôn ngữ bậc cao thay cho mã máy viết chương trình hệ thống Như biết, thiết kế ngơn ngữ lập trình, cân nhắc ln xem xét giữa: - Tính dễ dàng sử dụng sức mạnh - Sự an toàn - Sự chặt chẽ khả mở rộng Trước có C, lập trình viên thường xuyên phải chọn ngôn ngữ thu gọn tập đặc điểm Ví dụ, FORTRAN dùng để viết chương trình hiệu cho ứng dụng khoa học, khơng tốt cho viết mã hệ thống Trong BASIC dễ dàng cho người học lại khơng đủ mạnh thiếu cấu trúc cho chương trình lớn Ngơn ngữ Assembly dùng để viết chương trình hiệu cao không dễ dàng để sử dụng gỡ rối khó khăn Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái Một số vấn đề khác ngơn ngữ lập trình BASIC, COBOL, không thiết kế dựa yếu tố cấu trúc Chúng dựa lệnh GOTO để điều khiển chương trình Vì mà chương trình viết ngôn ngữ hướng tới việc sinh mã spagheti – khối lộn xộn lệnh nhảy rẽ nhánh làm cho chương trình khơng thể hiểu Trong ngôn ngữ Pascal ngôn ngữ cấu trúc, khơng thiết kế để đạt hiệu cao, thiếu đặc điểm cần thiết để ứng dụng cho chương trình lớn Vì thế, trước có ngơn ngữ C, khơng có ngơn ngữ dung hịa xung đột tồn trước Ngơn ngữ C ngơn ngữ lập trình hệ thống mạnh mẽ “mềm dẻo”, có thư viện gồm nhiều hàm (function) tạo sẵn Người lập trình tận dụng hàm để giải tốn mà khơng cần phải tạo Hơn nữa, ngơn ngữ C hỗ trợ nhiều phép tốn nên phù hợp cho việc giải toán kỹ thuật có nhiều cơng thức phức tạp Ngồi ra, C cho phép người lập trình tự định nghĩa thêm kiểu liệu trìu tượng khác Tuy nhiên, điều mà người học lập trình C thường gặp “rắc rối” “hơi khó hiểu” “mềm dẻo” C Dù vậy, C phổ biến rộng rãi trở thành cơng cụ lập trình mạnh, sử dụng ngôn ngữ lập trình chủ yếu việc xây dựng phần mềm Các thao tác 2.1 Khởi động Turbo C môi trường hỗ trợ lập trình C hãng Borland cung cấp Mơi trường cung cấp chức như: 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 - Sau cài đặt song ta có thư mục TC TC30 thư mục có thư mục sau TC BIN Chứa tệp tin chýõng trình có tệp TC.EXE INCLUDE Chứa tệp tin khai báo thý viện ( *.h) LIB Chứa tệp tin mã lệnh thý viện (*.LIB) - Để khởi động chương trình chạy tệp tin TC.EXE thư mục Bin TurboC Màn hình giao diện TurboC có dạng sau: Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái Hình 1.2.1: Màn hình giao diện TurboC 3.0 Dịng gọi menu (menu bar) Mỗi mục menu có nhiều mục nằm menu kéo xuống Dòng ghi chức số phím đặc biệt Muốn vào menu ngang ta gõ phím F10 Sau dùng phím mũi tên qua trái qua phải để di chuyển vùng sáng tới mục cần chọn gõ phím Enter Trong menu kéo xuống ta lại dùng phím mũi tên lên xuống để di chuyển vùng sáng tới mục cần chọn gõ Enter Ta chọn mục menu cách giữ phím Alt gõ vào ký tự đại diện mục 2.2 Thốt khỏi Để thoát khỏi Turbo C trở DOS hay Windows có cách: - Cách 1: Vào menu File/Exit - Cách : Dùng phím tắt : Alt + X 2.3 Tạo mới, ghi chương trình C Muốn soạn thảo chương trình ta chọn mục New menu File (File ->New) Trên hình xuất vùng trống ta soạn thảo nội dung chương trình Trong trình soạn thảo chương trình ta sử dụng phím sau: Các phím chèn ký tự/ dịng Insert Ctrl - N Thay đổi viết xen hay viết chồng Xen dòng trống vào truớc vị trí trỏ Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái Các phím xố ký tự/ dịng Phím Ý nghĩa Phím tắt Delete Xố ký tự vị trí trỏ Ctrl -G BackSpace Di chuyển sang trái đồng thời xoá ký tự đứng Ctrl -H truớc trỏ Xoá dịng chứa trỏ Ctrl -Y Xố từ vị trí trỏ đến cuối dịng Ctrl –Q- Y Xố ký tự bên phải trỏ Ctrl -T - Ghi chương trình soạn thảo vào đĩa Sử dụng File/Save gõ phím F2 Có hai trường hợp xảy ra: Nếu chương trình chưa ghi lần hội thoại xuất cho phép bạn xác định tên tập tin (FileName) Tên tập tin phải tuân thủ quy cách đặt tên DOS khơng cần có phần mở rộng (sẽ tự động có phần mở rộng C CPP) Sau gõ phím Enter Nếu chương trình ghi lần ghi thay đổi bổ sung lên tập tin chương trình cũ Chú ý: Để đề phịng điện soạn thảo chương trinh bạn nên gõ phím F2 Sử dụng trợ giúp Trên menu Help bao gồm lệnh gọi trợ giúp người lập trình cần giúp đỡ số vấn đề như: Cú pháp câu lệnh, cách sử dụng hàm có sẵn… - Lệnh Contents: Hiển thị tồn nội dung phần help - Lệnh Index: Hiển thị bảng tìm kiếm theo mục Một số thao tác menu bar Các lệnh menu File - Lệnh New : Dùng để tạo chương trình Tên ngầm định chương trình NONAMEXX.C (XX số từ 00 đến 99) - Lệnh Open : Dùng để mở chương trình có sẵn đĩa để sửa chữa, bổ sung thực chương trình Khi tập tin mở văn chương trình 10 để Hình 1.4a Các lệnh menu file Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái CHƯƠNG 3: CÁC LỆNH CẤU TRÚC Cấu trúc rẽ nhánh Lệnh rẽ nhánh cho phép chương trình thực khối lệnh tùy theo trường hợp cụ thể 1.1 Dạng đầy đủ Lệnh rẽ nhánh cho phép rẽ hai nhánh ứng với trường hợp sai biểu thức trọn, cách viết sau: Cú pháp: if(điều_kiện_lựa_trọn) Hành_động_1; else hành_động_2; Trong đó: - Điều kiện lựa trọn: Là biểu thức logic có giá trị sai - Hành động 2: Là khối lệnh để thực cho trường hợp tương ứng Sơ đồ khối: sai Biểu_thức Hành động Hành động Chức năng: Máy thực hành động điều kiện lựa chọn có giá trị dúng, ngược lại máy thực hành động Ví dụ: if(x%2 ==0) printf(“ so x so chan”); else 37 Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái printf(“so x la so le”); 1.2 Dạng không đầy đủ Cú pháp câu lệnh if(điều_kiện_lựa_trọn) Hành_động; Trong đó: Điều_kiện_lựa_chọn Hành_động tương tự câu lênh if dạng đầy đủ Sơ đồ khối Biểu thức Sai Đúng Hành động Ngun tắc hoạt động: Đầu tiên máy tính tốn giá trị biểu thức Nếu biểu thức trả giá trị máy tiến hành thực cơng _việc sau tiến hành thực câu lệnh sau câu lệnh if Nếu biểu thức trả giá trị sai máy bỏ qua việc thực công_việc câu lệnh if mà tiến hành thực công việc sau câu lệnh if Chú ý: - Mỗi hành động có nhiều lệnh, nhiều lệnh phải có cặp dấu đóng mở ngoặc nhọn { } ví dụ: int a,b; printf("Nhap vao gia tri cua so a, b!"); scanf("%d%d",&a,&b); if (a>b) { printf("\n Gia tri cua a lon hon gia tri cua b"); 38 Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái printf("\n a=%d, b=%d",a,b);} 2.Cấu trúc lựa chọn Lệnh switch cho phép rẽ nhiều nhánh với trường hợp xảy so sánh biểu thức chọn với giá trị trường hợp Cú pháp: switch(biểu_thức_chọn) { case giá_trị_1: hành động 1;[break;] case giá_trị_2: hành động 2;[break;] ………………………… case giá_trị_k: hành động k;[break;] default: hành động x; } Trong đó: - Biểu thức trọn: biểu thức dạng đếm số nguyên ký tự, dùng để so sánh lựa trọn - Các giá trị 1,2,…,k giá trị số nguyên ký tự để so sánh - Các hành động 1,2,…,k khối lệnh để thực ứng với trường hợp - Từ khóa break sau hành động để kết thúc lệnh sau trường hợp sẩy Có thể có khơng có từ khóa break Chức năng: Máy so sánh biểu thức trọn với giá trị 1, giá trị 2, giá trị 3,… giá trị k Nếu gặp giá trị i(i=1,2, ,k) giá trị biểu thức chọn máy thực hành động đứng sau giá trị i đến gặp từ khóa break hoăc hết hành động có lệnh switch Nếu tất trường hợp từ đến k không sẩy điều kiện mặc định máy thực hành động X sau từ khóa default 39 Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái Sơ đồ khối: Chú ý: - Lệnh switch khơng có phần từ khóa default khối lệnh x, máy khơng làm trường hợp khơng xẩy điều kiện biểu thức trọn giá trị tương ứng case Ví dụ: switch(t) { case 1: printf(“chu nhat”);break; case 2: printf(“thu 2”);break; 40 Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái case 3: printf(“thu 3”);break; case 4: printf(“thu 4”);break; case 5: printf(“thu 5”);break; case 6: printf(“thu 6”);break; case 7: printf(“thu 7”);break; default: printf(“khongla mot tuan”); } Cấu trúc lặp Lệnh lặp cho phép máy thực hành động lặp lại nhiều lần, viết lần, ngơn ngữ C có lệnh lặp sau 3.1 Cấu trúc lặp for Cú pháp: for (nhóm lệnh 1;biểu thức 2; nhóm lệnh3) Hành động lặp; Trong : - Các nhóm lệnh 1,2,3 lệnh điều khiển trình lặp for - Hành động lặp khối lệnh để máy tính thực lặp lại nhiều lần Sơ đồ khối: Chức năng: 41 Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái Máy thực nhóm lệnh lần đầu tiên, sau thực tính biểu thức kêt tương ứng với giá trị máy thực hành đơng lặp, máy thực nhóm lênh 3, lặp lại kiểm tra biểu thức kết tương ứng với giá trị sai Ví dụ: for(i=1;i=1;i ) printf(“\n i = %d”,i); Sẽ số nguyên từ xuống hình Chú ý: - Trong hành động lặp có lệnh nhiều lệnh, có nhiều lệnh phải có cặp dấu mở đóng ngoặc nhọn {} để tạo khối - Trong lệnh có nhóm lệnh thực lần đầu tiên, lại biểu thức nhóm lệnh hành động lặp, thực nhiều lần trình lặp - Các nhóm lệnh 1, biểu thức khơng xuất lênh for phải có dấu chấm phẩy (;) khơng có biểu thức máy xem điều kiện lặp luôn lặp vô tận - Trong nhóm lệnh có nhiều lệnh cách dấu phẩy biểu thức thay đổi nhóm lệnh máy lấy kết lệnh cuối làm điều kiện lặp dừng 3.2 Cấu trúc lặp while, while Lệnh While Cú pháp while (điều kiện lặp) Hành động lặp; Trong đó: - Điều kiện lặp : biểu thức so sánh biểu thức nguyên 42 Giáo trình: Lập trình Trường Cao đẳng nghề Yên Bái - Hành động lặp: lệnh thực hiều lần q trình lặp, có nhiều lệnh phải có dấu { } để đóng khối Sơ đồ khối Điều kiện lặp Hành động lặp sai Chức năng: Trong điều kiện lặp có giá trị máy lặp thực khối lệnh, dừng lại điều kiện sai Ví dụ: x=1; y=10; while(x 0) printf("\n BPT luon dung voi moi x"); else printf("\n BPT vo nghiem"); } if(a > 0) printf("\nNghiemcuaBPTla:x>%f",-b*1.0/a); if(a < 0) printf("\nNghiemcuaBPTla:x10): "); scanf("%d",&so); switch(so) { case 1:printf("\n so tieng anh la ONE");break; case 2:printf("\n so tieng anh la TWO");break; case 3:printf("\nso tieng anh la THREE");break; case 4:printf("\n so tieng anh la FOUR");break; case 5:printf("\n so tieng anh la FIVE");break; case 6:printf("\n so tieng anh la SIX");break; case 7:printf("\nso tieng anh la SEVEN");break; case 8:printf("\nso tieng anh la EIGHT");break; case 9:printf("\n so tieng anh la NINE");break; case 10:printf("\nso 10 tieng anh la TEN");break; default: printf("\n nhap du lieu sai"); } getch() ; } Bài tập Nhập vào số n từ bàn phím, lên hình số chẵn lẻ từ đến n (hiện hết số chẵn số lẻ) #include #include void main() { int n,i; clrscr(); printf("Nhap vao so n= ");scanf("%d",&n); printf("\n Cac so chan tu den %d la: for(i=1; i