Tải bản đầy đủ (.pdf) (53 trang)

Bài giảng Tin học đại cương: Phần 2 - ThS. Phạm Thanh Bình (6)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (732.33 KB, 53 trang )

Bài 10 – Sử dụng đối tượng 
vector
 Các cách khai báo vector
 Các phương thức (hàm) của vector 
 Một số bài toán

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 1


1. Các cách khai báo vector
Cách 1:
             vector   <KiểuDL>  TênMảng;
Cách 2:
vector   <KiểuDL>  TênMảng(Số phần tử);
Cách 3:
vector   <KiểuDL>  TênMảng(Số phần tử, Giá trị khởi 
tạo);
 
Chú ý: Muốn sử dụng các khai báo này thì phải viết 
dòng sau đây ở đầu chương trình:
#include  <vector>
Bộ
   môn Kỹ thuật máy tính – Khoa 
CNTT
Tin học đại cương 2 ­ 2


Ví dụ:


vector  < int >  A;      //Khai báo vector A (Rỗng)
vector  < float >  B(100);   //Mảng này có 100 phần 
                                //tử, mỗi phần tử là một số thực
vector  < int >  C(50, 0);     //Mảng này có 50 phần 
tử ,
                                //các phần tử đều có giá trị bằng 
0

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 3


2. Các phương thức (hàm) của 
vector
Phương thức
A.back() 
A.front() 
A.clear() 
A.pop_back() 
A.push_back(e) 
A.resize(newSize) 
A.size() 
...

Ý nghĩa
Phần tử cuối cùng của vector 
Phần tử đầu tiên của vector
Làm rỗng vector 

Xóa phần tử cuối cùng của vector 
Ghép thêm phần tử e vào cuối vector 
Đổi cỡ của vector thành newSize 
Số phần tử của vector A
...

(Trang 278)

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 4


3. Một số bài toán
 Ví dụ:
1. Nhập một dãy có N phần tử (các phần tử là 
số thực). Hiện dãy ra màn hình.
2. Giảm số lượng phần tử của dãy đi một nửa. 
Hiện dãy mới ra màn hình.
3. Xoá toàn bộ dãy.
Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 5


Gợi ý:
   int N ;
   cout << "Nhap N = ";  cin >> N ;

   vector  < float >  A(N);
   for (int i = 0; i < A.size(); i ++) 
    {
      cout << "Nhap A[" << i << "] = " ;
      cin >> A[i] ;
     }
   //Hien day:
   cout << "Day vua nhap la: ";
   for (int i = 0; i < A.size(); i ++)  cout << A[i] << "  " ;
Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 6


 Giảm số lượng phần tử của dãy đi một nửa:
A.resize(N/2);
 Xoá toàn bộ dãy:
A.clear();

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 7


Bài tập 1:
1. Nhập một dãy có N phần tử (các phần tử là 
số nguyên). Hiện dãy ra màn hình.
2. Tăng gấp đôi số lượng phần tử của dãy. 

Nhập thêm các phần tử mới. Hiện dãy mới ra 
màn hình.
3. Đổi chỗ phần tử đầu tiên và phần tử cuối 
cùng của dãy mới.
Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 8


Bài tập 2: (CheckSum)
1. Nhập một dãy có N phần tử (các phần tử là 
số nguyên). Hiện dãy ra màn hình.
2. Tính tổng các phần tử của dãy. Ghép giá trị 
tính được vào cuối dãy. 

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 9


Bài tập 3:
 Viết hàm có tham số là dãy số thực A. Giá 
trị trả về của hàm là trung bình cộng các 
phần tử của dãy A.
 Áp dụng hàm vừa viết để giải bài toán:
Nhập một dãy có N số thực từ bàn phím, 
tính trung bình cộng các phần tử của dãy.
Bộ môn Kỹ thuật máy tính – Khoa 

CNTT

Tin học đại cương 2 ­ 10


Hướng dẫn:
float  TBC(vector  < float >  A)
  {float  S = 0; 
    for (int i = 0; i < A.size(); i ++)  S = S + A[i];
    return  S/A.size(); 
  }
  ...
Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 11


