Cú pháp thực hiện việc nhập nhiệt độ của 365 ngày quá dài Công thức tính nhiệt độ trung bình quá daøi Maát 365 caâu cuù phaùp If – then để thực hiện công việc đếm số lượng ngày trong 365[r]
Trang 4 BÀI TOÁN ĐẶT VẤN ĐỀ:
Xét bài toán nhập vào nhiệt độ (trung bình) ban ngày của 7 ngày liên tiếp (từ thứ 4 đến thứ 3 tuần sau) Từ 9/12/2015 – 15/12/2015) ở Tp.Buôn Mê Thuột , tính và đưa ra màn hình nhiệt độ trung bình của tuần và số lượng ngày trong tuần có nhiệt độ cao hơn nhiệt độ trung bình của tuần.
* D÷ liƯu nhËp vµo (INPUT): t1,t2,t3,t4,t5,t6,t7
* D÷ cÇn tÝnh vµ in ra (OUTPUT): tb, dem
Hãy xác định Input và Output của bài toán, và viết chương
trình Pascal
Trang 5Lưu ý: Chỉ xét nhiệt độ ban ngày không xét nhiệt độ ban đêm
Dự báo nhiệt độ trong 7 ngày (từ 9/12/2015 – 15/12/2015)
Dự kiến:
+ Nhiệt độ trung bình: 32,29 oC + Số ngày có nhiệt độ cao hơn nhiệt độ trung bình: 4
Trang 6Khai báo biến của bài này như
thế nào? ýù nghĩa của các biến?
Cú pháp thực hiện công việc
đếm số lượng ngày trong 7
ngày có nhiệt độ cao hơn nhiệt
độ trung bình ?
5
Cú pháp xuất kết quả đếm số ngày to lớn hơn to trung bình của 7
Trang 7Nếu nhập và tính trung bình, đếm số lượng ngày của 30 ngày (1 tháng) hay
365 ngày (1 năm) thì xảy
ra những vấn đề gì ?
Khai báo biến t1,t2,t3,…,t365
quá dài dòng
1
Cú pháp thực hiện việc nhập nhiệt độ của 365 ngày quá dài 2Công thức tính nhiệt độ trung bình quá
dài3
Mất 365 câu cú pháp If – then
để thực hiện công việc đếm số
lượng ngày trong 365 ngày có
to cao hơn to trung bình
5
Dùng KIỂU MẢNG có thể khắc phục được những khó khăn này!
Trang 8Nghiên cứu SGK, em hãy cho biết MẢNG MỘT
Trang 9Nghiên cứu SGK, em hãy cho biết đặc điểm của MẢNG MỘT CHIỀU ?
+ Mảng một chiều được đặt tên và mỗi phần tử của nó có một chỉ số Để mô tả mảng một chiều cần xác định kiểu của các phần tử và cách đánh số các phần tử của nó.
A
19
Trang 10Nghiên cứu SGK, em hãy
cho biết cách thức cho
phép xác định MẢNG
MỘT CHIỀU ?
Cách thức cho phép xác định:
• 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ử;
Trang 12Nghiên cứu SGK, em hãy cho biết cách khai báo biến MẢNG MỘT CHIỀU
?
+ Có 2 cách khai báo trực tiếp và gián tiếp
Trang 13Khai báo mảng một chiều trong PASCAL
* Cách 1: Khai báo gián tiếp
TYPE <tên kiểu mảng> = array[<chỉ số đầu> <chỉ số cuối>] of <kiểuphần tử>;
Var <ds biến mảng> : <tên kiểu mảng>;
Ví dụ: TYPE nhietdo = array[1 366] of real;
Var A: nhietdo;
Trong đó : 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 2 chỉ số là dấu
* Cách 2: Khai báo trực tiếp
Var <Ds biến mảng> : array[<chỉ số đầu> <chỉ số cuối>] of <kiểuphần tử>;
Var A,B : array[1 100] of real;
Ví dụ: Var nhietdo : array[1 366] of real;
Trang 14Cách tham chiếu
tới phần tử của
mảng một chiều?
+ Xác định bởi tên mảng cùng với chỉ số, được viết trong cặp dấu ngoặc [ và ].
Trang 15Các thao tác xử lí trong mảng một chiều
write('nhiet do ngay thu ',i,' la: '); readln(Nhietdo[i]);
19 21
18 20
17
Ví dụ: Nhập nhiệt độ n ngày
Trang 16* Đếm các phần tử trong mảng thoả mãn điều kiện cho bất kỳ
dem :=0;
For i :=1 to n do
IF Nhietdo[i]>TB then dem:=dem+1;
Các thao tác xử lí khác
Ví dụ: Đếm số ngày có nhiệt độ cao
hơn nhiệt độ TB của tuần
TB = 18.7
Dem=
0
7 6
5 4
3 2
1 i
19 17
19 21
18 20
+ 1
+ 1 +
1
Trang 17Vậy qua quá trình tìm hiểu về lý thuyết và thao tác của Kiểu mảng ta khắc phục khó khăn của
ví dụ trước đó!
Khai báo biến t1,t2,t3,…,t365
quá dài dòng
1
Cú pháp thực hiện việc nhập nhiệt độ của 365 ngày quá dài 2Công thức tính nhiệt độ trung bình quá
dài3
Mất 365 câu cú pháp If – then
để thực hiện công việc đếm số
lượng ngày trong 365 ngày có
to cao hơn to trung bình
5
Trang 18Khai báo biến quá dài dòng! 1
Cú pháp thực hiện việc xuất ra thông báo nhập và nhập nhiệt độ từ
bàn phím của nhiều ngày quá dài!
Trang 19Làm lại Đáp án
Tiếc quá …! Bạn chọn sai
rồi ! Hoan hơ Bạn chọn rồi ! đúng
A Var <tên biến mảng>:Array[kiểu phần tử] of <kiểu chỉ số>;
B Var <tên biến mảng>=Array[kiểu chỉ số] of <kiểu phần tử>;
C Var <tên biến mảng>:Array[kiểu chỉ số] of <kiểu phần tử>;
D Var <tên kiểu mảng>:Array[kiểu chỉ số] of <kiểu phần tử>;
Củng cố kiến thức bài học
Câu hỏi 1: Khai báo trực tiếp biến mảng một chiều?
Trang 20Làm lại Đáp án
Tiếc quá …! Bạn chọn sai
rồi ! Hoan hơ Bạn chọn rồi ! đúng
A Var nhietdo:Array[1…3] of integer;
B Var A:Array[1 7] of integer;
C Var chieucao=Array[1 80] of real;
D Var B:Array[30] of integer;
Củng cố kiến thức bài học
Câu hỏi 2: Cách khai báo biến mảng một chiều hợp lệ:
Trang 21Làm lại Đáp án
Tiếc quá …! Bạn chọn sai
rồi ! Hoan hơ Bạn chọn rồi ! đúng
B Nhietdo[5]
D Nhietdo<5>
Củng cố kiến thức bài học
Câu hỏi 3: Tham chiếu đến phần tử thứ 5 của mảng nhiệt độ A?
Trang 22BÀI TẬP VỀ NHÀ
Viết chương trình Pascal thực hiện việc sau:
1.Nhập vào chiều cao của các bạn học sinh lớp 11a10, tính chiều cao trung bình và số lượng các học sinh có chiều cao thấp hơn trung bình.
2.Nhập vào điểm kiểm tra một tiết môn Toán của học sinh lớp 11a10, tính điểm trung bình và số lượng các học sinh có điểm trên 5.
3.Suy nghĩ và thêm vào phần chương trình Pascal (ví dụ trang 54) đếm số lượng ngày có nhiệt độ thấp hơn nhiệt độ trung bình.