Giáo viên: đề bài, đáp án Học sinh:

Một phần của tài liệu GA tin 8_ki 2_2013 (Trang 42 - 46)

- Học sinh: C. Tiến trình dạy học: 1. ổn định: 8A: 8B: 8C: 2. Kiểm tra: 3. Bài mới: Gv: phát đề Đề bài:

Cõu 1: Viết chương trỡnh Pascal thể hiện thuật toỏn sau: Bước 1: S ← 10; n ←0;

Bước 2: Nếu s ≥ 10, chuyển tới bước 4;

Bước 3: n ← n+3; S← S – n; quay lại bước 2; Bước 4: Thụng bỏo S và kết thỳc thuật toỏn;

Khi thực hiện thuật toỏn, mỏy tớnh thực hiện bao nhiờu vũng lặp? Khi kết thỳc, giỏ trị của S bằng bao nhiờu?

Đáp án:

- Bài chạy: kiểm tra với kết quả đúng, cho điểm tối đa -Bài không chạy: xem mã chơng trình

+Viết đợc phần khai báo: 2 điểm +Viết đợc câu lệnh tính s: 2 điểm +Viết đợc câu lệnh in kết quả: 1 điểm + Mỗi lỗi sai trừ 1 điểm

Mã chơng trình Program bai_1; uses crt; Var n,s:integer; Begin S:=10; n:=0; While s<10 do Begin n:=n+3; s:=s-n; end; Writeln(‘s=’, s:5); Readln; End. 4. Củng cố: Gv: thu bài, nhận xét 5. HDVN:

- Làm lại bài kiểm tra - Chuẩn bị tiết sau

Kiểm tra, ngày 7 tháng 3 năm 2013 TP

Ngày soạn: 13/3

Ngày giảng:18/3

Tiết 56: Bài 9:

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

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.Chuẩn bị :

- Giáo viên: SGK, tài liệu tham khảo. - Học sinh: SGK, Đọc bài trớc.

C. Tiến trình lên lớp

1. ổn định lớp: 8A: 8B: 8C:2. Kiểm tra bài cũ 2. Kiểm tra bài cũ

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

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

Hoạt động Thầy - Trò Nội dung

Hoạt động 1: 1. Dãy số và biến mảng

GV: 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?

Hs: 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. Gv: Gọi Hs lên viết đoạn khai báo

Hs: lên bảng

Gv: 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à 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:

=> Để 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

Ví dụ 1: sgk.

Var diem_1, diem_2, diem_3,... :real;

Read(diem_1),read(diem_2), read(diem_3)... - 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.

gọi là kiểu mảng.

? Vậy dữ liệu kiểu mảng là gì? Hs: Suy nghĩ, thảo luận -> trả lời: Gv: chuẩn kiến thức

? Biến mảng là gì?

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

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

Hs: Quan sát sgk, suy nghĩ, thảo luận -> trả lời: Gv: Chuẩn kiến thức

- 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 ... 10Chỉ số 1 2 3 ... k 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.

- 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

GV: 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: Hs: Chú ý lắng nghe, ghi nhận

? 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ì? Hs: Suy nghĩ, thảo luận -> trả lời

? 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ì?

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

? 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?

Hs: đọc sgk, trả lời

GV: Nêu cách 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ữ lập trình Pascal.

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

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

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

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

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

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

? Sau khi một mảng đợc khai báo, chúng ta có thể làm gì với từng phần tử của mảng?

Hs: Trả lời

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

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

* Lợi ích khi dùng biến mảng:

- 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’);

- Ta có thể khai báo nhiều biến mảng để lu trử và xử lý dữ liệu.

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. HDVN:

- 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: 13/3

Ngày giảng:19/3

Tiết 57:Bài 9:

Làm việc với dãy số (T2)

a. Mục tiêu:

Một phần của tài liệu GA tin 8_ki 2_2013 (Trang 42 - 46)

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

(79 trang)
w