Bài giảng môn học Tin đại cương: Bài 9&10 - Lý Anh Tuấn
lượt xem 3
download
Bài giảng bài 9 và 10 cung cấp những kiến thức về kiểu chung, lớp string, lớp vector. Những nội dung chính được trình bày trong chương này gồm có: Chương trình con chung, kiểu chung; lớp, lớp string; các toán tử với xâu kí tự; các hàm kí tự; lớp vector; khai báo vector;... mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng môn học Tin đại cương: Bài 9&10 - Lý Anh Tuấn
- Môn học Tin đại cương Lý Anh Tuấn Bộ môn Khoa học máy tính, Khoa Công nghệ thông tin, Trường đại học Thủy Lợi 1
- Buổi 9&10: Kiểu chung, lớp string, lớp vector Chương trình con chung, kiểu chung Lớp string Lớp vector Vector của các vector 2
- Chương trình con chung, kiểu chung Để hoán đổi giá trị của 2 biến thực chúng ta viết thủ tục sau: void hoandoi(double & a , double & b) { double tmp; tmp = a; a = b; b = tmp; } Thủ tục này hoạt động tốt nếu ta hoán đổi giá trị 2 biến thực, tuy nhiên không thể sử dụng nó để hoán đổi giá trị 2 biến nguyên hoặc 2 biến xâu kí tự. 3
- Chương trình con chung, kiểu chung C++ cung cấp các chương trình con chung, một chương trình con chung sẽ tham số hóa các kiểu dữ liệu dự định sẽ sử dụng Thủ tục hoandoi được viết dưới dạng thủ tục chung template void hoandoi(T & a, T & b) { T tmp; tmp = a; a = b; b = tmp; } T là một kiểu chung và sẽ được thay thế bởi một kiểu dữ liệu cụ thể khi thủ tục được gọi 4
- // Hóa đổi giá trị hai số thực, hai xâu kí tự #include using namespace std; template void hoandoi(T & a, T & b) { T tmp; tmp = a; a = b; b = tmp; } int main() { double x=5, y=10; cout
- Lớp Lớp là sự mở rộng của cấu trúc dữ liệu: thay vì chỉ lưu trữ dữ liệu, lớp lưu trữ cả dữ liệu và hàm (phương thức) Đối tượng là sự thể hiện cụ thể của một lớp. Có thể coi một lớp là một kiểu, và một đối tượng là một biến. Khai báo một đối tượng x thuộc lớp T: T x(danh_sách_tham_số); Các phương thức của lớp thường được sử dụng để truy cập tới dữ liệu của đối tượng thuộc lớp, cú pháp: x.tên_phương_thức(danh_sách_tham_số); 6
- Lớp string C++ hỗ trợ xâu kí tự thông qua lớp string, để sử dụng lớp string cần khai báo #include ở đầu chương trình Các đối tượng kiểu string có thể được khai báo và sử dụng như các kiểu dữ liệu khác Ngoài ra, lớp string cung cấp cách thức truy cập tới các kí tự của xâu kí tự và một tập các phép toán xử lý xâu. VD: ghép xâu, trích một đoạn trong xâu, tìm kiếm xâu,… 7
- Lớp string Có thể coi xâu kí tự kiểu string là một mảng các kí tự kiểu char và có thể truy cập tới các kí tự riêng biệt của xâu thông qua chỉ số Ví dụ: string s = “Dai hoc Thuy Loi"; //khai báo, gán g/trị cho xâu s char c; c=s[0]; //gán ‘D’ cho c c=s[5]; //gán ‘o’ cho c s[0]=‘n’; //gán ‘n’ vào vị trí đầu tiên của xâu 8
- Các toán tử với xâu kí tự s[i] Truy cập đến phần tử thứ i của xâu ký tự (i nguyên) s=s2 Gán nội dung của xâu s2 cho xâu s ss2, Các phép toán so sánh hai xâu, s==s2, s=s2, s!=s2 trả về false s + s2 Trả về xâu mới là xâu s nối với xâu s2 (xem trang 473-474) 9
- Các thao tác với xâu kí tự (tr.473-474): Phương thức Ý nghĩa s.push_back(c) Gắn ký tự c vào xâu s s.append(s2) Gắn xâu s2 vào xâu s s.erase(pos,len) Xóa bỏ len kí tự khỏi s, bắt đầu từ pos s.find(s2) Trả về ví trí của s2 trong s, hoặc s.npos nếu không tìm thấy s2 s.insert(pos,s2) Chèn xâu s2 vào s bắt đầu từ pos Thay thế các kí tự trong xâu s bằng s.replace(pos,num, toàn bộ xâu s2, bắt đầu từ vị trí pos s2) trong xâu s Xác định lại chiều dài của xâu s là s.resize(len) len, bỏ bớt đi hoặc thêm vào xâu s các kí tự null khi cần s.size() Trả về số phần tử trong xâu s Trả về xâu mới gồm các phần tử của xâu s.substr(pos,len) s từ s[pos]...s[pos+len] 10
- Các hàm kí tự (nhắc lại) Một số hàm kí tự trong thư viện cctype(tr.463-464): int isalnum(char c): trả về true nếu c là một ký tự hay số int isalpha(char c): trả về true nếu c là một ký tự int isdigit(char c): trả về true nếu c là một số hệ 10 int isspace(char c): trả về true nếu c là một khoảng trống int isupper(char c): trả về true nếu c là một chữ hoa int tolower(char c): đổi kí tự c sang chữ thường int toupper(char c): đổi kí tự c sang chữ hoa 11
- //Đổi một xâu kí tự thành dạng viết hoa #include #include using namespace std; string upperCase(string s); int main() { cout
- // Sử dụng một số thao tác với xâu kí tự #include #include using namespace std; int main () { string str="Dao duc cao nhat cua con nguoi la gi?“ "Do chinh la long yeu nuoc."; string str2, str3; int pos; str2 = str.substr (0,33); // "Dao duc cao nhat cua con nguoi la" pos = str.find("long"); // vị trí của "long" trong str str3 = str.substr (pos); // lấy từ "long" đến hết xâu cout
- Lớp vector Lớp vector là một kiểu cấu trúc dữ liệu mảng động, làm việc giống như mảng thông thường tuy nhiên có thêm khả năng tự động thay đổi kích cỡ khi chèn và loại bỏ đối tượng vector có thể chứa được hầu hết các kiểu dữ liệu, thậm chí là các vector khác (vector của các vector) Lớp vector cung cấp một tập các phương thức chuẩn để truy cập tới các phần tử, thêm các phần tử vào đầu hoặc cuối, xóa các phần tử và kiểm tra số phần tử được lưu trữ 14
- Khai báo vector Để sử dụng lớp vector cần khai báo #include ở đầu chương trình Các cách khai báo một vector 1. vector tên_vector; 2. vector tên_vector(so_pt); 3. vector tên_vector(so_pt, e); trong đó: - so_pt là biểu thức trả về số phần tử của vector - e là giá trị khởi tạo của các phần tử 15
- Khai báo vector Ví dụ: vector A; //Khai báo vector nguyên A, chưa có phần tử nào vector data(20); //Khai báo vector data có 20 phần tử kiểu double: vector B(10, 1.0); //Khai báo vector B gồm 10 phần tử kiểu double có giá trị khởi tạo là 1.0 vector C(10, ”Hi!”); //Khai báo vector C gồm 10 phần tử kiểu string có giá trị khởi tạo là “Hi!” 16
- Các thao tác cơ bản Phương thức Ngữ nghĩa v.assign(n, e) Thay thế nội dung của v bằng n bản sao của e v[i] hoặc v.at(i) Tham chiếu đến phần tử thứ i của vector v v.back() Tham chiếu đến phần tử cuối cùng của vector v v.clear() Làm rỗng vector v v.empty() Trả về true nếu vector v rỗng v.front() Tham chiếu đến phần tử đầu tiên của vector v v.pop_back() Xóa phần tử cuối cùng của vector v v.push_back(e) Ghép thêm phần tử e vào cuối vector v v.resize(newsSize) Đổi cỡ của vector v thành newSize v.size() Trả về số phần tử của vector v 17
- Nhập giá trị cho vector Cách 1: Khai báo vector sau khi nhập số phần tử của vector int n; cout > n; vector A(n); cout
- Nhập giá trị cho vector Cách 2: Khai báo vector, nhập số phần tử của vector, sau đó điều chỉnh kích cỡ vector cho phù hợp int n; vector A; cout > n; A.resize (n); cout
- Nhập giá trị cho vector Cách 3: Nhập giá trị cho các phần tử của vector cho đến khi người dùng muốn dừng lại vector A; double x; char traloi; cout > traloi; while (traloi == 'y') { cout > x; A.push_back(x); //gắn giá trị vừa nhập vào cuối vertor cout
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng môn học Kỹ thuật ghép nối máy tính - Nguyễn Thành Nghĩa
79 p | 753 | 265
-
Bài giảng môn học Các đối tượng của ASP.NET
33 p | 304 | 112
-
BÀI GIẢNG MÔN: PHƯƠNG PHÁP LẬP TRÌNH
309 p | 200 | 29
-
Bài giảng môn Cơ sở dữ liệu - Bài 4: Ngôn ngữ đại số quan hệ (ĐH Công nghệ Thông tin)
40 p | 156 | 27
-
Bài giảng môn Toán tin - Chương 5: Đại số Bool
70 p | 143 | 14
-
Bài giảng môn Tin học đại cương: Phần 1 - Kiến thức cơ bản
66 p | 100 | 13
-
Bài giảng môn Tin học đại cương - ĐH Bách khoa TP.HCM
349 p | 104 | 13
-
Bài giảng môn Tin học ứng dụng (Phần 2): Chương 3 - Đại học Ngân hàng
118 p | 99 | 10
-
Bài giảng môn học Tin học đại cương (Dành cho bậc Đại học & Cao đẳng) - Nguyễn Vũ Duy
95 p | 22 | 7
-
Bài giảng môn học Tin đại cương: Bài 1 - Lý Anh Tuấn
36 p | 73 | 7
-
Bài giảng môn học Cơ sở tin học 1 - Trường Đại học Tôn Đức Thắng
47 p | 55 | 5
-
Bài giảng môn học Tin đại cương: Bài 3 - Lý Anh Tuấn
28 p | 51 | 3
-
Bài giảng môn học Tin đại cương: Bài 5 - Lý Anh Tuấn
27 p | 44 | 3
-
Bài giảng môn học Tin đại cương: Bài 7&8 - Lý Anh Tuấn
19 p | 47 | 3
-
Bài giảng môn học Tin đại cương: Bài 2 - Lý Anh Tuấn
30 p | 45 | 3
-
Bài giảng môn học Tin đại cương: Bài 4 - Lý Anh Tuấn
19 p | 46 | 2
-
Bài giảng môn học Tin đại cương: Bài 6 - Lý Anh Tuấn
20 p | 59 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn