1. Trang chủ
  2. » Giáo án - Bài giảng

tiet 56-60 hay lam

9 362 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 116,5 KB

Nội dung

Kỹ năng: - Biết cách khai báo mảng: Nhập, in, truy cập các phần tử của mảng - Viết, dịch được đoạn chương trình có sử dụng biến mảng ở các bài toán đơn giản.. Gv: Phân tích ích lợi của

Trang 1

Tuần: Ngày soạn: / /2009

Lớp: 8B-8A

Bài 9: LÀM VIỆC VỚI DÃY SỐ

I Mục Tiêu:

1 Kiến thức:

- Biết được khái niệm mảng

- Biết cú pháp của mảng

2 Kỹ năng:

- Biết cách khai báo mảng: Nhập, in, truy cập các phần tử của mảng

- Viết, dịch được đoạn chương trình có sử dụng biến mảng ở các bài toán đơn giản

3 Thái độ:

- Chú ý nghe giản, thực hiện theo sự hướng dẫn của giáo viên bộ môn

- Hăng say phát biểu, tích cực hoạt động và tìm tòi

II Kiểm tra bài cũ:

?1 Nêu sự khác biệt giữa câu lệnh lặp với số lần biết trước và số lần lặp với số lần chưa biết trước

?2 Viết cú pháp 2 dạng câu lệnh lặp trong ngôn ngữ Pascal mà em đã học

III Chuẩn bị:

- Giáo viên: Giáo án đầy đủ, khai thác hết nội dung, hình ảnh sgk.

- Học sinh: Xem trước bài và chuẩn bị bài mới

IV Nội Dung Bài Mới:

Hoạt động của Gv + Hs Nội dung cần đạt

Gv: Em thường nhìn thấy việc xếp hàng để mua

vé, xếp hàng trước khi vào lớp…

Ta thấy việc sắp xếp công việc đó có ích lợi gì?

Hs:…làm cho hoạt động diễn ra một cách trật tự và

nhanh chóng

Gv: Trong lập trình cũng vậy, nếu biết bố trí dữ

liệu theo dãy, việc khai báo và sử lí dữ liệu trở nên

đơn giản rất nhiều Thay vì phải viết rất nhiều câu

lệnh giống nhau, ta có thể dùng vài câu lệnh lặp và

nhường lại phần lớn công việc cho máy tính thực

hiện

Gv: Nêu ví dụ 1 trong sách giáo khoa Cho hs đọc

và tìm hiểu câu lệnh khai báo, qua thảo luận nhóm

để trả lời câu hỏi

+ Nếu làm theo cách viết chưong trình trong ví dụ

1 , em thấy việc khai báo thế nào ?

Hs:… mất thời gian và dễ nhầm lẫn

Gv: Dẫn dắt như ví dụ trong sgk và dẫn đến giới

thiệu dữ liệu kiểu mảng

Đưa hình vẽ mô tả việc sắp xếp được thực hiện

bằng cách gán cho mỗi phần tư một chỉ số:

1 Dãy số và biến mảng:

- Để giúp cho việc sắp xếp được thuận tiện và đơn giản, mọi ngôn ngữ lập trình đều có 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 và gọi là kiểu của phần tử

Trang 2

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

Gv: Giới thiệu biến mảng

Gv: Trong bài này ta chỉ xét các phần tử kiểu số:

số nguyên hoặc số thực

Vậy biến mảng có tác dụng gì?

Cho Hs nghiên cứu kiến thức phần 2 sgk, thảo luận

nhóm để trả lời câu hỏi:

+ Tương tự như khai báo biến đơn, câu lệnh khai

báo mảng phải được thực hiện ở đâu?

+ Khi khai báo biến mảng trong mọi ngôn ngữ lập

trình cần chỉ rõ ít nhất yếu tố nào?

Gv: Đưa ra cách khai báo như trong sgk

Gv: Ở câu lệnh thứ nhất ta khai báo biến có tên là

gì? Gồm bao nhiêu phần tử? Kiểu dữ liệu mỗi phần

tử của biến là gì?

Hs:… biến có tên là chieu_cao, gồm 50 phần tử.

Mỗi phần tử của biến có kiểu dữ liệu số thực

