Tải bản đầy đủ (.doc) (48 trang)

giao an tin 8 tron bo

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (284.5 KB, 48 trang )

Giáo án Tin học 8
Tuần: 1 Ngày soạn: 30/08/2006
Tiết: 1, 2 Ngày dạy:
ÔN TẬP
I. MỤC TIÊU
*Thống kê lại và nắm được tất cả các các kiến thức đã học từ việc viết một
chương trình đơn giản đến chương trình có chứa vòng lặp xác định For.
*Rèn luyện cách ứng phó một bài tập lớn.
II. CHUẨN BỊ
GV: *Thống kê lại tất cả các kiến thức lớp 7.
HS: *Ôn trước ở nhà lại tất cả kiến thức đã học.
*Nắm lại cách viết chương trình trên máy.
III. BÀI ÔN TẬP
1. Thủ tục nhập xuất
-Nhập: READ, READLN.
Ví dụ: Nhập dữ liệu vào biến a thì ta viết: READLN(a);
-Xuất: WRITE, WRITELN.
Ví dụ: Xuất dữ liệu từ biến a thì ta viết: WRITELN(a);
2. Các kiểu dữ liệu
-Số nguyên: INTEGER, LONGINT
Ví dụ: var: integer;
-Số thực: REAL
Ví dụ: var: Real;
3. IF THEN ELSE
-Cú pháp: IF <ĐK> THEN <CV1> ELSE <CV2>
-Đây là câu lệnh điều kiện
-ĐK đúng thì thực hiện CV1, nếu ĐK sai thì thực hiện CV2.
VD: IF a>0 THEN b:=3 ELSE b:=5;
Nếu a nhận giá trị là 6 thì b=5
Nếu a nhận giá trị –4 thì b=3
4. FOR TO DO


-Cú pháp: FOR <biến>:=<giá trị đầu> TO <biến>:=<giá trị cuối> DO <công việc>
-Đây là vòng lặp xác định.
VD: For i:=1 to 3 do writeln(i);
-i nhận giá trị là 1, 2, 3 và thực hiện công việc xuất i tương ứng.
5. BÀI TẬP
Bài 1: Viết chương trình nhập vào 2 số nguyên a, b. Tính a+b và xuất kết quả ra màn hình.
Bài 2: Viết chương trình nhập vào 2 số nguyên a, b. Tính a+b, a-b, a*b và xuất kết quả ra
màn hình.
Bài 3: Viết chương trình nhập vào 2 số nguyên a, b. Tính a
2
và xuất kết quả ra màn hình.
Bài 4: Viết chương trình nhập vào 2 số nguyên a, b. Tính a
2
+ b
2
và xuất kết quả ra màn
hình.
Bài 5: Viết chương trình nhập vào 2 số nguyên a, b. Tính a
2
+ b
2
,a
2
- b
2
và xuất kết quả ra
màn hình.
GV: Lưu Thị Bích Hạnh
Giáo án Tin học 8
Bài giải

Program bai1;
Var a,b:integer;
Begin
write(‘ nhap a=’);readln(a);
write(‘ nhap b=’);readln(b);
write(‘ Tong la’);writeln(a+b);
Readln;
end.
Program bai2;
Var a,b:integer;
Begin
write(‘ nhap a=’);readln(a);
write(‘ nhap b=’);readln(b);
write(‘ Tong la’);writeln(a+b);
write(‘ Hieu la’);writeln(a-b);
Readln;
end.
Program bai3;
Var a:integer;
Begin
write(‘ nhap a=’);readln(a);
write(‘ ket qua la’);writeln(a*a);
Readln;
end.
Program bai4;
Var a,b:integer;
Begin
write(‘ nhap a=’);readln(a);
write(‘ nhap b=’);readln(b);
write(‘ Tong la’);writeln(a*a+b*b);

Readln;
end.
Program bai5;
Var a,b:integer;
Begin
write(‘ nhap a=’);readln(a);
write(‘ nhap b=’);readln(b);
write(‘ Tong la’);writeln(a*a+b*b);
write(‘ Hieu la’);writeln(a*a-b*b);
Readln;
end.
I. HƯỚNG DẪN VỀ NHÀ
Ôn lại tất cả kiến thức đã học.
GV: Lưu Thị Bích Hạnh
Việt Trì, ngày…. tháng…. năm….
Duyệt của tổ trưởng
Người soạn
Lưu Thị Bích Hạnh
Giáo án Tin học 8
Tuần: 2 Ngày soạn:
Tiết: 3, 4 Ngày dạy:
VÒNG LẶP WHILE DO
I. MỤC TIÊU
*Nắm được cú pháp và cách sử dụng vòng lặp WHILE…DO…
*Biết được sự khác nhau của REPEAT, WHILE và FOR.
*Nhận biết được khi nào sử dụng lệnh lặp nào
IV. CHUẨN BỊ
1. GV: * Dùng bảng phụ ghi tóm tắt lại nôi dung bài học.
HS: *Học thuộc bài cũ.
*Đọc trước bài mới.

