Tải bản đầy đủ (.docx) (12 trang)

chu de mang 2021new

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 (451.11 KB, 12 trang )

1

Chủ đề:

Chương IV. Kiểu dữ liệu có cấu trúc
KIỂU MẢNG
(Gồm 6 tiết theo PPCT: 17,18,20,21,22,23,24)
Ngày giảng: Từ ngày 12/11/2020

Bước 1. Lựa chọn chủ đề: Tên chủ đề: kiểu mảng. số tiết: 7
Bước 2: Xác định KTKN và năng lực hướng tới của chủ đề
I. MỤC TIÊU
1. Kiến thức:
- Học sinh cần hiểu mảng là kiểu dữ liệu có cấu trúc, rất cần thiết và hữu ích trong
nhiều chương trình.
- Học sinh biết ý nghĩa của dữ liệu kiểu mảng
- Học sinh hiểu mảng một chiều là dãy các phần tử cùng kiểu, cách khai báo mảng,
truy nhập đến phần tử của mảng,
2. Kỹ năng:
- Nhận biết được thành phần trong khai báo mảng một chiều
- Nhận biết được định danh của mảng một phần tử kiểu mảng một chiều xuất hiện
trong chương trình
- Biết cách khai báo mảng đơn giản
3. Thái độ:
- Nhận thức được tầm quan trọng của dữ liệu có cấu trúc
- Rèn luyện ý thức học tập bộ mơn, thích tìm hiểu và khám phá ngơn ngữ lập trình .
Bước 3: Bảng mơ tả các mức u cầu cần đạt cho mỗi loại câu hỏi/bài tập
Loại
Nội
câu
Nhận biết


Thông hiểu
Vận dụng thấp Vận dụng cao
dung hỏi/bài
tập
1.
Kiểu
mảng
1
chiều
Câu
hỏi/bài
tập
Định
tính

Biết
khái
niệm
kiểu
mảng 1 chiều,
quy tắc xác
định mảng 1
chiều, Cách
khai báo biến
mảng và kiểu
mảng
một
chiều

Hiểu bài tốn

tính nhiệt độ
tuần.
Hiểu các thành
phần trong khai
báo mảng một
chiều.

Nd1.DT.NB1

Biết cách tham
chiếu đến từng
phần tử của
mảng.

ND1.DT.NB2

ND1.DT.TH1

ND1.DT.NB3

ND1.DT.TH2
ND1.DT.TH3

Bài tập
Định
lượng

Lấy được ví dụ
về cách khai
báo mảng 1

chiều theo 2
cách
ND1.DL.TH1

Giáo viên: Phan Thị Thanh Hà

Phân biệt được
khai báo đúng
và khai báo sai
trong khai báo
kiểu mảng 1
chiều


2
ND1.DL.VDT1
Áp dụng kiểu
mảng để giải
quyết bài toán
nhiệt độ tuần,
nhiệt độ năm

Bài tập
thực
hành

ND1.TH.VDT1
Câu
hỏi/bài
tập

Định
tính

2.
Một
số ví
dụ

Bài tập
Định
lượng

Học sinh hiểu
được cách khai
báo, nhập dữ
liệu, xuất dữ
liệu cho mảng 1
chiều qua ví dụ
trong SGK
ND2.ĐL.TH1

Bài tập
thực
hành

Vết được khai
báo cho một số
chương trình sử
dụng mảng 1
chiều, biết nhập

dữ liệu cho kiểu
mảng 1 chiều.

Sử dụng mảng
một chiều để
giải quyết các
bài tập.
ND2.TH.VDC1

