Giáo án môn Tin học 11 - Tiết 19 đến tiết 46

Giáo án môn Tin học 11 - Tiết 19 đến tiết 46

I. Mục tiêu

1. Kiến thức

Củng cố lại cho học sinh những kiến thức liên quan đến tổ chức rẽ nhánh và lặp: Cấu trúc lặp, sơ đồ thực hiện, sự thực hiện của máy khi gặp lệnh lặp

2. Kĩ năng

Rèn luyện kĩ năng vận dụng và linh hoạt trong việc lựa chọn cấu trúc rẽ nhánh và cấu trúc lặp phù hợp để giải quyết bài toán đặt ra.

3. Thái độ

 Tự giác, tích cực, chủ động trong giải quyết các bài tập

II.Chuẩn bị của thầy và trò

1.Chuẩn bị của giáo viên: Hệ thống bài tập,máy chiếu.

2.Chuẩn bị của học sinh: SGK, ôn lại các bài đã học

III. Tiến trình bài học

1. Ổn định tổ chức

 

doc 59 trang Người đăng minh_thuy Lượt xem 1700Lượt tải 1 Download
Bạn đang xem 20 trang mẫu của tài liệu "Giáo án môn Tin học 11 - Tiết 19 đến tiết 46", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Ngày soạn 
Tiết 19: BÀI TẬP
I. Mục tiêu
1. Kiến thức
Củng cố lại cho học sinh những kiến thức liên quan đến tổ chức rẽ nhánh và lặp: Cấu trúc lặp, sơ đồ thực hiện, sự thực hiện của máy khi gặp lệnh lặp
2. Kĩ năng 
Rèn luyện kĩ năng vận dụng và linh hoạt trong việc lựa chọn cấu trúc rẽ nhánh và cấu trúc lặp phù hợp để giải quyết bài toán đặt ra.
3. Thái độ
	Tự giác, tích cực, chủ động trong giải quyết các bài tập
II.Chuẩn bị của thầy và trò
1.Chuẩn bị của giáo viên: Hệ thống bài tập,máy chiếu.
2.Chuẩn bị của học sinh: SGK, ôn lại các bài đã học
III. Tiến trình bài học
1. Ổn định tổ chức
Lớp
Ngày dạy
Sĩ số
HS vắng
Lớp
Ngày dạy
Sĩ số
HS vắng
2. Kiểm tra bài cũ
Kiểm tra trong quá trình học bài mới
3. Bài mới
Hoạt động của giáo viên
Hoạt động của học sinh
Ví dụ 1: Lập trình tính giá trị của hàm số: 
Đưa kết quả ra màn hình.
Hỏi:
Input của bài toán là gì?
Output của bài toán ?
Hãy nêu tư tưởng thực hiện bài toán trên ?
- Hãy viết CT cho bài tóan trên ?
Ví dụ 2: Lập chương trình nhập liên tiếp một dãy số cho đến khi tích của chúng > a (a là một số thực được nhập từ bàn phím). 
Tính: 
Tổng của dãy số 
Trung bình cộng của dãy số đó
Số lượng các số dương
Số lượng các số âm
Số bé nhất
Số lớn nhất
Đưa kết quả ra màn hình.
Hỏi:
Input của bài toán là gì?
Output của bài toán ?
Hãy nêu tư tưởng thực hiện bài toán trên ?
- Ycầu hs viết CT
TL: 
- Input: x, n
- Output: hàm số sin(x)
- Tư tưởng: 
Đầu tiên i← 1, t←x, gt←1, lt←x
Trong vòng lặp:
 + i←i+2
 + gt←gt*i
 + lt←(-1)*lt*x*x
 + t←t+lt/gt
