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

Tiết 25_26_TH4

4 248 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giáo án Tin học 11
Người hướng dẫn Đỗ Vũ Hiệp
Trường học Trường Trung Học Phổ Thông
Chuyên ngành Tin học
Thể loại Giáo án
Năm xuất bản 2008
Thành phố Hà Nội
Định dạng
Số trang 4
Dung lượng 92 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Kiến thức  Củng cố cho học sinh những kiến thức đã có khi lập trình với kiểu dữ liệu mảng;  Củng có thuật toán sắp xếp các phần tử của một dãy bằng tráo đổi; 2.. Kỹ năng  Củng cố kỹ n

Trang 1

Tuần: 22 Tiết: 25 -Ngày soạn: 16/2/2008

Ngày dạy: Lớp:

Chương IV: Kiểu dữ liệu có cấu trúc

Bài tập và thực hành 4

I Mục đích, yêu cầu:

1 Kiến thức

 Củng cố cho học sinh những kiến thức đã có khi lập trình với kiểu dữ liệu mảng;

 Củng có thuật toán sắp xếp các phần tử của một dãy bằng tráo đổi;

2 Kỹ năng

 Củng cố kỹ năng đã có khi lập trình với kiểu dữ liệu mảng;

 Rèn luyện kỹ năng diễn đạt thuật toán bằng chương trình sử dụng dữ liệu kiểu mảng;

3 Thái độ

 Rèn luyện cho học sinh ý thức cần có của người lập trình là viết chương trình với khối lượng tính toán ít nhất có thể được;

 Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập trình

II Phương pháp - phương tiện dạy học:

 Thực hành, thực hiện minh họa trực quan, quan sát và hướng dẫn;

 Giáo viên chuẩn bị: Giáo án, phòng máy nối mạng LAN, cài đặt Turbo Pascal; Netop school; chương trình mẫu lưu trên máy server để HS tìm hiểu; máy chiếu; laptop;

 Học sinh chuẩn bị: Đọc trước nội dung bài, sách giáo khoa, vở ghi

III NộI dung dạy – học:

Ổn định lớp;

Ghi sổ đầu bài

Chào thầy

Cán bộ lớp báo sĩ số

Bài 1

a) Hãy tìm hiểu và chạy thử

chương trình thực hiện thuật toán

sắp xếp dãy số nguyên bằng thuật

toán tráo đổi với các giá trị khác

nhau của n dưới đây Qua đó,

nhận xét về thời gian chạy của

chương trình

Const nmax=250;

Type ArrInt=array[1 nmax] of

integer;

Var A: ArrInt;

n, i, j, t: integer;

Begin

Randomize;

Write(‘Nhap n= ‘); readln(n);

For i:=1 to n do A[i]:=

random(300) – random(300);

For i:=1 to n do write(A[i]:5);

Writeln;

For j:=n downto 2 do

For i:=1 to j – 1 do

If A[i] > A[i+1] then

Begin

Quan sát, hướng dẫn HS khởi động máy tính

Quan sát, hướng dẫn HS khởi động TP

Nêu nội dung công việc trong tiết thực hành: Thực hiện bài 1

Yêu cầu HS thực hiện gõ chương trình theo mẫu trong câu a) trang 65-66_sgk

(HD HS có thể lấy chương trình xuống từ máy server)

Quan sát và hướng dẫn

HD HS lưu chương trình

Quan sát và hướng dẫn HS nhận biết và sửa lỗi chương trình

Quan sát và hướng dẫn HS chạy thử chương trình

Khởi động máy tính Khởi động TP

Gõ chương trình

Thực hiện lưu chương trình

Nhận biết và sử lỗi chương trình

Chạy thử chương trình và kiểm tra kết quả

Trang 2

Nội dung bài giảng Hoạt động của thầy Hoạt động của trò

t := A[i]; A[i] := A[i+1];

A[i+1] := t;

End;

Writeln(‘Day so da sap xep:‘);

For i:=1 to n do Write(A[i]:6);

Writeln;

Readln

End

Nhắc HS nhớ lưu chương trình trước khi sang câu b) Ấn F2.

b) Khai báo thêm biến nguyên

Dem và bổ sung vào chương trình

những lệnh cần thiết để biến Dem

tính số lần thực hiện tráo đổi trong

thuật toán Đưa kết quả tìm được

ra màn hình

Hướng dẫn:

Const nmax=250;

Type ArrInt=array[1 nmax] of

integer;

Var A: ArrInt;

Dem, n, i, j, t: integer;

Begin

Randomize;

Write(‘Nhap n= ‘); readln(n);

For i:=1 to n do A[i]:=

random(300) – random(300);

For i:=1 to n do write(A[i]:5);

Writeln; Dem := 0;

For j:=n downto 2 do

For i:=1 to j – 1 do

If A[i] > A[i+1] then

Begin

t := A[i]; A[i] := A[i+1];

A[i+1] := t;

Dem := Dem + 1;

End;

Writeln(‘So lan trao doi:‘,Dem);

Writeln(‘Day so da sap xep:‘);

For i:=1 to n do Write(A[i]:6);

Writeln;

Readln

End

HD học sinh lưu chương trình ở câu a) với tên khác sau đó thực hiện câu theo yêu cầu ở câu b) Gọi HS nêu các vị trí đặt các câu lệnh tương ứng vào chương trình

để có được CT theo đề ra?

Nhận xét, chốt lại phương án đúng kết hợp giải thích để HS hiểu

Quan sát và hướng dẫn HS thực hiện

Yêu cầu HS cho biết: Cần sửa đổi câu lệnh nào để có chương trình sắp xếp các phần tử theo thứ tự không tăng?

Kết luận:

Sửa điều kiện: A[i] > A[i+1] thành điều kiện: A[i] < A[i+1]

Hãy sửa chương trình theo cách trên và chạy thử để kiểm tra kết quả

Quan sát và hướng dẫn HS thực hiện

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

Xung phong trả lời Nhận xét, bổ sung

Chú ý lắng nghe

Thực hiện sửa chương trình theo đề

ra và chạy thử CT Lắng nghe, trả lời câu hỏi

Chú ý lắng nghe

Thực hiện yêu cầu của giáo viên

Chạy thử CT, kiểm tra kết quả

Ấn F2 để lưu CT;

Ấn tổ hợp Alt + X

IV Củng cố:

 Những câu lệnh nào thực hiện một lần tráo đổi giá trị của hai phần tử liền kề?

Ý nghĩa của lệnh gán: A[i] := random(300) – random(300);

V Dặn dò:

 Xem trước nội dung Bài 2 trang 66 – 67_sgk; Tiết sau tiếp tục thực hành bài này

VI Rút kinh nghiệm:

Trang 3

Tuần: 22 Tiết: 26 -Ngày soạn: 17/2/2008

Ngày dạy: Lớp:

Chương IV: Kiểu dữ liệu có cấu trúc

Bài tập và thực hành 4 (tt)

I Mục đích, yêu cầu:

1 Kiến thức

 Củng cố cho học sinh những kiến thức đã có khi lập trình với kiểu dữ liệu mảng;

 Củng có thuật toán sắp xếp các phần tử của một dãy bằng tráo đổi;

2 Kỹ năng

 Củng cố kỹ năng đã có khi lập trình với kiểu dữ liệu mảng;

 Rèn luyện kỹ năng diễn đạt thuật toán bằng chương trình sử dụng dữ liệu kiểu mảng;

3 Thái độ

 Rèn luyện cho học sinh ý thức cần có của người lập trình là viết chương trình với khối lượng tính toán ít nhất có thể được;

 Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập trình

II Phương pháp - phương tiện dạy học:

 Thực hành, thực hiện minh họa trực quan, quan sát và hướng dẫn;

 Giáo viên chuẩn bị: Giáo án, phòng máy nối mạng LAN, cài đặt Turbo Pascal; Netop school; chương trình mẫu lưu trên máy server để HS tìm hiểu; máy chiếu; laptop;

 Học sinh chuẩn bị: Đọc trước nội dung bài, sách giáo khoa, vở ghi