ND2.TH.VDT1
III. HOẠT ĐỘNG DẠY HỌC
HOẠT ĐỘNG CỦA GIÁO VIÊN
HOẠT ĐỘNG CỦA HỌC SINH
Hoạt động 1: Kiểu mảng một chiều
Mục đích: Cung cấp cho học sinh
1. Ý tưởng để xây dựng dữ liệu kiểu mảng
2. Tên kiểu mảng một chiều.
3. Số lượng phần tử, kiểu dữ liệu của phần tử.
4. Cách khai báo biến mảng, cách tham chiếu
đến phần tử.
Đặt vấn đề: Ở bài học trước chúng ta đã tìm
hiểu bài tập
Input : N, dãy số a1, a2,..., aN,
Output: Giá trị lớn nhất (Max) của dãy
?Nêu ý tưởng để thiết kế thuật toán
- Khởi tạo giá trị Max = a1.
- Lần lượt với i từ 2 đến N, so sánh giá trị số
hạng ai với giá trị Max, nếu ai> Max thì Max
nhận giá trị mới là ai.
? Nếu có thêm u cầu:

1. Chỉ ra vị trí phần tử trong dãy đạt giá trị Max?

Giáo viên: Phan Thị Thanh Hà


3
2. Làm thế nào để truy cập trực tiếp đến ai?
Giả sử có dãy: 1, 5, 9, 7, 8, 2, 3
Ta có thể mơ tả dãy như sau:
1
5
9
7
8
2
3
a1 a2 a3 a4 a5 a6 a7
Để giải quyết các yêu cầu trên chúng ta cùng
tìm hiểu bài học hơm nay? Dữ liệu có cấu trúc Mảng
1. Kiểu mảng một chiều:
Bài tốn:
Input: Nhiệt độ trung bình của 7 ngày trong
tuần
Output: Nhiệt độ trung bình của tuần và số
ngày có nhiệt độ cao hơn nhiệt độ trung bình
Chương trình:
Program nhietdo_tuan;
var t1, t2, t3, t4, t5, t6, t7, tb:real;
dem:byte;
BEGIN

Writeln(‘Nhap nhiet do cua 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 :’, tb:4:2);
writeln(‘So ngay co nhiet do cao hon trung
binh’, dem);
readln
end.
? Nhận xét về chương trình trên:
- Viết chương trình khó khăn do dùng nhiều biến
- Đoạn câu lệnh tính tốn khá dài
- Có những câu lệnh hồn toàn giống nhau
nhưng được viết đi viết lại trong chương trình
nhiều lần
- Các biến để lưu giá trị nhiệt độ là các biến
cùng kiểu
Đặt vấn đề: Khi mở rộng bài toán từ phạm vi
một tuần sang phạm vi N ngày (một năm) thì
những hạn chế trên càng lớn.
Để khắc phục những hạn chế trên ta có
chương trình sau:
Program nhietdo_ngay;

Const max=366;
type kmang1=array [1..max] of real;
var nhietdo: kmang1;

Giáo viên: Phan Thị Thanh Hà


4
dem, i, N : byte;
tong, tb:real;
BEGIN
Write(‘Nhap so ngay:’); readln(N);
tong:= 0;
for i:= 1 to N do
begin
write(‘Nhap nhiet do ngay ‘,i,’ = ‘);
readln(nhiedo[i]);
Tong:= tong + nhietdo[i];
end;
dem:=0; tb:=tong/N;
For i:= 1 to N do
If nhietdo[i] > tb then dem:= dem + 1;
writeln(‘Nhiet do trung binh :’, tb:4:2);
writeln(‘So ngay co nhiet do cao hon trung
binh’, dem);
readln
END.
Trong chương trình trên đã khai báo biến mảng
một
chiều

