Giáo án tin học 9 - BÀI KIỂU DỮ LIỆU CÓ CẤU TRÚC: ARRAY (kiểu mảng) - Pdf 19

Giáo án tin học 9
BÀI
KIỂU DỮ LIỆU CÓ CẤU TRÚC: ARRAY (kiểu
mảng)

KIẾN THỨC YÊU CẦU:
 Biết xác định vấn đề nào có sử dụng đến cấu trúc
mảng.
 Biết cách khai báo và sử dụng.

KIẾN THỨC ĐẠT ĐƯỢC
 Biết các khái niệm về dữ liệu cấu trúc mảng.
 Biết cách khai báo mảng một chiều và hai chiều.
 Biết nhập và xuất dữ liệu trong mảng.
 Biết cách tìm kiếm một phần tử bất kỳ trong mảng.
 Biết cách sắp xếp các phần tử trong mảng theo
phương pháp chọn và phương pháp Bubble sort.

I/ Dữ liệu có cấu trúc mảng
1. Khái niệm về dữ liệu cấu trúc mảng
Một dữ liệu kiểu mảng là một mảng gồm nhiều
phần tử cùng kiểu. Các phần tử (element) của một
mảng phải cùng kiểu, các phần tử trong mảng có chỉ
số, kiểu của chỉ số phải có kiểu rời rạc.
2. Cách khai báo dữ liệu cấu trúc mảng
a. Mảng một chiều
Bạn có thể khai báo theo những cách như sau:
Var
Mang : Array [ 1 100 ] of integer;
Với khai báo như trên, chúng ta có thể thay
đổi lại là:

Var
Mang : Array [1 20, 1 50 ] of Real;
 Mang: Là một mảng hai chiều.
 Mang có 20 phần tử Mang[1], Mang[2], ,
Mang[20] mà mỗi phần tử Mang[i] là một dãy
có 50 phần tử Real.
 Mang[1] là mảng có các phần tử
Mang[1][1], …, Mang[1][50].
………
 Mang[20] là mảng có các phần tử
Mang[20][1], …, Mang[20][50].
II/ Sử dụng dữ liệu cấu trúc mảng
1. Nhập dữ liệu cho cấu trúc mảng.
Vì chỉ số của mảng được xác định nên người ta
dùng vòng lặp For để nhập dữ liệu cho cấu trúc
mảng.
Ví dụ 1:
Program Mang_mot_chieu;
Var
i : integer;
So : Array[1 5] of integer;
Begin
(* Nhập các phần tử vào mảng So*)
For i:= 1 to 5 do
Begin
Write(‘Ban nhap phan tu So[‘, i, ‘]
= ‘);
Readln(So[i]);
End;
Readln;

Write(So[i,j], ‘ ‘);
Bạn xem chương trình nhập và xuất mảng một
chiều và hai chiều như sau:
Ví dụ 1:
Program Mang_mot_chieu;
Var
i : integer;
So : Array[1 5] of integer;
Begin
(* Nhập các phần tử vào mảng So*)
For i:= 1 to 5 do
Begin
Write(‘Ban nhap phan tu So[‘, i, ‘]
= ‘);
Readln(So[i]);
End;
(* Xuất dữ liệu ra màn hình)
For i:= 1 to 5 do
Writeln(So[i]);
Readln;
End.
Ví dụ 2:
Program Mang_hai_chieu;
Var
i, j : integer;
So : Array[1 5, 1 5] of integer;
Begin
(* Nhập các phần tử vào mảng So*)
For i:= 1 to 5 do
For j := 1 to 5 do

Write(‘Ban nhap chuoi cho phan tu
Chuoi[‘,i, ‘] = ‘);
Readln(Chuoi[i]);
End;
(*Xuất dữ liệu String của mảng ra màn
hình*)
For i:=1 to 10 do
Writeln(Chuoi[i]);
Readln;
End.
Chạy thử chương trình, giả sử bạn nhập cho 10 phần
tử là:
Chuoi[1] = Chaomung
Chuoi[2] = SEAGAMES22
Chuoi[3] = Duoc
Chuoi[4] = Tochuc
Chuoi[5] = Tai
Chuoi[6] = VietNam
Chuoi[7] = Thantinh
Chuoi[8] = Doanket
Chuoi[9] = Huunghi
Chuoi[10]= ViHanhphucnhanloai.
Bạn sẽ có kết quả
Chaomung
SEAGAMES22
Duoc
Tochuc
Tai
VietNam
Thantinh