V. BÀI MỚI
1. Lưu đồ lệnh WHILE DO
* Lưu đồ
* Ý nghĩa lưu đồ:
Trong khi mà điều kiện còn đúng thì cứ thực hiện Công việc, rồi quay trở về kiểm tra
điều kiện lại. Vòng lặp được tiếp tục, đến khi điều kiện đặt ra không còn đúng nữa thì đi tới
thực hiện lệnh tiếp theo
2. Cú pháp lệnh WHILE DO
WHILE <điều kiện> DO <Công việc>
Ghi chú:
· Ðiều kiện trong cấu trúc lặp WHILE DO là một biểu thức logic kiểu Boolean chỉ có 2
giá trị là Ðúng (True) hoặc Sai (False)
· Nếu điều kiện Ðúng thì chương trình sẽ chạy trong cấu trúc WHILE DO.
· Sau mỗi lần lặp, chương trình trở lại kiểm tra điều kiện. Tùy theo biểu thức logic của điều
kiện là Ðúng hay Sai thì chương trình sẽ thực hiện Công việc tương ứng.
· Nếu Sai thì chuyển xuống dưới cấu trúc WHILE DO
3. Ví dụ:
GV: Lưu Thị Bích Hạnh
 Trang 3
Giáo án Tin học 8
Viết chương trình nhập vào 1 số a. Nếu a không phải là số dương thì nhập lại, đến khi nào là số
dương thì dừng.
Bài giải
Program bai1;
Var a:Real;
Begin
Readln(a);
While a<0 do Readln(a);
Readln;
End.

GV: Lưu Thị Bích Hạnh
 Trang 4
Việt Trì, ngày…. tháng…. năm….
Duyệt của tổ trưởng
Người soạn
Lưu Thị Bích Hạnh
Giáo án Tin học 8
Tuần: 3 Ngày soạn:
Tiết: 5, 6 Ngày dạy:
THỰC HÀNH
I. MỤC TIÊU
*Viết được chương trình có chứa vòng lặp WHILE DO
*Thay thế một chương trình có chứa FOR thành WHILE DO và ngược lại.
*Sửa một số lỗi thường gặp.
VI. CHUẨN BỊ
1. GV:*Chẩn bị phòng máy, bài tập, lịch trình tiến trình giờ thực hành.
2. HS:
*Ôn lại lý thuyết đã học.
* Giải trước bài tập về nhà vào tập để thực hành.
VII. BÀI THỰC HÀNH
Bài 1: Viết chương trình nhập vào 1 số a. Nếu a không phải là số dương thì nhập lại, đến
khi nào là số dương thì dừng.
Program bai1;
Var a:Real;
Begin
Readln(a);
While a<0 do Readln(a);
Readln;
End.
Bài 2: Viết chương trình nhập vào 1 số a. Nếu a không phải là số chẵn thì nhập lại, đến khi

nào là số chẵn thì dừng.
Program bai2;
Var a:Real;
Begin
Readln(a);
While a mod 2<>0 do Readln(a);
Readln;
End.
VIII. HƯỚNG DẪN VỀ NHÀ
Lài bài tập và xem trước bài mới.
GV: Lưu Thị Bích Hạnh
 Trang 5
Việt Trì, ngày…. tháng…. năm….
Duyệt của tổ trưởng
Người soạn
Lưu Thị Bích Hạnh
Giáo án Tin học 8
Tuần: 4 Ngày soạn:
Tiết: 7, 8 Ngày dạy:
VÒNG LẶP REPEAT UNTIL
I. MỤC TIÊU
*Nắm được cú pháp và cách sử dụng vòng lặp REPEAT…UNTIL…
*Biết được sự khác nhau của REPEAT …UNTIL… và FOR.
*Nhận biết được khi nào sử dụng lệnh lặp nào
IX. CHUẨN BỊ
1. GV: * Dùng bảng phụ ghi tóm tắt lại nôi dung bài học.
HS: *Học thuộc bài cũ.
*Đọc trước bài mới.
X. BÀI MỚI
1. Lưu đồ lệnh và Cú pháp

Câu lệnh REPEAT UNTIL dùng trong các trường hợp khi biến điều khiển không có
kiểu rời rạc và đặc biệt trong các trường hợp số lần lặp không biết trước.
* Ý nghĩa:
Nếu điều kiện logic là Sai (False) thì lặp lại lệnh cho đến khi điều kiện Ðúng thì mới
thoát ra khỏi cấu trúc REPEAT UNTIL.
Nếu có nhiều câu lệnh thì mỗi lệnh ngăn cách nhau bằng dấu chấm phẩy (;)Công việc
của REPEAT và UNTIL không nhất thiết phải dùng lệnh ghép để nhóm từ 2 lệnh đơn trở lên
thành công việc.
2. VÍ DỤ
Viết chương trình nhập vào 1 số a. Nếu a không phải là số dương thì nhập lại, đến khi nào
là số dương thì dừng.
Bài giải
Program bai1;
Var a:Real;
Begin
GV: Lưu Thị Bích Hạnh
 Trang 6
Giáo án Tin học 8
Repeat
Readln(a);
Until a>0;
Readln;
End.

3. Sự khác biệt giữa While và Repeat:
So sánh 2 cách viết WHILE DO và REPEAT UNTIL ta thấy có sự khác biệt:
-Vòng lặp While luôn luôn đi với cặp từ khoá Begin và End còn trong vòng lặp Repeat không
cần sử dụng cặp Begin và End.
- Trong cấu trúc WHILE DO thì <Ðiều kiện> được kiểm tra trước, nếu thỏa <Ðiều kiện> thì
mới thực hiện <Công việc>.

