cho các hoạt động đ ợc diễn ra trật tự, dễ quản lý và nhanh chóng hơn.. Dãy số và biến mảng Ví dụ:... Với các ngôn ngữ lập trình, khi làm việc với nhiều con số thì sao nhỉ?. Trong ngô
Trang 2Tại sao khi tham
gia các hoạt động
tập thể chúng ta
th ờng phải xếp
hàng?
Xếp hàng vào lớp
Xếp hàng mua vé xe
Xếp hàng tập thể dục
cho các hoạt động đ ợc diễn ra trật tự, dễ quản lý và nhanh chóng hơn.
1 Dãy số và biến mảng
Ví dụ:
Trang 3Với các ngôn ngữ
lập trình, khi làm việc với nhiều con
số thì sao nhỉ?
Trong ngôn ngữ lập trình, các dữ liệu
khai báo và xử lí dữ liệu trở nên đơn giản hơn.
Trang 4Viết ch ơng trình nhập điểm thi học kì môn Tin học của một lớp gồm N học sinh In ra màn hinh điểm thi cao nhất.
Bài toán đặt vấn đề:
Hãy xác định Input, Output của bài toán trên ?
* Dữ liệu nhập vào (INPUT): diem _ 1, diem_2, diem_3, diem_4, , diem_N
* Dữ cần tính và in ra (OUTPUT): Max
Trang 5Với những câu lệnh đã học , giải
bài toán trên sẽ
gặp khó khăn gì ?
Khai báo biến quá
lớn (diem_1, diem_2, , diem_N )
và rất nhiều câu lệnh IF
Để giải quyết vấn đề ể giải quyết vấn đề
trên, hầu hết các ngôn
ngữ lập trình đều sử
dụng một kiểu dữ liệu,
gọi là kiểu mảng
Mảng là một dãy hữu hạn các phần tử cùng kiểu
Biến có kiểu dữ liệu là kiểu mảng đ ợc gọi là biến mảng
Trang 62 Ví dụ về biến mảng:
Khai báo biến mảng trong Pascal
Var Tên biến : array [< chỉ số đầu> < chỉ số cuối>] of <kiểuphần
tử>;
Trong đó :
thức nguyên
- Chỉ số đầu chỉ số cuối
Var diemtin : array[1 40] of real;
Ví dụ: Var tuoi : array[1 50] of integer;
Var diemtin, diemtoan, diemvan : array[1 40] of real;
Trang 7 Các thông số trong mảng
Điemtin
8.0
Khi gán, đọc, tính toán với các giá trị của phần tử
thứ i ta viết A[i] VD A[6] := 8.0
Tên biến mảng : Diemtin
Số phần tử của mảng ( số học sinh trong lớp) : 40
Kiểu dữ liệu của các phần tử: Kiểu thực.
Khai báo: Var diemtin : array [1 40] of real ;
Trang 8n
1 NhËp sè phÇn tö ( sè
HS) cña m¶ng A
Write(‘ Nhap n= ’);
Readln(n);
2 NhËp vµo gi¸ trÞ cña
c¸c phÇn tö trong
m¶ng (diemtin[i] )
For i:=1 to n do Begin
write(‘diem cua hs thu ’ ,i, ’ : ’); readln(diemtin[i]);
end;
C¸c b íc ThÓ hiÖn b»ng pascal
a §äc vµo biÕn m¶ng
víi n = 7
5.5 8.0
9.5 6.0
4.5 9.0
7.0
VÝ dô: NhËp ®iÓm thi tin häc cña häc
sinh trong líp
Lîi Ých cña viÖc sö dông biÕn m¶ng
Trang 9Writeln(‘ Diem tin hoc cua lop : ’);
For i:=1 to n do Begin
Textcolor(i); Write(diemtin[i]:4:1); End;
Diem tin hoc cua lop :
1 Th«ng b¸o
2 In gi¸ trÞ cña
c¸c phÇn tö
KÕt qu¶ in ra mµn h×nh:
b In c¸c phÇn tö trong biÕn m¶ng
C¸c b íc ThÓ hiÖn b»ng pascal
Trang 103 T×m gi¸ trÞ lín nhÊt vµ nhá nhÊt cña d·y sè
Bµi to¸n: ViÕt ch ¬ng tr×nh nhËp ®iÓm thi häc k× m«n Tin häc cña mét líp gåm N häc sinh In ra mµn hinh ®iÓm thi cao nhÊt vµ thÊp nhÊt
Input:: D·y sè A gåm ®iÓm cña N häc sinh
Output: Max, Min cña d·y sè
H·y nªu ý t ëng t×m
sè lín nhÊt vµ nhá nhÊt cña d·y sè
Trang 11Sè nµy
lín nhÊt
Sè nµy míi lín nhÊt
å! Sè nµy lín h¬n
T×m ra
sè lín nhÊt råi! thuËt to¸n t×m max
Trang 12* ý t ởng tìm max:
- Đặt giá trị Max = a1.
- Lần l ợt cho i chạy từ 2 đến N, so sánh
giá trị ai với giá trị Max, nếu ai > Max thì
Max nhận giá trị mới là ai.
* Đoạn ch ơng trình
Max:=A[1];
For i:=2 to N do IF (A[i] > Max) Then Max:=A[i];
Trang 13Program vd1;
Uses crt;
Var
A: Array[1 100] of real;
i,n: integer;
Max,min: real;
BEGIN
Clrscr;
write(‘ Nhap vao so häc sinh : ’) ; readln(n) ;
For i := 1 to n do
Begin write(‘ Nhap diem Hs thu ‘,i,’ : ‘) ; readln(A[i]) ;
End;
Max:=A[1];
For i := 2 to n do
If A[i]>Max Then Max := A[i];
Writeln(‘ Diem lon nhat la ', Max:5:1) ; Min:=A[1];
For i := 2 to n do
If A[i]<Min Then Min := A[i];
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
Trang 14Nhap vao so hoc sinh : 7
Diem lon nhat la 9.5 Diem nho nhat la 4.5
Ch ¬ng tr×nh ch¹y vµ cho kÕt qu¶ nh sau:
Trang 15Ghi nhớ!
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