III NộI dung dạy – học:

Ổn định lớp;

Ghi sổ đầu bài

Chào thầy

Cán bộ lớp báo sĩ số

Bài 2

Hãy đọc và tìm hiểu những

phân tích để viét chương trình giải

bài toán:

Cho mảng A gồm n phần tử

Hãy viết chương trình tạo mảng

B[1 n], trong đó B[i] là tồng của i

phần tử đầu tiên của A.

Chương trình:

Const nmax=100;

Type Mang1=array[1 nmax] of

integer;

Var A, B: Mang1;

n, i, j: integer;

Begin

Randomize;

Write(‘Nhap n= ‘); readln(n);

For i:=1 to n do A[i]:=

random(300) – random(300);

For i:=1 to n do write(A[i]:5);

Writeln;

For i:=1 to n do

Begin

Quan sát, hướng dẫn HS khởi động máy tính

Quan sát, hướng dẫn HS khởi động TP

Nêu nội dung công việc trong tiết thực hành: Thực hiện bài 2

Yêu cầu HS thực hiện gõ chương trình theo mẫu trang 66-67_sgk

(HD HS có thể lấy chương trình xuống từ máy server)

Quan sát và hướng dẫn

HD HS lưu chương trình

Quan sát và hướng dẫn HS nhận biết và sửa lỗi chương trình

Quan sát và hướng dẫn HS chạy thử chương trình

Khởi động máy tính Khởi động TP

Gõ chương trình

Thực hiện lưu chương trình

Nhận biết và sử lỗi chương trình

Chạy thử chương trình và kiểm tra kết quả

Trang 4

Nội dung bài giảng Hoạt động của thầy Hoạt động của trò

B[i] := 0;

For j:=1 to i do

B[i] := B[i] + A[j];

End;

For i:=1 to n do Write(B[i]:6);

Readln

End

Nhắc HS nhớ lưu chương trình trước khi sang câu b)

Ấn F2.

Sửa lại chương trình sao cho

thực hiện càng ít phép toán càng

tốt

Hướng dẫn:

Áp dụng hệ thức:

B[1] = A[1]

B[i] = B[i-1] + A[i]; với 1 < i ≤ n

Như vậy, ta có thể thay đoạn lệnh:

For i:=1 to n do

Begin

B[i] := 0;

For j:=1 to i do

B[i] := B[i] + A[j];

End;

Bằng đoạn lệnh:

B[1] := A[1];

For i:=2 to n do

B[i] := B[i-1] + A[i];

HD học sinh lưu chương trình trên với tên khác sau đó thực hiện sửa đổi chương trình theo hướng dẫn

Quan sát và hướng dẫn HS thực hiện

Quan sát và hướng dẫn HS thực hiện

Nhờ đó, ta có thể bỏ bớt một biến j trong chương trình, chương trình ngắn gọn hơn;

Đặc biệt, máy tính chỉ phải thực hiện n – 1 phép toán cộng thay vì phải thực hiện n(n+1)/2 phép cộng Tiết kiệm được một lượng tính toán đáng kể

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

Thực hiện sửa chương trình theo hướng dẫn

Chạy thử CT, kiểm tra kết quả Quan sát thời gian thực hiện chương trình

Chú ý lắng nghe

Ấn F2 để lưu CT;

Ấn tổ hợp Alt + X

IV Củng cố:

 Nêu các lệnh thực hiện tạo mảng B[1 n] từ mảng A gồm n phần tử sao cho B[i] là tổng của i phần tử đầu tiên của A?

 Cần xây dựng chương trình sao cho khối lượng tính toán là ít nhất có thể được

V Dặn dò:

 Chuẩn bị bài mới: §12 Kiểu xâu

VI Rút kinh nghiệm:

Ngày đăng: 05/06/2013, 01:25

Xem thêm

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w