- Ngược lại, trong cấu trúc REPEAT UNTIL thì <Công việc> sẽ được thực thi trước sau đó
mới kiểm tra <Ðiều kiện>, nếu không thỏa <Ðiều kiện> thì tiếp tục thi hành <Công việc>
cho đến khi <Ðiều kiện> là đúng.
Lệnh REPEAT UNTIL thường được sử dụng trong lập trình, nhất là lúc người sử dụng
muốn tiếp tục bài toán ở trường hợp thay đổi biến mà không phải trở về chương trình và nhấn
tổ hợp phím Ctrl + F9 lại.
Ví dụ 6.18: Nhân 2 số a và b
PROGRAM Tich;
VAR a, b : integer ;
CK : char ;
BEGIN
REPEAT
Write (' Nhập số a = '); Readln (a) ;
Write (' Nhập số b = '); Readln (b) ;
Writeln (' Tích số của a x b là :' , a*b : 10 ) ;
Writeln (' Tiếp tục tính nữa không (CK) ? ');
Readln (CK) ;
UNTIL upcase(CK) = K; {hàm chuyển đổi ký tự trong biến}
{CK thành ký tự in hoa}
END.
GV: Lưu Thị Bích Hạnh
 Trang 7
Việt trì, ngày…. tháng…. năm….
Duyệt của tổ trưởng
Người soạn
Lưu Thị Bích Hạnh
Giáo án Tin học 8
Tuần: 5 Ngày soạn:
Tiết: 9, 10 Ngày dạy:
THỰC HÀNH

I. MỤC TIÊU
*Hiểu rỏ hơn về cách chạy chương trình của vòng lặp REPEAT
*Thay thế một chương trình có chứa FOR thành REPEAT và ngược lại.
*Sửa một số lỗi thường gặp.
XI. CHUẨN BỊ
1. GV:*Chuẩn bị phòng máy, bài tập, lịch trình tiến trình giờ thực hành.
2. HS: *Ôn lại lý thuyết đã học.
* Giải trước bài tập về nhà vào tập để thực hành.
XII. BÀI THỰC HÀNH
Bài 1: Viết chương trình nhập vào 1 số a. Nếu a không phải là số dương thì nhập lại, đến
khi nào là số dương thì dừng.
Bài 2: Viết chương trình nhập vào 1 số a. Nếu a không phải là số chẵn thì nhập lại, đến khi
nào là số chẵn thì dừng.
Bài giải bài 1
Program bai1;
Var a:Real;
Begin
Repeat
Readln(a);
Until a>0;
Readln;
End.
Bài giải bài 2
Program bai2;
Var a:Real;
Begin
Repeat
Readln(a);
Until a mod 2=0;
Readln;

End.
XIII. HƯỚNG DẪN VỀ NHÀ
Lài bài tập và xem lại bài thực hành
GV: Lưu Thị Bích Hạnh
 Trang 8
Việt Trì, ngày…. tháng…. năm….
Duyệt của tổ trưởng
Người soạn
Lưu Thị Bích Hạnh
Giáo án Tin học 8
Tuần: 6 Ngày soạn:
Tiết: 11, 12 Ngày dạy:
CẤU TRÚC DỮ LIỆU MẢNG
I. MỤC TIÊU
* Biết được thế nào là mảng,cách khai báo, nhập liệu, và các thao tác căn bản trên
máy.
* Biết được khi nào sử dụng mảng, hiệu quả của việc sử dụng mảng.
XIV. CHUẨN BỊ
1. GV: * Một số ví dụ thực tế về mảng.
HS: * Ôn lại vòng lặp FOR.
XV. BÀI MỚI
1. Khai báo dữ liệu kiểu mảng
Một mảng dữ liệu gồm một số hữu hạn phần tử có cùng kiểu gọi là kiểu cơ bản. Số
phần tử của mảng được xác định ngay từ khi định nghĩa ra mảng. Mỗi phần tử của mảng
đựoc truy nhập trực tiếp thông qua tên mảng cùng với chỉ dẫn truy nhập được để giữa hai
ngoặc vuông [ ].
Định nghĩa biến A có kiểu mảng : gồm có các phần tử từ n đến m và có kiểu dữ liệu là
KDL thì được khai báo như sau:
VAR A : Array[ n m ] Of KDL ;
Ví dụ: Khai báo mảng BB có các phần tử từ 1 đến 10 và kiểu dữ liệu chứa là

số nguyên (INTEGER) nhạp vào từ bàn phím:
VAR BB : Array[ 1 10] Of INTEGER ;
2. Đưa dữ liệu vào mảng
Ta có thể đưa dữ liệu từ ngoài (bàn phím) vào mảng bằng lệnh READ hoặc
READLN như sau:
READ( BB(i) ) ; hoặc READLN( BB(i) ) ;
Ví dụ: Cho mảng 10 phần tử và nhập vào mảng các số nguyên từ bàn phím
VAR A: ARRAY [1 10] OF INTEGER;
I: INTEGER;
BEGIN
For i:=1 to 10 do
Readln(A(i));
Readln;
END.
Hoặc để sáng suốt hơn thì ta có thể viết như sau:
VAR A: ARRAY [1 10] OF INTEGER;
I: INTEGER;
BEGIN
For i:=1 to 10 do
Begin
Write(‘ Nhap phan tu thu ‘,i,’ =’);
Readln(A(i));
GV: Lưu Thị Bích Hạnh
 Trang 9
Giáo án Tin học 8
End;
Readln;
END.
3. Đưa dữ liệu từ mảng ra màng hình
Ta có thể đưa dữ liệu từ mảng ra ngoài màn hình bằng lệnh WRITE hoặc

