Kiểu dữ liệu mảng đợc giảng dạy ở trờng phổ thông.

Một phần của tài liệu Thiết kế bài học tin học ở trường THPT trên máy tính điện tử (Trang 30 - 34)

Trong chơng trình phổ thông hiện nay đang giảng dạy hai ngôn ngữ lậptrình cơ bản cho học sinh: PASCAL và FOXPRO. Ngôn ngữ mà tôi nghiên cứu trình cơ bản cho học sinh: PASCAL và FOXPRO. Ngôn ngữ mà tôi nghiên cứu để xây dựng phần mềm dạy học ở bài mảng này là TURBO PASCAL. Với những tính năng đặc thù của ngôn ngữ, PASCAl là một ngôn ngữ khá mạnh, đặc biệt nó tỏ ra là một công cụ tốt trong việc giải toán, giúp học sinh có tính logic trong t duy. Bộ từ khoá ngắn gọn, gần gủi với ngôn ngữ tự nhiên, cú pháp câu lệnh rõ ràng, chi tiết dễ hiểu giúp học sinh dễ dàng áp dụng các thuật toán trong thực tế. Học PASCAl còn hỗ trợ cho học sinh trong t duy giải toán, rèn luyện cho học sinh biết cách tìm nhiều lời giải đối với một bài toán và vận dụng đợc vào các bài toán khác.

Bài mảng đợc đa vào giảng dạy ở bài 10 (Tin học 11). Nội dung của bài giảng này nh sau: 1. Bài toán.

- Có 10 hộ kinh doanh nộp thuế cho Nhà Nớc bằng tiền - Đếm số hộ có tiền nộp nhỏ hơn tiền trung bình. 2. ý tởng giải thuật và dữ liệu.

i=1 2 ... ... 10

- DL vào là một bảng gồm có 10 cột có chỉ số từ 1 đến 10. Giá trị tại ô thứ i chính là số tiền mà hộ thứ i đã nộp.

- Tính tiền thuế trung bình của các hộ bằng cách lấy tổng số tiền các hộ đã nộp chia cho tổng số hộ ( cụ thể số hộ ở đây là 10).

- Duyệt tất cả các hộ và đếm số hộ có tiền nhỏ hơn tiền trung bình. 3. Khái niệm về mảng.

Mảng là 1 kiểu DL có cấu trúc dùng để biểu diễn 1 nhóm các đối tợng cùng mang 1 tính chất nào đó.

( #chú ý: cùng tính chất tức là có cùng kiểu DL)

Nh vậy, để khai báo kiểu mảng ta phải chỉ ra kiểu DL chung của các phần tử. 4. Kiểu DL mảng 1 chiều.

a. Khai báo:

Var Tên mảng: Array[ kiểu chỉ số] of kiểu thành phần;

Trong đó:

- Var, Array, of: là các từ khoá.

- Tên mảng: tức là tên biến mảng do ta tự đặt. Có thể là 1 hoặc 1 danh sách tên mảng, mỗi tên mảng cách nhau bởi dấu phẩy.

- Kiểu chỉ số: là kiểu DL miền con, vô hớng đếm đợc. Nó đợc viết [n1..n2] với n1,n2 là chỉ số đầu và chỉ số cuối.

VD: Trong bài toán trên nó đợc hiểu là 1 đoạn các số nguyên liên tục, có giá trị từ 1 đến 10.

#Chú ý: Không có kiểu chỉ số là số thực.

- Kiểu thành phần: là tên kiểu của các phần tử mảng. b. Truy nhập mảng:

*Ta không truy nhập trực tiếp vào mảng mà phải thông qua các phần tử mảng. - Viết ra: write (a[i]);

- Nhập vào: readln (a[i]); - Gán giá trị: a[i]:=5;

* Ta có thể sử dụng lệnh For để truy nhập đến các phần tử của mảng VD: For i:=1 to n do Readln(a[i]); VD: For i:=1 to n do Write(a[i]:4); 5. Chơng trình: DL vào: - số hộ

- số tiền của các hộ

DL ra: - Đếm số hộ có tiền nộp nhỏ hơn tiền trung bình. Program Thue;

Const n=10;

Var Tien: Array [1..10] of Real; d,i : Integer;

s,tb: Real; Begin

s:=0; d:=0;

write(' Nhap so tien tung ho:'); For i:=1 to n do Begin Write('ho[',i,']=' ); Readln(tien[i]); S:=s+tien[i]; End; tb:=s/n;

write(' So tien trung binh la:', tb : 9: 2); For i:=1 to n do

if tien[i] < tb then d:= d+1; (adsbygoogle = window.adsbygoogle || []).push({});

write(' So ho nop tien duoi tien trung binh la:', d); end.

6. Ví dụ áp dụng.

Trong đợt thi đua lập ctrình cho máy tính, Hai đội A,B tham gia. Đội A có 11 ngời, đội B có 12 ngời. Mỗi ngời có 1 điểm bài thi thuộc từ 0 đến 10. Đội nào có điểm trung bình cộng lớn hơn là đc giải thởng. Lập ctrình thông báo điểm tb của mỗi đội sau khi đa vào máy điểm của từng ngời thuộc mỗi đội.

* ý tởng giải thuật:

- Nhập điểm của từng ngời thuộc đội A - Tính tổng điểm của đội A

- Tính điểm trung bình của đội A - Nhập điểm của từng ngời thuộc đội B - Tính tổng điểm của đội B

- Tính điểm trung bình của đội B

- Thông báo điểm trung bình của mỗi đội. * Chơng trình:

Program Thi; Const n=15;

Var A,B: Array [1..15] of Integer; i,s: Integer;

tbA, tbB: Real; Begin

Write(' Diem cua doi A la:'); s:=0; For i:=1 to 11 do Begin Write('A[',i,']='); Readln(A[i]); s:=s+A[i]; End; tb:=s/11;

write(' Diem cua doi B:'); s:=0; For i:=1 to 12 do Begin Write('B[',i,']='); Readln(B[i]); s:=s+B[i]; End; tbB:=s/12;

writeln(' Diem trung binh cua doi A la:', tbA:4:2); write(' Diem trung binh cua doi B la:',tbB:4:2); readln;

Một phần của tài liệu Thiết kế bài học tin học ở trường THPT trên máy tính điện tử (Trang 30 - 34)