Bài giảng KỸ THUẬT LẬP TRÌNH

207 2 0
  • Loading ...
1/207 trang
Tải xuống

Thông tin tài liệu

Ngày đăng: 23/03/2019, 00:48

HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN Bài giảng KỸ THUẬT LẬP TRÌNH Biên soạn Hà Đại Dương Nguyễn Mậu Uyên Hà Nội - 1/2013 MỤC LỤC Bài - TỔNG QUAN I Giới thiệu II Bài toán việc giải toán máy tính III Cơng cụ lập trình 12 IV Tóm tắt nội dung học 15 V Bài tập 15 Bài - NGÔN NGỮ LẬP TRÌNH C/C++ 16 I Giới thiệu 16 II Một số khái niệm 17 III Cấu trúc chương trình đơn giản 25 IV Nhập/Xuất liệu 28 V Tóm tắt nội dung học 33 VI Bài tập 33 Bài - Bài thực hành: MƠI TRƯỜNG LẬP TRÌNH VÀ CÁC LỆNH VÀO/RA 34 I Làm quen môi trường Dev-C++ 34 II Bài tập làm theo yêu cầu 34 III Bài tập tự làm 37 Bài - ĐIỀU KHIỂN CHỌN 40 I Khối lệnh 40 II Lệnh IF 41 III Lệnh SWITCH 44 IV Tóm tắt 48 V Bài tập 48 Bài - Bài thực hành: ĐIỀU KHIỂN CHỌN 49 I Bài tập làm theo yêu cầu 49 II Bài tập tự làm 52 Bài - ĐIỀU KHIỂN LẶP 53 I Lệnh FOR 53 II Lệnh WHILE 55 III Lệnh DO WHILE 57 IV Lệnh break continue 60 III Tóm tắt nội dung học 60 IV Bài tập 60 Bài - Bài thực hành: ĐIỀU KHIỂN LẶP 61 I Bài tập làm theo yêu cầu 61 II Bài tập tự làm 63 Bài - MẢNG VÀ CON TRỎ 66 I Mảng 66 II Con trỏ 74 IV Tóm tắt nội dung học 83 V Bài tập 83 Bài - Bài thực hành: MẢNG VÀ CON TRỎ 84 I Bài tập làm theo yêu cầu 84 II Bài tập tự làm 87 Bài 10 - XÂU KÝ TỰ 89 I Khai báo 89 II Nhập xuất chuỗi 90 III Một số hàm xử lý chuỗi 90 V Tóm tắt nội dung học 95 VI Bài tập 95 Bài 11 - Bài thực hành: XÂU KÝ TỰ 96 I Bài tập làm theo yêu cầu 96 II Bài tập tự làm 98 Bài 12 - HÀM VÀ CẤU TRÚC CHƯƠNG TRÌNH 100 I Tổ chức chương trình 100 II Hàm người dùng định nghĩa 104 III Con trỏ hàm 124 IV Đệ qui 128 V Tóm tắt nội dung học 132 VI Bài tập 132 Bài 13 - Bài thực hành: HÀM VÀ CẤU TRÚC CHƯƠNG TRÌNH 133 I Bài tập làm theo yêu cầu 133 II Bài tập tự làm 135 Bài 14 - CẤU TRÚC DỮ LIỆU DO NGƯỜI DÙNG TỰ ĐỊNH NGHĨA 137 I Cấu trúc liệu người dùng tự định nghĩa 137 II Ngăn xếp 148 III Hàng đợi 154 IV Tóm tắt nội dung học 157 V Bài tập 158 Bài 15 - Bài thực hành: CẤU TRÚC DỮ LIỆU DO NGƯỜI DÙNG TỰ ĐỊNH NGHĨA 159 I Bài tập làm theo yêu cầu 159 II Bài tập tự làm 165 Bài 16 - LÀM VIỆC VỚI FILE 167 I Một số khái niệm 167 II Các thao tác tập tin 168 III Truy cập tập tin văn 170 IV Truy cập tập tin nhị phân 174 V Tóm tắt nội dung học 178 VI Bài tập 178 Bài 17 - Bài thực hành LÀM VIỆC VỚI FILE 179 I Bài tập làm theo yêu cầu 179 II Bài tập tự làm 182 Bài 18 - MỘT SỐ VẤN ĐỀ MỞ RỘNG 183 I Cây, Hàm băm 183 II Khởi động đồ hoạ 187 III Các hàm đồ hoạ 190 IV Xử lý văn hình đồ hoạ 200 V Hiệu ứng hoạt hình đồ họa 202 VI Tóm tắt nội dung học 204 VII Bài tập 204 Bài 19 - Bài thực hành: MỘT SỐ VẤN ĐỀ MỞ RỘNG 205 I Bài tập làm theo yêu cầu 205 II Bài tập tự làm 205 Bài 20 - ÔN TẬP 206 I Những vấn đề lý thuyết 206 II Những vấn đề thực hành 207 Bài - TỔNG QUAN Nội dung học I Giới thiệu II Bài toán việc giải toán máy tính III Cơng cụ lập trình IV Bài tập I Giới thiệu Mục đích, Yêu cầu Mục đích môn học cung cấp cho sinh viên kiến thức kỹ thuật lập trình nói chung kỹ sử dụng cơng cụ lập trình C/C++ việc giải tốn chương trình phần mềm máy tính Kết thúc mơn học sinh viên trang bị kiến thức về: - Cách thức giải tốn máy tính; - Cơng cụ, kiếm thức việc thuật tốn hóa tốn; - Ngơn ngữ lập trình C/C++; - Một số cấu trúc liệu giải thuật điển hình Yêu cầu sinh viên - Có hiểu biết cấu trúc máy tính; - Có hiểu biết hệ điều hành; - Biết sử dụng phần mềm hệ thống việc quản lý tài nguyên, chép/copy liệu; - Biết sử dụng phần mền ứng dụng công cụ soạn thảo văn bản, truy cập internet, web - Nghe giảng làm tập Nội dung môn học Xem chi tiết mục lục Tài liệu học tập tham khảo Hà Đại Dương, Nguyễn Mậu Uyên, Tập Bài giảng Lập trình co bản, HVKTQS 2010; Trần Đức Huyên, Phương pháp giải toán tin học, Nhà xuất giáo dục 1997; Đào Thanh Tĩnh, Hà Đại Dương, Tin học đại cương, Học viện KTQS, 2003; Đỗ Xuân Lôi, Cấu trúc liệu giải thuật, NXB Giáo dục, 1997; Robert Sedgewick, Algorithns in C++, Addison-Wesley 1992; Niklaus Wirth Bản dịch Nguyễn Quốc Cường, Cấu trúc liệu + Giải thuật = Chương trình, , NXB KHKT, 2001; Giáo trình Tin Học Đại Cương A, Nguyễn Văn Linh, Khoa Công Nghệ Thơng Tin, Đại học Cần Thơ, 1991 Giáo trình lý thuyết tập ngơn ngữ C; Nguyễn Đình Tê, Hoàng Đức Hải, Nhà xuất Giáo dục, 1999 C - Tham khảo toàn diện, Nguyễn Cẩn, Nhà xuất Đồng Nai, 1996 10 Giúp tự học Lập Trình với ngơn ngữ C, Võ Văn Viện, Nhà xuất Đồng Nai, 2002 11 The C Programming Language, Brain W Kernighan & Dennis Ritchie, Prentice Hall Publisher, 1988 II Bài toán việc giải toán máy tính Phương pháp tổng quát để giải tốn máy tính Để giải tốn máy tính cần thực bước sau: Xác định toán; Xác định cấu trúc liệu để mơ tả tốn; Xây dựng thuật tốn; Soạn thảo văn chương trình, kiểm tra hồn thiện chương trình Xác định tốn Khái qt tốn Trong q trình tồn phát triển, cá nhân phải giải nhiều tốn đặt sống Có thể nói sống chuỗi toán mà ta phải đối đầu để giải Theo nhiều nhà nghiên cứu tốn diễn đạt theo sơ đồ chung sau: AB (*) đó: - A giả thiết, điều kiện ban đầu, thông tin cho, biết; - B kết luận, mục tiêu cần đạt phải tìm, phải làm kết thúc toán;  suy luận, giải pháp cần xác định chuỗi thao tác cần thực để có kết B từ có A Xác định tốn Theo sơ đồ việc xác định tốn có nghĩa xác định A, B xác định ln bước thực để “đi” từ A đến B Bài toán máy tính Tương tự (*), - A gọi đầu vào (INPUT); - B gọi đầu (OUTPUT);  CHƯƠNG TRÌNH MÁY TÍNH cho kết B với đầu vào A Khó khăn Việc xác định tốn máy tính thường gặp khó khăn sau: - Thông tin A, B thường không rõ ràng không đầy đủ; - Thông báo điều kiện đặt cho cách giải (=>) thường không nêu cách minh bạch; Ví dụ 1: Hãy viết chương trình cho phép giải phương trình bậc A =???, B=??? Ví dụ 2: Giả sử người A có số tiền X đem gửi tiết kiện, lãi xuất tháng L% hỏi sau T tháng A có tiền biết tháng tiền lãi cộng vào gốc Ví dụ 3: Bài tốn hậu - Hãy tìm cách đặt hậu bàn cờ vua cho quân hậu ăn quân hậu khác Ví dụ 4: Cho dãy số a1, a2, , an xếp dãy theo thứ tự giảm dần Ví dụ 5: Hãy xây dựng hệ thống quản lý hồ sơ kết học tập sinh viên A =???, B=??? Nhận xét quan trọng Việc xác định tốn rất quan trọng, ảnh hưởng tới cách thức chất lượng việc giải toán; - Một toán cho dù diễn đạt chi tiết, rõ ràng nên giả định phần lớn thông tin A, B tiềm ẩn đầu người giải Thông tin A B thường biểu tượng gợi nhớ đến thông tin tiềm ẩn - Bước để xác định toán phải phát biểu lại tốn cách xác theo ngơn ngữ riêng cách tiếp cận tốn, hiểu tốn - Bước tiếp tìm hiểu thông tin Input A, Output B mối liên hệ chúng; - Nên xét vài trường hợp cụ thể để thơng qua hiểu toán , thấy rõ thao tác phải làm Thực tế cho thấy có tốn tin học mơ tả thơng qua ví dụ (như: ) Cấu trúc liệu Giải thuật Cấu trúc liệu - Trong khoa học máy tính, cấu trúc liệu cách tổ chức lưu trữ truy cập liệu máy tính cho sử dụng cách hiệu (và phụ thuộc vào công cụ lập trình) - Ví dụ (trong C): Mảng (Array), Con trỏ (Pointer), Xâu ký tự (String), File, Stack, Queue - Thông thường, cấu trúc liệu chọn cẩn thận cho phép thực thuật toán hiệu - Việc chọn cấu trúc liệu thường chọn cấu trúc liệu trừu tượng Một cấu trúc liệu thiết kế tốt cho phép thực nhiều phép tốn, sử dụng tài nguyên, thời gian xử lý không gian nhớ tốt - Các cấu trúc liệu triển khai cách sử dụng kiểu liệu, tham chiếu phép tốn cung cấp ngơn ngữ lập trình Thuật tốn - Thuật tốn , gọi giải thuật, tập hợp hữu hạn thị hay phương cách định nghĩa rõ ràng cho việc hoàn tất số việc từ trạng thái ban đầu cho trước; thị áp dụng triệt để dẫn đến kết sau dự đoán - Thuật toán qui tắc hay qui trình cụ thể nhằm giải vấn đề số bước hữu hạn, nhằm cung cấp kết từ tập hợp kiện đưa vào Ví dụ 1: Giả sử có hai bình A B đựng hai loại chất lỏng khác nhau, A chứa dung dịch Da, B chứa dung dịch Db Giải thuật để đổi dung dịch Da vào bình B Db vào A là: u cầu phải có thêm bình thứ ba gọi bình C Bước 1: Đổ dung dịch Db vào bình C; Bước 2: Đổ dung dịch Da vào bình B; Bước 3: Đổ dung dịch Db vào bình A Ví dụ 2: Một giải thuật tìm ước chung lớn hai số a b là: Bước 1: Nhập vào hai số a b Bước 2: So sánh số a,b chọn số nhỏ gán cho UCLN Bước 3: Nếu hai số a b chia hết cho UCLN Thực bước Bước 4: Giảm UCLN đơn vị quay lại bước Bước 5: In UCLN - Kết thúc Một thuật tốn có tính chất sau: - Tính xác: để đảm bảo kết tính tốn hay thao tác mà máy tính thực xác - Tính rõ ràng: Thuật tốn phải thể câu lệnh minh bạch; câu lệnh xếp theo thứ tự định - Tính khách quan: Một thuật tốn dù viết nhiều người nhiều máy tính phải cho kết - Tính phổ dụng: Thuật tốn khơng áp dụng cho tốn định mà áp dụng cho lớp tốn có đầu vào tương tự - Tính kết thúc: Thuật toán phải gồm số hữu hạn bước tính tốn Trình tự thực bước thuật toán Giải thuật thiết kế theo ba cấu trúc suy luận sau đây: Tuần tự (Sequential): Các công việc thực cách tuần tự, công việc nối tiếp công việc Cấu trúc lựa chọn (Selection) : Lựa chọn công việc để thực vào điều kiện Có số dạng sau: - Cấu trúc 1: Nếu < điều kiện> (đúng) thực - Cấu trúc 2: Nếu < điều kiện> (đúng) thực , ngược lại (điều kiện sai) thực - Cấu trúc 3: Trường hợp < i> thực Cấu trúc lặp (Repeating): Thực lặp lại công việc không nhiều lần vào điều kiện Có hai dạng sau: - Lặp xác định: loại lặp mà viết chương trình, người lập trình xác định cơng việc lặp lần - Lặp không xác định: loại lặp mà viết chương trình người lập trình chưa xác định cơng việc lặp lần Số lần lặp xác định chương trình thực thi Biểu diễn thuật giải Ngơn ngữ tự nhiên: 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 giống ví dụ Ví dụ: Ta có giải thuật giải phương trình bậc dạng ax  b  sau: Bước 1: Nhận giá trị tham số 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 Lưu đồ thuật tốn: Ngơn ngữ sơ đồ (lưu đồ) ngôn ngữ đặc biệt dùng để mô tả giải thuật sơ đồ hình khối Mỗi khối qui định hành động mơ tả hình Ví dụ: So sánh số Giả mã: (tiếng Anh: Pseudocode, xuất phát từ chữ pseudo code) mô tả giải thuật ngắn gọn không thức, sử dụng quy ước có cấu trúc số ngơn ngữ lập trình (thường Pascal) thường bỏ chi tiết không cần thiết để giúp hiểu rõ giải thuật Ví dụ: Thuật giải phương trình bậc Vào: a,b,c Ra: Kết luận nghiệm BEGIN Delta: = b*b – 4*a*c; If Delta=0 Then Phương trình có nghiệm kép x=-b/(2*a); else begin if Delta
- Xem thêm -

Xem thêm: Bài giảng KỸ THUẬT LẬP TRÌNH, Bài giảng KỸ THUẬT LẬP TRÌNH

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay