Làm việc với dãy số a. Mục tiêu

Một phần của tài liệu Giáo án tin 8 chuẩn cả năm 2011-2012 cực kỳ hot (Trang 136 - 140)

1. Kiến thức: Biết khái niệm mảng một chiều và biết cách khai báo, nhập, in, truy cập từng phần tử của mảng trong ngôn ngữ lập trình Pascal.

2. Kỹ năng: Vận dụng sự hiểu biết đó vào viết các chơng trình máy tính bằng ngôn ng÷ Pascal.

3. Thái độ: Nghiêm túc trong học tập, ham thích học hỏi nghiên cứu lập trình.

b. phơng pháp

- Giới thiệu, hớng dẫn, minh hoạ bằng cách thực hiện trên máy.

- Đặt câu hỏi cho HS trả lời và đa ra nhận xét.

C. Chuẩn bị của giáo viên và học sinh - Giáo viên: SGK, tài liệu tham khảo.

- Học sinh: SGK, Đọc bài trớc.

D. Tiến trình lên lớp 1. ổn định lớp.

8A 8B

2. Kiểm tra bài cũ

- Hãy viết cú pháp của câu lệnh rẽ nhánh dạng đủ và dạng thiếu?

- Hãy viết cú pháp của câu lệnh lặp với số lần biết trớc và số lần cha biết trớc?

3. Bài mới

HĐ của Thầy và trò Ghi Bảng

Hoạt động 1: 1. Dãy số và biến mảng Trình bày ví dụ 1 sgk để hs hiểu:

Giả sử chúng ta cần viết chơng trình nhập điểm kiểm tra của các hs trong một lớp và sau đó in ra màn hình điểm số cao nhất. Vì mỗi biến chỉ có thể lu một giá trị duy nhất, để có thể nhập

điểm và so sánh chúng, ta cần sử dụng nhiều biến, mỗi biến cho 1 hs.

Nếu số hs trong lớp càng nhiều thì đoạn khai báo và đọc dữ liệu sẽ nh thế nào?

Giả sử chúng ta có thể lu nhiều dữ liệu có liên quan víi nhau (nh: diem_1, diem_2, diem_3, diem_4, ... ở 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à

VÝ dô 1: sgk.

Chú ý quan sát, lắng nghe.

Var diem_1, diem_2, diem_3,...

:real;

Read(diem_1),read(diem_2), read(diem_3)...

Suy nghĩ, thảo luận -> trả lời:

Nếu số hs trong lớp càng nhiều thì

đoạn khai báo và đọc dữ liệu sẽ càng dài. Việc so sánh các điểm đã

nhập càng khó khăn hơn.

- Với i = 1 đến 50: hãy nhập Tiết 56

=> Để giải quyết các vấn đề trên, hầu hết các ngôn ngữ lập trình đều có một kiểu dữ liệu đợc gọi là kiểu mảng.

Vậy dữ liệu kiểu mảng là gì?

Biến mảng là gì?

Giá trị của biến mảng là gì?

max víi diem_i

Suy nghĩ, thảo luận -> trả lời:

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ố.

diem_1 diem_2 diem_3 diem_1k

8 9 7 ... 10 Chỉ số 1 2 3 ...

k

Lu ý: trong bài này chúng ta chỉ xét các mảng có các phần tử kiểu số nguyên hoặc số thực.

Quan sát sgk, suy nghĩ, thảo luận -> trả lời:

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. Khi sử dụng biến mảng, về thực chất chúng ta sắp thứ tự theo chỉ số các biến có cùng kiểu dới một tên duy nhất.

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à một giá

trị của biến thành phần tơng ứng.

Hoạt động 2: 2. Ví dụ về biến mảng Trình bày cho hs biết: để 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 có kiểu tơng ứng trong phần khai báo của chơng trình.

Cách khai báo biến mảng trong các ngôn ngữ

lập trình có thể khác nhau, nhng luôn cần chỉ rõ: tên biến mảng, số lợng phần tử, kiểu dữ liệu chung của các phần tử.

Lấy ví dụ cụ thể cho hs biết:

Chú ý lắng nghe, ghi nhận

Ví dụ: cách khai báo đơn giản một biến mảng trong ngôn ngữ lập trình

Mảng

Với câu lệnh thứ nhất ta đã khai báo biến gì, có mấy phần tử, mỗi phần tử có kiểu dl gì?

Với câu lệnh thứ hai ta đã khai báo biến gì, có mấy phần tử, mỗi phần tử có kiểu dl gì?

Từ hai ví dụ trên hãy cho biết cách khai báo mảng trong ngôn ngữ lập trình Pascal?

Hãy viết câu lệnh khai báo biến mảng điểm?

Cách khai báo và sử dụng biến mảng nh trên có lợi gì?

Hãy lấy ví dụ khai báo nhiều biến mảng?

Pascal.

Var chieucao: array[1..50] of real;

Var tuoi: array[21..80] of integer;

Suy nghĩ, thảo luận -> trả lời

- 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ử biến có kiểu số thực.

- Với câu lệnh thứ hai ta đã khai báo một biến có tên tuoi gồm 60 phần tử (từ 21 đến 80), mỗi phần tử biến có kiểu số nguyên.

Quan sát sgk, suy nghĩ, thảo luận -> trả lời:

* Cách khai báo mảng trong Pasacal:

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 thoả mãn chỉ số

đầu ≤ chỉ số cuối và kiểu dữ liệu có thể là integer hoặc real.

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,... để lu điểm số của học sinh ta khai báo biến mảng Diem.

Suy nghĩ, thảo luận -> trả lời:

Var Diem: array[1..50] of real;

Suy nghĩ, thảo luận -> trả lời:

- Có thể thay rất nhiề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.

Vd: for i:=1 to n do readln(Diem[i]);

- Có thể sử dụng biến mảng một cách rất hiệu quả trong xử lý dữ

liệu.

Vd: Để so sánh điểm hs với một giá trị nào đó, ta cũng chỉ cần một câu lệnh lặp:

For i := 1 to n do

If diem[i] >8 then writeln(‘Gioi’);

Ví dụ: Mỗi hs 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 biến mảng:

Var dtoan: array[1..50] of real;

Var dvan: array[1..50] of real;

Var dly: array[1..50] of real;

Hay Var dtoan, dvan, dly:array[1..50] of real;

Khi đó ta có thể xử lý điểm thi của từng hs cụ thể hoặc tính điểm trung bình của cả lớp.

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ị đó.

Vd: a[1] := 5; a[2] := 6;

For i := 1 to n do readln(a[i]);

4. Còng cè.

- Hệ thống lại những nội dung lý thuyết cần nhớ sau tiết học.

5. Hớng dẫn về nhà.

- Yêu cầu hs về nhà ôn lại phần lý thuyết cần nhớ sau tiết học, làm bài tập 1-> 4 sgk

- Xem trớc phần 3 (Tìm giá trị lớn nhất và nhỏ nhất của dãy số) -> tiết sau học.

Ngày soạn: /2011 Ngày dạy: /2011

Bài 9. Làm việc với dãy số (Tiếp)

Một phần của tài liệu Giáo án tin 8 chuẩn cả năm 2011-2012 cực kỳ hot (Trang 136 - 140)

Tải bản đầy đủ (DOC)

(185 trang)
w