WRIELN như sau:
WRITE( BB(i) ) ; hoặc WRITELN( BB(i) ) ;
Ví dụ: Cho mảng 10 phần tử và nhập vào mảng các số nguyên từ bàn phím và cho hiện ra màn
hình
VAR A: ARRAY [1 10] OF INTEGER;
I: INTEGER;
BEGIN
For i:=1 to 10 do
Readln(A(i));
Writeln(‘ cac so vua nhap la: ‘);
For i:=1 to 10 do wrieln(A(i));
Readln;
END.
4.Lấy dữ liệu từ mảng để xử lý:
Ví dụ: Nhập từ bàn phím 10 số và tính tổng của nó.
VAR A: ARRAY [1 10] OF INTEGER;
i: INTEGER;
BEGIN
For i:=1 to 10 do
Begin
Write( ‘nhap phan tư thu ‘,i,’ =’);readln(A(i));
End;
For i:=1 to 10 do tong:= tong+A(i);
Write (‘Tong la: ‘, tong);
Readln;
END.
GV: Lưu Thị Bích Hạnh
 Trang 10
Việt Trì, ngày…. tháng…. năm….
Duyệt của tổ trưởng

Người soạn
Lưu Thị Bích Hạnh
Giáo án Tin học 8
Tuần: 7 Ngày soạn:
Tiết: 13, 14 Ngày dạy:
THỰC HÀNH
I. MỤC TIÊU
*Hiểu rỏ hơn về cách viết chương trình có sử dụng mảng.
*Hiểu rỏ hơn về cách chạy chương trình có sử dụng mảng.
*Sửa một số lỗi thường gặp.
XVI. CHUẨN BỊ
1. GV:*Chẩn bị phòng máy, bài tập, lịch trình tiến trình giờ thực hành.
2. HS:
*Ôn lại lý thuyết đã học.
* Giải trước bài tập về nhà vào tập để thực hành.
XVII. BÀI THỰC HÀNH
Bài 1: Viết chương trình nhập vào 10 số nguyên. Xuất các số dương ra màng hình
Bài giải
Program bai1;
Var a:Array[1 10] of Integer;
i:integer;
Begin
For i:=1 to 10 do Readln(a[i]);
For i:=1 to 10 do if a[i] > 0 then Writeln(a[i]);
Readln;
End.
Bài 2: Viết chương trình nhập vào 10 số nguyên dương. Xuất các số chẵn ra màn hình.
Bài giải
Program bai2;
Var a:Array[1 10] of Integer;

i:integer;
Begin
For i:=1 to 10 do Readln(a[i]);
For i:=1 to 10 do if a[i] mod 2= 0 then Writeln(a[i]);
Readln;
End.
GV: Lưu Thị Bích Hạnh
 Trang 11
Việt Trì, ngày…. tháng…. năm….
Duyệt của tổ trưởng
Người soạn
Lưu Thị Bích Hạnh
Giáo án Tin học 8
Tuần: 8 Ngày soạn:
Tiết: 15, 16 Ngày dạy:
XÂY DỰNG GIẢI THUẬT SẮP XẾP MẢNG
I. MỤC TIÊU
* Biết được một số ứng dụng của mảng vào việc giải một số bài tập.
* Biết được khi nào sử dụng mảng, hiệu quả của việc sử dụng mảng.
II. CHUẨN BỊ
1. GV: * Một số ví dụ thực tế về mảng.
* Dùng bảng phụ ghi trước giải thuật sắp xếp mảng.
HS: * Ôn lại vòng lặp FOR.
III. BÀI MỚI
1. Bài toán
Cho mảng M có N phần tử là các số thực, hãy sắp xếp các số đó theo thứ tự tăng dần.
2. Thuật giải
Giả sử mảng M có 8 phần tử (N = 8) là các số thực

Ý tưởng của thuật giải sắp xếp dưới đây là

Bước 1. Ta sẽ chọn phần tử nhỏ nhất trong các phần tử từ phần tử thứ nhất đến phần tử thứ N,
rồi tráo đổi nó với phần tử thứ nhất.
Bước 2. Ta sẽ chọn phần tử nhỏ nhất trong các phần tử từ phần tử thứ hai đến phần tử thứ N,
rồi tráo đổi nó với phần tử thứ hai.
Tương tự như vậy cho các bước tiếp theo từ bước 3 đến bước N.
Ta xét cho một bước tổng quát thứ i nào đó (i nhận giá trị từ 1 đến N)
Bước i. Ta sẽ tìm chỉ số K của phần tử nhỏ nhất trong các phần tử từ phần tử thứ i đến phần tử
thứ N, rồi tráo đổi nó với phần tử thứ i.
3. Chương trình
Để tráo đổi hai phần tử cho nhau, ta cần thęm phần tử TG (trung gian) thứ ba.
Program SapXep ;
Const n = 8 ;
Var m : array[1 n ] of real ;
i , j , k : byte ; tg : real ;
BEGIN
writeln(' Vao tung phan tu cua mang ') ;
For i := 1 To n Do
Begin
Write (' M[ ' , i , ' ]= ') ; Readln (m [ i ]) ;
End ;
Writeln ;
Writeln(' Da vao xong cac phan tu cua mang ') ;
For i := 1 To n - 1 Do
GV: Lưu Thị Bích Hạnh
 Trang 12
Giáo án Tin học 8
Begin
k := i ;
For j := i +1 To n Do If m[k] > m[j] Then k := j ;
If k > i Then

Begin
tg := m[ i ] ; m[i] := m[k] ; m[k] := tg ;
End;
End;
Writeln(' Cac phan tu da duoc sap xep la ') ;
For i := 1 To n Do Write (m [ i ] : 9 : 2) ; Readln
END .
IV. CỦNG CỐ
Sắp xếp bằng cách chọn trực tiếp
Có nhiều thuật giải sắp xếp một mảng. Trong chương trình trên ta dùng thuật giải chọn trực
tiếp. Giả sử mảng có N phần tử, ta thực hiện như sau:
Với mỗi vòng lặp theo i từ 1 đến N - 1 ta cho K := i ; rồi dùng vòng lặp theo j (lồng vào bên
trong vòng lặp theo i) j duyệt từ i + 1 đến N để tìm chỉ số K của phần tử nhỏ nhất trong các
phần tử từ phần tử thứ i đến phần tử thứ N, bằng cách nếu gặp phần tử thứ j nhỏ hơn phần tử có
chỉ số đang lưu giữ ở K thì gán K := j ;
Hết vòng lặp theo j thì tráo đổi phần tử thứ K với phần tử thứ i (nếu K > i).
V. BÀI TẬP VỀ NHÀ
1: Viết chương trình nhập vào 10 số nguyên. Xuất các số dương ra màng hình
2: Viết chương trình nhập vào 10 số nguyên dương. Xuất các số chẵn ra màn hình.
3. Viết chương trình nhận vào chiều cao của các bạn Mai, Lan, Cúc, Thu, Bích Thuỷ, Hồng
Nhung, Anh. Sắp xếp và in ra màn hình chiều cao của các bạn theo thứ tự tăng dần. Yêu cầu
khai báo kiểu liệt kê tương ứng với tên các bạn để làm chỉ số cho mảng lưu trữ chiều cao của
họ.
4. Viết chương trình cho máy nhận vào mảng A có n phần tử là những số thực (n > 9). Xây
dựng mảng B các phần tử là những số nguyên được tạo thành từ các phần tử của mảng A theo
cách B[i] là trị tuyệt đối của phần nguyên của A[i]. Sắp xếp và in ra mảng A, mảng B theo thứ
tự tăng dần.
GV: Lưu Thị Bích Hạnh
 Trang 13
Việt Trì, ngày…. tháng…. năm….

Duyệt của tổ trưởng
Người soạn
Lưu Thị Bích Hạnh
Giáo án Tin học 8
Tuần: 9 Ngày soạn:
Tiết: 17, 18 Ngày dạy:
THỰC HÀNH
I. MỤC TIÊU
*Hiểu rỏ hơn về cách viết chương trình có sử dụng mảng.
*Hiểu rỏ hơn về cách chạy chương trình có sử dụng mảng.
*Sửa một số lỗi thường gặp.
XVIII. CHUẨN BỊ
1. GV:*Chẩn bị phòng máy, bài tập, lịch trình tiến trình giờ thực hành.
2. HS:
*Ôn lại lý thuyết đã học.
* Giải trước bài tập về nhà vào tập để thực hành.
XIX. BÀI THỰC HÀNH
Bài 1: Viết chương trình nhập vào 10 số nguyên. Xuất các số dương ra màng hình
Bài giải
Program bai1;
Var a:Array[1 10] of Integer;
i:integer;
Begin
For i:=1 to 10 do Readln(a[i]);
For i:=1 to 10 do if a[i] > 0 then Writeln(a[i]);
Readln;
End.
Bài 2: Viết chương trình nhập vào 10 số nguyên dương. Xuất các số chẵn ra màn hình.
Bài giải
Program bai2;

Var a:Array[1 10] of Integer;
i:integer;
Begin
For i:=1 to 10 do Readln(a[i]);
For i:=1 to 10 do if a[i] mod 2= 0 then Writeln(a[i]);
Readln;
End.
GV: Lưu Thị Bích Hạnh
 Trang 14
Việt Trì, ngày…. tháng…. năm….
Duyệt của tổ trưởng
Người soạn
Lưu Thị Bích Hạnh
Giáo án Tin học 8
Tuần: 10 Ngày soạn:
Tiết: 19, 20 Ngày dạy:
THỰC HÀNH
I. MỤC TIÊU
*Củng cố lại kiến thức đã học
II. ĐỀ
ĐỀ KIỂM TRA 1 TIẾT
MÔN TIN HỌC 8
Đề: Viết chương trình nhập vào mảng có 6 số. Sắp xếp theo thứ tự tăng dần.
VD: Nhập 1 5 -6 0 2 4
Xuất: -6 0 1 2 4 5
* Lưu ý Học sinh lưu bài với tên và kết hợp với lớp của mình.
VD: học sinh là trần Quốc Cường lớp 8A1 thì lưu với tên là: D:\cuong8a1.pas
GV: Lưu Thị Bích Hạnh
 Trang 15
Việt Trì, ngày…. tháng…. năm….

