Giáo án dạy học theo chủ đề bài Làm việc với dãy số Tin 8 1. Kiến thức: Đạt chuẩn : Biết được khái niệm mảng một chiều. Biết cách khai báo mảng, nhập, in, truy cập các phần tử của mảng. Nhận biết được ưu điểm khi sử dụng biến mảng trong chương trình. Hiểu các thuật toán và các câu lệnh có sử dụng biến mảng. Trên chuẩn : Viết được đoạn chương trình có sử dụng biến mảng ở bài toán đơn giản. 2. Kỹ năng: Rèn luyện về khai báo, sử dụng biến. Đọc, hiểu và chỉnh sửa đoạn chương trình
Trang 1DẠY HỌC THEO CHỦ ĐỀ Tuần: 28-29
Tiết: từ tiết 53 đến tiết 55
Ngày soạn: 04/03/2018
Ngày dạy: Từ ngày 12/03/2018 đến ngày 21/03/2018
Tên chủ đề: LÀM VIỆC VỚI DÃY SỐ
Số tiết: 03
A BẢNG MÔ TẢ CÁC NĂNG LỰC CẦN PHÁT TRIỂN
Nội dung chủ đề Nhận biết Thông hiểu Vận dụng thấp Vận dụng cao
Bài 9: Làm việc
với dãy số
- Biết được khái niệm mảng một chiều
- Biết cách khai báo mảng, nhập,
in, truy cập các phần tử của mảng
- Nhận biết được
ưu điểm khi sử dụng biến mảng trong chương trình
- Hiểu các thuật toán và các câu lệnh
có sử dụng biến mảng
- Hiểu được việc gán giá trị, đọc giá trị
và thực hiện các 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ử đó
- Viết được các câu lệnh có sử dụng biến mảng
và câu lệnh ghép
Viết được chương trình hoàn chỉnh có
sử dụng biến mảng ở bài toán đơn giản
B HỆ THỐNG CÂU HỎI/BÀI TẬP THỰC HÀNH:
Biết :
1 Để giải bài toán nhập điểm cho 50 bạn học sinh cần khai báo biến như thế nào ?
2 Thay cho việc sử dụng nhiều biến để lưu nhiều dữ liệu có liên quan với nhau, có thể sử dụng một biến duy nhất hay không ?
3 Biến mảng là gì ?
4 Việc sắp xếp thứ tự cho các phần tử trong mảng như thế nào?
5 Để nhập điểm cho 50 bạn học sinh thì sử dụng câu lệnh gì ?
6 Kiểu dữ liệu của mảng là gì?
7 Cú pháp khai báo biến mảng ?
8 Em hãy chọn đáp án đúng:
A Dữ liệu kiểu mảng là tập hợp các phần tử không có thứ tự và mọi phần tử có cùng một kiểu dữ liệu
B Dữ liệu kiểu mảng là tập hợp các phần tử có thứ tự và mỗi một phần tử trong mảng
có thể có các kiểu dữ liệu khác nhau
Trang 2C Dữ liệu kiểu mảng là tập hợp các phần tử có thứ tự và mọi phần tử có cùng một kiểu dữ liệu
9 Để nhập điểm cho một lớp, mỗi học sinh có thể có nhiều loại điểm khác nhau, để
xử lý đồng thời các loại điểm thì cần khai báo thế nào ?
10 Cách khai báo và sử dụng biến mảng có lợi gì?
11 "Có thể xem biến mảng là một biến được tạo từ nhiều biến có cùng kiểu, nhưng chỉ dưới một tên duy nhất" Phát biểu đó đúng hay sai?
Hiểu :
1 Hãy khai báo các mảng sau :
a Mảng Diem gồm 40 phần tử thuộc kiểu dữ liệu số thực ?
b Mảng A, B gồm 10 phần tử thuộc kiểu dữ liệu số nguyên ?
2 Cách khai báo biến mảng sau đây đúng hay sai? Khoanh tròn vào chỗ sai (nếu có) a) Var X: Array[10 , 13] of real;
b) Var X: Array[3 4.8] of integer;
c) Var X: Array[10 1] of integer;
d) Var X: Array[4 10] of real;
e) Var X : Array[5 10.5] of real;
f) var a: array[1,20] of real;
g) var xau: array[255 1] of longint;
h) var so: array[1.1 1.10] of integer;
i) var kitu: array (1 255) of real;
j) var y: array[1, ,100] of integer;
3 Câu lệnh khai báo biến mảng sau đây máy tính có thực hiện được không?
Var n : integer;
A : array[1 n] of real;
4 Hãy viết khai báo cho bài toán nhập điểm kiểm tra môn Tin học của n học sinh trong một lớp, với 1≤ n ≤ 50 và điểm số là các số thực
Vận dụng thấp :
1 Viết câu lệnh để nhập dữ liệu từ bàn phím cho mảng A có 10 phần tử số nguyên ?
2 Hãy viết thuật toán để tìm số lớn nhất trong dãy số ?
3 Để in ra màn hình số thứ tự của các học sinh đạt điểm cao nhất lớp, bạn Thành đã viết đoạn chương trình Pascal sau đây :
Max :=0 ;
For i :=1 to n do If max < a[i] then
begin
Max := a[i] ; Writeln(‘So thu tu HS co diem cao nhat la :’ , i) ; end;
Tuy nhiên, khi chạy thử Thành thấy rằng đoạn chương trình trên không cho kết quả đúng Em hãy giải thích tại sao và viết lại đoạn chương trình đó cho đúng ?
Vận dụng cao :
1 Viết chương trình sử dụng biến mảng để tính giá trị trung bình của n số nguyên được nhập vào từ bàn phím ?
2 Viết chương trình tính tổng các phần tử lớn hơn 0 của dãy n số nguyên nhập vào từ bàn phím ?
Trang 33 Cho một dãy gồm n số thực và một số thực x Viết chương trình nhập n số thực đó
và đếm xem có bao nhiêu số trong dãy không lớn hơn x ?
4 Viết chương trình Pascal sử dụng biến mảng để nhập từ bàn phím các phần tử của một dãy số Độ dài của dãy cũng được nhập từ bàn phím
5 Viết chương trình nhập vào một mảng các số nguyên bất kỳ, in ra màn hình tổng các số chẵn trong mảng ?
HƯỚNG DẪN TRẢ LỜI CÂU HỎI VÀ BÀI TẬP THỰC HÀNH:
Biết:
1 Để giải bài toán nhập điểm cho 50 bạn học sinh thông thường cần khai báo 50 biến
Vì vậy cần phải tìm cách khai báo ngắn gọn và dễ dàng hơn
2 Thay cho việc sử dụng nhiều biến để lưu nhiều dữ liệu có liên quan với nhau, ta có thể sử dụng một biến duy nhất
3 Biến mảng là biến có kiểu dữ liệu là kiểu mảng
4 Việc sắp xếp thứ tự cho các phần tử trong mảng bằng cách gán cho mỗi phần tử 1 chỉ số
5 Để nhập điểm cho 50 bạn học sinh, ta có thể sử dụng câu lệnh lặp như sau :
For i := 1 to 10 do readln(A[i]) ;
6 Kiểu dữ liệu của mảng là số nguyên hoặc số thực
7 Cú pháp khai báo biến mảng :
Var <tên mảng> : array[<chỉ số đầu> <chỉ số cuối>] of <kiểu dữ liệu> ;
Trong đó : - Var, array, of : là từ khóa
- Chỉ số đầu, chỉ số cuối : là các số nguyên
- Chỉ số đầu ≤ chỉ số cuối
- Số phần tử = chỉ số cuối – chỉ số đầu + 1
- Kiểu dữ liệu: là kiểu số nguyên hoặc số thực
7 Đáp án C
8 Để nhập điểm cho một lớp, mỗi học sinh có thể có nhiều loại điểm khác nhau, để
xử lý đồng thời các loại điểm thì cần khai báo :
Var diemtoan, diemvan, diemli : array[1 50] of real ;
9 Cách khai báo và sử dụng biến mảng giúp cho việc viết chương trình ngắn gọn và
dễ dàng hơn
10 Phát biểu đó đúng
Hiểu :
1 Khai báo các mảng như sau :
a Var Diem: Array[1 40] of real ;
b Var A, B: Array[1 10] of integer;
2 a) Sai Sửa dấu , thành dấu
b) Sai Sửa 4.8 thành số nguyên>=3
c) Sai Chỉ số cuối phải >= chỉ số đầu
d) Đúng
e) Sai, sửa 10.5 thành số nguyên >=5
f) Sai Sửa dấu , thành dấu
g) Sai Chỉ số cuối phải >= chỉ số đầu
h) Sai, chỉ số đầu và chỉ số cuối phải là số nguyên
i) Sai, phải là dấu ngoặc vuông
j) Sai, cần thay hai dấu phẩy bằng hai dấu chấm
Trang 43 Không Các chỉ số phải là những giá trị cụ thể Tuy nhiên, nếu n là một hằng đã được khai báo thì câu lệnh này hợp lệ
4 Hãy viết khai báo cho bài toán nhập điểm kiểm tra môn Tin học của n học sinh trong một lớp, với 1≤ n ≤ 50 và điểm số là các số thực
Var Diem: array[1 50] of real ;
Vận dụng thấp :
1 For i := 1 to 10 do
begin
write(‘Nhap so thu’, i , ‘ :’) ; readln(a[i]) ;
end ;
2 Bước 1 : max ← a[1] ; i ← 1 ;
Bước 2 : Nếu a[i]>max, max ← a[i] ;
Bước 3 : i ← i + 1 ;
Bước 4 : Nếu i≤ n thì quay lại bước 2
Bước 5 : Thông báo giá trị max và kết thúc thuật toán
3 Khi đoạn chương trình kết thúc thì mới tính được giá trị max thì điểm kiểm tra cao nhất của n học sinh Trong quá trình vòng lặp for … do còn đang thực hiện thì max chỉ nhận giá trị của những phần tử a[i] lớn hơn chứa chưa phải là lớn nhất Do đó, việc in ra số thứ tự của học sinh ngay trong vòng lặp for…do lại sai (in ra sớm) Chỉ khi vòng lặp kết thúc thì max mới là giá trị lớn nhất
Có thể sửa lại như sau :
Max :=a[1] ;
For i :=2 to n do If max < a[i] then Max := a[i] ;
Writeln(‘So thu tu HS co diem cao nhat la :’) ;
For i :=1 to n do if a[i]=max then writeln(i, ‘ ’) ;
Vận dụng cao :
1 Var n, i :integer ;
Tb :real ;
a :array[1 100] of integer ;
Begin
Write(‘Nhap so phan tu cua mang, n= ’) ; readln(n) ;
Tb :=0 ;
For i :=1 to n do
begin
write(‘Nhap a[’, i, ‘]=’) ; readln(a[i]) ;
Tb := Tb+a[i] ; end;
Tb := Tb/n ;
Writeln(‘Trung binh cua’, n, ‘so nguyen la :’, Tb) ;
Readln ;
End
2 Program tong_duong ;
Var n, i :integer ;
s :integer ;
Trang 5a :array[1 100] of integer ;
Begin
Write(‘Nhap so phan tu cua mang, n= ’) ; readln(n) ;
s :=0 ;
For i :=1 to n do
begin
write(‘Nhap a[’, i, ‘]=’) ; readln(a[i]) ;
if a[i] >0 then s :=s+a[i] ; end;
Writeln(‘Trung binh cua’, n, ‘so nguyen la :’, s) ;
Readln ;
End
3 Program demso ;
Var x :real ;
n, soluong, i :integer ;
a :array[1 100] of real ;
Begin
Write(‘Nhap so phan tu cua day, n= ’) ; readln(n) ;
Write(‘Nhap so x =’) ; readln(x) ;
For i :=1 to n do
begin
write(‘Nhap a[’, i, ‘]=’) ; readln(a[i]) ;
end ;
soluong :=0 ;
For i :=1 to n do
if a[i] <=x then soluong :=soluong+1 ; end;
Writeln(‘Trong day co ’, soluong, ‘phan tu nho hon’, x :6 :2) ;
Readln ;
End
4 Program dayso ;
Var n, i :integer ;
a :array[1 100] of integer ;
Begin
Write(‘Nhap so phan tu cua day, n= ’) ; readln(n) ;
For i :=1 to n do
begin
write(‘Nhap a[’, i, ‘]=’) ; readln(a[i]) ;
end ;
For i :=1 to n do writeln(‘a[‘, i, ‘]=’, a[i]) ;
Readln ;
End
5 Program tong_chan ;
Trang 6Var n, i :integer ;
s :integer ;
a :array[1 100] of integer ;
Begin
Write(‘Nhap so phan tu cua mang, n= ’) ; readln(n) ;
s :=0 ;
For i :=1 to n do
begin
write(‘Nhap a[’, i, ‘]=’) ; readln(a[i]) ;
if (a[i] mod 2) = 0 then s :=s+a[i] ; end;
Writeln(‘Tong cac so chan la:’, s) ;
Readln ;
End
I MỤC TIÊU:
1 Kiến thức:
* Đạt chuẩn :
− Biết được khái niệm mảng một chiều
− Biết cách khai báo mảng, nhập, in, truy cập các phần tử của mảng
− Nhận biết được ưu điểm khi sử dụng biến mảng trong chương trình
− Hiểu các thuật toán và các câu lệnh có sử dụng biến mảng
* Trên chuẩn :
− Viết được đoạn chương trình có sử dụng biến mảng ở bài toán đơn giản
2 Kỹ năng:
− Rèn luyện về khai báo, sử dụng biến
− Đọc, hiểu và chỉnh sửa đoạn chương trình
3 Thái độ:
− Hs nghiêm túc trong học tập
II CHUẨN BỊ:
− GV: Chuẩn bị tốt giáo án, phòng máy
− HS:
+ Sách vở, dụng cụ học tập
+ Xem trước bài học
* RÈN NĂNG LỰC: NL tự học, NL giải quyết vấn đề, NL giao tiếp, NL sáng tạo,
NL hợp tác, NL sử dụng ngôn ngữ
III TIẾN TRÌNH LÊN LỚP:
1 Ổn định lớp: Kiểm tra sĩ số.
2 Kiểm tra bài cũ:
3 Bài mới:
Hoạt động 1: Dãy số và biến mảng
PP giải quyết vấn đề
GV: Đưa ví dụ 1 SGK để giới thiệu
1 Dãy số và biến mảng
Trang 7cho học sinh cách sử dụng biến
mảng như thế nào ?
HS: Chú ý lắng nghe
HS: Phân tích bài toán để hiểu rõ
hơn vấn đề
1 Để giải bài toán này cần khai báo
biến như thế nào ?
2 Thay cho việc sử dụng nhiều biến
để lưu nhiều dữ liệu có liên quan với
nhau, có thể sử dụng một biến duy
nhất hay không ?
3 Biến mảng là gì ?
4 Việc sắp xếp thứ tự như thế nào?
Bằng cách gán cho mỗi phần tử 1
chỉ số
5 Kiểu dữ liệu của mảng là gì?
Từ phân tích trên, HS rút ra kết
luận
Ví dụ 1 Trong Pascal ta cần nhiều câu lệnh khai
báo và nhập dữ liệu dạng sau đây, mỗi câu lệnh tương ứng với điểm của một học sinh:
Var Diem_1, Diem_2, Diem_3,… : real;
Read(Diem_1); Read(Diem_2), Read(Diem_3);…
Nếu số học sinh trong lớp càng nhiều thì đoạn khai báo và đọc dữ liệu trong chương trình càng dài Giả sử chúng ta có thể lưu nhiều dữ liệu có liên quan với nhau (như Diem_1, Diem_2, Diem_3, ở trên) bằng một biến duy nhất và đánh "số thứ tự" cho các giá trị đó, ta có thể sử dụng quy luật tăng hay giảm của "số thứ tự" và một vài câu lệnh lặp để
xử lí dữ liệu một cách đơn giản hơn, chẳng hạn:
- Với i = 1 đến 50: hãy nhập Diem_i;
- Với i = 1 đến 50: hãy so sánh Max với Diem_i;
Để giúp giải quyết các vấn đề trên, một kiểu dữ liệu được gọi là kiểu mảng
Dữ liệu kiểu mảng là một tập hợp hữu hạn các phần
tử có thứ tự, mọi phần tử đều có cùng một kiểu dữ liệu, gọi là kiểu của phần tử Việc sắp thứ tự được thực hiện bằng cách gán cho mỗi phần tử một chỉ số:
Hình 40 Khi khai báo một biến có kiểu dữ liệu là kiểu mảng, biến đó được gọi là biến mảng
Giá trị của biến mảng là một mảng, tức một dãy số (số nguyên, hoặc số thực) có thứ tự, mỗi số là giá trị của biến thành phần tương ứng
Hoạt động 2: Tìm hiểu về cú pháp khai báo biến mảng
PP giải quyết vấn đề
GV: Đưa ra ví dụ về biến mảng
HS: Chú ý phân tích ví dụ và rút ra
kết luận
Cú pháp khai báo biến mảng ?
HS: Đưa ra cách khai báo biến mảng
trong Pascal
PP thảo luận nhóm
Bài tập:
1 Hãy khai báo các mảng sau :
a Mảng Diem gồm 40 phần tử
2 Ví dụ về biến mảng
Để làm việc với các dãy số nguyên hay số thực, chúng ta phải khai báo biến mảng
Ví dụ, cách khai báo đơn giản một biến mảng trong ngôn ngữ Pascal như sau:
var Chieucao: array[1 50] of real;
var Tuoi: array[21 80] of integer;
Với câu lệnh thứ nhất, ta đã khai báo một biến có tên Chieucao gồm 50 phần tử, mỗi phần tử là biến
có kiểu số thực Với câu lệnh khai báo thứ hai, ta có biến Tuoi gồm 60 phần tử (từ 21 đến 80) có kiểu số nguyên
Trang 8thuộc kiểu dữ liệu số thực ?
b Mảng A, B gồm 10 phần tử thuộc
kiểu dữ liệu số nguyên ?
2 Các khai báo biến mảng sau đây
đúng hay sai ?
a Var X : Array[10,13] of integer;
b Var X : Array[5 10.5] of real;
3 Câu lệnh khai báo biến mảng sau
đây máy tính có thực hiện được
không?
Var n : integer;
A : array[1 n] of real;
Lưu ý:
- Số phần tử của mảng phải được
khai báo bằng một con số cụ thể
Cách khai báo mảng trong Pascal như sau:
Tên mảng : array[<chỉ số đầu> <chỉ số cuối>] of
<kiểu dữ liệu>
Trong đó chỉ số đầu và chỉ số cuối là hai số nguyên hoặc biểu thức nguyên thoả mãn chỉ số đầu ≤ chỉ số cuối và kiểu dữ liệu có thể là integer hoặc real.
Hoạt động 3: Ví dụ về biến mảng
PP giải quyết vấn đề
GV: Đưa ví dụ 2
HS: Đọc hiểu ví dụ, phân tích bài
toán
- Thông thường để lưu điểm cho 50
bạn học sinh cần khai báo biến như
thế nào ?
- Có thể khai báo biến một cách
ngắn gọn và dễ dàng hơn hay
không ?
- Để nhập điểm cho 50 bạn học sinh
thì sử dụng câu lệnh gì ?
HS phân tích bài toán và rút ra kết
luận: Khi sử dụng biến mảng có thể
kết hợp với câu lệnh lặp
PP vấn đáp
GV: Mỗi học sinh có thể có nhiều
loại điểm khác nhau, để xử lý đồng
thời các loại điểm thì làm thế nào ?
HS: Khai báo nhiều mảng…
GV : Tương tự, hãy khai báo biến
mảng có tên DiemLi, DiemVan,
DiemToan ?
HS : Lên bảng làm bài
→ HS rút ra kết luận : Có thể khai
báo gộp các biến mảng
GV: Cách khai báo và sử dụng biến
mảng như trên có lợi gì?
HS: Tiết kiệm thời gian và công sức
Ví dụ 2 Tiếp tục với ví dụ 1, thay vì khai báo các
biến Diem_1, Diem_2, Diem_3, để lưu điểm số của các học sinh, ta khai báo biến mảng Diem như sau:
var Diem: array[1 50] of real;
Trước hết, có thể thay rất nhiều câu lệnh nhập và in
dữ liệu ra màn hình bằng một câu lệnh lặp Chẳng hạn, ta có thể viết:
For i:=1 to 50 do readln(Diem[i]);
để nhập điểm của các học sinh
Để so sánh điểm của mỗi học sinh với một giá trị nào đó, ta cũng chỉ cần một câu lệnh lặp, chẳng hạn
For i:=1 to 50 do
if Diem[i]>8.0 then writeln('Gioi');
Điều này giúp tiết kiệm rất nhiều thời gian và công sức viết chương trình
Hơn nữa, mỗi học sinh có thể có nhiều điểm theo từng môn học: điểm Toán, điểm Văn, điểm Lí, Để
xử lí đồng thời các loại điểm này, ta có thể khai báo nhiều biến mảng:
var DiemToan: array[1 50] of real;
var DiemVan: array[1 50] of real;
var DiemLi: array[1 50] of real;
hay
var DiemToan, DiemVan, DiemLi: array[1 50] of
real;
Khi đó, ta cũng có thể xử lí điểm thi của một học sinh cụ thể
Trang 9viết chương trình
GV : Cho HS lên bảng làm một số
ví dụ
1 Nhập dữ liệu từ bàn phím cho
mảng A có 10 phần tử số nguyên ?
For i := 1 to 10 do readln(A[i]) ;
2 Hãy viết khai báo cho bài toán
nhập điểm kiểm tra môn Tin học của
n học sinh trong một lớp, với 1≤ n
≤ 50 và điểm số là các số thực
* Sau khi một mảng đã được khai
báo, chúng ta có thể làm việc với
các phần tử của nó như làm việc với
một biến thông thường như gán giá
trị, đọc giá trị và thực hiện các tính
toán với các giá trị đó thông qua tên
của biến mảng và chỉ số tương ứng
của phần tử
Ví dụ 2 cũng cho thấy rằng, chúng ta 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 thông qua chỉ số tương ứng của phần tử đó Chẳng hạn, trong câu lệnh trên Diem[i]
là phần tử thứ i của biến mảng Diem
Ta có thể gán giá trị cho các phần tử của mảng bằng câu lệnh gán:
A[1]:=5;
A[2]:=8;
hoặc nhập dữ liệu từ bàn phím bằng câu lệnh lặp:
for i := 1 to 5 do readln(a[i]);
Hoạt động 4: Tìm giá trị lớn nhất và nhỏ nhất của dãy số
PP giải quyết vấn đề
GV: Đưa ví dụ 3
HS: Đọc, phân tích bài toán
- Đầu tiên gán giá trị số thứ 1 của
dãy số cho Max (ban đầu tạm thời
coi số thứ 1 là số lớn nhất tạm thời)
- So sánh số lớn nhất tạm thời này
với số thứ 2, nếu số thứ 2 lớn hơn số
thứ 1 thì gán giá trị của số thứ 2 cho
Max Như vậy, đến thời điểm này,
Max là số lớn nhất của số thứ nhất
và số thứ 2
- Cứ tiếp tục như vậy, đem so sánh
Max với tất cả các số còn lại, gặp số
nào lớn hơn Max thì lại gán giá trị
của số đó cho Max Sau khi so sánh
đến số cuối cùng của dãy số thì Max
chính là giá trị lớn nhất của dãy số
Hãy viết thuật toán để tìm số lớn
nhất trong dãy số ?
HS viết thuật toán
PP thảo luận nhóm:
GV cho HS thảo luận nhóm để
nghiên cứu cách viết chương trình
3 Tìm giá trị lớn nhất và nhỏ nhất của dãy số
Ví dụ 3 (SGK) Phần khai báo của chương trình có
thể như sau:
program MaxMin;
uses crt;
Var
i, n, Max, Min: integer;
A: array[1 100] of integer;
Phần thân chương trình sẽ tương tự dưới đây:
Begin
clrscr;
write('Hay nhap do dai cua day so, N = ');
readln(n);
writeln('Nhap cac phan tu cua day so:');
For i:=1 to n do Begin
write('a[',i,']='); readln(a[i]);
End;
Max:=a[1]; Min:=a[1];
for i:=2 to n do begin if Max<a[i] then Max:=a[i];
if Min>a[i] then Min:=a[i]
end;
Trang 10dựa trên các nội dung sau:
- Các yêu cầu của bài toán
- Các biến đã khai báo trong chương
trình Tác dụng của từng biến
- Số phần tử trong mảng A
- Ý nghĩa các câu lệnh trong phần
thân chương trình
Các nhóm HS thảo luận và cử đại
diện trả lời
Bài toán làm tương tự khi tìm giá trị
nhỏ nhất
Trong chương trình cần lưu ý : Số
phần tử của mảng phải được khai
báo bằng một số cụ thể
write('So lon nhat la Max = ',Max);
write('; So nho nhat la Min = ',Min);
readln
End.
4 Củng cố:
Bài 1 : Em hãy chọn đáp án đúng:
A Dữ liệu kiểu mảng là tập hợp các phần tử không có thứ tự và mọi phần tử có cùng một kiểu dữ liệu
B Dữ liệu kiểu mảng là tập hợp các phần tử có thứ tự và mỗi một phần tử trong mảng
có thể có các kiểu dữ liệu khác nhau
C Dữ liệu kiểu mảng là tập hợp các phần tử có thứ tự và mọi phần tử có cùng một kiểu dữ liệu
Bài 2: Cách khai báo biến mảng sau đây đúng hay sai? Khoanh tròn vào chỗ sai (nếu có)
a) Var X: Array[10 , 13] of real; → Sai Sửa dấu , thành dấu
b) Var X: Array[3 4.8] of integer; → Sai Sửa 4.8 thành số nguyên>=3
c) Var X: Array[10 1] of integer; → Sai Chỉ số cuối phải >= chỉ số đầu
d) Var X: Array[4 10] of real; → Đúng
Bài 3: Để in ra màn hình số thứ tự của các học sinh đạt điểm cao nhất lớp, bạn Thành
đã viết đoạn chương trình Pascal sau đây :
Max :=0 ;
For i :=1 to n do If max < a[i] then
begin
Max := a[i] ; Writeln(‘So thu tu HS co diem cao nhat la :’ , i) ; end;
Tuy nhiên, khi chạy thử Thành thấy rằng đoạn chương trình trên không cho kết quả đúng Em hãy giải thích tại sao và viết lại đoạn chương trình đó cho đúng ?
Bài 4: Viết chương trình sử dụng biến mảng để tính giá trị trung bình của n số nguyên được nhập vào từ bàn phím ?
Bài 5: Viết chương trình tính tổng các phần tử lớn hơn 0 của dãy n số nguyên nhập vào từ bàn phím
5 Dặn dò:
- Học bài và làm bài tập sau : Cho một dãy gồm n số thực và một số thực x Viết chương trình nhập n số thực đó và đếm xem có bao nhiêu số trong dãy không lớn hơn x