Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 201 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
201
Dung lượng
688,58 KB
Nội dung
Giáo Trình Lập Trình Căn Bản Biên tập bởi: duongvanhieu Giáo Trình Lập Trình Căn Bản Biên tập bởi: duongvanhieu Các tác giả: unknown Phiên trực tuyến: http://voer.edu.vn/c/ab1e3116 MỤC LỤC Phần I.Tổng quan môn học 1.1 Tổng quan 1.2 Giới thiệu Cấu Trúc Dữ Liệu Và Giải Thuật 1.2.1 Mục tiêu học 1.2.2 Cấu trúc liệu giải thuật 1.2.3 Bài tập Phần II.Ngôn ngữ Lập trình C 2.1 Chương I Giới thiệu ngôn ngữ C & Môi trường TurBo C 3.0 2.1.1 Mục tiêu học 2.1.2 Tổng quan ngôn ngữ lập trình C 2.1.3 Môi trường lập trình Turbo C 2.2 Chương II Các thành phần C 2.2.1 Mục tiêu học 2.2.2 Kiểu liệu sơ cấp chuẩn C 2.2.3 Tên C 2.2.4 Biến Biểu thức Trong C 2.2.5 Bài tập 2.3 Chương III Các câu lệnh đơn C 2.3.1 Mục tiêu học 2.3.2 Câu lệnh lệnh đơn C 2.3.3 Bài tập câu lệnh đơn C 2.4 Chương IV Các lệnh có cấu trúc 2.4.1 Mục tiêu học 2.4.2 Khối lệnh lập trình C 2.4.3 Cấu trúc rẽ nhánh lập trình C 2.4.4 Cấu trúc lựa chọn 2.4.5 Cấu trúc vòng lặp câu lệnh đặc biệt 2.4.6 Bài tập 2.5 Chương V Chương trình 2.5.1 Mục tiêu học chương trình lập trình C 2.5.2 Hàm cách xây dựng hàm 2.5.3 Bài tập 2.6 Chương VI Kiểu mảng 1/199 2.6.1 Mục tiêu học 2.6.2 Mảng chiều Mảng nhiều chiều 2.6.3 Bài tập 2.7 Chương VII Kiểu trỏ 2.7.1 Mục tiêu học 2.7.2 Kiểu liệu “con trỏ” 2.7.3 Bài tập 2.8 Chương VIII Chuỗi ký tự 2.8.1 Mục tiêu học 2.8.2 Chuỗi ký tự thao tác chuỗi ký tự 2.8.3 Bài tập 2.9 Chương IX Kiểu cấu trúc 2.9.1 Mục tiêu học 2.9.2 Kiểu cấu trúc thao tác kiểu cấu trúc 2.9.3 Bài tập kiểu cấu trúc 2.10 Chương X Kiểu tập tin 2.10.1 Mục tiêu học 2.10.2 Kiểu tập tin thao tác kiểu tập tin 2.10.3 Bài tập Tham gia đóng góp 2/199 Phần I.Tổng quan môn học Tổng quan MỤC ĐÍCH YÊU CẦU Môn Lập Trình Căn Bản A 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ôn học tảng để tiếp thu hầu hết môn học khác chương trình đào tạo Mặt khác, nắm vững ngôn ngữ C sở để phát triển ứng dụng Học xong môn này, sinh viên phải nắm vấn đề sau: - Khái niệm ngôn ngữ lập trình - Khái niệm kiểu liệu - Kiểu liệu có cấu trúc (cấu trúc liệu) - Khái niệm giải thuật - Ngôn ngữ biểu diễn giải thuật - Ngôn ngữ sơ đồ (lưu đồ), sử dụng lưu đồ để biểu diễn giải thuật - Tổng quan Ngôn ngữ lập trình C - Các kiểu liệu C - Các lệnh có cấu trúc - Cách thiết kế sử dụng hàm C - Một số cấu trúc liệu C ĐỐI TƯỢNG MÔN HỌC Môn học lập trình dùng để giảng dạy cho sinh viên sau: - Sinh viên năm thứ chuyên ngành Tin học, Toán Tin, Lý Tin 3/199 - Sinh viên năm thứ chuyên ngành Điện tử (Viễn thông, Tự động hóa…) NỘI DUNG CỐT LÕI Trong khuôn khổ 45 tiết, giáo trình cấu trúc thành phần: Phần giới thiệu lập trình cấu trúc, khái niệm lập trình, giải thuật… Phần trình bày có hệ thống ngôn ngữ lập trình C, câu lệnh, kiểu liệu… PHẦN 1: Giới thiệu cấu trúc liệu giải thuật PHẦN 2: Giới thiệu ngôn ngữ lập trình - Ngôn ngữ lập trình C Chương 1: Giới thiệu ngôn ngữ C & môi trường lập trình Turbo C Chương 2: Các thành phần ngôn ngữ C Chương 3: Các kiểu liệu sơ cấp chuẩn lệnh đơn Chương 4: Các lệnh có cấu trúc Chương 5: Chương trình Chương 6: Kiểu mảng Chương 7: Kiểu trỏ Chương 8: Kiểu chuỗi ký tự Chương 9: Kiểu cấu trúc Chương 10: Kiểu tập tin KIẾN THỨC LIÊN QUAN Để học tốt môn Lập Trình Căn Bản A, sinh viên cần phải có kiến thức tảng sau: - Kiến thức toán học - Kiến thức kỹ thao tác máy tính DANH MỤC TÀI LIỆU THAM KHẢO [1] Nguyễn Văn Linh, Giáo trình Tin Học Đại Cương A, Khoa Công Nghệ Thông Tin, Đại học Cần Thơ, 1991 4/199 [2] Nguyễn Đình Tê, Hoàng Đức Hải , Giáo trình lý thuyết tập ngôn ngữ C; Nhà xuất Giáo dục, 1999 [3] Nguyễn Cẩn, C – Tham khảo toàn diện, Nhà xuất Đồng Nai, 1996 [4] Võ Văn Viện, Giúp tự học Lập Trình với ngôn ngữ C, Nhà xuất Đồng Nai, 2002 [5] Brain W Kernighan & Dennis Ritchie, The C Programming Language, Prentice Hall Publisher, 1988 TỪ KHÓA Bài toán, chương trình, giải thuật, ngôn ngữ giả, lưu đồ, biểu thức, gán, rẽ nhánh, lặp, hàm, mảng, trỏ, cấu trúc, tập tin 5/199 Giới thiệu Cấu Trúc Dữ Liệu Và Giải Thuật Mục tiêu học Học xong chương này, sinh viên nắm bắt vấn đề sau: - Khái niệm ngôn ngữ lập trình - Khái niệm kiểu liệu - Kiểu liệu có cấu trúc (cấu trúc liệu) - Khái niệm giải thuật - Ngôn ngữ biểu diễn giải thuật - Ngôn ngữ sơ đồ (lưu đồ), sử dụng lưu đồ để biểu diễn giải thuật Trọng tâm phần giải thuật & cách biểu diễn giải thuật Chính nhờ điều ta giải yêu cầu chương trình máy tính 6/199 Cấu trúc liệu giải thuật TỪ BÀI TOÁN ĐẾN CHƯƠNG TRÌNH Giả sử cần viết chương trình để giải phương trình bậc có dạng ax2 + bx + c = hay viết chương trình để lấy bậc n số thực m ( n√m) Công việc phải hiểu biết cách giải toán lời giải thông thường người làm toán Để giải toán máy tính (lập trình cho máy tính giải) cần phải thực qua bước như: • Mô tả bước giải toán • Vẽ sơ đồ xử lý dựa bước • Dựa sơ đồ xử lý để viết chương trình xử lý ngôn ngữ giả (ngôn ngữ bình thường chúng ta) • Chọn ngôn ngữ lập trình chuyển chương trình từ ngôn ngữ giả sang ngôn ngữ lập trình để tạo thành chương trình hoàn chỉnh • Thực chương trình: nhập vào tham số, nhận kết Trong nhiều trường hợp, từ toán thực tế phải xây dựng mô hình toán xác định bước để giải Vấn đề trình bày chi tiết môn Cấu Trúc Dữ Liệu GIẢI THUẬT Khái niệm giải thuật Giải thuật hệ thống chặt chẽ rõ ràng quy tắc nhằm xác định dãy thao tác liệu vào cho sau số hữu hạn bước thực thao tác ta thu kết toán Ví dụ 1: Giả sử có hai bình A B đựng hai loại chất lỏng khác nhau, chẳng hạn bình A đựng rượu, bình B đựng nước mắm Giải thuật để hoán đổi (swap) chất lỏng đựng hai bình là: • • • • Yêu cầu phải có thêm bình thứ ba gọi bình C Bước 1: Đổ rượu từ bình A sang bình C Bước 2: Đổ nước mắm từ bình B sang bình A Bước 3: Đổ rượu từ bình C sang bình B 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 7/199 • 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 không chia hết cho UCLN thực bước 4, ngược lại (cả 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 Các đặc trưng giải thuật • Tính kết thúc: Giải thuật phải dừng sau số hữu hạn bước • Tính xác định: Các thao tác máy tính phải thực máy tính khác thực bước giải thuật phải cho kết • Tính phổ dụng: Giải thuật phải "vét' hết trường hợp áp dụng cho loạt toán loại • Tính hiệu quả: Một giải thuật đánh giá tốt đạt hai tiêu chuẩn sau: - Thực nhanh, tốn thời gian - Tiêu phí tài nguyên máy, chẳng hạn tốn nhớ Giải thuật tìm UCLN nêu đạt tính kết thúc qua lần thực bước UCLN giảm đơn vị trường hợp xấu UCLN=1, giải thuật phải dừng Các thao tác trình bày bước, máy tính thực nên có tính xác định Giải thuật đạt tính phổ dụng dùng để tìm UCLN cho hai số nguyeên dương a b Tuy nhiên tính hiệu giải thuật chưa cao; cụ thể thời gian chạy máy tốn nhiều số giải thuật khác mà có dịp trở lại phần lập trình C Ngôn ngữ biểu diễn giải thuật Để biểu diễn giải thuật, cần phải có tập hợp ký hiệu dùng để biểu diễn, ký hiệu biểu diễn cho hành động Tập hợp ký hiệu lại tạo thành ngôn ngữ biểu diễn giải thuật 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 8/199 Ví dụ Ví dụ 1: Viết chương trình ghi lên tập tin CacSo.Dat giá trị số (thực, nguyên, nguyên dài) Sau đọc số từ tập tin vừa ghi hiển thị lên hình #include #include int main() { FILE *f; clrscr(); f=fopen("D:\\CacSo.txt","wb"); if (f!=NULL) { double d=3.14; int i=101; long l=54321; fwrite(&d,sizeof(double),1,f); fwrite(&i,sizeof(int),1,f); fwrite(&l,sizeof(long),1,f); /* Doc tu tap tin*/ rewind(f); fread(&d,sizeof(double),1,f); fread(&i,sizeof(int),1,f); fread(&l,sizeof(long),1,f); 185/199 printf("Cac ket qua la: %f %d %ld",d,i,l); fclose(f); } getch(); return 0; } Ví dụ 2: Mỗi sinh viên cần quản lý thông tin: mã sinh viên họ tên Viết chương trình cho phép lựa chọn chức năng: nhập danh sách sinh viên từ bàn phím ghi lên tập tin SinhVien.dat, đọc liệu từ tập tin SinhVien.dat hiển thị danh sách lên hình, tìm kiếm họ tên sinh viên dựa vào mã sinh viên nhập từ bàn phím Ta nhận thấy phần tử tập tin SinhVien.Dat cấu trúc có trường: mã họ tên Do đó, ta cần khai báo cấu trúc sử dụng hàm đọc/ghi tập tin nhị phân với kích thước phần tử tập tin kích thước cấu trúc #include #include #include typedef struct { char Ma[10]; char HoTen[40]; } SinhVien; void WriteFile(char *FileName) { FILE *f; 186/199 int n,i; SinhVien sv; f=fopen(FileName,"ab"); printf("Nhap bao nhieu sinh vien? ");scanf("%d",&n); fflush(stdin); for(i=1;i