tri thu ‘,i ,’ cua mang’);
Dem:= Dem+1;
End;
if Dem=0 then
Writeln(‘Khong tim thay phan tu nay !!!
’);
Readln;
End.
 Trong chương trình trên, khai báo mảng có 10
phần tử có kiểu nguyên. biến i dùng cho vòng lặp
For, biến x chứa phần tử cần tìm được nhập vào từ
bàn phím, biếm dem dung để đếm số lần tìm thấy và
cũng để làm điều kiện xác định có tìm thấy hay
không.
 Vòng lặp For để nhập vào 10 phần tử. Nhập phần
tử cần tìm, cho biến dem bằng 0.
 Vòng lặp For để tìm, nếu mỗi lần tìm gặp, báo vị
trí thứ mấy của mảng, tăng biến dem lên 1.
 Nếu biến dem bằng 0, báo không tìm thấy phần
tử.
IV/ Sắp xếp các phần tử trong mảng
Có nhiều phương pháp sắp xếp trong mảng, ở đây
các bạn chỉ biết qua hai cách, đó là dùng phương
pháp chọn (selection sort) và phương pháp đổi chỗ,
hay còn gọi là phương pháp nổi bọt (bubble sort).
1. Phương pháp chọn (selection sort)
Đây là một trong những thuật toán sắp xếp đơn
giản nhất hoạt động như sau: Đầu tiên tìm phần tử
nhỏ nhất trong mảng và hoán vị nó với phần tử trong
vị trí đầu tiên, sau đó tìm phần tử nhỏ nhất kế tiếp và

End;
(*Dùng thuật toán chọn*)
For i:= 1 to N-1 do
Begin
min := i;
For j:= i+1 to N do
if Mang[j] < Mang[min] then min:=j;
tam:= Mang[min];
Mang[min]:=Mang[i]; Mang[i]:=tam;
End;
(*Xuất ra các phần tử của mảng sau khi đã sắp
xếp)
For i:= 1 to N do
Write(Mang[i], ‘ ‘);
Readln;
End.
 Đầu tiên khai báo hằng số N=10, khai báo mảng
có N phần tử kiểu nguyên. Biến i và j dùng cho vòng
lặp For. Biến min chỉ phần tử nhỏ, biến tam để chứa
thông tin tạm.
 Nhập N phần tử của mảng, dùng thuật toán sắp
xếp chọn để sắp xếp lại các phần tử trong mảng từ
nhỏ đến lớn. Xuất ra màn hình các giá trị đã sắp xếp.
 Chạy thử chương trình, nhập vào 10 số nguyên,
bạn sẽ thấy kết quả.
2. Dùng phương pháp đổi chỗ (Bubble sort)
Đây là phương pháp cơ bản thường dùng, hoán
vị các phần tử kề nhau, nếu cần, khi không cần đến
một hoán vị nào khác ở một bước nào đó thì tập tin
được sắp xong. Bạn xem thuật toán sau:

Mang[j-1]:=Mang[j];
Mang[j]:=tam;
End;
(*Xuất ra các phần tử của mảng sau khi đã sắp
xếp)
For i:= 1 to N do
Write(Mang[i], ‘ ‘);
Readln;
End.

TÓM LƯỢC

 Mảng chứa nhiều phần tử có cùng kiểu với nhau,
các phần tử có chỉ số và có kiểu rời rạc.
 Khai báo biến một chiều
Var
Mang : Array[1 n] of kiểu;
 Khai báo biến hai chiều
Var
Mang : Array[1 n. 1 m] of kiểu;
 Dùng một vòng lặp For để nhập các phần tử của
mảng một chiều, dùng hai vòng lặp For lồng nhau
để nhập các phần tử cho mảng hai chiều. Tương tự
như vậy khi cần xuất dữ liệu của mảng ra màn hình.
 Để tìm kiếm một phần tử trong mảng, ta cũng
dùng vòng lặp để duyệt tìm tuần tự (sequential
search) các phần tử trong mảng.
 Khi muốn sắp xếp các phần tử trong mảng, ta dùng
phương pháp chọn (Selection sort) hoặc phương
pháp đổi chỗ (bubble sort)


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status