Thực hiện cho đến khi nào (i= 2*n + 1) thì thôi
- Viết chương trình.
- Input: Dãy số a1, a2,.., an và 1 số a
- Output: Tổng của dãy, TBC, Số lượng các số dương, số lượng các số âm, giá trị Max, Min.
- Tư tưởng: 
tong←0; TBC←0; d1←0; d2←0; tich←1
- Nhập phần tử thử 1, nếu a1< a thì thực hiện cv sau:
+ max ←a1, min← a1
+ Thực hiện vòng lặp Repeat-Until hoặc While-Do:
Nhập dãy số cho đến khi nào a1*a2*..*an >a thì thôi. Thực hiện việc lặp sau:
Nhập ptử ai, kiểm tra xem ai>0 thì d2←d2+1, ngược lại d1←d1 + 1
Kiểm tra xem, nếu ai> max thì max ←ai
Nếu ai< min thì min←ai
tong←tong+ai
Ra khỏi vòng lặp
TBC←tong/(d1+d2)
Số lượng các số dương= d2
Số lượng các số âm = d1
giá trị lớn nhất là Max
Giá trị nhỏ nhất là Min.
- Viết CT cho bài toán
4. Củng cố
Xem lại cấu trúc của các câu lệnh lặp, và cấu trúc rẽ nhánh
5. Bài tập- dặn dò
Về nhà làm các bài tập trong sách bài tập.
Ngày soạn 
Chương IV
KIỂU DỮ LIỆU CÓ CẤU TRÚC
Tiết 20: KIỂU MẢNG
I. Mục tiêu
1. Kiến thức
Biết được một số kiểu dữ liệu mới là kiểu mảng một chiều, biết được một loại biến có chỉ số
Biết cấu trúc tạo kiểu mảng một chiều và cách khai báo biến kiểu mảng một chiều
2. Kĩ năng 
Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngôn ngữ Pascal để giải quyết một số bài toán cụ thể
3. Thái độ
II.Chuẩn bị của thầy và trò
1.Chuẩn bị của giáo viên: Hệ thống bài tập,máy chiếu.
2.Chuẩn bị của học sinh: SGK, ôn lại các bài đã học
III. Tiến trình bài học
1. Ổn định tổ chức
Lớp
Ngày dạy
Sĩ số
HS vắng
Lớp
Ngày dạy
Sĩ số
HS vắng
2. Kiểm tra bài cũ
Hãy nêu lưu đồ và một số chú ý khi sử dụng lệnh
3. Bài mới
Hoạt động của giáo viên
Hoạt động của học sinh
1. Kiểu mảng một chiều 
- Nêu khái niệm: Là một dãy hữu hạn các phần tử cùng kiểu. Mảng được đặt tên và mỗi phần tử của nó có một chỉ số. Để mô tả mảng một chiều cần xác định kiểu của các phần tử và cách đánh số các phần tử của nó
- Để người lập trình có thể xây dựng và sử dụng kiểu mảng một chiều, các ngôn ngữ LT có các qui tắc, cách thức cho phép xác định:
Tên kiểu mảng một chiều
Số lượng phần tử
Kiểu dữ liệu của phần tử
Cách khai báo biến trong mảng
Cách tham chiếu đến phần tử
a, Khai báo
- GV: Yêu cầu hs nghiên cứu SGK và cho biết cách tạo kiểu dữ liệu mảng một chiều trong ngôn ngữ LT Pascal.
- GV: Tìm một ví dụ để minh họa
- GV: Gọi một học sinh khác, hỏi: Ý nghĩa của lệnh bạn vừa viết?
- GV: Chiếu lên bảng một số khai báo kiểu mảng một chiều
Type
Arr1= array[1..200] of real;
Arr2= array[byte] of real;
Arr3= array[-100..0]of boolean;
Hỏi: Những khai báo nào đúng?
2. Yêu cầu hs cho biết cách khai báo biến và một ví dụ khai báo một biến mảng ứng với kiểu dữ liệu vừa tạo
- Gọi học sinh khác hỏi: Ý nghĩa của lệnh bạn vừa viết?
- Dung lượng bộ nhớ của biến a đã chiếm là bao nhiêu?
- Chú ý cho học sinh về cách đặt tên kiểu dữ liệu và tên biến, tránh nhầm lẫn
3. Giới thiệu cách tham chiếu đến từng phần tử của mảng một chiều. Yêu cầu học sinh lấy một ví dụ
Ví dụ: Nhập n phần tử thực. In ra những phần tử có giá trị sai khác với giá trị TBC là -1
- Chú ý lắng nghe
- Nghiên cứu SGK và trả lời
- Cách 1: Khai báo trực tiếp biến mảng một chiều
Var : array [kiểu chỉ số] of ;
Trong đó:
- Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và chỉ số cuối (n1 ≤ n2)
- Kiểu phần tử là kiểu của các phần tử mảng
- Ví dụ: 
Var a: array[1..100] of integer;
- Tạo một kiểu dữ liệu mới có tên a, gồm 100 phần tử, có kiểu nguyên. 
- Quan sát bảng và chọn khai báo đúng:
Arr1= array[1..200] of real;
Arr3= array[-100..0]of boolean;
- Nghiên cứu SGK và trả lời
Cách 2: Khai báo gián tiếp biến mảng qua kiểu mảng một chiều
Type = array [kiểu chỉ số] of ;
Var :;
- Ví dụ: Type a=array[1..200] of integer;
 Var a1, a2: a;
- Khai báo biến mảng một chiều
- a đã chiếm 200 byte trong bộ nhớ
- Theo dõi hướng dẫn của giáo viên và độc lập suy nghĩ để trả lời:
A[1] là phần tử ở vị trí 1 của mảng
A[i] là phần tử ở vị trí thứ i của mảng
- Viết CT, giải thích từng câu lệnh và cách khai báo, tham chiếu đến từng phần tử trong mảng cho học sinh
4. Củng cố
Những nội dung đã học:
Biết cấu trúc tạo kiểu mảng một chiều và cách khai báo biến kiểu mảng một chiều
5. Bài tập- dặn dò
Làm các bài tập trong sách bài tập
Ngày soạn 
Tiết 21
KIỂU MẢNG (Tiếp)
I. Mục tiêu
1. Kiến thức
Biết được một số kiểu dữ liệu mới là kiểu mảng một chiều, biết được một loại biến có chỉ số
Biết cấu trúc tạo kiểu mảng một chiều và cách khai báo biến kiểu mảng một chiều
2. Kĩ năng 
Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngôn ngữ Pascal để giải quyết một số bài toán cụ thể
3. Thái độ
Tự giác, tích cực, chủ động trong giải quyết các bài tập	
II.Chuẩn bị của thầy và trò
1.Chuẩn bị của giáo viên: Hệ thống bài tập,máy chiếu.
2.Chuẩn bị của học sinh: SGK, ôn lại các bài đã học
III. Tiến trình bài học
1. Ổn định tổ chức
Lớp
Ngày dạy
Sĩ số
HS vắng
Lớp
Ngày dạy
Sĩ số
HS vắng
2. Kiểm tra bài cũ
- Nêu hai cách khai báo trực tiếp và gián tiếp biến mảng một chiều?
3. Bài mới
Hoạt động của giáo viên
Hoạt động của học sinh
b. Một số ví dụ
Ví dụ 1: Viết CT nhập vào một mảng số nguyên. Tìm các giá trị max, min và vị trí của chúng trong dãy
- Hỏi: Hãy nêu tư tưởng của thuật toán
- Yêu cầu học sinh viết CT cho bài toán 
Ví dụ 2: Viết CT tính tổng các số lẻ và trung bình cộng các số chẵn thuộc [20, 200]
- Hỏi: Hãy nêu tư tưởng của thuật toán
- Yêu cầu học sinh viết CT cho bài toán 
Ví dụ 3: Viết CT:
- Nhập vào số nguyên n (1 <n ≤ 20)và n số thực b1, b2,.., bn. Mỗi số có không quá 2 số lẻ sau dấu chấm thập phân.
- Đưa ra màn hình:
Số nguyên k là số lượng số trong dãy có giá trị nhỏ hơn số bên trái cạnh nó
Nếu k > 0 thì đưa tiếp ra màn hình k dòng, mỗi dòng hai số:
Số thứ tự i
Số thực bi < số cạnh nó bên trái, các số trên một dòng cách nhau một dấu cách
VD1: 
- Tư tưởng:
+ B1: Nhập vào dãy số
+ B2: max ← a1, min ← a1
+ B3: Duyệt từ đầu đến cuối dãy số, nếu ai> max thì max ← ai, nếu ai < min thì min ← ai. Kết thúc vòng lặp, ta tìm được chỉ số max thực sự và chỉ số min thực sự của dãy
+ B4: Lấy giá trị max và min vừa tìm được, đem so sánh với từng phần tử trong dãy số. Nếu phàn tử ai nào có giá trị = max hoặc min thì ta in chỉ số i tương ứng chính là vị trí của nó trong dãy số.
- Viết CT
VD2: - Tư tưởng:
+ Có TL← 0, TC ← 0
+ Cho i chạy từ 20 đến 200
+ kiểm tra nếu i chia hết cho 2 thì 
TC ← TC + i; dem ← dem + 1
ngược lại thì TL ← TL + i;
+ thoát khỏi vòng lặp, ta in ra TL
và TBC= TC/dem
- Viết CT
VD3: 
- Tư tưởng:
B1: Nhập vào số nguyên n và dãy số
B2: K← 0;
B2: Duyệt từ đầu đến cuối dãy số (i:=2→n)
Nếu a[i+1] < a[i] thì tăng biến k lên, và đưa ra chỉ số i, và số thực a[i]
Thoát khỏi vòng lặp, nếu k=0 thì thông báo không có phần tử nào trong dãy có giá trị thỏa mãn điều kiện trên
4. Củng cố
Những nội dung đã học:
Biết cấu trúc tạo kiểu mảng một chiều và cách khai báo biến kiểu mảng một chiều
5. Bài tập- dặn dò
Làm các bài tập trong sách bài tập
Ngày soạn 
Tiết 22
KIỂU MẢNG (Tiếp)
I. Mục tiêu
1. Kiến thức
Biết được một số kiểu dữ liệu mới là kiểu mảng một chiều, biết được một loại biến có chỉ số
Biết cấu trúc tạo kiểu mảng một chiều và cách khai báo biến kiểu mảng một chiều
2. Kĩ năng 
Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngôn ngữ Pascal để giải quyết một số bài toán cụ thể
3. Thái độ
Tự giác, tích cực, chủ động trong giải quyết các bài tập	
II.Chuẩn bị của thầy và trò
1.Chuẩn bị của giáo viên: Hệ thống bài tập,máy chiếu.
2.Chuẩn bị của học sinh: SGK, ôn lại các bài đã học
III. Tiến trình bài học
1. Ổn định tổ chức
Lớp
Ngày dạy
Sĩ số
HS vắng
Lớp
Ngày dạy
Sĩ số
HS vắng
2. Kiểm tra bài cũ
- Lồng vào trong quá trình học bài mới
3. Bài mới
Hoạt động của giáo viên
Hoạt động của học sinh
b. Một số ví dụ
Ví dụ 1: Tìm phần tử lớn nhất của dãy số nguyên
- Yêu cầu hs xác định Input và Output của bài toán
- Thuật tóan:
B1: Nhập N và dãy A1,, AN
B2: Max ← a1, i← 2
B3: Nếu i > N thì đưa ra giá trị Max rồi kết thúc
B4:
 B4.1: Nếu ai > Max thì Max ← ai
 B4.2 : i← i + 1 rồi quay lại bước 3.
Ví dụ 2: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi
b1. Nhập N, các số hạng a1, ..aN
b2: M ← N
b3: Nếu M < 2 thì đưa ra dãy A đã được sắp xếp rồi kết thúc
b4: M ← M -1, i ← 0
b5: i ← i + 1
b6: Nếu i > M thì quay lại bước 3
b7: Nếu ai > ai+1 thì tráo đổi ai, ai+1 cho nhau.
b8: Quay lại bước 5
Ví dụ 3: Tìm kiếm nhị phân
B1: Nhập N, các số hạng, các số hạng a1, a2,,aN và k
B2: Dau←1, Cuoi←N
B3: Giữa ←
B4: Nếu agiữa = k thì thông báo chỉ số giữa, kết thúc
B5: Nếu agiữa > k thì đặt Cuoi= Giua – 1 rồi chuyển đến bước 7
B6: Dau←Giua + 1
B7: Nếu Dau > Cuoi thì thông báo A không có số hạng nào có giá trị bằng k và kết thúc
B8: Quay lại bước 3
Ví dụ 4: Viết CT tính TBC của 100 phần tử nguyên nhập từ bàn phím
Input: Số nguyên dương N (N≤ 250) và dãy A gồm N số nguyên dương A1,, AN, mỗi số đều không vượt quá 500.
Output: Chỉ số và giá trị của phần tử lớn nhất trong dãy số đã cho 
Input: Số nguyên dương N (N≤ 250) và dãy A gồm N số nguyên dương A1,, AN, mỗi số đều không vượt quá 500.
Output: Dãy số A đã được sắp xếp thành dãy không giảm
Input: Dãy A là dãy tăng gồm N (N ≤ 250) số nguyên dương A1,, AN và số nguyên k
Output: Chỉ số i mà Ai = k hoặc thông báo “Không tìm thấy” nếu khôn ...  – 1)+s1[1];
End;
I Trả lời câu hỏi của GV.
Proceure cangiua(var s:str79);
Var i, n:integer;
Begin
 n:=length(s);
 n:=(80 – n) div 2;
 For i:=1 to n do s:= ‘ ’ + s;
End;
I Trả lời câu hỏi của giáo viên.
 Hoạt động 2: Cho HS thực hành trên máy tính.
Hoạt động của giáo viên
Hoạt động cuả học sinh
- Quan sát các em học sinh thực hành và chỉ cho các em học sinh chưa hiểu.
- Hướng dẫn, giải thích những chỗ chưa hiểu của học sinh.
+ Học sinh thực hành nhập chương trình 2c vào máy tính và cho chạy thự chương trình, nếu có chỗ nào khó hiểu thì hỏi giáo viên.
4.Củng cố
Nói lại cách sử dụng thủ tục trong 1 chương trình, tại sao ta cần sử dụng thủ tục khi lập trình.
5.Hướng dẫn về nhà:	Các em về đọc tiếp mục 2c và suy nghĩ thuật toán giải bài toán 2c nhằm phục vụ cho tiết thực hành sau được tốt hơn.
Ngày soạn: 
Tiết: 44	BÀI TẬP VÀ THỰC HÀNH 6 (T2)
I. MỤC TIÊU 
1. Kiến thức:
Rèn luyện các thao tác xử lí xâu, kĩ năng tạo hiệu ứng chữ chạy trên màn hình.
2. Kỹ năng:
Nâng cao kĩ năng viết, sử dụng chương trình con.
Tổ chức những hoạt động trong phòng máy để học sinh có được các kĩ năng cơ bản trong việc tổ chức và sử dụng chương trình con trong lập trình.
 II. CHUẨN BỊ CỦA GV VÀ HS
1. Chuẩn bị của giáo viên.
Máy tính và máy chiếu projector, phông chiếu hoặc bảng, phòng thực hành.
2. Chuẩn bị của học sinh. 
Sách giáo khoa, vở ghi chép.
III. TIẾN TRÌNH DẠY HỌC
1. Ổn định tổ chức
Lớp
Ngày dạy
Sĩ số
Hs vắng
2. Kiểm tra bài cũ:
 (Sau khi đưa ra câu hỏi, gọi 1 em lên trả bài và1 em nhận xét câu trả lời của bạn)
Câu Hỏi: Em hãy cho biết cấu trúc chung của thủ tục (Procedure) và giải thích rõ từng thành phần?
3.Bài mới 
Hoạt động 1: Bài tập 1
Hoạt động của giáo viên
Hoạt động cuả học sinh
GV cho bài tập
 Bài tập : Nhập một xâu ký tự biến đổi xâu ký các ký tự hoa thành ký tự thường và ngược lại.
Bài tập về nhà: Lập chương trình đếm số lần xuất hiện của mỗi loại kí tự trong một xâu kí tự.
+ Giáo viên hướng dẫn học sinh giải thuật và cách viết chương trình.
GV theo dõi bài làm của học sinh trên máy
Sửa chữa lỗi nếu có
+ Học sinh đưa ra giải thuật .
+ Học sinh thực hành trên máy.
 Giải :
program biendoixaukytu ;
uses crt ;
var s:string;
 i:integer ;
begin 
 clrscr;
 write(‘Nhập xau:‘ ); readln(s);
 For i := 1 to length(s) do
 If (s[i] in [’a’..’z’]) then
 S[i]:= upcase(s[i])
 else
 S[i]:= chr(odr(s[i])+32); 
 Writeln(’Kết quả S =’,s);
 Readln;