Duyệt của tổ trưởng
Người soạn
Lưu Thị Bích Hạnh
Giáo án Tin học 8
Tuần: 11 Ngày soạn:
Tiết: 21, 22 Ngày dạy:
THỰC HÀNH
II. MỤC TIÊU
*Hiểu rỏ hơn về cách viết chương trình có sử dụng mảng.
*Hiểu rỏ hơn về cách chạy chương trình có sử dụng mảng.
*Sửa một số lỗi thường gặp.
XX. CHUẨN BỊ
1. GV:*Chẩn bị phòng máy, bài tập, lịch trình tiến trình giờ thực hành.
2. HS:
*Ôn lại lý thuyết đã học.
* Giải trước bài tập về nhà vào tập để thực hành.
XXI. BÀI THỰC HÀNH
Bài 1: Viết chương trình nhập vào 10 số nguyên. Sắp xếp theo thứ tự tăng dần và xuất ra
màn hình.
Bài 2: Viết chương trình nhập vào 10 số nguyên dương. Sắp xếp theo thứ tự tăng dần và
xuất các số dương ra màn hình.
Bài giải
Program bai1;
Var a:Array[1 10] of Integer;
i:integer;
Begin
For i:=1 to 10 do Readln(a[i]);
For i:=1 to 9 do
For j:=i+1 to 10 do
if a[i] >a[j] then

begin
tam:=a[i];
a[i]:=a[j];a[j]:=tam;
end;
For i:=1 to 10 do writeln(a[i]);
Readln;
End.
Bài giải
Program bai1;
Var a:Array[1 10] of Integer;
i:integer;
Begin
For i:=1 to 10 do Readln(a[i]);
For i:=1 to 9 do
For j:=i+1 to 10 do
if a[i] >a[j] then
begin
tam:=a[i];
a[i]:=a[j];a[j]:=tam;
end;
For i:=1 to 10 do
if a[i] > 0 then writeln(a[i]);
Readln;
End.
GV: Lưu Thị Bích Hạnh
 Trang 16
Việt Trì, ngày…. tháng…. năm….
Duyệt của tổ trưởng
Người soạn
Lưu Thị Bích Hạnh

Giáo án Tin học 8
Tuần: 12 Ngày soạn:
Tiết: 23, 24 Ngày dạy:
THUẬT TOÁN MAX, MIN
I. MỤC TIÊU
* Biết được một số ứng dụng của mảng vào việc giải một số bài tập.
* Biết được khi nào sử dụng mảng, hiệu quả của việc sử dụng mảng.
II. CHUẨN BỊ
1. GV: * Một số ví dụ thực tế về mảng.
* Dùng bảng phụ ghi trước giải thuật sắp xếp mảng.
HS: * Ôn lại vòng lặp FOR.
III. BÀI MỚI
1. Tìm giá trị nhỏ nhất của dãy đã cho.
PROGRAM Tim_Min;
CONST a:array[1 10] of shortint=(0, 1, 2, 3, 4, -1, -2, -3, -4, 5);
VAR amin: shortint; {chứa giá trị nhỏ nhất của dãy}
i: byte; {chỉ số của dãy}
BEGIN
amin:= a[1]; {cho amin bằng phần tử đầu tiên}
For i:=2 to 10 do {so amin với các phần tử khác của dãy}
If amin>a[i] Then amin:=a[i];
{nếu còn phần tử nào nhỏ hơn amin thì thay amin bằng phần tử đó}
Writeln('amin=', amin);
Readln;
END.
Mở rộng: Tìm giá trị lớn nhất của dãy đã cho.
*Học sinh tự giải.
2. Tìm giá trị nhỏ thứ hai của dãy và đổi nó về vị trí thứ hai.
Hướng dẫn: Tìm phần tử nhỏ nhất của dãy, đổi nó về vị trí đầu tiên. Sau đó tìm phần tử nhỏ nhất của
dãy con còn lại.

PROGRAM Tim_Min_Thu2;
CONST a:array[1 10] of shortint=(0, 1, 2, 3, 4, -1, -2, -3, -4, 5);
VAR i: byte; {chứa chỉ số các phầnt tử của dãy}
imin: byte; {đánh dấu vị trí amin}
atg: shortint; {chứa giá trị trung gian khi đổi chỗ các phần tử}
BEGIN
imin:=1; {a[1] coi là nhỏ nhất}
For i:=2 To 10 Do {so với các phần tử còn lại}
If a[imin]> a[i] Then imin:=i;
{nếu còn phần tử nhỏ nhất thì đánh dấu phần tử đó}
atg:=a[1];
GV: Lưu Thị Bích Hạnh
 Trang 17
Giáo án Tin học 8
a[1]:=a[imin]; {đổi giá trị nhỏ nhất về đầu dãy}
a[imin]:=atg;
imin:=2;
For i:=3 To 10 Do
If a[imin]>a[i] Then imin:=i;
Writeln('Phần tử nhỏ thứ 2 của dãy là:', a[imin]);
Readln;
END.
Mở rộng: Tìm giá trị lớn thứ hai của dãy và đổi nó về vị trí thứ hai.
*Học sinh tự thực hiện
IV. BÀI TẬP VỀ NHÀ
Bài 1: Viết chương trình nhập vào 2 số nguyên a, b. Xuất số lớn nhất ra màng hình
Bài 2: Viết chương trình nhập vào 4 số nguyên a,b, c, d. Xuất số lớn nhất, nhỏ nhất ra
GV: Lưu Thị Bích Hạnh
 Trang 18
Việt Trì, ngày…. tháng…. năm….