Type kmang1=array[1..max] of real; {Khai báo
kiểu mảng một chiều có tên là kmang1 gồm Max
số thực}
var nhietdo: kmang1; {Khai báo biến mảng
nhietdo qua kiểu mảng }
Nhận xét: Khi xây dựng chương trình như trên
ta có thể mở rộng số ngày lên bao nhiêu tuỳ ý
thuật tốn vẫn khơng thay đổi
Khi xây dựng dữ liệu kiểu mảng ta xác định
những yếu tố nào?
Khái niệm: Mảng một chiều là một dãy hữu
hạn các phần tử
a. Khai báo:
+ Trực tiếp:
Var<Tên biến mảng>: array[kiểu chỉ số] of
<Kiểu phần tử>;
+ Gián tiếp:
Type<Tên kiểu mảng>= array[kiểu chỉ số]
of<Kiểu phần tử>;
Var : <tên biến mảng>:<Tên kiểu mảng>;
Trong đó:
- Kiểu chỉ số: Thường là một đoạn số nguyên
liên tục có dạng
n1..n2. n1, n2: Hằng hoặc biểu thức xác
định chỉ số đầu chỉ số cuối (n1<=n2).
- Kiểu phần tử: Là kiểu dữ liệu của từng phần
tử mảng
? Chúng ta đã được học các kiểu dữ liệu nào?
Như vây: Nếu ta xem Biến mảng là một hộp để
chứa dữ liệu thì kiểu mảng là một dãy hộp nối


Giáo viên: Phan Thị Thanh Hà

- Tên kiểu mảng một chiều
- Số lượng các phần tử
- Kiểu dữ liệu của phần tử
- Cách khai báo biến mảng
- Cách tham chiếu đến phần tử
Mảng một chiều là một dãy hữu hạn các phần tử
+ Trực tiếp:
Var<Tên biến mảng>: array[kiểu chỉ số] of
<Kiểu phần tử>;
+ Gián tiếp:
Type<Tên kiểu mảng>= array[kiểu chỉ số]
of<Kiểu phần tử>;
Var : <tên biến mảng>:<Tên kiểu mảng>;

Kiểu thực, kiểu nguyên, kiểu logic, kiểu kí tự.


5
tiếp nhau để chứa nhiều dữ liệu có cùng kiểu.
VD: Các cách khai báo biểu mảng hợp lệ:
Type
ArrayReal = Array[1..20] of Real;
ArrayReal = Array[1..20] of Real;
ArrayBoolean = Array[-100..100] of
Boolean;
ArrayInt = Array[-n+1..n+1] of Integer; {n là
hằng nguyên}

ArrayChar = Array[-100..0] of Char;
Var
So_thuc1, so_thuc2: ArrayReal;
logic1, logic2 : ArrayBoolean;
so_nguyen: ArrayInt;
ki_tu: ArrayChar;
? Xác định các yếu tố trong các ví dụ trên
Mảng 1:
1. Tên kiểu dữ liệu mới: ArrayReal
2. Có 20 phần tử
3. Phần tử mảng thuộc kiểu Real
4. Tên mảng sẽ dùng trong chương trình
so_thuc1, so_thuc2
Mảng 2: có 201 phần tử có kiểu là boolean, tên
kiểu mảng là ArrayBoolean
VD2: Tính trung bình điểm tốn từ lớp 1 đến
lớp 10
?Ta khai báo như thế nào?
C1: Type kmnag2 = array[1..10] of real;
Var diem:kmang2;
C2: Var diem :array[1..10] of real;
b. Truy cập (tham chiếu) đến phần tử mảng
Cấu trúc: <tên mảng>[<chỉ số>]
VD: Nhietdo[7] {Nhiệt độ ngày thứ 7}
sothuc[15] {Phần tử thứ 15 của dãy}
diem[7] {điểm lớp 7}
Chú ý: Khi muốn nhập xuất dữ liệu đến từng
phần tử của mảng ta có cấu trúc như thế nào?
Readln(<tên mảng>[<chỉ số>])
Writeln(<tên mảng>[<chỉ số>]);

Do phải nhập, xuất lần lượt từng phần tử như
vậy nên trong chương trình thường dùng vịng lặp
FOR để truy xuất đến phần tử của mảng:
For i:=<chỉ số đầu>to<chỉ số cuối>do
Begin
Readln(<tên mảng>[<chỉ số>])
Writeln(<tên mảng>[<chỉ số>]);
end;
Bài tập 1: Nhập mảng số nguyên gồm 10 phần
tử, in ra màn hình các phần tử theo chiều ngược
lại.
Program bai1;
type mang = array [1..10] of integer;
var a: mang;

