Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 83 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
83
Dung lượng
2 MB
Nội dung
CLB Lập Trình PTIT – ProPTIT Tài liệu C MỤC LỤC Contents Bài Tổng quan lập trình ngôn ngữ lập trình C I.Các khái niệm II.Các bước xây dựng chương trình III.Biếu diễn thuật toán IV.Cài đặt thuật toán ngôn ngữ lập trình Bài : CÁC KIỂU DỮ LIỆU TRONG C I.Các kiểu liệu sở II Biến, , biểu thức câu lệnh III.Các lệnh nhập xuất 13 BÀI : CẤU TRÚC ĐIỀU KHIỂN 16 I.Cấu trúc rẽ nhánh 16 II Cấu trúc lặp 21 Bài 4: Mảng 23 I.Khái niệm 23 II.Khai báo 23 III.Truy xuất liệu mảng 25 Bài 5: GIỚI THIỆU VỀ C++ 31 I.Sự khác biệt C++ C 31 II.Nhập Xuất Trong C++ 32 Bài 6: Xử lý vào/ file văn C/C++ 34 I.Cách sử dụng với fstream 34 II.Cách sử dụng với kiểu FILE 38 III.Chuyển hướng standard input standard output file 42 Bài 7: Xâu (Chuỗi) 43 I.Khai báo chuỗi 43 II.Nhập chuỗi từ bàn phím 44 III.Xuất chuỗi lên hình 44 Tài liệu C Page CLB Lập Trình PTIT – ProPTIT IV.Một số hàm xử lý chuỗi (trong string.h) 44 V.Bảng tóm tắt hàm 49 Bài 8: Đệ quy 50 I.Khái niệm: 50 II.Đệ qui lập trình: 50 III.Quay lui 54 Bài 9: Cấu trúc STRUCT 60 I.Mở đầu: 60 II.Xây dựng kiểu cấu trúc, khai báo: 61 Bài 10: Con trỏ 64 Khai báo trỏ: 65 I.Dùng trỏ để trỏ tới địa biến: 65 II.Truy xuất: 65 III.Một số phép toán trỏ: 65 VI.Tham chiếu tham trị: 66 Bài 11: Các phương pháp xếp 67 I.Sắp xếp bọt 67 II.Sắp xếp chọn 68 III.Sắp xếp nhanh : 69 VI.Sort Algorithm 71 Bài 12: String 74 I.Kiểu chuỗi C hạn chế 74 II.Kiểu chuỗi string C++ 74 III.Các phương thức tiện ích string 74 TÀI LIỆU THAM KHẢO 83 Tài liệu C Page CLB Lập Trình PTIT – ProPTIT LỜI NÓI ĐẦU Thay mặt cho người biên soạn tập tài liệu này, có đôi lời muốn nói với bạn Trước hết, người soạn tài liệu KHÔNG phải GIÁO SƯ, TIẾN SĨ… Hay có trình độ học vấn uyên bác Nhưng tất kiến thức tích cóp từ nguồn đánh tin cậy từ “bố đẻ google” , phần kiến thức lý thuyết mà THẦY GIÁO/ GIÁO SƯ/ TIẾN SĨ giảng dạy từ trường đại học, biến chuyển, hay chuyển thể sang cách học “ Bình dân” để người bắt đầu không thấy lạ lẫm hay khó khăn để bắt đầu với ngôn ngữ lập trình Những người biên soạn chúng tôi, người chưa biết lập trình, phải học, phải sai để ngồi biên soạn tập tài liệu Là người trước, nên biết bạn sai đâu, vướng mắc đâu, nên tài liệu này, giảm tải cao siêu uyên bác mà nhà lập trình giỏi họ nói, để hạ mức xuống, phổ thông giúp bạn dễ dàng tiếp cận Vì hi vọng tập tài liệu hữu ích với bạn Hơn nữa, Sinh viên bạn, tầm hiểu biết sâu rộng giúp bạn giải đáp thắc mắc Cũng tập tài liệu có đôi chỗ thiếu sót, mong bạn đóng góp, nghiên cứu trao đổi để có tài liệu đầy đủ Chúng cần hợp tác bạn Mọi thắc mặc xin liên hệ Facebook:https://www.facebook.com/clubproptit/?fref=ts địa email: clblaptrinhptit@gmail.com Chúc bạn thành công! Tài liệu C Page CLB Lập Trình PTIT – ProPTIT Bài Tổng quan lập trình ngôn ngữ lập trình C I.Các khái niệm 1.Lập trình máy tính - Gọi tắt lập trình (programming) - Nghệ thuật cài đặt nhiều thuật toán trừu tượng có liên quan với ngôn ngữ lập trình để tạo chương trình máy tính 2.Thuật toán - Là tập hợp (dãy) hữu hạn thị (hành động) định nghĩa rõ ràng nhằm giải toán cụ thể a Ví dụ Thuật toán giải PT bậc nhất: ax + b = (a, b số thực) Input : a, b thuộc R Output : đưa nghiệm x b Các bước giải - Nếu a = + b = phương trình có nghiệm + b ≠ phương trình vô nghiệm Nếu a ≠ Phương trình có nghiệm x = -b/a 3.Các tính chất thuật toán - Tính xác: trình tính toán hay thao tác máy tính thực xác - Tính rõ ràng: câu lệnh minh bạch xếp theo thứ tự định - Tính khách quan: viết nhiều người máy tính kết phải Tài liệu C Page CLB Lập Trình PTIT – ProPTIT - Tính phổ dụng: áp dụng cho lớp toán có đầu vào tương tự - Tính kết thúc: hữu hạn bước tính toán II.Các bước xây dựng chương trình 1.Xây dựng chương trình Xác định vấn đề toán Lựa chọn phương pháp giải Biểu diễn bằng: • Ngôn ngữ tự nhiên • Lưu đồ - Sơ đồ khối • Mã giả Xây dựng thuật toán/ thuật giải Cài đặt chương trình Sửa lỗi cú pháp, lỗi ngữ nghĩa Hiệu chỉnh chương trình Thực chương trình Tài liệu C Page CLB Lập Trình PTIT – ProPTIT Ví dụ 2.1 Input : a, b thuộc R Output : nghiệm phương trình ax + b = Các bước giải Nhập số thực a b Nếu a = 2.1 Nếu b = 2.1.1 Phương trình vô số nghiệm 2.1.2 Kết thúc thuật toán 2.2 Ngược lại 2.2.1 Phương trình vô nghiệm 2.2.2 Kết thúc thuật toán Ngược lại 3.1 Phương trình có nghiệm 3.2 Giá trị nghiệm x = -b/a 3.3 Kết thúc thuật toán 2.Sử dụng sơ đồ khối Hình bình hành mô tả thao tác nhập/xuất liệu Hình chữ nhật mô tả tác tính toán Hình thoi mô tả thao tác lựa chọn Mũi tên mô tả hướng thực Tài liệu C Page CLB Lập Trình PTIT – ProPTIT III.Biếu diễn thuật toán Bắt đầu Đọc a,b Đ Đ Xuất “VSN” b=0 a=0 S Tính x = -b/a S Xuất “VN” Xuất x Kết thúc IV.Cài đặt thuật toán ngôn ngữ lập trình Mỗi ngôn ngữ có cách biểu diễn toán riêng Lấy ví dụ biểu diễn toán Pascal C khác Cài đặt Pascal program giaipb1; uses crt; var a,b:real; begin clrscr; writeln('Chuong Trinh Giai PT bac 1: ax+b=0'); writeln('Nhap a va b'); readln(a,b); If (a=0) and (bo) then writeln('Phuong trinh vo nghiem'); If (a=0) and (b=0) then writeln('Phuong trinh co vo so nghiem'); If (a0) and(b0) then writeln('Phuong trinh co nghiem x=', (-b)/a); readln; end Tài liệu C Page CLB Lập Trình PTIT – ProPTIT Cài đặt C Tài liệu C Page CLB Lập Trình PTIT – ProPTIT Bài : CÁC KIỂU DỮ LIỆU TRONG C I.Các kiểu liệu sở Dung lượng xấp xỉ Kiểu Phạm vi (đơn vị bit) char -128 tới 127 unsigned tới 255 signed char -128 tới 127 int 16 -32,768 tới 32,767 unsigned int 16 tới 65,535 signed int 16 Giống kiểu int short int 16 -128 tới 127 unsigned short int 16 tới 65, 535 signed short int 16 Giống kiểu short int long int 32 -2,147,483,648 tới 2,147,483,647 signed long int 32 Giống kiểu long int unsigned long int 32 tới 4,294,967,295 float 32 số thập phân double 64 10 số thập phân long double 128 10 số thập phân II Biến, , biểu thức câu lệnh 1.Biến a Ví dụ int i, m, n, a, b c ; // Khai báo kiểu nguyên biến i, m, n, a, b , c Tài liệu C Page CLB Lập Trình PTIT – ProPTIT char xau, chuoi ; // Khai báo kiểu kí tự cho biến xau, chuoi b Cú pháp khai báo ; , , ; Chú ý Phải khai báo biến trước sử dụng Trong C/ C++ khai báo biến ở: + Ngoài hàm + Đầu hàm + Tham số hàm + Trong chương trình 2.Hằng a Ví dụ: Cú pháp: #define 3.Biểu thức a Khái niệm - Tạo thành từ toán tử (Operator) toán hạng (Operand) -Toán tử tác động lên giá trị toán hạng cho giá trị có kiểu định - Toán tử: +, –, *, /, %… - Toán hạng: hằng, biến, lời gọi hàm Ví dụ Tài liệu C Page 10 CLB Lập Trình PTIT – ProPTIT Ví dụ Cho dãy a[9]={3,5,7,2,4,6,9,8,7,6} Code : III.Sắp xếp nhanh : Ý tưởng QuickSort chia mảng thành hai danh sách cách so sánh phần tử danh sách với phần tử chọn gọi phần tử chốt Những phần tử nhỏ phần tử chốt đưa phía trước nằm danh sách thứ nhất, phần tử lớn chốt đưa phía sau thuộc danh sách thứ hai Cứ tiếp tục chia tới danh sách có độ dài -Có cách chọn phần tử chốt sau: +Chọn phần tử đứng đầu đứng cuối làm phần tử chốt +Chọn phần tử đứng danh sách làm phần tử chốt +Chọn phần tử trung vị phần tử đứng đầu, đứng đứng cuối làm phần tử chốt Tài liệu C Page 69 CLB Lập Trình PTIT – ProPTIT +Chọn phần tử ngẫu nhiên làm phần tử chốt (Cách hay chọn tránh trường hợp đặc biệt) Giải thuật : -Bước 1: Nếu left (lớn hơn), < (nhỏ hơn)… mà phải gọi hàm thư viện ; - Nếu dùng kỹ thuật cấp phát động phải quản lý việc cấp thêm nhớ chuỗi dãn (chẳng hạn ghép chuỗi) phải hủy nhớ (khi không dùng nữa) để tránh việc cạn kiệt nhớ máy tính trường hợp có nhiều chương trình hoạt động đồng thời.Đây điểm khác string C++ char C II.Kiểu chuỗi string C++ Thư viện chuẩn STL (Standard Template Library) cung cấp kiểu string (xâu ký tự), giúp bạn tránh khỏi hoàn toàn phiền phức nêu #include using namespace std; III.Các phương thức tiện ích string Kiểu string STL hỗ trợ nhóm phương thức phép toán tiện ích sau Các phép toán phương thức -Các toán tử +, += dùng để ghép hai chuỗi để ghép ký tự vào chuỗi Các phép so sánh theo thứ tự từ điển: == (bằng nhau), != (khác nhau), > (lớn hơn), >= (lớn hay bằng), < (nhỏ hơn),