toán vmf rất hay rất tốt đăng để có điểm lol haaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa chắc thế
đừng để ý đoạn dưới này
1..Trăm năm trong cõi người ta,
2..Chữ tài chữ mệnh khéo là ghét nhau.
3..Trải qua một cuộc bể dâu,
4..Những điều trông thấy mà đau đớn lòng.
5.. Lạ gì bỉ sắc tư phong,
6..Trời xanh quen thói má hồng đánh ghen.
7..Cảo thơm lần giở trước đèn,
8..Phong tình có lục còn truyền sử xanh.
9,,Rằng năm Gia Tĩnh triều Minh,
10.. Bốn phương phẳng lặng, hai kinh vững vàng.
11..Có nhà viên ngoại họ Vương,
12..Gia tư nghĩ cũng thường thường bực trung.
13..Một trai con thứ rốt lòng,
14..Vương Quan là chữ, nối dòng nho gia.
15.. Đầu lòng hai ả tố nga,
16. Thúy Kiều là chị, em là Thúy Vân.
17. Mai cốt cách, tuyết tinh thần,
18. Một người một vẻ, mười phân vẹn mười.
19. Vân xem trang trọng khác vời,
20.. Khuôn trăng đầy đặn, nét ngài nở nang.
21.Hoa cười ngọc thốt đoan trang,
22. Mây thua nước tóc, tuyết nhường màu da.
23. Kiều càng sắc sảo, mặn mà,
24. So bề tài, sắc, lại là phần hơn.
25.. Làn thu thủy, nét xuân sơn,
26. Hoa ghen thua thắm, liễu hờn kém xanh.
27. Một, hai nghiêng nước nghiêng thành,
28. Sắc đành đòi một, tài đành họa hai.
29. Thông minh vốn sẵn tư trời,
30.. Pha nghề thi họa, đủ mùi ca ngâm.
31. Cung thương làu bậc ngũ âm,
32. Nghề riêng ăn đứt Hồ cầm một trương.
33. Khúc nhà tay lựa nên chương,
34.Một thiên bạc mệnh, lại càng não nhân.
35.. Phong lưu rất mực hồng quần,
36 Xuân xanh sấp xỉ tới tuần cập kê
37 Êm đềm trướng rủ màn che,
38 Tường đông ong bướm đi về mặc ai.
39 Ngày xuân con én đưa thoi,
40.. Thiều quang chín chục đã ngoài sáu mươi.
41 Cỏ non xanh tận chân trời,
42 Cành lê trắng điểm một vài bông hoa.
43 Thanh minh trong tiết tháng ba,
44 Lễ là tảo mộ, hội là đạp Thanh.
45.. Gần xa nô nức yến anh,
46 Chị em sắm sửa bộ hành chơi xuân.
47 Dập dìu tài tử, giai nhân,
48 Ngựa xe như nước áo quần như nêm.
49 Ngổn ngang gò đống kéo lên,
50.. Thoi vàng vó rắc tro tiền giấy bay.
51 Tà tà bóng ngả về tây,
52 Chị em thơ thẩn dan tay ra về.
53 Bước dần theo ngọn tiểu khê,
54 Lần xem phong cảnh có bề thanh thanh.
55.. Nao nao dòng nước uốn quanh,
56 Dịp cầu nho nhỏ cuối ghềnh bắc ngang.
57 Sè sè nấm đất bên đàng,
58 Dàu dàu ngọn cỏ nửa vàng nửa xanh.
59 Rằng: Sao trong tiết thanh minh,
60.. Mà đây hương khói vắng tanh thế mà?
61 Vương Quan mới dẫn gần xa:
62 Đạm Tiên nàng ấy xưa là ca nhi.
63 Nổi danh tài sắc một thì,
64 Xôn xao ngoài cửa hiếm gì yến anh.
65.. Kiếp hồng nhan có mong manh,
66 Nửa chừng xuân thoắt gãy cành thiên hương.
67 Có người khách ở viễn phương,
68 Xa nghe cũng nức tiếng nàng tìm chơi.
69 Thuyền tình vừa ghé tới nơi,
70.. Thì đà trâm gẫy bình rơi bao giờ.
71 Buồng không lạnh ngắt như tờ,
72 Dấu xe ngựa đã rêu lờ mờ xanh.
73 Khóc than khôn xiết sự tình,
74 Khéo vô duyên ấy là mình với ta.
75.. Đã không duyên trước chăng mà,
76 Thì chi chút ước gọi là duyên sau.
77 Sắm xanh nếp tử xe trâu
78 Vùi nông
2. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
Bài toán: Nhập vào nhiệt độ trung bình của mỗi ngày
trong tuần. Tính và đưa ra màn hình nhiệt độ trung bình
của tuần và số lượng ngày có nhiệt độ cao hơn nhiệt độ
trung bình của tuần
Input:
t1,t2,t3,t4,t5,t6,t7.
Output: tb, dem.
H·y x¸c ®Þnh
Input, Output
vµ viÕt chư¬ng
tr×nh gi¶i bµi
to¸n trªn?
ĐẶT VẤN ĐỀ
3. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
Program vd1;
Uses crt;
Var
t1,t2,t3,t4,t5,t6,t7,tb : real;
dem : integer;
BEGIN
Clrscr;
write(‘ Nhap vao nhiet do 7 ngay : ’);
readln(t1,t2,t3,t4,t5,t6,t7);
tb : = (t1+t2+t3+t4+t5+t6+t7)/7;
dem : = 0 ;
if (t1>tb) then dem := dem + 1;
if (t2>tb) then dem := dem + 1;
if (t3>tb) then dem := dem + 1;
if (t4>tb) then dem := dem + 1;
if (t5>tb) then dem := dem + 1;
if (t6>tb) then dem := dem + 1;
if (t7>tb) then dem : = dem + 1;
Writeln(‘ Nhiet do trung binh trong tuan = ‘,tb : 6 : 2);
Writeln(‘ so ngay co nhiet do cao hon nhiet do tb ‘,
dem);
Readln;
END.
Hãy cho biết
các biến sử dụng
trong chương
trình?
Quan sát chương trình,
hãy cho biết nếu muốn
mở rộng bài toán tính
nhiệt độ trung bình của
N ngày(VD: 366 ngày)
thì thuật toán có thay
đổi không và sẽ gặp khó
khăn gì?
Để khắc phục
khó khăn đó ta sử
dụng kiểu dữ liệu
mảng một chiều.
4. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
2. Khai báo mảng một chiều trong Pascal
1. Định nghĩa mảng một chiều
BÀI 11. KIỂU MẢNG
5. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
1. Định nghĩa mảng một chiều
Mảng 1 chiều là dãy hữu hạn các phần tử cùng kiểu.
mảng được đặt tên và mỗi phần tử của nó có 1 chỉ số.
15 18 16 20 19 15 18A
Trong ®ã :
- Tên mảng : A
- Số phần tử của mảng: 7
VÝ dô:
- Kiểu dữ liệu của mảng: Kiểu số nguyên
1 2 3 4 5 6 7
6. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
a. khai báo trực tiếp
Trong đó: <tên biến mảng> : là tên của mảng
csđ : là chỉ số bắt đầu của mảng
csc : là chỉ số kết thúc của mảng
<kiểu phần tử> : là kiểu dữ liệu của phần tử
Lưu ý: csđ và csc là số nguyên dương và bắt đầu từ 1. csđ <= csc
2. Khai báo mảng một chiều trong Pascal
Var <tên biến mảng> : array [csđ..csc] of <kiểu phần tử>;
7. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
a. khai báo trực tiếp
2. Khai báo mảng một chiều trong Pascal
Var
SoNguyen : array[1..8] of integer;
Ví dụ 1: khai báo mảng gồm có 8 phần tử kiểu số nguyên
SoNguyen
21 873 4 5 6
2312 1834 25 16 70
8. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
a. khai báo trực tiếp
2. Khai báo mảng một chiều trong Pascal
Var
Kitu : array[1..10] of char;
Ví dụ 2: khai báo mảng 10 phần tử kiểu kí tự.
Kitu
21 873 4 5 6
‘A’‘M’ ‘T’‘S’‘N’ ‘C’ ‘H’ ‘E’
9
‘E’
10
‘R’
9. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
b. khai báo dán tiếp
2. Khai báo mảng một chiều trong Pascal
Var <tên biến mảng> : <tên kiểu mảng>;
Type <tên kiểu mảng> = array[csđ..csc] of <kiểu phần tử>;
Ví dụ 3: type nhietdo = array[1..366] of integer;
var A: nhietdo;
10. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
b. khai báo dán tiếp
2. Khai báo mảng một chiều trong Pascal
Ví dụ 4:
type
Mang1c = array[1..20] of integer;
Kitu = array[1..10] of char;
Var
A, B, C : Mang1c;
X, Y : Kitu;
11. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
c. Truy xuất phần tử trong mảng
2. Khai báo mảng một chiều trong Pascal
Cách truy xuất phần tử: Tên mảng[vị trí];
Ví dụ: Var B : array[ 1..8] of integer;
Vị trí 21 73 4 5 6 8
B[3]=
-5 17B
B[7]=
2310 17-5 9 43 33 59
12. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
d. Nhập dữ liệu vào mảng
2. Khai báo mảng một chiều trong Pascal
Khai báo mảng A gồm 5 phần tử có kiểu số nguyên.
Var A : array[1..5] of integer;
Viết chương trình thực hiện công việc sau:
- Khai báo mảng một chiều có 5 phần tử kiểu số nguyên.
- Nhập giá trị cho các phần tử trong mảng.
Ví dụ:
13. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
d. Nhập dữ liệu vào mảng
2. Khai báo mảng một chiều trong Pascal
Readln(A[1]) =
A
21 3 4 5
23
Readln(A[2]) =
Readln(A[3]) =
Readln(A[4]) =
Readln(A[5]) =
-4
9
-7
31
For to 5 do
Readln(A[ ]);
i:=
i12
1234
35
5
4
9 -7 31-423
14. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
d. Nhập dữ liệu vào mảng
2. Khai báo mảng một chiều trong Pascal
Program vidu;
Var A : array[1..5] of integer;
i : integer;
Begin
For i:=1 to 5 do
Readln(A[i]);
End.
Ctrl+F9
15. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
d. Nhập dữ liệu vào mảng
2. Khai báo mảng một chiều trong Pascal
-
16. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
d. Nhập dữ liệu vào mảng
2. Khai báo mảng một chiều trong Pascal
Program vidu;
Var A : array[1..5] of integer;
i : integer;
Begin
Writeln(‘Nhap gia tri cho cac phan tu cua mang:’);
For i:=1 to 5 do
Readln(A[i]);
End.
Ctrl+F9
17. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
d. Nhập dữ liệu vào mảng
2. Khai báo mảng một chiều trong Pascal
Nhap gia tri cho cac phan tu cua mang:
23
-4
9
-7
31
18. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
d. Nhập dữ liệu vào mảng
2. Khai báo mảng một chiều trong Pascal
Program vidu;
Var A : array[1..5] of integer;
i : integer;
Begin
Writeln(‘Nhap gia tri cho cac phan tu cua mang:’);
For i:=1 to 5 do
Begin
Writeln(‘Nhap A[‘,i,’]= ‘);
Readln(A[i]);
End;
End.
Ctrl+F9
19. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
d. Nhập dữ liệu vào mảng
2. Khai báo mảng một chiều trong Pascal
Nhap gia tri cho cac phan tu cua mang:
Nhap A[1]=
Nhap A[2]=
Nhap A[3]=
Nhap A[4]=
Nhap A[5]=
23
-4
9
-7
31
20. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
e. Xuất dữ liệu mảng
2. Khai báo mảng một chiều trong Pascal
- Xuất dữ liệu
For i:=1 to 5 do
Write(A[i]);
Viết chương trình nhập và xuất 5 số nguyên.
Ví dụ:
21. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
e. Xuất dữ liệu mảng
2. Khai báo mảng một chiều trong Pascal
Program vidu;
Var A : array[1..5] of integer;
i : integer;
Begin
Writeln(‘Nhap gia tri cho cac phan tu cua mang:’);
For i:=1 to 5 do
Begin
Writeln(‘Nhap A[’, i, ’]= ‘);
Readln(A[i]);
End;
Writeln(‘Gia tri cac phan tu trong mang la: ‘);
For i:=1 to 5 do
Write(A[i]:5);
End.
Ctrl+F9
Nhập mảng
Xuất mảng
22. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
e. Xuất dữ liệu mảng
2. Khai báo mảng một chiều trong Pascal
Nhap gia tri cho cac phan tu cua mang:
Nhap A[1]=
Nhap A[2]=
Nhap A[3]=
Nhap A[4]=
Nhap A[5]=
Gia tri cac phan tu trong mang la:
23 -4 9 -7 31
23
-4
9
-7
31
23. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
Mỗi phần tử trong mảng đều có một chỉ
số xác định và duy nhất. Ta nên dùng vòng
lặp For .. To .. Do để duyệt từng phần tử
của mảng.
Lưu ý:
24. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
Kiểm tra bài củ
Bài toán: Cho mảng một chiều A gồm N (N<=300)
phần tử số nguyên.
a. Viết khai báo một mảng một chiều A.
b. Viết chương trình nhập vào các phần tử của
mảng một chiều A.
c.Viết chương trình in các phần tử của mảng một
chiều A ra màn hình.
25. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
Ví dụ 1: Tìm phần tử lớn nhất của dãy số nguyên
gồm N phần tử (N 250, A[i] 500). Nếu dãy có nhiều
phần tử lớn nhất thì đưa ra chỉ số lớn nhất của phần tử
đầu tiên.
Xác định input
và output của bài
toán?
26. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
Input: Nhập vào số nguyên dương N (N 250) và dãy
N số nguyên dương A1, A2, …, An.
Output: Chỉ số và và giá trị của phần tử lớn nhất trong
dãy số đã cho.
Nêu ý tưởng
của thuật toán
tìm Max?
27. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
Tìm Max dãy số: 3 2 7 9 6
Gán Max = A[1].
Cho biến i chạy từ 2 đến N.
Nếu A[i] > Max thì Max A[i] sau đó
lưu lại vị trí i.
28. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
Số lín
nhÊt
Số nµy
míi lín
nhÊt å! Số nµy
lín h¬n
Tim ra
số lớn
nhÊt
råi!
MAX
Thuật toán tìm max của dãy số nguyên
29. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
Thuật toán
Bước 1: Nhập N và dãy A1, A2, …, An;
Bước 2: Max A1, i 2;
Bước 3: Nếu i > N thì đưa ra giá trị Max rồi kết thúc;
Bước 4:
Nếu Ai > Max thì Max Ai;
i i+1 rồi quay lại bước 3;
30. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
Viết khai báo
biến mảng
của bài toán?
type dayso = array [1..250] of integer;
var A: dayso;
Số lượng phần tử: 250
Tên kiểu mảng: dayso
Tên biến mảng: A
31. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
Program Tim_Max;
Uses crt;
Type dayso = Array[1..250] of integer;
Var
A : dayso ;
i,n,max,csmax : integer;
BEGIN
Clrscr;
write(‘ Nhap vao so phan tu cua day so : ’) ;
readln(n) ;
For i := 1 to n do
Begin
write(‘ Phan tu thu ‘,i,’ = ‘) ;
readln(A[i]) ;
End;
Max := A[1]; csmax :=1 ;
For i := 2 to n do
If (A[i]>max) Then
begin
max := a[i];
csmax=i;
end;
Writeln(‘ Gia tri cua phan tu Max : ’,Max) ;
Writeln(‘ Chi so cua phan tu Max : ’, csmax) ;
Readln ;
END.
32. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
Nhap vao so phan tu cua day so : 5
Phan tu thu 1 = 3
2
7
9
6
Gia tri cua phan tu Max : 9
Chi so cua phan tu Max : 4
Phan tu thu 2 =
Phan tu thu 3 =
Phan tu thu 4 =
Phan tu thu 5 =
33. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
Ví dụ 2: Sắp xếp dãy số nguyên dương gồm N phần tử
(N< 250, A[i] < 500) thành dãy số không giảm.
Xác định input
và output của
bài toán
34. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
Input: Nhập vào số ngyuên dương N, và dãy A1,A2, …, An.
Output: Dãy số A được sắp xếp thành dãy số không giảm.
Để giải bài toán
trên ở lớp 10 ta
đã sử dụng
thuật toán gì?
Sử dụng thuật toán tráo đổi
kiểu nổi bọt, số lớn chìm
xuống và số bé nổi lên trên.
35. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
Nêu ý tưởng
của thuật
toán?
+ Với mỗi cập số hạng đứng liền
trong dãy, nếu số trước lớn hơn số sau
ta đổi chổ chúng cho nhau.
+ Việc đổi chổ đó được lập lại cho
đến khi không còn sự đổi chổ nào xảy
ra nữa, để đưa số lớn nhất về vị trí
cuối cùng.
37. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
1
Trong pascal
nhận xét 1
được thực hiện
bằng lệnh gì?
For j:= N dowto 2 do
Tại mỗi lượt duyệt:
Cho i chạy từ 1 đến j – 1,
Nếu A[i] > A[i+1] thì
tráo đổi vị trí A[i] và
A[i+1] thông qua biến trung
gian là t
For i:= 1 to j – 1
if A[i] > A[i+1] then
begin
t:= A[i];
A[i]:= A[i+1];
A[i+1]:= t;
end ;
Số phần tử ở lượt duyệt j sẽ giảm từ phần tử N đến phần tử thứ 2
2
Nhận Xét
38. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
Viết khai báo
biến mảng
của bài toán?
Số lượng phần tử: 250
Tên kiểu mảng: sapxep
Tên biến mảng: A
type dayso = array [1..250] of integer;
var A: dayso;
39. NHH
Trường THPT Nguyễn Hùng Hiệp Edited by Quang-Son, Nguyen - 2015
3. Một số ví dụ
Khai b¸o m¶ng 1
chiÒu
NhËp m¶ng 1 chiÒu
Xö lÝ m¶ng b»ng
thuËt to¸n næi
bät
In kÕt qu¶
PROGRAM Sapxep;
Type dayso = Array[1..250] of integer;
Var
i, j , n , t: integer;
A : dayso;
BEGIN
write(‘ Nhap vao so phan tu cua day so : ’);
readln(n);
for i := 1 to n do
begin
write(‘ Phan tu thu ‘,i,’ = ‘);
readln(A[i]);
end;
for j := n downto 2 do
for i:= 1 to j-1 do
If A[i]>A[i+1] Then
begin
t:= A[i];
A[i]:=A[i+1];
A[i+1]:= t;
end;
writeln(‘ Day so duoc sap xep ’);
for i:=1 to n do write(A[i]:5);readln;
END.