Giáo viên: Phan Thị Thanh Hà

C1: Type kmnag2 = array[1..10] of real;
Var diem:kmang2;
C2: Var diem :array[1..10] of real;

Cấu trúc: <tên mảng>[<chỉ số>]
VD: Nhietdo[7]
sothuc[15]
Readln(<tên mảng>[<chỉ số>])
Writeln(<tên mảng>[<chỉ số>]);

For i:=<chỉ số đầu> to <chỉ số cuối> do
Begin
Readln(<tên mảng>[<chỉ số>])

Writeln(<tên mảng>[<chỉ số>]);
end;
Program bai1;
type mang=array[1..10]of integer;
var a: mang;
i:byte;
BEGIN
For i:= 1 to 10 do


6
i:byte;
Begin
BEGIN
Writeln(‘Nhap phan tu thu ‘,i,’=‘);
For i:= 1 to 10 do
Readln(a[i]);
Begin
end;
Writeln(‘Nhap phan tu thu ‘,i,’=‘);
for i:= 10 downto 1 do
Readln(a[i]);
write(a[i]:3);
end;
readln;
for i:= 10 downto 1 do
END.
write(a[i]:3);
readln;
END.

Hoạt động 2 . Bài tốn tìm phần tử lớn nhất của dãy
Input : Số nguyên dương N (N<=250) và dãy N số nguyên dương A1,A2,…,AN, mỗi số đều
không vượt quá 500.
Output: Chỉ số và giá trị của phần tử lớn nhất trong dãy số đã cho (nếu nhiều phần tử lớn
nhất chỉ cần đưa ra một trong số chúng).
HOẠT ĐỘNG CỦA GIÁO VIÊN
? Nêu input và output của bài toán?

HOẠT ĐỘNG CỦA HỌC SINH
Input : Số nguyên dương N (N<=250) và dãy N
số nguyên dương A1,A2,…,AN, mỗi số đều
không vượt quá 500.
Output: Chỉ số và giá trị của phần tử lớn nhất
trong dãy số đã cho (nếu nhiều phần tử lớn nhất
chỉ cần đưa ra một trong số chúng).
? Ý tưởng và thuật toán của bài toán?
Ý tưởng:
- Khởi tạo giá trị Max = a1.
- Lần lượt với i từ 2 đến N, so sánh giá trị số
hạng ai với giá trị Max, nếu ai> Max thì Max
nhận giá trị mới là ai.
Thuật tốn:
B1: Nhập N và dãy a1,..., aN
B2: Max:= a1, i:=2;
B3: Nếu i>N thì đưa ra giá trị Max rồi kết thúc
B4: 4.1. Nếu ai> Max thì Max:= ai.
4.2. i:= i+1; rồi quay lại B3.
? Yêu cầu học sinh thực hiện khai báo 1 mảng A Hs thực hiện yêu cầu Gv.
tối đa 250 phần tử, mỗi phần tử nhận giá trị
Var A : array[1..250] of integer;

nguyên?
? Yêu cầu thực hiện thủ tuc nhập số nguyên N từ
// nhap N
bàn phím?
Write(‘Nhap so phan tu cua day N =‘);
? Yêu cầu thực hiện thủ tuc nhập dãy số
readln(N);
nguyên?
//nhap day A
for i:= 1 to N do
Begin
Writeln(‘Nhap phan tu thu ‘,i,’=‘);
Readln(a[i]);
End;
? Yêu cầu thảo luận trong 5 phút lên bảng viết Program timMax;
chương trình
var
A:array[1..250] of integer;
N, i, Max, csmax: integer;
BEGIN

Giáo viên: Phan Thị Thanh Hà


7
Write(‘Nhap so phan tu cua day N =‘);
readln(N);
for i:= 1 to N do
Begin
Writeln(‘Nhap phan tu thu ‘,i,’=‘);

