Bài 9. Làm việc với dãy số
Chia sẻ bởi Lê Thị Hồng Anh |
Ngày 24/10/2018 |
47
Chia sẻ tài liệu: Bài 9. Làm việc với dãy số thuộc Tin học 8
Nội dung tài liệu:
TIN HỌC 8
TRƯỜNG THCS CHÍ TÂN
Kính chào qúy thầy cô và
các em học sinh
GV: Lê Thị Hồng Anh
Kiểm tra bài cũ
Dữ liệu mảng và biến của mảng gọi là gì ?
- Dữ liệu kiểu mảng: là một tập hợp các phần tử có thứ tự, và mọi phần tử đều có cùng một kiểu dữ liệu
- Biến mảng: khi khai báo một biến có kiểu dữ liệu là kiểu mảng, biến đó được gọi là biến mảng.
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
a. Khai báo biến mảng
b. Làm việc với các phần tử của mảng
3. Tìm giá trị lớn nhất và giá trị nhỏ nhất của dãy số
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
Khai báo mảng cần chỉ rõ:
+ Tên biến mảng.
+ Số lượng phần tử.
+ Kiểu dữ liệu chung của các phần tử.
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là Integer hoặc Real
Ví dụ:
a. Khai báo biến mảng
Var Chieucao: array[1..50] of real;
Var Tuoi: array[20..50] of integer;
Cú pháp khai báo biến mảng trong Pascal có dạng như thế nào ?
Var: array[..] of ;
Cách khai báo biến mảng có dạng
Trong đó:
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
3. KHAI BÁO MẢNG:
Var: array[..] of ;
Ví dụ 1:
Khai báo biến mảng Diem gồm 40 phần tử
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
a. Khai báo biến mảng
Ví dụ 2:
Var Diem: array [1..40] of real;
Var a: array [1..100] of Integer;
Khai báo biến mảng a gồm 100 phần tử
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
Var: array[..] of ;
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
a. Khai báo biến mảng
b. Làm việc với các phần tử của mảng
Var Diem1, Diem2, Diem3, …, Diem50: Real;
…
Readln(Diem1); Readln(Diem2); … ; Readln(Diem50);
Ví dụ 2: Tiếp tục với ví dụ 1 giả sử chúng ta cần nhập điểm kiểm tra môn tin học của 1 lớp gồm 50 học sinh!
Var Diem: array[1..50] of Real;
…
For i:= 1 to 50 do Readln(Diem[i]) ;
Khi sử dụng biến mảng thì nhập dữ liệu cho biến như thế nào?
b. Làm việc với các phần tử của mảng
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
Var: array[..] of ;
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
a. Khai báo biến mảng
b. Làm việc với các phần tử của mảng
IF Diem1 >= 8 then writeln(‘ gioi ’) ;
IF Diem2 >= 8 then writeln(‘ gioi ’) ;
…….
IF Diem50 >= 8 then writeln(‘ gioi ’) ;
Nếu điểm kiểm tra từ 8 trở lên thì in ra màn hình là “giỏi” bằng cách khai báo biến thông thường
For i: =1 to 50 do If Diem[i] >=8 then Writeln(‘ gioi ‘) ;
Khi sử dụng biến mảng thì các câu lệnh này được sử dụng như thế nào?
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
Var: array[..] of ;
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
a. Khai báo biến mảng
b. Làm việc với các phần tử của mảng
Em hãy cho biết lợi ích của việc sử dụng biến mảng.
- Có thể thay rất nhiều câu lệnh nhập và in dữ liệu ra màn hình bằng một câu lệnh lặp.
- Có thể sử dụng biến mảng một cách rất hiệu quả trong xử lí dữ liệu.
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
Var: array[..] of ;
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
a. Khai báo biến mảng
b. Làm việc với các phần tử của mảng
Em có nhận xét gì khi chúng ta sử dụng biến mảng thay cho việc sử dụng biến đơn.
Các em hãy quan sát hai
đoạn lệnh sau:
ViÖc sử dụng biÕn m¶ng trong ch¬ng tr×nh gióp:
- Ch¬ng tr×nh gän h¬n (sử dụng vßng lÆp)
- TiÕt kiÖm thêi gian vµ c«ng søc
- Tr¸nh nhÇm lÉn, sai sãt.
IF Diem1 >= 8 then writeln(‘ gioi ’) ;
IF Diem2 >= 8 then writeln(‘ gioi ’) ;
…….
IF Diem50 >= 8 then writeln(‘ gioi ’) ;
For i: =1 to 50 do If Diem[i] >=8 then Writeln(‘ gioi ‘) ;
Ví dụ 3: Viết chương trình nhập điểm kiểm tra của 3 môn toán, lý, văn sau đó tính điểm trung bình của 3 môn
Var DiemToan, DiemVan, DiemLi, DiemTB: array[1..50] of real;
…
For i:= 1 to 50 do
DiemTB[i]:=(DiemToan[i]+DiemVan[i]+DiemLi[i])/3;
Ta có thể đọc giá trị, tính toán giá trị và gán giá trị cho biến mảng giống như biến thông thường.
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
Var: array[..] of ;
Ví dụ:
Sử dụng khai báo mảng để khai báo chiều cao, và tuổi của các bạn học sinh trong lớp em.
Bài làm:
Var Chieucao: array[1..50] of real;
Var Tuoi: array[1..50] of integer;
Số lượng học sinh trong lớp là bao nhiêu?
Chiều cao và tuổi thuộc những kiểu dữ liệu nào?
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
b. Làm việc với các phần tử của mảng
a. Khai báo biến mảng
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
Ví dụ 3:
Bài toán: Viết chương trình nhập N số nguyên từ bàn phím và in ra màn hình số nhỏ nhất và số lớn nhất.
2. VÍ DỤ VỀ BIẾN MẢNG
Var: array[..] of ;
3. Tìm giá trị lớn nhất và giá trị nhỏ nhất của dãy số
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
b. Làm việc với các phần tử của mảng
a. Khai báo biến mảng
Em hãy nêu thuật toán để tìm số nhỏ nhất và số lớn nhất trong dãy số?
THUẬT TOÁN
B1: max:=a; min:=a; i:=1;
B2: i:= i+1;
B3: Nếu i > n, chuyển đến bước 5.
B4: Nếu ai > max thì max:=ai; ai < min thì
min :=ai.Quay lai bước 2.
B5: Kết thúc thuật toán.
Program vd1;
Uses crt;
Var
i, n, Max, Min: integer ;
A: Array[1..100] of Integer ;
BEGIN
Clrscr;
write(` Nhap so phan tu cua day so: n= `) ; readln(n) ;
For i := 1 to n do
Begin
write(` Nhap so thu `,i,` : `) ;
readln(A[i]) ;
End;
Max:=A[1];
For i := 2 to n do
If A[i]>Max Then Max := A[i];
Writeln(` So lon nhat la max = `, Max) ;
Min:=A[1];
For i := 2 to n do
If A[i] Writeln(` So nho nhat la Min = `, Min) ;
Readln ;
END.
Khai b¸o biÕn m¶ng
Nhập vào biến mảng
Tìm số lớn nhất và số nhỏ nhất
Nhap so phan tu cua day so: n=
7
Nhap so thu 1 :
7
Nhap so thu 2 :
9
Nhap so thu 3 :
4
Nhap so thu 4 :
6
Nhap so thu 5 :
9
Nhap so thu 6 :
8
Nhap so thu 7 :
5
So lon nhat la Max = 9
So nho nhat la Min = 4
Chương trình chạy và cho kết quả như sau:
Var x: array[2..10] of real;
var x: array[5..10.5] of real;
Var x:array[10..1] of real;
Var x: array[1 , 100] of real;
Câu 1: Em hy ch?n bi?n m?ng dng trong cc cu sau
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
CÂU HỎI TRẮC NGHIỆM
a) a:arry[3…100] of integer;
b) a: array [100..1] of integer;
c) a: array (1..100) of byte ;
Câu 2: cc l?nh khai bo m?ng sau dy dng hay sai ?hy gi?i thích?
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Ghi nhớ!
Dữ liệu kiểu mảng là một tập hợp hữu hạn các phần tử được xắp xếp theo dãy và mọi phần tử đều có cùng một kiểu dữ liệu.
Việc gán giá trị, đọc giá trị và tính toán với các giá trị của một phần tử trong biến mảng được thực hiện thông qua chỉ số tương ứng của phần tử đó.
Sử dụng các biến kiểu mảng và câu lệnh lặp giúp cho việc viết chương trình được ngắn gọn và dễ dàng hơn.
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
Hướng dẫn về nhà:
Xem lại cách khai báo mảng, sử dụng khai báo trong những trường hợp nào .
Làm các bài tập: 1; 3 trang 79 SGK,9.1->9.4 SBT.
Xem nội dung còn lại trong SGK chuẩn bị tiết sau các em làm bài tập
2. VÍ DỤ VỀ BIẾN MẢNG
Var: array[..] of ;
- Array, of là từ khóa của c.trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
3. Tìm giá trị lớn nhất và giá trị nhỏ nhất của dãy số
b. Làm việc với các phần tử của mảng
a. Khai báo biến mảng
Xin chân thành cảm ơn quý thầy cô và các em.
Hẹn gặp lại!
TRƯỜNG THCS CHÍ TÂN
Kính chào qúy thầy cô và
các em học sinh
GV: Lê Thị Hồng Anh
Kiểm tra bài cũ
Dữ liệu mảng và biến của mảng gọi là gì ?
- Dữ liệu kiểu mảng: là một tập hợp các phần tử có thứ tự, và mọi phần tử đều có cùng một kiểu dữ liệu
- Biến mảng: khi khai báo một biến có kiểu dữ liệu là kiểu mảng, biến đó được gọi là biến mảng.
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
a. Khai báo biến mảng
b. Làm việc với các phần tử của mảng
3. Tìm giá trị lớn nhất và giá trị nhỏ nhất của dãy số
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
Khai báo mảng cần chỉ rõ:
+ Tên biến mảng.
+ Số lượng phần tử.
+ Kiểu dữ liệu chung của các phần tử.
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là Integer hoặc Real
Ví dụ:
a. Khai báo biến mảng
Var Chieucao: array[1..50] of real;
Var Tuoi: array[20..50] of integer;
Cú pháp khai báo biến mảng trong Pascal có dạng như thế nào ?
Var
Cách khai báo biến mảng có dạng
Trong đó:
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
3. KHAI BÁO MẢNG:
Var
Ví dụ 1:
Khai báo biến mảng Diem gồm 40 phần tử
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
a. Khai báo biến mảng
Ví dụ 2:
Var Diem: array [1..40] of real;
Var a: array [1..100] of Integer;
Khai báo biến mảng a gồm 100 phần tử
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
Var
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
a. Khai báo biến mảng
b. Làm việc với các phần tử của mảng
Var Diem1, Diem2, Diem3, …, Diem50: Real;
…
Readln(Diem1); Readln(Diem2); … ; Readln(Diem50);
Ví dụ 2: Tiếp tục với ví dụ 1 giả sử chúng ta cần nhập điểm kiểm tra môn tin học của 1 lớp gồm 50 học sinh!
Var Diem: array[1..50] of Real;
…
For i:= 1 to 50 do Readln(Diem[i]) ;
Khi sử dụng biến mảng thì nhập dữ liệu cho biến như thế nào?
b. Làm việc với các phần tử của mảng
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
Var
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
a. Khai báo biến mảng
b. Làm việc với các phần tử của mảng
IF Diem1 >= 8 then writeln(‘ gioi ’) ;
IF Diem2 >= 8 then writeln(‘ gioi ’) ;
…….
IF Diem50 >= 8 then writeln(‘ gioi ’) ;
Nếu điểm kiểm tra từ 8 trở lên thì in ra màn hình là “giỏi” bằng cách khai báo biến thông thường
For i: =1 to 50 do If Diem[i] >=8 then Writeln(‘ gioi ‘) ;
Khi sử dụng biến mảng thì các câu lệnh này được sử dụng như thế nào?
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
Var
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
a. Khai báo biến mảng
b. Làm việc với các phần tử của mảng
Em hãy cho biết lợi ích của việc sử dụng biến mảng.
- Có thể thay rất nhiều câu lệnh nhập và in dữ liệu ra màn hình bằng một câu lệnh lặp.
- Có thể sử dụng biến mảng một cách rất hiệu quả trong xử lí dữ liệu.
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
Var
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
a. Khai báo biến mảng
b. Làm việc với các phần tử của mảng
Em có nhận xét gì khi chúng ta sử dụng biến mảng thay cho việc sử dụng biến đơn.
Các em hãy quan sát hai
đoạn lệnh sau:
ViÖc sử dụng biÕn m¶ng trong ch¬ng tr×nh gióp:
- Ch¬ng tr×nh gän h¬n (sử dụng vßng lÆp)
- TiÕt kiÖm thêi gian vµ c«ng søc
- Tr¸nh nhÇm lÉn, sai sãt.
IF Diem1 >= 8 then writeln(‘ gioi ’) ;
IF Diem2 >= 8 then writeln(‘ gioi ’) ;
…….
IF Diem50 >= 8 then writeln(‘ gioi ’) ;
For i: =1 to 50 do If Diem[i] >=8 then Writeln(‘ gioi ‘) ;
Ví dụ 3: Viết chương trình nhập điểm kiểm tra của 3 môn toán, lý, văn sau đó tính điểm trung bình của 3 môn
Var DiemToan, DiemVan, DiemLi, DiemTB: array[1..50] of real;
…
For i:= 1 to 50 do
DiemTB[i]:=(DiemToan[i]+DiemVan[i]+DiemLi[i])/3;
Ta có thể đọc giá trị, tính toán giá trị và gán giá trị cho biến mảng giống như biến thông thường.
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
2. VÍ DỤ VỀ BIẾN MẢNG
Var
Ví dụ:
Sử dụng khai báo mảng để khai báo chiều cao, và tuổi của các bạn học sinh trong lớp em.
Bài làm:
Var Chieucao: array[1..50] of real;
Var Tuoi: array[1..50] of integer;
Số lượng học sinh trong lớp là bao nhiêu?
Chiều cao và tuổi thuộc những kiểu dữ liệu nào?
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
b. Làm việc với các phần tử của mảng
a. Khai báo biến mảng
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
Ví dụ 3:
Bài toán: Viết chương trình nhập N số nguyên từ bàn phím và in ra màn hình số nhỏ nhất và số lớn nhất.
2. VÍ DỤ VỀ BIẾN MẢNG
Var
3. Tìm giá trị lớn nhất và giá trị nhỏ nhất của dãy số
- Array, of là từ khóa của chương trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
b. Làm việc với các phần tử của mảng
a. Khai báo biến mảng
Em hãy nêu thuật toán để tìm số nhỏ nhất và số lớn nhất trong dãy số?
THUẬT TOÁN
B1: max:=a; min:=a; i:=1;
B2: i:= i+1;
B3: Nếu i > n, chuyển đến bước 5.
B4: Nếu ai > max thì max:=ai; ai < min thì
min :=ai.Quay lai bước 2.
B5: Kết thúc thuật toán.
Program vd1;
Uses crt;
Var
i, n, Max, Min: integer ;
A: Array[1..100] of Integer ;
BEGIN
Clrscr;
write(` Nhap so phan tu cua day so: n= `) ; readln(n) ;
For i := 1 to n do
Begin
write(` Nhap so thu `,i,` : `) ;
readln(A[i]) ;
End;
Max:=A[1];
For i := 2 to n do
If A[i]>Max Then Max := A[i];
Writeln(` So lon nhat la max = `, Max) ;
Min:=A[1];
For i := 2 to n do
If A[i]
Readln ;
END.
Khai b¸o biÕn m¶ng
Nhập vào biến mảng
Tìm số lớn nhất và số nhỏ nhất
Nhap so phan tu cua day so: n=
7
Nhap so thu 1 :
7
Nhap so thu 2 :
9
Nhap so thu 3 :
4
Nhap so thu 4 :
6
Nhap so thu 5 :
9
Nhap so thu 6 :
8
Nhap so thu 7 :
5
So lon nhat la Max = 9
So nho nhat la Min = 4
Chương trình chạy và cho kết quả như sau:
Var x: array[2..10] of real;
var x: array[5..10.5] of real;
Var x:array[10..1] of real;
Var x: array[1 , 100] of real;
Câu 1: Em hy ch?n bi?n m?ng dng trong cc cu sau
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
CÂU HỎI TRẮC NGHIỆM
a) a:arry[3…100] of integer;
b) a: array [100..1] of integer;
c) a: array (1..100) of byte ;
Câu 2: cc l?nh khai bo m?ng sau dy dng hay sai ?hy gi?i thích?
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Ghi nhớ!
Dữ liệu kiểu mảng là một tập hợp hữu hạn các phần tử được xắp xếp theo dãy và mọi phần tử đều có cùng một kiểu dữ liệu.
Việc gán giá trị, đọc giá trị và tính toán với các giá trị của một phần tử trong biến mảng được thực hiện thông qua chỉ số tương ứng của phần tử đó.
Sử dụng các biến kiểu mảng và câu lệnh lặp giúp cho việc viết chương trình được ngắn gọn và dễ dàng hơn.
BÀI 9: LÀM VIỆC VỚI DÃY SỐ (T2)
Hướng dẫn về nhà:
Xem lại cách khai báo mảng, sử dụng khai báo trong những trường hợp nào .
Làm các bài tập: 1; 3 trang 79 SGK,9.1->9.4 SBT.
Xem nội dung còn lại trong SGK chuẩn bị tiết sau các em làm bài tập
2. VÍ DỤ VỀ BIẾN MẢNG
Var
- Array, of là từ khóa của c.trình.
- Tên biến mảng do người dùng đặt.
- Chỉ số đầu phải <= chỉ số cuối.
- Kiểu dữ liệu có thể là số nguyên hoặc số thực.
3. Tìm giá trị lớn nhất và giá trị nhỏ nhất của dãy số
b. Làm việc với các phần tử của mảng
a. Khai báo biến mảng
Xin chân thành cảm ơn quý thầy cô và các em.
Hẹn gặp lại!
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Lê Thị Hồng Anh
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)