end.
Hoạt động 2: Bài tập 2
Hoạt động của giáo viên
Hoạt động cuả học sinh
GV: Cho bài tập ( làm tiếp theo bài tiết trước)
+ Hướng dẫn học sinh đưa ra giải thuật .
+ Giáo viên hướng dẫn cách viết .
Hướng dẫn cách khai báo xâu ký tự:
Bài tập 1: Viết chương trình nhập một xâu kí tự từ bàn phím và đưa xâu đó ra màn hình có dạng dòng chữ chạy giữa màn hình văn bản 25x80.
GV: cho học sinh giải bài trên máy. 
GV: hướng dẫn học sinh sửa lỗi.
Cách 1 : gián tiếp .
 TYPE 
 Tên chuoi1 = string[ spt tối đa ];
 Tên chuoi1 = string;
Var biên1: tên chuoi 1;
 Biến 2 : ten chuoi 2;
 Cách 2: Trực tiếp .
 VAR biến 1: string[spt tối đa];
 Biến 2: string;
HS: thực hành trên máy.
Uses crt;
Type str79 = string[79];
Var s1,s2:str79;
 stop:boolean;
Procedure catdan(s1:str79;var s2:str79);
 begin s2:=copy(s1,2,length(s1)+1)+s1(1);
 end;
procedure cangiua(var s: str79);
 var i, n: integer;
 begin
 n:= length(s);
 n:= (80-n) div 2;
 for i:= 1 to n do s:=’’+s;
end;
begin
clrscr;
write(‘Nhap xau s1:’); readln(s1);
cangiua(s1);
clrscr;
stop:=false;
while not (stop) do
 begin
	gotoxy(1,12);
	write(s1);
	delay(500);
	catdan(s1,s2);
	s1:= s2;
	stop:= keypressed;
 end;
readln;
end.
4.Củng cố
Nói lại cách sử dụng thủ tục trong 1 chương trình, tại sao ta cần sử dụng thủ tục khi lập trình.
5.Hướng dẫn về nhà:	Về nhà xem lại bài và làm bài tập và thực hành 7.
 Ngày soạn: 
Tiết 45 :BÀI THỰC HÀNH SỐ 7(T1)
I- MỤC ĐÍCH YÊU CẦU
1. Kiến thức:	
Tiếp tục củng cố cho HS những khái niệm về chương trình con : thủ tục, hàm , tham số giá trị, tham số biến, tham số thực sự, biến tòan cục, biến cục bộ.
2. Kỹ năng:
	Rèn luyện cho học sinh kĩ năng lập trình giải quyết một số bài tóan đơn giản.
II. CHUẨN BỊ CỦA GV VÀ HS
1. Chuẩn bị của giáo viên.
Máy tính và máy chiếu projector, phông chiếu hoặc bảng, phòng thực hành.
 2. Chuẩn bị của học sinh. 
Sách giáo khoa, vở ghi chép.
III. TIẾN TRÌNH DẠY HỌC
 1. Ổn định tổ chức
Lớp
Ngày dạy
Sĩ số
Hs vắng
2. Kiểm tra bài cũ:
 Thực hiện trong quá trình dạy học
3.Bài mới 
Hoạt động 1: Xây dựng chương trình
Hoạt động của giáo viên
Hoạt động của học sinh
1. Phân tích yêu cầu của đề bài
- Chiếu nội dung yêu cầu của đề bài.
-Chia lớp thành 2 nhóm.
+ Nhóm 1 : Nêu câu hỏi phân tích để giải quyết bài tóan.
+ Nhóm 2 : Trả lời câu hỏi phân tích của nhóm 1 để tìm ra cách giải quyết bài tóan.
Giáo viên góp ý bổ sung cho câu hỏi phân tích và trả lời phân tích.
 Để mô tả hay quản lý điểm hay tam giác ta dùng kiểu dữ liệu nào?
 Khi biết toạ độ ba đỉnh của một tam giác thì ta có thể tìm được những yếu tố nào?
 -> Mỗi yếu tố là một chương trình con trong lập trình -> Theo yêu cầu của đề bài ta cần xây dựng những chương trình con nào?
 Hãy tìm hiểu và thảo luận chương trình ở câu b và trả lời các câu hỏi sau:
Câu 1: Tại sao các chương trình con: Kh_cach, chuvi, dientích, đều là hàm mà không là thủ tục?
 Tại sao các hàm trên trả về cho ta một số thực?
Câu 2: Tại sao các chương trình con hienthi, tinhchat, dacanh lại là thụ tục mà không là hàm?
1. Quan sát yêu cầu.
- Nhóm 1 : Đặt câu hỏi
+ Dữ liệu vào.
+ Dữ liệu ra.
+ Cần sửa những chỗ nào trong chương trình câu b.
+ Thuật tóan để đếm số lượng các lọai hình tam giác.
- Nhóm 2 : Trả lời câu hỏi phân tích.
+ Cho trong tệp, phải viết lệnh đọc dữ liệu trong tệp.
+ Ba số nguyên dương là số lượng của ba lọai hình tam giác. Ba số được ghi trên ba dòng của một.
+ Cân thay đoạn chương trình nhập dữ liệu bằng moat chương trình con để đọc dữ liệu từ tệp TAMGIAC.DAT. Thay đọan chương trình in kết quả ra màn hình bằng một chương trình con để in ba số nguyên dương là số lượng ba loại hình ra tệp TAMGIAC.OUT.
Độ dài của của các cạnh, chu vi, diện tích, tính chất của tam (đều, cân hay) vuông của tam giác đó. 
Trả lời: 
+Procedure daicanh(var R:tamgiac, var a,b,c: real);
+ function chuvi (var R:tamgiac):real;
+ function dientich (var R:tamgiac):real;
+ function kh_cach (var P,Q: Diem):real;
+ Procedure hienthi (var R:tamgiac);
+ Procedure tinhchat (var R:tamgiac, var deu,can,vuong: boolean);
 Tra lời: trả về giá trị qua tên hàm.
 Do khoảng các hai điểm có thể là số thực -> chuvi, dientich cũmg có thể là số thực.
 Không trả về một giá trị cụ thể 
+ Nêu thuật tóan.
Hoạt động 2: Thực hành trên máy
Hoạt động của giáo viên
Hoạt động của học sinh
2) Lập trình.
- Yêu cầu học sinh lập trình trên máy. Giáo viên tiếp cận từng nhóm 2 em để sửa lỗi can thiết.
Quan sát giúp đỡ học sinh khi gặp khó khăn.
- Yêu cầu học sinh nhập dữ liệu của giáo viên vào và báo cáo kết quả của chương trình.
- Đánh giá kết quả của học sinh.
 Yêu cầu học sinh copy bài chuẩn bị ở nhà vào máy (hay giáo viên chuẩn bị sẵn) và tiến hành kiểm tra lỗi và chạy thử.
2. Hai em một máy lần lượt viết và gõ chương trình vào máy
- Thông báo kết quả cho giáo viên.
4.Củng cố
Thủ tục, hàm, tham số giá trị, tham số biến, tham số thực sự, biến tòan cục, biến cục bộ.
Tìm hiểu một số chương trình con liên quan đến tam giác.
5.Hướng dẫn về nhà
Hoàn thiện chương trình còn bị lỗi
Xem trước bài 19 Thư viện chương trình con chuẩn.
Ngày soạn:
Tiết 46:BÀI THỰC HÀNH SỐ 7 (T2)
I- MỤC ĐÍCH YÊU CẦU
1. Kiến thức:	
Tiếp tục củng cố cho HS những khái niệm về chương trình con : thủ tục, hàm , tham số giá trị, tham số biến, tham số thực sự, biến tòan cục, biến cục bộ.
2. Kỹ năng:
	Rèn luyện cho học sinh kĩ năng lập trình giải quyết một số bài tóan đơn giản.
II. CHUẨN BỊ CỦA GV VÀ HS
1. Chuẩn bị của giáo viên.
Máy tính và máy chiếu projector, phông chiếu hoặc bảng, phòng thực hành.
2. Chuẩn bị của học sinh. 
Sách giáo khoa, vở ghi chép.
III. TIẾN TRÌNH DẠY HỌC
1. Ổn định tổ chức
Lớp
Ngày dạy
Sĩ số
Hs vắng
2. Kiểm tra bài cũ:
 Thực hiện trong quá trình dạy học