Tương tự, cho Hs phân tích ý nghĩa câu lệnh thứ 2

Qua ví dụ, gv tổng quát câu lệnh khai báo mảng

trong pascal

Gv: Phân tích: Chỉ số đầu, chỉ số cuối là các số

nguyên hoặc biểu thức nguyên (chỉ số đầu nhỏ hơn

hoặc bằng chỉ số cuối) Kiểu dữ liệu có thể là Real

hoặc Integer.

Gv: Đưa ra ví dụ 2

Gv: Phân tích ích lợi của sử dụng biến mảng qua

câu lệnh lặp để đọc và ghi dữ liệu ra màn hình

(thay vì 50 câu lệnh khai báo và 50 câu lệnh đọc ta

chỉ cần viết 2 câu lệnh)

Gv: Đưa ra cách viết câu lệnh lặp để so sánh điểm

toán với 1 giá trị nào đó

For i:=1 to 50 do

If Diem[i] > 8.5 then Writeln(’Gioi’);

Gv: Cách khai báo và sử dụng biến mảng như ví

dụ 2 có lợi gì?

Hs:… tiết kiện rất nhiều thời gian và công sức viết

chương trình

Gv: Giả sử lớp em có 50 bạn, em thử khai báo một

biến mảng có tên DiemToan?

Hs:…

Var DiemToan: array[1 50] of real;

Gv: Gọi 1 Hs phân tích ý nghĩa của câu lệnh khai

báo trên

Gv: mỗi hs 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?

- 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

là 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

2 Ví dụ về biến mảng:

- Để làm việc với dãy số ta ta khai báo biến mảngcó kiểu số tương ứng trong phần khai báo

- Khi khai báo biến mảng cần chỉ rõ: tên biến mảng, số lượng, kiểu dữ liệu của phần tử

Ví dụ:

var Chieucao: array[1 50] of real; var tuoi: array[21 80] of integer;

* Cách khai báo biến mảng:

Var <tên biến>: array[<chỉ số đầu> <chỉ

số cuối>] of <kiểu dữ liệu>;

- Để lưu điểm số của mỗi hs ta khai báo biến mảng điểm như sau:

Var Diem: array[1 50] of real;

Có thể thay thế nhiều câu lệnh đọc và ghi

dữ liệu ra màn hình bằng một câu lệnh lặop chẳng hạn:

For i:= 1 to 50 do readln(Diem[i]);

Trang 3

Hs:… khai báo nhiều mảng

Gv: Tương tự vài bạn khác hãy khai báo biến

mảng có tên DiemLi, DiemVan?

2 Hs khai báo

Var DiemVan: array[1 50] of real;

Var DiemLy: array[1 50] of real;

Gv: Trong thực tế ta nên khai báo gộp như sau:

Var DiemToan, DiemVan, DiemLy: array[1 50]

of real;

Ta có thể xử lí điểm thi của một Hs cụ thể như:

Tính điểm trung bình của Lan, Tính điểm trung

bình cao nhất của Châu…

Đưa lên bảng:

Gv: Sau khi khai báo một mảng, ta có thể làm việc

với các phần tử của nó như một biến thông thường

Gv: Lưu ý:

+ 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ử đó

Ví dụ: Diem[i] là phần tử thứ i của mảng điểm

Gv: Đưa ví dụ việc gán giá trị phần tử của mảng

như sách giáo khoa

Để xử lý đông thời các loại điểm thì ta khai báo chẳng han:

Var DiemToan, DiemLy, DiemVan: array[1 50] of real;

- Sau khi khai báo một mảng, ta có thể làm việc với các phần tử của nó như một biến thông thường như: gán giá trị, đọc giá trị và thực hiện tính toán với các giá trị đó

Việc gán giá trị cho các phần tử của mảng có thể thực hiện trực tiếp qua câu lệnh:

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

V Củng cố - dặn dò:

- Nêu ích lợi của việc sử dụng biến mảng?

- Làm các bài tập 1, 2, 3 sách giáo khoa

- Chuẩn bị phần bài còn lại cho tiết sau

Lớp: 8B-8A

Bài 9: LÀM VIỆC VỚI DÃY SỐ (tt)

I Mục Tiêu:

1 Kiến thức:

2 Kỹ năng:

- Biết cách khai báo mảng: Nhập, in, truy cập các phần tử của mảng

- Viết, dịch được đoạn chương trình có sử dụng biến mảng ở các bài toán đơn giản

3 Thái độ:

- Chú ý nghe giản, thực hiện theo sự hướng dẫn của giáo viên bộ môn

- Hăng say phát biểu, tích cực hoạt động và tìm tòi

Trang 4

II Kiểm tra bài cũ:

III Chuẩn bị:

- Giáo viên: Giáo án đầy đủ, khai thác hết nội dung, hình ảnh sgk.

- Học sinh: Xem trước bài và chuẩn bị bài mới

IV Nội Dung Bài Mới:

Hoạt động của Gv + Hs Nội dung cần đạt

Gv: Cho Hs đọc ví dụ 3 trong sách giáo khoa

Gv: Giải thích thuật toán tìm giá trị lớn nhất:

Đầu tiên gán giá trị số thứ nhất của dãy số cho

Max (ban đầu tạm thời coi số thứ nhất 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ứ nhất tạm

thời – max 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ứ 1 và 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ố

Yêu cầu Hs trình bày lại thuật toán

Gv: Cho Hs thảo luận nhóm để nghiên cứu

cách viết chương trình dựa trên các câu hỏi:

+ Hãy nêu yêu cầu của chương trình ?

+ Trong chương trình đã khai báo những biết

gì? Nêu tác dụng của từng biến? phân loại

từng biến ?

+ Theo em mảng A có bao nhiêu phần tử ?

+ Hãy giải thích các câu lệnh trong phần thân

của chương trình

Các nhóm Hs thảo luận và cử đại diện trả lời

Gv: Trong chương trình vừa nghiên cứu ta

Chú ý: Số phần tử của mảng phải được khai

báo bằng số cụ thể

Gv: Nhấn mạnh: Qua ví dụ ta thấy sự khác

biệt giữa người và máy tính khi giải quyết

công việc Trong nhiều tình huống con người

giải các bài toán hiệu quả hơn máy tính nhiều

Còn máy tính lại hơn hẳn con người đối với

những tính toán số lớn hoặc với số nhiều…

3 Tìm giá trị lớn nhất và nhỏ nhất của dãy số:

- Ví dụ 3 (sgk)

Qua ví dụ ta cần lưu ý: Số các phần tử của mảng (kích thước của mảng) cần được khai báo bằng một số cụ thể

V Củng cố - dặn dò:

- Về nhà đọc và tìm hiểu một số chương trình Pascal có khai báo và sử dụng biến mảng

- Tập viết một số câu lệnh khai báo biến mảng, ôn luyện cách sử dụng các câu lệnh lặp

- Nhớ lại các kỹ năng đọc, hiểu và chỉnh sửa chương trình

Trang 5

Tuần: Ngày soạn: / /2009

Lớp: 8B-8A

BÀI TẬP

I Mục Tiêu:

1 Kiến thức:

2 Kỹ năng:

- Biết cách khai báo mảng: Nhập, in, truy cập các phần tử của mảng

- Viết, dịch được đoạn chương trình có sử dụng biến mảng ở các bài toán đơn giản

- Biết cách viết chương trình của các bài tập đơn giản

3 Thái độ:

- Chú ý nghe giản, thực hiện theo sự hướng dẫn của giáo viên bộ môn

- Hăng say phát biểu, tích cực hoạt động nhóm

II Kiểm tra bài cũ:

?1 Nêu cú pháp cách khai báo biến mảng?

?2 Để nhập dữ liệu cho biến mảng ta sử dụng câu lệnh gì?

III Chuẩn bị:

- Giáo viên: Giáo án đầy đủ, khai thác hết nội dung liên quan đến bài học

- Học sinh: Xem lại bài và chuẩn bị các bài tập trong sách giáo khoa

IV Nội Dung Bài Mới:

Hoạt động của Gv + Hs Nội dung cần đạt

GV: Đưa ra các bài tập ở SGK và gọi học sinh

lên bảng trả lời

Hướng dẫn:

1) Lợi ích chính của việc sử dụng biến mảng

