II. Hướng dẫn chi tiết
3. Hướng dẫn trả lời câu hỏi và bài tập Bµi 1.Đúng.
Bµi 1. Đúng.
Bµi 2. Lợi ích chính của việc sử dụng biến mảng là rút gọn việc viết chương trình, có thể sử dụng câu lệnh lặp để thay nhiều câu lệnh. Ngoài ra chúng ta còn có thể lưu trữ và xử lí nhiều dữ liệu có nội dung liên quan đến nhau một cách hiệu quả.
Bµi 3. Đáp án a) Sai. Phải thay dấu phẩy bằng hai dấu chấm; b) và c) Sai, vì giá trị nhỏ nhất và lớn nhất của chỉ số mảng phải là số nguyên; d) Sai, vì giá trị
đầu của chỉ số mảng phải nhỏ hơn hoặc bằng chỉ số cuối; e) Đúng.
Bµi 4. Không. Giá trị nhỏ nhất và lớn nhất của chỉ số mảng phải được xác định ngay khi khai báo biến mảng.
Bµi 5. Chương trình có thể như sau:
var N, i: integer;
A: array[1..100] of real;
begin
write('Nhap so phan tu cua mang, n= '); read(n);
for i:=1 to n do
begin
write('Nhap gia tri ',i,'cua mang, a[',i,']= ');
readln(a[i]) end;
Bµi 6. Đúng.
Bµi 7. a) Nếu không sử dụng biến mảng, chương trình có thể dài như sau:
uses crt;
var So_1, So_2, So_3, So_4, So_5, Max: integer;
begin
clrscr;
write('Nhap so thu nhat: '); readln(So_1); write('Nhap so thu hai: '); readln(So_2); write('Nhap so thu ba: '); readln(So_3); write('Nhap so thu tu: '); readln(So_4); write('Nhap so thu nam: '); readln(So_5); Max:=So_1;
If Max<So_2 then Max:=So_2;
If Max<So_3 then Max:=So_3;
If Max<So_4 then Max:=So_4;
If Max<So_5 then Max:=So_5; writeln('So lon nhat: ',Max);
end.
b) Nếu sử dụng biến mảng, chương trình chỉ ngắn gọn như sau:
uses crt;
var i, Max: integer;
A: array[1..5] of integer;
begin
clrscr;
for i:=1 to 5 do
begin write('Nhap so thu ',i,':'); readln(A[i]) end; Max:=a[1];
for i:=2 to 5 do If Max<a[i] then Max:=a[i]; writeln('So lon nhat: ',Max);
Lưu ý. Xem cách viết chương trình ngắn gọn hơn và không sử dụng biến
mảng trong bài tập 9, bài 7. Tuy nhiên, cách viết đó sẽ không cho kết quả mong muốn nếu sau khi nhập giá trị của các biến còn cần thực hiện các thao tác dữ liệu khác với các giá trị đó.
Bµi 8. Viết chương trình sử dụng biến mảng để tính giá trị trung bình của tổng
N số nguyên được nhập vào từ bàn phím.
uses crt; var N, i: integer; TB: real; A: array[1..100] of real; begin clrscr;
write('Nhap so phan tu cua mang, n= '); read(n);
for i:=1 to n do
begin
write('Nhap gia tri ',i,'cua mang, a[',i,']= '); readln(a[i])
end; TB:=0;
for i:=1 to n do TB:=TB+a[i]; TB:=TB/n;
write('Trung binh bang ',TB);
end.
Bµi 9. Chương trình nhập n số nguyên từ bàn phím và tính tổng các số dương:
uses crt;
var n,k,S: integer;
X: array[1..1000] of integer;
begin
clrscr;
write('Nhap so tu nhien n: '); readln(n);
for k:=1 to n do
begin write('Nhap X[',k,']='); readln(X[k]) end; S:=0;
for k:=1 to n do
if X[k]>0 then S:=S+X[k]; writeln('Tong cac duong S=',S); readln;
end.
Bµi 10.Nội dung bài 2 của bài thực hành 6 là viết chương trình nhận biết một số
tự nhiên có phải là số nguyên tố hay không. Nội dung của bài tập 9, bài 8, là viết chương trình tính tổng các ước số thực sự của một số nguyên, nhưng chưa liệt kê được các ước số đó. Để có thể liệt kê, chương trình cần phải ghi lại chúng. ý tưởng chính là sử dụng một biến mảng phục vụ cho điều này. Chương trình tương tự như trong bài tập 9, Bài 8:
uses crt;
var n,i,k,S: integer;
X: array[1..10000] of integer;
begin
clrscr; i:=2; S:=0;
for k:=1 to (n-1) do X[k]:=0; {Dat lai = 0} write('Cho so tu nhien n>2: n= '); readln(n);
while i<=(n-1) do {Ghi lai uoc so vao X[i]}
beginif (n mod i)=0 thenbegin X[i]:=i; S:=S+X[i] end; i:=i+1;
end;
writeln('Tong cac uoc so thuc su cua ',n,' la: ',S);
if S<>0 thenbegin write('Cac uoc so cua ',n,' la: ');
for i:=1 to (n-1) do if X[i]<>0 then write(X[i],' ') end else writeln(n,' la so nguyen to.');
readln;
Bài thực hành 7. Xử lí dãy số trong chương trình
1. Mục đích, yêu cầu
• Thực hành khai báo và sử dụng các biến mảng ;
• Ôn luyện cách sử dụng câu lệnh lặp if...then, for...do;
• Củng cố kĩ năng đọc, hiểu và chỉnh sửa chương trình.
• Hiểu và viết được chương trình với thuật toán tìm giá trị lớn nhất, nhỏ nhất của một dãy số, tính tổng dãy số.
2. Những điểm cần lưu ý và gợi ý dạy học
Để gây hứng thú cho HS, cần dành thời gian để HS gõ, chạy thử chương trình tìm Max, Min, Tính tổng dãy số. Hơn thế nữa, việc thực hiện các bài học là cần thiết do yêu cầu trong Chương trình. HS cần viết được các chương trình này. Chương trình tìm Max đã được tiến hành ở bài lí thuyết, GV cần hướng dẫn HS tham khảo chương trình P_Max để tự viết được chương trình P_Min và chương trình tính tổng P_Sum.
Chương trình tìm Max đã được giới thiệu ở trên, dưới đây là chương trình
P_Min và chương trình P_Sum.
Chương trình tìm giá trị nhỏ nhất trong dãy số nguyên P_Min:
Program P_Min;
Var
i, n, Min : integer;
A: array[1..100] of integer;
Begin
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;
Min:=a[1];
for i:=2 to n doif Min>a[i] then Min:=a[i]; write('So nho nhat la Min = ',Min);
readln;
Chương trình tính tổng dãy số, trong chương trình này có thêm câu lệnh in ra màn hình dãy số vừa nhập để người sử dụng có thể thuận tiện kiểm chứng kết quả chương trình. Nhưng đây cũng nhằm mục đích luyện tập với việc in phần tử của mảng ra màn hình. Program P_Sum; Var i, n, Sum : integer; A: array[1..100] of integer; Begin
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;
Sum:=0;
for i:=1 to n do Sum:= Sum + a[i]; write('Day so vua nhap la: '); for i:=1 to n do write(a[i], ' '); writeln;
write('Tong day so la = ',Sum); readln;
End.
Thời gian còn lại dành để HS thực hành với các bài sử dụng kết hợp nhiều câu lệnh, biểu thức điều kiện... trong SGK.
Lưu ý: Theo yêu cầu của chuẩn kiến thức, kĩ năng, kết thúc bài này phải đảm bảo HS hiểu được thuật toán, tự viết được chương trình tìm số lớn nhất, nhỏ nhất của dãy số, kiểm tra điều kiện ba số a, b, c có phải là độ dài của ba cạnh của một tam giác hay không (hoặc các bài toán tương đương). HS cần tự viết được chương trình nhập giá trị phần tử mảng, in ra màn hình các phần tử của mảng, tính tổng các phần tử của mảng. Do vậy, trong trường hợp cần thiết GV cần lựa chọn, xây dựng nội dung tiết bài tập , ôn tập trên lớp hoặc thực hành trên phòng máy để đảm bảo đạt được yêu cầu quy định trong chuẩn kiến thức, kĩ năng.