BàI TậP Và THựC HàNH 4 I Mục tiêu

Một phần của tài liệu Download giáo án tin học 11 biên soạn theo chuẩn kiến thức kỹ năng, từ bài 1 đến bài 11 (2) (Trang 53 - 56)

D, x1, x2: real; Begin clrscr;

BàI TậP Và THựC HàNH 4 I Mục tiêu

I. Mục tiêu

1. Kiến thức

- Củng cố lại các kiến thức cơ bản khi lập trình với kiểu dữ liệu mảng. - Làm quen với thuật toán sắp xếp đơn giản.

2. Kĩ năng

- Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc, 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.

- Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bài toán sao cho chơng trình chạy nhanh hơn.

3. Thái độ

- Tự giác, chủ động trong khi thực hành.

II. Chuẩn bị của giáo viên và học sinh

1. Chuẩn bị của giáo viên

- Phơng pháp: Thuyết trình, vấn đáp

- Phơng tiện:

o Máy vi tính và máy chiếu.

o Một số chơng trình mẫu.

2. Chuẩn bị của học sinh

- Sách giáo khoa.

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

1. n định lớp

2. Hoạt động dạy - học

Hoạt động của giáo viên và học

sinh Nội dung

Hoạt động 1. Tìm hiểu bài tập 1.

GV: Gợi ý cho HS nhớ lại thuật toán sắp xếp đã học.

- Lấy một ví dụ thực tiễn: Ngời mù bán táo, muốn sắp xếp các quả táo thành một dãy theo khối lợng không giảm.

- Yêu cầu HS đa ra các bớc để sắp xếp các phần tử trong một mảng.

GV: Cho HS tìm hiểu chơng trình, SGK, trang

65. Đặt câu hỏi:

- Vai trò của biến i, j trong chơng trình? mỗi vòng lặp For...do trong đoạn chơng trình sắp xếp có ý nghĩa gì?

- Ba lệnh tg := a[i]; a[i] := a[i+1]; và

a[i+1] := tg; có ý nghĩa gì?

GV: Thực hiện chơng trình, nhập dữ liệu để HS

thấy kết quả chơng trình. Sau đó yêu cầu HS trả lời câu hỏi: Chơng trình xử lí công việc gì?

GV: Hớng dẫn HS sửa chơng trình để giải quyết

bài toán ở câu b với các câu hỏi gợi ý:

Bài 1 uses crt; const Nmax = 250; type ArrInt = array[1..Nmax] of integer; var n, i, j, y: integer; A: ArrInt; begin clrscr; 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 begin for i:=1 to j-1 do

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

begin

- Đoạn chơng trình nào dùng để thực hiện tráo đổi giá trị?

- Lệnh này đợc viết ở vị trí nào trong chơng trình?

GV: Yêu cầu HS nhập dữ liệu vào chạy chơng

trình và thông báo kết quả.

GV: Nhận xét đánh giá kết quả của HS. Hoạt động 2. Thực hiện bài tập 2.

Xác định bài toán.

GV: Chiếu đề bài lên bảng. Yêu cầu HS xác định

dữ liệu vào, dữ liệu ra. Gợi ý để HS tìm thuật toán.

Giới thiệu chơng trình cha cải tiến.

GV: Thực hiện chơng trình để HS quan sát kết quả. GV: Trong chơng trình phải thực hiện bao nhiêu

phép cộng?

HS: Suy nghĩ trả lời câu hỏi. GV: Thấy rằng:

B[1] := A[1];

B[i] := B[i−1] + A[i], (1 < i ≤ n)

nên có thể thay bởi:

B[1]:= A[1];

for i:= 2 to n do

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

GV: Yêu cầu HS viết chơng trình hoàn thiện và

chạy lại để so sánh với kết quả trớc đó.

GV: Cùng một bài toán, có nhiều cách giải quyết

khác nhau. Ngời lập trình cần chọn cách sao cho máy thực hiện nhanh nhất.

A[i]:= A[i+1]; A[i+1]:=t end; end; writeln('Day so duoc sap xep: '); for i:=1 to n do write(A[i]: 7); writeln; readln end. Bài 2 program SubSum1; const nmax=100; type MyArray = array[1..nmax] of integer; var A, B: MyArray; 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 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. 3. Củng cố, dặn dò

- Thuật toán sắp xếp đơn giản.

- Một bài toán có thể có nhiều cách viết thành một chơng trình. Cần chọn cách có số phép tính ít nhất.

- Xem lại tất cả các kiến thức đã học, bao gồm: lệnh cơ bản, lệnh điều khiển, kiểu dữ liệu cơ bản, kiểu dữ liệu có cấu trúc.

- Tiết sau kiểm tra 15 phút.

Một phần của tài liệu Download giáo án tin học 11 biên soạn theo chuẩn kiến thức kỹ năng, từ bài 1 đến bài 11 (2) (Trang 53 - 56)

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

(57 trang)
w