IV. Đánh giá cuối bài (5ph)
N, i, j, tg, k:integer; Begin
clrscr;
write('Nhap vao so phan tu cua day N= ');readln(N); Writeln('Nhap vao cac gia tri cua cac phan tu trong day:'); for i:=1 to N do
Begin
write('Nhap phan tu thu i= ',i,' ,a[',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
writeln('thu hien doi cho cua a[',i,']','va a[',i+1,']'); tg:=a[i];
a[i]:=a[i+1]; a[i+1]:=tg;
write('Day sau khi doi cho la: '); for k:=1 to N do write(a[k]:3); writeln;
end;
writeln('Day so khong giam la: '); for k:=1 to N do write(a[k]:3); readln;
End.
3. Hoạt động3: Rèn luyện kỹ năng sử dụng biến mảng một chiều để giải quyết bài toán sắp xếp dãy
N phần tử( Thuật toán tráo đổi)
a. Mục tiêu: Hiểu thuật toán tráo đổi và vận dụng kiểu mảng một chiều để giải quyết bài toán. b. Nội dung:
Bài toán: Cho dãy A gồm N số nguyên: a1,..., aN, sắp xếp dãy thành dãy A không tăng. c. Các bớc tiến hành
TG Hoạt động của gv Hoạt động của học sinh
10' 1. Chiếu nội dung bài toán 2
2. Gợi ý để giải quyết bài toán
- Xác định bài toán? - ý tởng?
- Tơng tự sắp xếp dãy không giảm. Trong dãy không tăng, phần tử đứng trớc so với phần tử đứng sau ntn?
- Tơng tự, viết chơng trình?
- Chạy chơng trình
- Theo dõi trên màn hình và suy nghĩ trả lời câu hỏi. - Input: N nguyên dơng và dãy A
- Output: Dãy A không giảm
- Lần lợt từ số hạng 1 đến số hạng N, so sánh từng cặp một, nếu số đứng trớc nhỏ hơn số đứng sau thì đổi chỗ cho nhau. Sau mỗi lần sắp xếp đợc số nhỏ nhất về cuối dãy.
Program sap_xep_trao_doi2; uses crt;
const Nmax=1000;
Type day= Array[1..Nmax] Of integer; Var A:day;
N, i, j, tg, k:integer;Begin Begin
clrscr;
write('Nhap vao so phan tu cua day N= ');readln(N); Writeln('Nhap vao cac gia tri cua cac phan tu trong day:'); for i:=1 to N do
Begin
write('Nhap phan tu thu i= ',i,' ,a[',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
writeln('thu hien doi cho cua a[',i,']','va a[',i+1,']'); tg:=a[i];
a[i]:=a[i+1]; a[i+1]:=tg;
write('Day sau khi doi cho la: '); for k:=1 to N do write(a[k]:3); writeln;
end;
writeln('Day so khong giam la: '); for k:=1 to N do write(a[k]:3); readln;
End.
IV. Đánh giá cuối bài (5ph)
- Kiến thức đã học: Định nghĩa, và khai báo biến kiểu mảng một chiều. áp dụng đợc vào giải quyết các bài toán đơn giản đã học ở lớp 10.