EOL

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 12


Bài 11 – Sử dụng đối tượng 
string
 Các cách khai báo chuỗi kí tự
 Nhập chuỗi kí tự từ bàn phím

 Các phương thức (hàm) của string
 Một số bài toán 

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 13


1. Các cách khai báo chuỗi kí tự
Cách 1:
char  TênChuỗi[Số phần tử];
Cách 2:
                  string   TênChuỗi;
 
Chú ý: Muốn sử dụng cách khai báo thứ 2 thì 
phải viết dòng sau đây ở đầu chương trình:
#include  <string>
 
Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 14


Ví dụ:
char  S1[50];    //Khai báo dãy có 50 phần tử, 
                       //mỗi phần tử là một kí tự
string  S2;        // Khai báo dãy kí tự S2 (Rỗng)
string  S3 = "HELLO";   // Khai báo dãy kí tự S3

                                        //với giá trị khởi tạo 
 S3[0] = 'H';
 S3[1] = 'E';
  ...
 S3[4] = 'O';

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 15


2. Nhập chuỗi kí tự từ bàn phím
 Cách 1:
Sử dụng lệnh cin như bình thường (không 
nhập được các kí tự trắng):
string  S;
cout << "Nhap chuoi ki tu: ";  
cin >> S;
Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 16


 Cách 2:
Sử dụng hàm getline  (nhập được các kí tự 
trắng):
string  S;
cout << "Nhap chuoi ki tu: ";  

getline(cin, S);

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 17


Chương trình ví dụ:

#include <iostream>
#include <string>
using namespace std;
main()
 {string  S1, S2;
   cout << "Nhap chuoi ki tu 1: ";  
   getline(cin, S1);   
   cout << "Nhap chuoi ki tu 2: ";  
   cin >> S2;
   cout << " Chuoi ki tu 1 : "  << S1 << endl;  
   cout << " Chuoi ki tu 2 : "  << S2 << endl; 
B   cout << " Ghép hai chuoi : "  << S1+S2;
ộ môn Kỹ thuật máy tính – Khoa 
CNTT
Tin học đại cương 2 ­ 18
 }


3. Các phương thức (hàm) của 
string

Phương thức
S.erase(i, N) 
S.push_back(C) 
S.resize(Len) 
S.size() 
S.insert(i, S2)
S.clear() 
 ...

Ý nghĩa
Xoá N kí tự của chuỗi S từ vị trí thứ 

Ghép thêm kí tự C vào cuối chuỗi S 
Đổi độ dài của chuỗi S thành Len 
Số kí tự trong chuỗi S
Chèn chuỗi S2 vào vị trí thứ i của S
Làm rỗng chuỗi S 
 ...

(Trang 240 và 264)

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 19


4. Một số bài toán
 Ví dụ:
Nhập một xâu kí tự từ bàn phím. Hãy xoá 

phần tử đầu tiên của xâu.
Hiện xâu mới ra màn hình

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 20


Chương trình:
#include <iostream>
#include <string>
using namespace std;
int  main()
 {string  S;
   cout << "Nhap chuoi ki tu : ";  
   getline(cin, S);   
   S.erase(0, 1);     //Xoa phan tu thu 0
   cout << " Chuoi sau khi xoa : "  << S;  
   return 0;
B }
ộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 21


Bài tập 1:
Nhập một chuỗi kí tự từ bàn phím. Hãy 
chuyển phần tử đầu tiên của chuỗi xuống 

vị trí cuối cùng.
Hiện chuỗi mới ra màn hình

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 22


Gợi ý:
1. Ghép phần tử S[0] vào cuối chuỗi:
S.push_back(S[0]);
2. Xóa phần tử S[0]

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 23


Bài tập 2:
Nhập một chuỗi kí tự từ bàn phím. Hãy 
đếm số lượng các kí tự trắng trong chuỗi

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 24



Bài tập 3:
Nhập một chuỗi kí tự từ bàn phím. Hãy 
đếm số lượng chữ cái in hoa trong chuỗi

Bộ môn Kỹ thuật máy tính – Khoa 
CNTT

Tin học đại cương 2 ­ 25


×