Readln(a[i]);
End;
Max:=a[1]; csmax:=1; {B2}
for i:= 2 to N do
if a[i] > max then
begin
max:= a[i];
csmax:=i;
end;
writeln(‘Gia tri Max cua day la:’, max);
writeln(‘Chi so cua phan tu max :’, csmax);
Readln;
END.




3. Hoạt động 3. Viết chương trình đếm xem trong dãy A cho trước có bao nhiêu phần
tử có giá trị bằng k cho trước và đưa ra chỉ số cuối cùng có giá trị bằng k đó
- Mục tiêu hoạt động: Giúp học sinh luyện tập kỹ năng khai báo và sử dụng mảng một
chiều.
- Cách tiến hành:
+ GV đưa ra bài tập HS nghiên cứu để hoàn thành
+Gọi HS lên bảng trình bày; HS,GV nhận xét
HOẠT ĐỘNG CỦA GIÁO VIÊN
HOẠT ĐỘNG CỦA HỌC SINH
Bài 1:Cho dãy A gồm n phần tử (A 1, A2, ...,
An) (Ai nguyên và 3k bất kỳ được nhập vào từ bàn phím. Hãy
viết chương trình đếm xem trong dãy A có

bao nhiêu phần tử có giá trị bằng k và đưa
ra chỉ số cuối cùng có giá trị bằng k đó.
Ghi nội dung câu hỏi
Nắm rõ câu hỏi
Yêu cầu HS hoàn thành
Hoàn thành bài tập
(?) Cho biết Input và Output của bài toán
TL
-Input: Dãy số nguyên A và số k
-Output: Số phần tử có giá trị bằng k và chỉ số cuối
cùng có giá trị bằng k đó
(?) Đưa ra thuật toán giải bài toán trên
TL
B1. Nhập N và dãy A1, A2,...,AN và giá trị k
B2. Dem←0, i←1;
B3. Nếu i>N thì đưa ra Dem và CS
B4.
B41. Nếu Ai=k thì Dem←Dem+1, CS←i.
(?) Viết chương trình giải bài tốn trên
Gợi ý:

Giáo viên: Phan Thị Thanh Hà

B42. i←i+1, quay lại B3
TL Lên bảng thực hiện
program BT1;


8
- Sử dụng mảng một chiều A gồm 1000 phần tử var a:array[1..1000]of integer;

i,k,n,cs,d:integer;
kiểu nguyên lưu N phần tử
Begin
- Gán D ←0
write('Nhap so phan tu n= '); read(n);
- Sử dụng vòng For duyệt từ phần tử thứ đầu writeln('Nhap dl cho day A');
for i:=1 to n do
tiên đến cuối:
begin
Nếu Ai=k thì D←D+1 và cs←i
write('a[',i,']='); read(a[i]);
Yêu cầu học sinh thảo luận và lên viết chương end;
d:=0;
trình?
write('Nhap gia tri k = '); read(k);
for i:=1 to n do
if a[i]=k then
begin d:=d+1;cs:=i;end;
writeln('So phan tu co gia tri = ',k,' la ', d);
GV nhận xét đánh giá kết quả thực hiện của if cs>0 then writeln('Chi so cuoi cung co gt = ',k,'
HS.
la ',cs) else write('Khong co phan tu co chi so nhu
vay! ');
readln
end.

4. Hoạt động 4. Bài 1 SGK Tr 63
HOẠT ĐỘNG CỦA GIÁO VIÊN
HOẠT ĐỘNG CỦA HỌC SINH
Phân nhóm và số máy tương ứng cho mỗi Ngồi vào máy được phân

nhóm học sinh
Đưa ra nội dung thực hành

Nắm nội dung thực hành và tiến hành thực hiện
dưới sự hướng dẫn của giáo viên

- Khởi động Turbo pascal
? Thực hiện khởi động máy
TL Thực hiện yêu cầu
Quan sát các nhóm khởi động và khắc phục sự Kiểm tra máy
cố
Hướng dẫn các nhóm thực hiện nội dung thực Thực hiện nội dung thực hành và dưới sự giúp đỡ
hành

của giáo viên

Giải đáp các vướng mắc của học sinh và khắc
phục sự cố máy tính.
2. Hãy tìm hiểu và chạy thử chương trình
Bài 1. Tạo mảng A gồm n phần tử (n≤100) số
sau :
nguyên, mỗi số có giá trị tuyệt đối khơng vượt
Program Cau1a;
q 300. Tính tổng các phần tử của mảng là
Var A:Array[1..100] of integer;
bội của một số nguyên dương k cho trước.
n,s,i,k:integer;
Begin
randomize;


Giáo viên: Phan Thị Thanh Hà


9
write(‘Nhap n= ‘); read(n);
for i:=1 to n do A[i]:=random(300)- random(300);
for i:=1 to n do write(a[i]:5);
writeln;
write(‘Nhap k = ‘); read(k);
s:=0;
for i:=1 to n do
if a[i] mod k=0 then s:=s+a[i];
writeln(‘Tong can tinh la: ‘,s);
readln
End.
•Hãy gõ đoạn chương trình trên.
• Hồn thành đoạn chương trình.
? Nêu cách dịch chương trình
TL. Ấn tổ hợp phím Alt+F9
? Nêu cách dịch chương trình
TL. Ấn tổ hợp phím Ctrl+F9
? Những dịng lệnh nào nhằm tạo mảng A
TL.
Randomize;
write(‘Nhap n= ‘); read(n);
for i:=1 to n do
A[i]:=random(300)- random(300);
? A[i]:=random(300) – random(300); có ý TL. Tạo ngẫu nhiên giá trị của phần tử mảng.
nghĩa gì
? Câu lệnh for i:=1 to n do cuối cùng của TL. Duyệt các phần tử trong danh sách

chương trình có ý nghĩa gì
?Câu lệnh s:=s+a[i]; được thực hiện bao nhiêu TL. Tùy theo mảng A có bao nhiêu phần tử thỏa
lần
mãn,
5. Hoạt động 5: Thoát máy
HOẠT ĐỘNG CỦA GIÁO VIÊN
HOẠT ĐỘNG CỦA HỌC SINH
- Thoát máy
Đánh giá quá trình thực hành của HS theo các Lắng nghe đánh giá của giáo viên và rút kinh
tiêu chí:
- Hồn thành chương trình đã cho theo mẫu
với các bộ dữ liệu khác nhau.

nghiệm

- Làm quen với việc hiệu chỉnh chương
trình
6. Hoạt động 6. Bài 2. trang 64
HOẠT ĐỘNG CỦA GIÁO VIÊN
HOẠT ĐỘNG CỦA HỌC SINH
Phân nhóm và số máy tương ứng cho mỗi Ngồi vào máy được phân
nhóm học sinh
Đưa ra nội dung thực hành

Nắm nội dung thực hành và tiến hành thực hiện

dưới sự hướng dẫn của giáo viên
- Khởi động Turbo pascal
? Thực hiện khởi động máy
TL Thực hiện yêu cầu

Quan sát các nhóm khởi động và khắc phục sự Kiểm tra máy
cố
Hướng dẫn các nhóm thực hiện nội dung thực Thực hiện nội dung thực hành và dưới sự giúp đỡ
hành

Giáo viên: Phan Thị Thanh Hà

của giáo viên


10
Giải đáp các vướng mắc của học sinh và khắc
phục sự cố máy tính.
Bài 2: Tìm Max của mảng và đưa ra chỉ số 2. Hãy tìm hiểu và chạy thử chương trình sau :
và giá trị tìm được. Nếu có nhiều phần tử đạt
Program timMax;
giá trị max thì đưa ra chỉ số nhỏ nhất
Const Nmax = 250;
Type arrInt = array[1..Nmax] of integer;
var N, i, Max, csmax: integer;a:arrInt;
BEGIN
Write(‘Nhap so phan tu cua day N =’);
readln(N);
for i:= 1 to N do
Begin
Writeln(‘Nhap phan tu thu ’,i,’=’);
Readln(a[i]);
End;
j:=1;
for i:=2 to n do

if a[i]>a[j] then j:=i;
write(‘Chi so ’,j,’ gia tri:’,a[j]:4);
Readln
END.
•Hãy gõ đoạn chương trình trên.
• Hồn thành đoạn chương trình.
? Nêu cách dịch chương trình
TL. Ấn tổ hợp phím Alt+F9
? Nêu cách dịch chương trình
TL. Ấn tổ hợp phím Ctrl+F9
7. Hoạt động 7: Thốt máy
HOẠT ĐỘNG CỦA GIÁO VIÊN
HOẠT ĐỘNG CỦA HỌC SINH
- Thoát máy
Đánh giá quá trình thực hành của HS theo các Lắng nghe đánh giá của giáo viên và rút kinh
tiêu chí:
- Hồn thành chương trình đã cho theo mẫu
với các bộ dữ liệu khác nhau.

nghiệm

- Làm quen với việc hiệu chỉnh chương
trình
8. Hoạt động 8. Bài tập 1 trang 65
HOẠT ĐỘNG CỦA GIÁO VIÊN
HOẠT ĐỘNG CỦA HỌC SINH
Phân nhóm và số máy tương ứng cho mỗi Ngồi vào máy được phân
nhóm học sinh
Đưa ra nội dung thực hành


Nắm nội dung thực hành và tiến hành thực hiện

dưới sự hướng dẫn của giáo viên
- Khởi động Turbo pascal
? Thực hiện khởi động máy
TL Thực hiện yêu cầu
Quan sát các nhóm khởi động và khắc phục sự Kiểm tra máy
cố
Hướng dẫn các nhóm thực hiện nội dung thực Thực hiện nội dung thực hành và dưới sự giúp đỡ
hành
Giải đáp các vướng mắc của học sinh và khắc

Giáo viên: Phan Thị Thanh Hà

của giáo viên


11
phục sự cố máy tính.
Bài 1:
a. Chạy thử chương trình thực hiện thuật toán
sắp xếp dãy số nguyên bằng thuật tốn tráo
đổi
Hs thực hiện u cầu trên máy của mình.

program trao_doi;
uses crt;
const Nmax=250;
type mang:array[1..Nmax] of
integer;

var n, i, j, tg:integer; a:mang;
Begin
Randomize;
Write(‘Nhap n=’);readln(n);
for i:=1 to n do a[i]:= random(300)
- random(300);
for i:=1 to n do write(a[i]:3);
writeln;
for j:=1 n downto 2 do
for i:=1 to j-1 do
if a[i]>a[i+1] then
begin
tg:= a[i];
a[i]:=a[i+1];
a[i+1]:=tg;
end;
writeln(‘Day vua sap xep’);
for i:=1 to n do
write(a[i]:5);
writeln;
readln;
end.

YC một bạn lên bảng trình bày bài làm.
Giáo viên nhận xét cho điểm.

9. Hoạt động 9: Thoát máy
HOẠT ĐỘNG CỦA GIÁO VIÊN
HOẠT ĐỘNG CỦA HỌC SINH
- Thoát máy

Đánh giá quá trình thực hành của HS theo các Lắng nghe đánh giá của giáo viên và rút kinh
tiêu chí:
- Hồn thành chương trình đã cho theo mẫu
với các bộ dữ liệu khác nhau.

nghiệm

- Làm quen với việc hiệu chỉnh chương
trình
Bước 5: Hệ thống câu hỏi/bài tập đánh giá theo các mức đã mô tả
ND1.DT.NB1. Em hãy nêu khái niệm mảng 1 chiều.?
ND1.DT.NB2. Em hãy nêu các quy tắc xác định mảng 1 chiều?
ND1.DT.NB3. Em hãy viết cách khai báo tên biến mảng và kiểu mảng 1 chiều?
ND1.DT.TH1. Em hãy viết cách khai báo cho bài nhiệt độ tuần?
ND1.DT.TH2. Em hãy chỉ rõ các thành phấn trong khai báo của bài nhiệt độ tuần?
ND1.DT.TH3. Cho mảng A, hãy viết cách tham chiếu đên phần tử thứ 5 trong mảng A?
T
H
A
N
H
S
E
N
ND1.DL.TH1. Em hãy lấy một vài ví dụ về cách khai báo mảng 1 chiều theo 2 cách?
ND1.DL.VDT1. Em hãy phân biệt cách khai báo đúng và khai báo sai trong các cách sau:
Giáo viên: Phan Thị Thanh Hà


12


A. Var A=array[1..100] of longint;
B. Var A: array[1..30] of char;
C. Type A: : array[-5..30] of boolean;
D. Var A: array[0..30] of real;
ND1.TH.VDT1. u cầu em hãy viết chương trình tính nhiệt độ N ngày.
ND2.TH.VDT1.Cho dãy A gồm N phần tử (N<100), mỗi phần tử trong dãy A có giá trị
khơng q 10000. Em hãy đưa ra màn hình số lượng các số chẵn và lẽ trong dãy A.
Yêu cầu:
Khai báo
Nhập mảng một chiều.
ND2.TH.VDC1. Cho dãy A gồm N phần tử (N<100), mỗi phần tử trong dãy A có giá trị
khơng q 10000. Em hãy đưa ra màn hình số lượng các số chẵn và lẽ trong dãy A.
ND2.TH.VDC2. Cho dãy A gồm n phần tử (A1, A2, ..., An) (Ai nguyên và 3số nguyên k bất kỳ được nhập vào từ bàn phím. Hãy viết chương trình đếm xem trong dãy
A có bao nhiêu phần tử có giá trị bằng k và đưa ra chỉ số cuối cùng có giá trị bằng k đó.
ND2.TH.VDC3*. Nhập vào một dãy n số nguyên A[1],A[2],...,A[n] Với (n<=300 và
Ai<=10000). Đọc ra màn hình các thông tin sau :
1. Tổng các phần tử của dãy.
2. Số lượng các số hạng dương và tổng của các số hạng dương.
3. Số lượng các số hạng âm và tổng của các số hạng âm
4. Số lượng các số chẵn và tổng của các số chẵn.
5. Chỉ số của số hạng dương đầu tiên của dãy.
6. Chỉ số của số hạng âm đầu tiên của dãy.
7. Chỉ số của số hạng dương cuối cùng của dãy.
8. Chỉ số của số hạng âm cuối cùng của dãy.
9. Số hạng lớn nhất của dãy và chỉ số của nó.
10. Số hạng nhỏ nhất của dãy và chỉ số của nó.
11. Số hạng âm lớn nhất của dãy và chỉ số của nó.
12. Số hạng dương nhỏ nhất của dãy và chỉ số của nó.

13. Giá trị lớn thứ nhì của dãy và các chỉ số của các số hạng đạt giá trị lớn nhì.
14. Giá trị nhỏ thứ nhì của dãy và các chỉ số của các số hạng đạt giá trị nhỏ nhì.
15. Số lượng các phần tử bằng giá trị X ( nguyên ) cho trước.
16. Số lượng các phần tử khác giá trị X ( nguyên ) cho trước.
17. Số lượng các phần tử >= giá trị X ( nguyên ) cho trước.
18. Chuyển các số hạng dương của mảng lên đầu mảng và in mảng ra màn hình.
19. Tìm số phần tử là dương và là số ngun tố của mảng và vị trí của nó trong mảng
20. Sắp xếp tăng dần mảng đã cho (a[i]<=a[i+1] )
21. Sắp xếp giảm dần mảng đã cho (a[i]>=a[i+1] )
--------------------------------------------------------------------------

Giáo viên: Phan Thị Thanh Hà



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×