là có thể sử dụng câu lệnh lặp để thay nhiều

câu lệnh, tiết kiệm được thời gian và công sức

viết chương trì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ả…

Gv: Cho Hs thảo luận, đại diện các nhóm trả

lời

Hướng dẫn:

2) Đá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.

3) Đúng

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 trong phần khai

1) Hãy nêu các lợi ích của việc sử dụng biến mảng trong chương trình

2) Các khai báo biến mảng sau đây trong Pascal đúng hay sai?

a var X: Array[10,13] Of

Integer;

b var X: Array[5 10.5] Of

Real;

c var X: Array[3.4 4.8] Of

Integer;

d var X: Array[10 1] Of

Integer;

e var X: Array[4 10] Of

Real;

3) "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?

Trang 6

báo chương trình.

Gv: Cho Hs nêu thuật toán, nêu các biến và

cách khai báo

Hs: Viết chương trình dưới sự hướng dẫn của

giáo viên

Hướng dẫn: Chương trình có thể như sau:

Program tinh_trung_binh;

Uses crt;

Var

N, i : Integer;

TB: real;

A: Array[1 100] of integer;

Begin

Clrscr;

Write(‘Nhap phan tu cua

mang, n = ’); read(n);

TB:=0;

For i:= 1 to n do

Begin

Write(’nhap gia tri thu

‘,I,’ cua mang, a[‘,I,’]

=’);

Readln(a[i]);

TB:=TB+a[i];

End;

TB:=TB/n;

Write(trung binh bang: ‘,

TB);

End.

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

5 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 từ bàn phím

V Củng cố- dặn dò:

- Về nhà xem lại bài và học thuộc cú pháp khai báo mảng

- Xem và chuẩn bị trước bài thực hành 7

Trang 7

Tuần: Ngày soạn: / /2009

Bài thực hành 7:

XỬ LÍ DÃY SỐ TRONG CHƯƠNG TRÌNH

I Mục Tiêu:

1 Kiến thức:

- Thực hành khai báo và sử dụng biến

- Ôn luyện cách sử dụng câu lệnh: if…then, for…do.

2 Kỹ năng:

- 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 và nhỏ nhất của một dãy số, tính tổng dãy số

3 Thái độ:

- Chú ý nghe giản, thực hiện theo sự hướng dẫn của giáo viên bộ môn

- Hăng say phát biểu, tích cực hoạt động, thảo luận nhóm

II Kiểm tra bài cũ:

?1Viết lại câu lệnh lặp if…then, for…do?

?2.Viết cú pháp khai báo biến mảng kiểu số nguyên và kiểu số thực?

III Chuẩn bị:

- Giáo viên: Giáo án đầy đủ, khai thác hết nội dung liên quan đến bài học

- Học sinh: Xem lại lí thuyết và chuẩn bị các bài tập thực hành trong sách giáo khoa

IV Nội Dung Bài Mới:

1 Thực hành ví dụ 3 sách giáo khoa.

* Gọi Hs nêu yêu cầu bài toán ở ví dụ 3

* C ho Hs làm việc theo nhóm để gõ chương trình ở ví dụ 3 trong tiết lý thuyết trước

* Các nhóm đọc, tìm hiểu ý nghĩa câu lệnh trong chương trình

Gv: Ở chương trình trên, ta đã khai báo những biết gì? Kiểu dữ liệu từng loại biến?

- Biến mảng A gồm bao nhiêu phần tử ?

- Gv: Yêu cầu Hs dịch và chạy chương trình với các bộ dữ liệu tùy ý

* Các nhóm báo cáo kết quả, Gv nhận xét

2 Bài 1 phần thực hành:

Gọi Hs đọc nội dung, yêu cầu của đề bài

Gv: Để viết chương trình của bài 1, em cần sử dụng những biết nào? Em hãy thử khai báo các biến đó

Hs:…

Gv: Đưa phần khai báo biến (SGK) cho Hs tìm hiểu và cho các em nêu tác dụng của từng biến Cho các nhóm gõ phần khai báo biến vào máy