3.Bài mới 
Hoạt động 1: Xây dựng chương trình
Hoạt động của giáo viên
Hoạt động của học sinh
1. Phân tích yêu cầu của đề bài
- Chiếu nội dung yêu cầu của đề bài.
-Chia lớp thành 2 nhóm.
+ Nhóm 1 : Nêu câu hỏi phân tích để giải quyết bài tóan.
+ Nhóm 2 : Trả lời câu hỏi phân tích của nhóm 1 để tìm ra cách giải quyết bài tóan.
Giáo viên góp ý bổ sung cho câu hỏi phân tích và trả lời phân tích.
Phân tích bài toán:
+ Input là gì?
+ Output là gì?
+ Input và Output nằm ở đâu?
-> Vì vậy để lập trình giải bài toán ta cần có những thao tác nào?
 Hướng giải quyết bài toán:
+ Bài toán cần có những chương trình con nào? Có thể khai thác ở đâu?
+ Các thao tác đọc tệp văn bản.
+ Các thao tác đếm các loại tam giác.
+ Các thao tác để ghi kết quả đạt được.
-> Các thao tác thực hiện trên chương trình chính( sử dụng máy chiếu hoặc ghi lên bảng):
khởi tạo các biến đếm.
Mở tệp tamgiac.dat để đọc.
Đọc số N.
Từ dòng 1 đến dòng N thực hiện các thao tác :
+ Đọc 6 số vào 6 biến (readln(T.A.x,T.A.y,T.B.x,T.B.y,T.C.x,T.C.y))
+ Gọi thủ tục tính chất.
+ Kiểm tra điều kiện và đếm.
Mở tệp tamgiac.out để ghi kết quả.
 Yêu cầu học sinh lập trình giải bài toán.
- Nhóm 1 : Đặt câu hỏi
+ Dữ liệu vào.
+ Dữ liệu ra.
+ Cần sửa những chỗ nào trong chương trình câu b.
+ Thuật tóan để đếm số lượng các lọai hình tam giác.
- Nhóm 2 : Trả lời câu hỏi phân tích.
+ Cho trong tệp, phải viết lệnh đọc dữ liệu trong tệp.
+ Ba số nguyên dương là số lượng của ba lọai hình tam giác. Ba số được ghi trên ba dòng của một.
+ Cân thay đoạn chương trình nhập dữ liệu bằng moat chương trình con để đọc dữ liệu từ tệp TAMGIAC.DAT. Thay đọan chương trình in kết quả ra màn hình bằng một chương trình con để in ba số nguyên dương là số lượng ba loại hình ra tệp TAMGIAC.OUT.
+ Nêu thuật tóan.
Dòng đầu tiên chứa số N
 N dòng tiếp theo chứ toạ độ ba đỉnh của tam giác.
 Dòng đầu là số tam giác đều
 Dòng thứ hai là số tam giác cân (không đều).
 Dòng thứ ba là số tam giác vuông.
Trả lời: nằm trong hai tệp có tên là tamgiac.dat và tamgiac.out. 
Cần 3 chương trình con: kh_cách, daicanh, tinhchat.(sử dụng các chương trình có sẵn ở câu b).
Hoạt động 2: Thực hành trên máy
Hoạt động của giáo viên
Hoạt động của học sinh
2. Lập trình.
- Yêu cầu học sinh lập trình trên máy. Giáo viên tiếp cận từng nhóm 2 em để sửa lỗi cần thiết.
- Yêu cầu học sinh nhập dữ liệu của giáo viên vào và báo cáo kết quả của chương trình.
- Đánh giá kết quả của học sinh.
Từ hướng dẫn trên viết chương trình trên máy
Theo dõi bài làm của bạn và nhậm xét
4.Củng cố
Thủ tục, hàm, tham số giá trị, tham số biến, tham số thực sự, biến tòan cục, biến cục bộ.
Tìm hiểu một số chương trình con liên quan đến tam giác.
5.Hướng dẫn về nhà
Viết lại và hoàn thiện chương trình còn bị lỗi
Chuẩn bị ôn tập, tuần sau kiểm tra 1 tiết.

Tài liệu đính kèm:

  • docGiao_an_tin_hoc_11_HK_2_chuan.doc