Duyệt của tổ trưởng
Người soạn
Lưu Thị Bích Hạnh
Giáo án Tin học 8
Tuần: 13 Ngày soạn:
Tiết: 25, 26 Ngày dạy:
THỰC HÀNH
XXII. MỤC TIÊU
*Hiểu rỏ hơn về cách viết chương trình có sử dụng thuật toán Max - Min.
*Hiểu rỏ hơn về cách chạy chương trình có sử dụng thuật toán Max – min.
*Sửa một số lỗi thường gặp.
XXIII. CHUẨN BỊ
1. GV:*Chẩn bị phòng máy, bài tập, lịch trình tiến trình giờ thực hành.
2. HS:
*Ôn lại lý thuyết đã học.
* Giải trước bài tập về nhà vào tập để thực hành.
XXIV. BÀI THỰC HÀNH
Bài 1: Viết chương trình nhập vào 2 số nguyên a, b. Xuất số lớn nhất ra màng hình
Bài giải
Program bai1;
Var a, b:integer;
Begin
Write(‘ nhap vao so nguyen a = ‘); Readln(a);
Write(‘ nhap vao so nguyen b = ‘); Readln(b);
Max:=a;
If b> max then Max:=b;
Write(‘ so lan nhat la ‘,max);
Readln;
End.
Bài 2: Viết chương trình nhập vào 4 số nguyên a,b, c, d. Xuất số lớn nhất, nhỏ nhất ra màn

hình.
Bài giải
Program bai2;
Var a, b, c, d:integer;
Begin
Write(‘ nhap vao so nguyen a = ‘); Readln(a);
Write(‘ nhap vao so nguyen b = ‘); Readln(b);
Write(‘ nhap vao so nguyen c = ‘); Readln(c);
Write(‘ nhap vao so nguyen d = ‘); Readln(d);
Max:=a;
If b> max then Max:=b;
If c> max then Max:=c;
If d> max then Max:=d;
Write(‘ so lon nhat la ‘,max);
GV: Lưu Thị Bích Hạnh
 Trang 19
Giáo án Tin học 8

Min:=a;
If b< Min then Min:=b;
If c< Min then Min:=c;
If d< Min then Min:=d;
Write(‘ so nho nhat la ‘,Min);
Readln;
End.
* Mở rộng: Tìm số lớn nhất của 3 số, 5 số, nhiều số ( sử dụng mảng).
GV: Lưu Thị Bích Hạnh
 Trang 20
Việt Trì, ngày…. tháng…. năm….
Duyệt của tổ trưởng

Người soạn
Lưu Thị Bích Hạnh
Giáo án Tin học 8
Tuần: 14 Ngày soạn:
Tiết: 27, 28 Ngày dạy:
THỰC HÀNH
I. MỤC TIÊU
*Hiểu rỏ hơn về cách viết chương trình có sử dụng thuật toán tìm kiếm.
*Hiểu rỏ hơn về cách chạy chương trình có sử dụng thuật toán tìm kiếm.
*Sửa một số lỗi thường gặp.
XXV. CHUẨN BỊ
1. GV:*Chẩn bị phòng máy, bài tập, lịch trình tiến trình giờ thực hành.
2. HS:
*Ôn lại lý thuyết đã học.
* Giải trước bài tập về nhà vào tập để thực hành.
XXVI. BÀI THỰC HÀNH
Bài 1: Viết chương trình nhập vào 4 số nguyên a,b, c, d. Tìm xem có bao nhiêu số dương
(>0).
Bài giải
Program bai2;
Var a, b, c, d:integer;
Begin
Write(‘ nhap vao so nguyen a = ‘); Readln(a);
Write(‘ nhap vao so nguyen b = ‘); Readln(b);
Write(‘ nhap vao so nguyen c = ‘); Readln(c);
Write(‘ nhap vao so nguyen d = ‘); Readln(d);
D:=0;
If a>0 thend:=d+1;
If b>0 thend:=d+1;
If c>0 thend:=d+1;

If d>0 thend:=d+1;
Write(‘ Tong so cac so duong la :’,d);
Readln;
End.
Bài 2: Viết chương trình nhập vào mảng a có 10 phần tử. Tìm xem có bao nhiêu số là số
chẵn.
Bài giải
Program bai2;
Var a: Array [1 10] of integer;
I: integer;
Begin
For i:=1 to 10 do
GV: Lưu Thị Bích Hạnh
 Trang 21
Giáo án Tin học 8
begin
Write(‘ nhap vao so nguyen thu ‘,i); Readln(a[i]);
end;
d:=0;
For i:=1 to 10 do
Write(‘ Tong so cac so chan la :’,d);
Readln;
End.
GV: Lưu Thị Bích Hạnh
 Trang 22
Việt Trì, ngày…. tháng…. năm….
Duyệt của tổ trưởng
Người soạn
Lưu Thị Bích Hạnh
Giáo án Tin học 8

