mang_mot_chieu - WordPress.com

Report
1
Bài toán đặt vấn đề
Nhập vào nhiệt độ của mỗi ngày trong
tuần. Tính và xuất ra màn hình nhiệt độ
trung bình của tuần và số ngày có nhiệt độ
cao hơn nhiệt độ trung bình của tuần.
1. Xác định Input, Output
2. Viết chương trình bài toán trên?
Input: t1, t2, t3, t4, t5, t6, t7
Output: tb, dem
2
3
Xét bài toán nhập vào nhiệt độ của mỗi ngày
trong năm, tính và đưa ra nhiệt độ trung bình
của năm.
Khi N lớn thì chương trình
có những hạn chế nào?
Phải khai báo
quá nhiều biến
(366)
Chương trình
tính toán phải
viết khá dài
4
Kiểu dữ liệu mảng một chiều sẽ giúp ta giải quyết
vấn đề trên
Kiểu mảng một chiều là kiểu dữ liệu có cấu trúc
Pascal cho phép tạo ra các kiểu dữ liệu có cấu trúc
trên cơ sở các kiểu dữ liệu chuẩn theo một số kĩ
thuật tạo kiểu do ngôn ngữ lập trình quy định.
Hay KDL có cấu trúc là KDL do người dùng tự định
nghĩa dựa trên các KDL chuẩn và cú pháp có sẵn
5
Mảng một 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ó một chỉ số.
Một số quy tắc xác định kiểu mảng một chiều:
Tên kiểu mảng một chiều
Số lượng 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ử: <Tên biến mảng>
[Chỉ số] = Giá trị tại chỉ số
6
Ví dụ: một dãy NhietDo gồm 8 số
20.5
18
19.2
26
25 21.4
21.4 17
20
Trong đó
 Tên mảng :
 Số phần tử của mảng:
 Kiểu dữ liệu của các phần tử:
 Khi tham chiếu đến phần tử thứ i - ta viết
A[i]
7
Có mấy cách khai báo mảng một
chiều? Đó là những cách nào?
Có 2 cách khai báo:
trực tiếp và gián tiếp
Có gì khác nhau giữa
2 cách?? Trông chúng
như thế nào?
8
Đây là cách khai
báo trực tiếp ^^
Var <tên biến mảng>: array[<chỉ số đầu>..<chỉ số cuối>] of <kiểu phần tử>;
Chỉ số đầu, chỉ số cuối: là các hằng hoặc biểu thức nguyên
Chỉ số đầu ≤ chỉ số cuối
Giữa hai chỉ số là dấu ..
Kiểu phần tử: kiểu của các phần tử mảng
VD1: Var nhietdo : array[1..366] of integer;
VD2: var MangKytu:array[Byte] of Char;
VD3: Var b : array[1..100] of integer;
9
Còn đây là cách khai
báo gián tiếp ^^
TYPE <tên kiểu mảng> = array[<chỉ số đầu>..<chỉ số cuối>] of <kiểu phần tử>;
Var <tên biến mảng> : <tên kiểu mảng>;
Tại sao không dùng
khai báo
tiếp nguyên
Chỉ số đầu, chỉ số cuối: là các hằng hoặc
biểutrực
thức
Chỉ số đầu ≤ chỉ số cuối
Giữa hai chỉ số là dấu ..
Kiểu phần tử: kiểu của các phần tử mảng
VD1: TYPE nhietdo = array[1..366] of integer;
Var A:nhietdo;
VD2: Type mang1c = array[1..20] of real;
Var a, b: mang1c;
10
A
A[1] A[2]
1
2
A[3] . . . A[N-1]
3
N-1
A[N]
N
Mảng có tên và số phần tử
Các số trong mảng có cùng kiểu dữ liệu
11
<Tên biến mảng> [chỉ số] = Giá trị tại chỉ số
Ví dụ:
A
20
8
19
26
-3
15
7
-10
1
2
3
4
5
6
7
8
A[2] = 8
A[4] = 26
A[7] = 7
12
For i:=1 to n do
Begin
Write(‘A[’,i, ‘]:’);
Readln (A[i]);
End;
13
For i:=1 to n do
Write(‘ ‘, A[i]);
14
For i:=1 to n do
Begin
If <điều kiện> then
<câu lệnh 1>;
<câu lệnh 2>;
<câu lệnh…>
End;
15
16
Khai báo mảng t (lưu trữ nhiệt độ từng
ngày trong năm) bằng cách gián tiếp
Type t=array [1..366] of real;
Var A: t;
17
Viết chương trình tìm giá trị lớn nhất của
một mảng chứa các số nguyên gồm N phần
tử. (N<=200)
• Input:
•Dãy N số nguyên dương A1, A2,…,
AN (N<=200)
• Output:
• Chỉ số và giá trị của phần tử lớn
nhất trong dãy số đã cho.
18
• Nhóm 2 học sinh ngồi cùng bàn
• Thời gian thảo luận (5 phút)
• Đọc kĩ yêu cầu bài toán; xác định input, output;
các bước giải bài toán
• Viết chương trình hoàn chỉnh
• Nhóm làm xong trước nhất lên bảng giải; các
nhóm còn lại nộp lại bài cho GV, GV coi bài (3’)
• Bài đúng, chính xác (cộng điểm bài kiểm tra 15’
tới)
• GV nhận xét, sửa bài, cộng điểm các nhóm (2’)
19
1. Nhập N và dãy a1,...,an;
Write(‘ Nhap vao so luong phan tu:’);
Readln(N);
For i:=1 to N do
begin
write(‘ Phan tu thu ’ ,i, ’ = ’);
readln(a[i])
end;
2. max  a1 ; i  1;
max:=a[1]; chiso:=1;
3. Nếu i >N đưa ra MAX và
chỉ số i => kết thúc;
For i:=2 to n do
4. Nếu a[i] >max thì
maxa[i],
i  i+1 => quay lại bước 3.
If a[i]>max then
begin
max:=a[i];
chiso:=i;
end;
20
 Khái niệm
 Hai cách khai báo, tham chiếu phần tử
 Thao tác nhập, xuất, xử lí trên mảng một chiều
BTVN
 Học lí thuyết, làm bài tập trong PBT
 http://itmenteachers.blogspot.com/2011/12/tracnghiem-tong-hop-mang-1-chieu.html làm bài tập
trên trang web
 Viết lại chương trình tính nhiệt độ năm, tìm max
 Xem bài mới
21
22
23

similar documents