Gv: Cho Hs nghiên cứu, tìm hiểu ý nghĩa các câu lệnh trong phần thân chương trình (SGK) Các nhóm Hs gõ phần thân chương trình vào máy; dịch, sửa lỗi (nếu có) và chạy chương trình với các bộ dữ liệu tùy ý

Các nhóm quan sát kết quả trên màn hình Cử đại diện báo cáo

Gv: Nhận xét các nhóm

IV Củng cố - dặn dò:

- Nhắc lại cách khia báo biến mảng…

- Chuẩn bị tiếp phần bài còn lại

- Về tập viết một số chương trình đơn giản và xem thêm sách tham khảo (nếu có)

Trang 8

Tuần: Ngày soạn: / /2009

Bài thực hành 7:

XỬ LÍ DÃY SỐ TRONG CHƯƠNG TRÌNH (tt)

I Mục Tiêu:

1 Kiến thức:

- Thực hành khai báo và sử dụng biến

- Ôn luyện cách sử dụng câu lệnh: if…then, for…do.

2 Kỹ năng:

- 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 và nhỏ nhất của một dãy số, tính tổng dãy số

3 Thái độ:

- Chú ý nghe giản, thực hiện theo sự hướng dẫn của giáo viên bộ môn

- Hăng say phát biểu, tích cực hoạt động, thảo luận nhóm

II Kiểm tra bài cũ (không kiểm tra bài cũ, kết hợp kiểm tra trong quá trình thực hành) III Chuẩn bị:

- Giáo viên: Giáo án đầy đủ, khai thác hết nội dung liên quan đến bài học

- Học sinh: Xem lại lí thuyết và chuẩn bị phần còn lại bài tập thực hành trong sách giáo khoa

IV Nội Dung Bài Mới:

3 Bài tập 2:

Gv: Nêu yêu cầu của bài 3 (nâng cao của bài 1), và Hs nhắc lại

Gv: Tương tự bài 1, theo em phân khai báo viết như thế nào?

Đưa ra phần khai báo như sgk, cho Hs phân tích ý nghĩa các câu lệnh

Gv: Cho Hs thảo luận nhóm để thực hiện các yêu cầu sau:

+ Viết câu lệnh tính trung bình của mỗi bạn trong lớp

+ Viết câu lệnh tính điểm trung bình của cả lớp theo từng môn Toán và Ngữ văn

Gv: Cho Hs nghiên cứu phần thân chương trình sgk

Hs làm việc theo nhóm để bổ xung các câu lệnh trên vào vị trí thích hợp trong chương trình Thêm các lệnh cần thiết, cho dịch và chạy chương trình với các số liệu thử

Các nhóm cử đại diện báo cáo

Gv: Nhận xét các nhóm (có thể cho điểm)

4 Bài tập làm thêm:

Hãy viết chương trình in ra màn hình dãy số nhập từ bàn phím, tính tổng dãy số đó

Yêu cầu Hs nêu ý tưởng bài toán, giới thiệu chương trình

Program Tong_day_so;

Var

I, n, sum: integer;

A: arrray[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]) ;

Trang 9

Sum:=0 ;

For i:= 1 to N do Sum :=Sum+a[1];

Write(’Day so vua nhap la:’);

For i:= 1 to N do write(a[i], ’ ’);

Writeln;

Write(’Tong cua day so la: ’,sum);

Readln;

End.

Cho Hs tím hiểu câu lệnh, đặt biệt câu lệnh viết về in phần tử của mảng ra màn hình

V Củng cố - dặn dò:

- Gv: Nhận xét toàn bộ kiến thức chính đã học trong bài, gọi Hs đọc phần ghi nhớ và tổng kết cuối bài

- Nhận xét, đánh giá giờ thực hành (ý thức tổ chức kỉ luật các nhóm) Tuyên dương cá nhân hoặc nhóm thực hành tốt

- Về nhà ô lại một số câu lệnh có điều kiên, câu lệnh lặp, khai báo biến mảng… và nhắc hs sử dụng hợp lý trogn khi viết chương trình

- Tập viết một số chương trình đơn giản

Ngày đăng: 03/07/2014, 14:00

Xem thêm

TỪ KHÓA LIÊN QUAN

w