Tuần: 15 Ngày soạn:
Tiết: 29, 30 Ngày dạy:
ĐỀ KIỂM TRA LÍ THUYẾT
Hãy khoanh tròn chữ cái đứng trước câu trả lời em cho là đúng nhất
Câu 1. Để tìm giá trị lớn nhất của 2 số a, b thì ta viết:
a) Max:=a;If b>Max then Max:=b;
b) If (a>b) then Max:=a;If (b>a) then Max:=b;
c) Max:=b;If a>Max then Max:=a;
d) Cả 3 câu đều đúng.
Câu 2. For i:=5 to 10 do writeln(i);
Ta khai báo i thuộc kiểu dữ liệu nào?
a. Số thực b. Số nguyên
c. Kiểu kí tự (CHAR) d. Số thực và số nguyên.
Câu 3. Tong:=0;For i:=1 to 3 do Tong :=Tong+i;
Biến Tong có giá trị là:
a. 1 b. 5
c. 6 d. 3
Câu 4. Cú pháp của vòng lặp Repeat…Until… là:
a. Repeat <ĐK> Until <CV> b. Repeat <ĐK> Until <CV>
c. Repeat … Until … d. Tất cả đều đúng.
Câu 5. Biến a được nhận các giá trị là 0 ; -1 ; 1 ; 2,3 . Ta có thể khai báo a thuộc kiểu dữ liệu
nào?
a. Integer b. Char
c. Real d. Integer và Longint
Câu 6. Cú pháp của vòng lặp While…do… là:
a. While <ĐK> do <CV> b. While <CV> do <ĐK>
c. While…do… d. Tất cả đều đúng.
Câu 7. If Then Else là:
a. Vòng lặp xác định b. Vòng lặp không xác định
c. Câu lệnh điều kiện d. Một khai báo

Câu 8. Repeat Until là:
a. Vòng lặp xác định b. Vòng lặp không xác định
c. Câu lệnh điều kiện d. Một khai báo
Câu 9. Kiểu dữ liệu Integer có giá trị lớn nhất là
a. 32768 b. 32767
c. 2 tỉ d. -32768 +32767
Câu 10. Giải thuật tìm và xuất các ước của một số nguyên a là:
a. for i:=1 to a do if a mod i = 0 then writeln (i);
b. for i:=1 to a do if a mod i = 0 then writeln (a);
c. Một đáp án khác.
Câu 11. a là biến dữ liệu kiểu số nguyên. Muốn xuất giá trị của a
2
thì ta viết
a. Writeln('a*a') b. Readln(' a*a ')
GV: Lưu Thị Bích Hạnh
 Trang 23
Giáo án Tin học 8
c. Writeln(a*a) d. Writwln(a
2)
Câu 12. While do… là:
a. Vòng lặp xác định b. Vòng lặp không xác định
c. Câu lệnh điều kiện d. Một khai báo
Câu 13. IF a>8 THEN b:=3 ELSE b:=5; Khi a nhận giá trị là 0 thì b nhận giá trị nào?
a. 0 b. 5 c. 8 d. 3
Câu 14. Khi soạn thảo xong chương trình Pascal, ta muốn lưu chương trình lại thì ta nhấn
phím:
a. F9 b. Ctrl + F9 c. F2 d. Ctrl + F2
Câu 15. Khi soạn thảo xong một chương trình Pascal, ta muốn kiểm tra xem có lỗi gì không
thì ta nhấn phím:
a. F9 b. F3 c. F2 d. F1

Câu 16. Khi một chương trình Pascal hết lỗi, ta muốn chạy chương trình thì nhấn phím:
a. F9 b. Ctrl + F9 c. F2 d. Ctrl + F2
Câu17. For to do… là:
a. Vòng lặp xác định b. Vòng lặp không xác định
c. Câu lệnh điều kiện d. Một khai báo
Câu 18. Để nhập một giá trị vào phần tử a[3] của mảng a thì ta viết là:
a. Readln(a) b. Readln(a[3])
c. Readln(a[i]) d. Readln(a(3))
Câu 19. Viết biểu thức toán a
3
-b
3
sang Pascal thì ta viết là:
a. a
3
-b
3
b. a*a*a-b*b*b
c. a.a.a-b.b.b d. aaa-bbb
Câu 20. Để gán giá trị b
2
vào phần tử a[5] của mảng a thì ta viết:
a. a:=b*b b. a[5]:=b*b
c. a[i]:=b*b d. For i:=1 to 5 do a[i]:=b*b
Câu 21: Khai báo mảng a có 11 phần tử là các số nguyên từ 5 đến 15 thì ta khai báo như
sau:
a) a: Array [1 11] of integer; b) a: Array [5 15] of integer;
c) a: Array [5 15] of integer; d) a: Array [11] of integer;
Câu 22: Nhập dữ liệu vào mảng a có 11 phần tử là các số nguyên từ 5 đến 15 thì ta viết
lệnh như sau:

a) Readln(a); b) Readln(a[11]);
c) Readln(a[i]); d) For i: =5 to 15 do Readln(a[i]);
Câu 23: Xuất dữ liệu từ mảng a có 11 phần tử là các số nguyên từ 5 đến 15 thì ta viết lệnh
như sau:
a) Writeln(a); b) Writeln (a[11]);
c) Writeln (a[i]); d) For i: =5 to 15 do Writeln (a[i]);
Câu 24: Để thực hiện phép tính tổng của hai số nguyên a và b ta thực hiện như sau :
a. Tong=a+b; b. Tong:=a+b;
c. Tong:a+b; d. Tong(a+b);
Câu 25: Để tìm giá trị lớn nhất của 2 số a, b thì ta viết:
a) Max:=a;If b>Max then Max:=b;
b) If (a>b) then Max:=a;If (b>a) then Max:=b;
GV: Lưu Thị Bích Hạnh
 Trang 24
Giáo án Tin học 8
c) Max:=b;If a>Max then Max:=a;
d) Cả 3 câu đều đúng.
GV: Lưu Thị Bích Hạnh
 Trang 25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×