65
Trường THCS Tây Đô 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); GV: Diệp Thanh Toàn

giao an tin hoc 8

Embed Size (px)

Citation preview

Page 1: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Tuần: 1 Ngày soạn: 30/08/2006Tiết: 1, 2 Ngày dạy:

ÔN TẬPI. 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ẬP1. 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: REALVí 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=5Nếu a nhận giá trị –4 thì b=34. 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ẬPBà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 a2 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 a2 + b2 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 a2 + b2 ,a2 - b2 và xuất kết quả ra màn hình.

GV: Diệp Thanh Toàn

Page 2: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Bài giảiProgram bai1;Var a,b:integer;Beginwrite(‘ nhap a=’);readln(a);write(‘ nhap b=’);readln(b);write(‘ Tong la’);writeln(a+b);Readln;end.Program bai2;Var a,b:integer;Beginwrite(‘ 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;Beginwrite(‘ nhap a=’);readln(a);

write(‘ ket qua la’);writeln(a*a);Readln;end.

Program bai4; Var a,b:integer;Beginwrite(‘ 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;Beginwrite(‘ 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.

IV. HƯỚNG DẪN VỀ NHÀÔn lại tất cả kiến thức đã học.

GV: Diệp Thanh Toàn

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 3: giao an tin hoc 8

Trường THCS Tây Đô 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

II. 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.III. 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 theo2. Cú pháp lệnh WHILE .. DOWHILE <đ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: Diệp Thanh Toàn Trang 3

Page 4: giao an tin hoc 8

Trường THCS Tây Đô 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ảiProgram bai1;Var a:Real;Begin Readln(a); While a<0 do Readln(a); Readln;End.

GV: Diệp Thanh Toàn Trang 4

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 5: giao an tin hoc 8

Trường THCS Tây Đô 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.

II. 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.

III. 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.IV. HƯỚNG DẪN VỀ NHÀLài bài tập và xem trước bài mới.

GV: Diệp Thanh Toàn Trang 5

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 6: giao an tin hoc 8

Trường THCS Tây Đô 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

V. 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.VI. BÀI MỚI

1. Lưu đồ lệnh và Cú phápCâ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ảiProgram bai1;Var a:Real;Begin Repeat

GV: Diệp Thanh Toàn Trang 6

Page 7: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

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à bPROGRAM Tich;

VAR a, b : integer ;CK : char ;

BEGINREPEATWrite (' 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: Diệp Thanh Toàn Trang 7

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 8: giao an tin hoc 8

Trường THCS Tây Đô 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ÀNHI. 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.

VII. 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.VIII. BÀI THỰC HÀNHBà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 1Program bai1;Var a:Real;Begin

Repeat Readln(a); Until a>0; Readln;End.

Bài giải bài 2Program bai2;Var a:Real;Begin Repeat Readln(a); Until a mod 2=0; Readln;End.

IX. HƯỚNG DẪN VỀ NHÀLài bài tập và xem lại bài thực hành

GV: Diệp Thanh Toàn Trang 8

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 9: giao an tin hoc 8

Trường THCS Tây Đô 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.

X. 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.

XI. BÀI MỚI1. Khai báo dữ liệu kiểu mảngMộ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ảngTa 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ímVAR A: ARRAY [1..10] OF INTEGER;

I: INTEGER;BEGIN

For i:=1 to 10 doReadln(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 doBeginWrite(‘ Nhap phan tu thu ‘,i,’ =’);Readln(A(i));End;

GV: Diệp Thanh Toàn Trang 9

Page 10: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

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ìnhVAR A: ARRAY [1..10] OF INTEGER;

I: INTEGER;BEGIN

For i:=1 to 10 doReadln(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 doBegin

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: Diệp Thanh Toàn Trang 10

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 11: giao an tin hoc 8

Trường THCS Tây Đô 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ÀNHI. 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.

XII. 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.

XIII. BÀI THỰC HÀNHBà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ảiProgram 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ảiProgram 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: Diệp Thanh Toàn Trang 11

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 12: giao an tin hoc 8

Trường THCS Tây Đô 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ánCho 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 ; BEGINwriteln(' 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 Begin

GV: Diệp Thanh Toàn Trang 12

Page 13: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

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ếpCó 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: Diệp Thanh Toàn Trang 13

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 14: giao an tin hoc 8

Trường THCS Tây Đô 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ÀNHI. 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.

XIV. 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.

XV. BÀI THỰC HÀNHBà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ảiProgram 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ảiProgram 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: Diệp Thanh Toàn Trang 14

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 15: giao an tin hoc 8

Trường THCS Tây Đô 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ÀNHI. MỤC TIÊU

*Củng cố lại kiến thức đã học II. ĐỀ

ĐỀ KIỂM TRA 1 TIẾTMÔ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: Diệp Thanh Toàn Trang 15

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 16: giao an tin hoc 8

Trường THCS Tây Đô 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ÀNHII. 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ÀNHBà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ảiProgram 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 doif a[i] >a[j] then

begintam:=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 doif a[i] >a[j] then

begintam:=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: Diệp Thanh Toàn Trang 16

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 17: giao an tin hoc 8

Trường THCS Tây Đô 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ử}

BEGINimin:=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];a[1]:=a[imin]; {đổi giá trị nhỏ nhất về đầu dãy}

GV: Diệp Thanh Toàn Trang 17

Page 18: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

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ệnIV. 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: Diệp Thanh Toàn Trang 18

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 19: giao an tin hoc 8

Trường THCS Tây Đô 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ÀNHXVIII. 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.

XIX. 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.

XX. BÀI THỰC HÀNHBà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ảiProgram 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ảiProgram 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: Diệp Thanh Toàn Trang 19

Page 20: giao an tin hoc 8

Trường THCS Tây Đô 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: Diệp Thanh Toàn Trang 20

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 21: giao an tin hoc 8

Trường THCS Tây Đô 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ÀNHI. 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.

XXI. 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.

XXII. BÀI THỰC HÀNHBà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ảiProgram 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ảiProgram bai2;Var a: Array [1..10] of integer;

I: integer;Begin

For i:=1 to 10 dobegin

GV: Diệp Thanh Toàn Trang 21

Page 22: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Write(‘ nhap vao so nguyen thu ‘,i); Readln(a[i]); end;

d:=0;For i:=1 to 10 doWrite(‘ Tong so cac so chan la :’,d);

Readln;End.

GV: Diệp Thanh Toàn Trang 22

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 23: giao an tin hoc 8

Trường THCS Tây Đô 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ấtCâ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ênc. 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. 5c. 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. Charc. 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 địnhc. 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 địnhc. 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. 32767c. 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 a2 thì ta viếta. Writeln('a*a') b. Readln(' a*a ')c. Writeln(a*a) d. Writwln(a2)

GV: Diệp Thanh Toàn Trang 23

Page 24: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Câu 12. While... do… là:a. Vòng lặp xác định b. Vòng lặp không xác địnhc. 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 + F2Câ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. F1Câ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 + F2Câu17. For ... to...do… là:

a. Vòng lặp xác định b. Vòng lặp không xác địnhc. 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 a3-b3 sang Pascal thì ta viết là:a. a3-b3 b. a*a*a-b*b*bc. a.a.a-b.b.b d. aaa-bbb

Câu 20. Để gán giá trị b2 vào phần tử a[5] của mảng a thì ta viết:a. a:=b*b b. a[5]:=b*bc. 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;c) Max:=b;If a>Max then Max:=a;d) Cả 3 câu đều đúng.

GV: Diệp Thanh Toàn Trang 24

Page 25: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Tuần: 16 Ngày soạn:Tiết: 31, 32 Ngày dạy:

ƯỚC CHUNG – BỘI CHUNGXXIII. MỤC TIÊU

*Hiểu rỏ hơn thế nào là bội, ước, bội chung, ước chung.*Sửa một số lỗi thường gặp.

XXIV. CHUẨN BỊ1. GV:2. HS:

XXV. BÀI HỌC1. Tìm ước của một số nguyên a-Ước của một số nguyên a là tập hợp những số i sao cho a chia hết cho i.VD: số 8 có các ước là 1, 2, 4, 8.- Cách tìm tập hợp các ước của một số nguyên a là chia lần lượt a cho các số nguyên từ 1 đến a. Nếu số nào a chia hết thì số đó là ước và xuất số đó ra.- Giải thuật: For i:= 1 to a do

If a mod i = 0 then writeln(i);2. Tìm ước chung của 2 số nguyên a, b.-Ước chung của 2 số nguyên a và b là tập hợp những số i sao cho a chia hết cho i và b chia hết cho i.VD: số 8 và 6 có các ước chung là 1, 2.- Cách tìm tập hợp các ước chung của 2 số nguyên a, b là chia lần lượt xét các số nguyên từ 1 đến a hoặc b. Nếu số nào thoả mảng điều kiện là a chia hết cho i và b chia hết cho i thì xuất số đó ra.- Giải thuật 1: For i:= 1 to a do

If (a mod i = 0) and (b mod i = 0) then writeln(i);- Giải thuật 2: For i:= 1 to b do

If (a mod i = 0) and (b mod i = 0) then writeln(i);

3. Tìm bội của một số nguyên a-Bội của một số nguyên a là tập hợp những số m sao cho m=a*i (i là số nguyên)VD: số 8 có các bội là 8,16,24, 32, . . .- Cách tìm tập hợp các bội của một số nguyên a là ta nhân lần lượt a cho các số nguyên từ 1, 2, 3….. - Giải thuật: (k là một số nguyên)For i:= 1 to k do writeln(a*i);

4. Tìm bội chung của 2 số nguyên a, b.

GV: Diệp Thanh Toàn Trang 25

Page 26: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

-Bội chung của 2 số nguyên a và b là tập hợp những số m sao cho m đồng thời chia hết cho a và b.VD: số 8 và 6 có các bội chung là 24, 48,…- Cách tìm tập hợp các bội chung của 2 số nguyên a, b là lần lượt nhân tích của a*b với lần lượt 1, 2, 3, …..- Giải thuật: (k là một số nguyên)For i:= 1 to k do writeln(a*b*i);

GV: Diệp Thanh Toàn Trang 26

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 27: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Tuần: 17 Ngày soạn:Tiết: 33, 34 Ngày dạy:

THI THỰC HÀNHXXVI. MỤC TIÊU

*Củng cố lại kiến thức đã học II. ĐỀ

ĐỀ THI THỰC HÀNH MÔN TIN HỌC 8

Đề: Viết chương trình nhập vào 2 số nguyên a, b. Xuất tất cả các ước chung của a và b.VD: Nhập a=12, b=18. Xuất: 1 2 3* 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: Diệp Thanh Toàn Trang 27

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 28: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Tuần: 18 Ngày soạn:Tiết: 35, 36 Ngày dạy:

THI 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ị nhỏ nhất của 2 số a, b thì ta viết:a) Min:=a;If b<Min then Min:=b;b)If (a<b) then Min:=a;If (b<a) then Min:=b;c) Min:=b;If a<Min then Min:=a;d) Cả 3 câu đều đúng.

Câu 2. Xuất dữ liệu từ mảng a có 5 phần tử là các số nguyên từ 1 đến 5 thì ta viết lệnh như sau:

a) Writeln(a); b) Writeln (a[1..5]);c) Writeln (a[i]); d) For i: =1 to 5 do Writeln (a[i]);

Câu 3. 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[5..15]);c) Readln(a[i]); d) For i: =5 to 15 do Readln(a[i]);

Câu 4. Cú pháp của vòng lặp Repeat…Until… là:a. Repeat <ĐK> Until <CV> b. Repeat <CV> Until <ĐK>c. Repeat … Until … d. Tất cả đều đúng.

Câu 5. Các cách đặt tên sau, cách nào đúng:a. bai thi b. baithic. Bàithi d. Bài thi

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 địnhc. 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 địnhc. Câu lệnh điều kiện d. Một khai báo

Câu 9. Kiểu dữ liệu Integer và Longint a. Bằng nhau b. Đều là kiểu số nguyênc. Khác nhau hoàn toàn d. Có thể thay thế cho nhau mọi lúc

Câu 10. Giải thuật tìm và xuất các ước chung của số nguyên a và b là:a. for i:=1 to a do if (a mod i = 0) and (b mod i = 0) then writeln (i);b. for i:=1 to b do if (a mod i = 0) and (b mod i = 0) then writeln (i);c. Tất cả đúng.d. Tất cả sai.

Câu 11. Để khai báo biến i kiểu số nguyên; a, b kiểu số thực thì ta khai báo:a. Var i, a, b: Integer, real; b. Var i: Integer; a, b: real;

GV: Diệp Thanh Toàn Trang 28

Page 29: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

c. Var i, a, b: Integer of real; d. Var a, b: Integer; i: real;Câu 12. While... do… là:

a. Vòng lặp xác định b. Vòng lặp không xác địnhc. Câu lệnh điều kiện d. Một khai báo

Câu 13. Khi ta viết các câu lệnh: a:=0;t:=a+b;a:=2;b:=3;t:=4;Khi đó t có giá trị là:

a. 0 b. 5 c. a+b d. 4

Câu 14. . Khi ta viết các câu lệnh: a:=0;t:=a+b;a:=2;b:=3;t:=4;Khi đó a có giá trị là:

a. 0 b. 3 c. 2 d. 4

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. F3c. 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 + F9c. F2 d. Ctrl + F2

Câu17. For i:=a to b do Writeln(i);có ý nghĩa là:a. Lệnh gán i bằng a. b. Lặp lại công việc xuất biến i từ b đến ac. Câu lệnh sai. d. Lặp lại công việc xuất biến i từ a đến b.

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 a[3] * b[6] trong Pascal có ý nghĩa là:a. Cho ta kết quả 3*6=18b. Cho ta kết quả giá trị a[3] nhân với giá trị b[6]c. Cho ta kết quả biến a nhân với biến bd. Cho ta kết quả mảng a nhân với mảng b

Câu 20: 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;

SỬA BÀI KIỂM TRA

ĐÁP ÁNCâu 1d Câu 2d Câu 3d Câu 4b Câu 5b Câu 6a Câu 7c Câu 8b Câu 9b Câu 10cCâu 11b

Câu 12b Câu 13d Câu 14c Câu 15a Câu 16b Câu 17d Câu 18b Câu 19b Câu 20c

GV: Diệp Thanh Toàn Trang 29

Page 30: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Tuần: 19 Ngày soạn:Tiết: 37, 38 Ngày dạy:

XÂU KÍ TỰXXVII. MỤC TIÊU - Biết 2 cách khai báo xâu dùng từ khóa string và hạn chế số kí tự tối đa.

- Biết cách truy cập đến từng kí tự của xâu khi đã có giá trị.XXVIII. CHUẨN BỊ

1. GV:2. HS:

XXIX. BÀI HỌC

1. Khái niệmChúng ta gọi kiểu dữ liệu có giá trị là tập những kí tự là kiểu xâu kí tự hay nói một cách ngắn gọn là kiểu xâu.Pascal có từ khoá STRING để người dùng khai báo cho dữ liệu có giá trị là tập những kí tự. Ví dụ ta khai báo biến A có kiểu là tập những kí tự như sau:VAR A : STRING ; máy dành cho biến A có thể lưu giữ được một tập có không quá 255 kí tự.Hằng văn bản phải để trong cặp dấu nháy cao (‘).2. Khai báo dữ liệu kiểu xâu

a. Khai báo biến nhận kiểu xâu qua StringVAR Danh sách biến : STRING ;Các tên biến trong danh sách phải phân cách nhau bởi dấu phảy.Máy dành 256 byte trong bộ nhớ cho mỗi biến trong danh sách để mỗi biến đó có thể lưu giữ được tối đa 255 kí tự.

b. Khai báo biến nhận kiểu xâu có cấu trúc VAR Danh sách biến : STRING [N] ; Các tên biến trong danh sách phải phân cách nhau bởi dấu phảy. Máy dành (N + 1) byte trong bộ nhớ cho mỗi biến trong danh sách để mỗi biến đó có thể lưu giữ được tối đa N kí tự.3. Một số hàm và thủ tục trên dữ liệu kiểu xâu a. Hàm cho số kí tự của xâuLength (xâu) ; Cho độ dài của xâu, tức là cho số kí tự của xâu (kể cả dấu cách). Ví dụ Length (‘Ha Noi’) = 6.b. Hàm cho kí tự của xâuTên biến xâu [ vị trí kí tự ] ; cho kí tự của xâu có vị trí được chỉ ra bởi biểu thức trong dấu móc vuông. 4. Bài toán Lập chương trình để chuyển một xâu sang dạng mật mã theo quy tắc: - Các nguyên âm a, e, i, o, u, y được chuyển tương ứng như sau:a --> e, e --> i, i --> o, o --> u, u --> y, y --> a. - Các phụ âm vẫn giữ nguyên.Để đơn giản ta quy ước văn bản chỉ viết chữ thường.

GV: Diệp Thanh Toàn Trang 30

Page 31: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

* Thuật giảiBài toán được giải bằng cách nhận vào xâu cần mã. Sau đó lần lượt duyệt xâu bắt đầu từ kí tự thứ nhất cho đến kí tự cuối cùng của xâu. Ứng với mỗi kí tự là nguyên âm thì thay nó bằng nguyên âm tương ứng theo qui tắc đã cho ở đề bài toán.IV. CỦNG CỐ1. Khai báo xâu kí tựĐể khai báo biến xâu kí tự ta dùng từ khóa STRING, tiếp đó đến số kí tự nhiều nhất mà xâu cần lưu trữ. Số này để trong dấu móc vuông. Nếu không chỉ ra số kí tự nhiều nhất của xâu thì máy hiểu xâu có độ dài khai báo là 255 kí tự. 2. Hằng xâu kí tự Hằng xâu kí tự được viết trong hai dấu nháy cao. Ví dụ ‘ Chao the ki ki 21’ 3. Những hàm trên xâu kí tự: a. LENGTH(st)Cho số kí tự của xâu st kể cả dấu cách.

b. ST[i] Cho kí tự thứ i của xâu st (tính từ trái sang phải bắt đầu từ 1).c. Upcase(st[i]) Đổi kí tự thứ i của xâu st sang viết hoa (nếu nó là kí tự viết thường).

V. BÀI TẬP VỀ NHÀBài toán 1: Viết chương trình nhập vào họ và tên của một học sinh. Xuất họ và tên đó ra màn hình.Bài toán 2: Viết chương trình nhập vào 3 biến: ho, tên, lot để nhập theo thứ tự họ, tên và chữ lót của một học sinh. Ghép 3biến lại thành họ lót tên và xuất kết quả ra màn hình.Bài toán 3: Viết chương trình nhập vào 3 biến: ngày, tháng, năm. Ghép chúng với dạng ngày/tháng/ năm (ví dụ 10/01/2008) và xuất kết quả ra màn hình.

GV: Diệp Thanh Toàn Trang 31

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Page 32: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Tuần: 20 Ngày soạn:Tiết: 41, 42 Ngày dạy:

THỰC HÀNH XÂU KÍ TỰXXX. MỤC TIÊU

*Nắm vững hơn về xâu kí tự.XXXI. 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.XXXII. BÀI THỰC HÀNH

Bài toán 1: Viết chương trình nhập vào họ và tên của một học sinh. Xuất họ và tên đó ra màn hình.Bài toán 2: Viết chương trình nhập vào 3 biến: ho, tên, lot để nhập theo thứ tự họ, tên và chữ lót của một học sinh. Ghép 3biến lại thành họ lót tên và xuất kết quả ra màn hình.Bài toán 3: Viết chương trình nhập vào 3 biến: ngày, tháng, năm. Ghép chúng với dạng ngày/tháng/ năm (ví dụ 10/01/2008) và xuất kết quả ra màn hình.Program bt1;Var t:string[29];BeginWrite(‘ nhap vao ho ten cua mot hoc sinh’);readln(t);Write(‘ho ten da nhap la’);writeln(t);Readln;End.Program bt2;Var ho,ten:string[8];lot:string[20];

T:string[36];BeginWrite(‘ nhap vao ho’);readln(ho);Write(‘ nhap vao ten’);readln(ten);Write(‘ nhap vao chu lot’);readln(lot);T:=ho+lot+ten;

Write(‘ho ten da nhap la’);writeln(t);Readln;End.

Program bt2;Var ngay,thang:string[2];nam:string[4];

T:string[10];BeginWrite(‘ nhap vao ngay’);readln(ngay);Write(‘ nhap vao thang’);readln(thang);Write(‘ nhap vao nam’);readln(nam);T:=ngay+thang+nam;Write(‘ngay thang nam da nhap la’);writeln(t);Readln;End.

GV: Diệp Thanh Toàn Trang 32

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 33: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Tuần: 21 Ngày soạn:Tiết: 39, 40 Ngày dạy:

MỘT SỐ HÀM VÀ THỦ TỤC VỚI XÂUI. MỤC TIÊU

* Biết được một số hàm và thủ tục để xử lý trên xâu kí tự.* Vận dụng hàm COPY, POS, DELETE, INSERT vàochương trình cụ thể.

II. CHUẨN BỊ1. GV: HS:

III. BÀI MỚI

1. Những hàm chuẩn trên xâua. COPY(st, p, n)Cho kết quả là một xâu con gồm n kí tự của xâu st kể từ kí tự thứ p tính từ trái sang phải.VD: Nếu st= ‘TRUONG THCS TAY DO’

Ta dùng hàm st1:=COPY(st,2,5)Cho kết quả là st1= ‘RUONG’

b. POS(st1, st)Cho vị trí xuất hiện lần đầu tiên của xâu st1 trong xâu st.VD: Nếu st= ‘TRUONG THCS TAY DO’

St1= ‘O’Ta dùng hàm a:=COPY(st,st1)Cho kết quả là a=4

c. UPCASE(st[i])Cho kết quả là đổi kí tự thứ st[i] thành kí tự in hoa.VD: Nếu st= ‘truong thcs tay do’

Ta dùng hàm st[5]:= UPCASE (st[5])Cho kết quả là st= ‘truoNg thcs tay do’

2. Hàm ghép xâust1 + st2 cho xâu kết quả nhận được bằng cách viết xâu st2 sau xâu st1.VD: Nếu st1= ‘truong thcs tay do’St2= ‘lop 8a’Ta dùng hàm st:=st1+st2Cho ta kết quả là st=‘truong thcs tay dolop 8a’

3. Thủ tục xoá và chèn xâu cona. DELETE(st, p, n) ;Xoá khỏi xâu st một xâu con gồm n kí tự kể từ kí tự thứ p và kéo các kí tự còn lại ở phía cuối xâu về vị trí p.b. INSERT(st1, st, p) ;

GV: Diệp Thanh Toàn Trang 33

Page 34: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Chèn xâu st1 vào xâu st kể từ kí tự có vị trí thứ p của xâu st, tính từ trái sang phải. Các kí tự của xâu St từ vị trí p bị đẩy về cuối xâu.

4. Ví dụ: Viết chương trình nhập vào một xâu kí tự st. a. Kiểm tra xem có bao nhiêu kí tự ‘a’ trong st.b. Thay thế tất cả những kí tự ‘a’ thành kí tự ‘u’.Bài giải: program vd;var st: string;beginwrite(‘ nhap vao mot xau ki tu’);readln(st);for i:=1 to length(st) doif st[[i]=’a’ then

begind:=d+1;st[[i]:=’u’;

end;writeln(‘xau co tat ca cac ki tu a la’,d);writeln(‘xau da thay the la’,st);readln;end.

IV. BÀI TẬP VỀ NHÀ1.Viết chương trình cho máy nhận vào n câu thơ (n>5), sau đó máy cho hiện lên màn

hình những câu có từ "hoa" (mỗi câu chỉ in một lần. Chú ý từ được phân biệt nhờ dấu cách).2. Nhận vào xâu st. Hãy tìm trong st có bao nhiêu từ ‘ong’ thì thay bằng bấy nhiêu xâu

‘con ong ngoan’.3. Viết chương trình cho máy nhận vào xâu X gồm họ, đệm và tên của một người (xâu X

có thể có nhiều dấu cách ở đầu xâu, cuối xâu, giữa các từ, các kí tự viết thường, viết hoa là tuỳ tiện). Tách ra từ X để có xâu T là tên (tên là từ cuối cùng trong xâu X), xoá ở xâu X tên của người đó để còn lại là họ và đệm.

GV: Diệp Thanh Toàn Trang 34

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 35: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Tuần: 22 Ngày soạn:Tiết: 43, 44 Ngày dạy:

THỰC HÀNH MỘT SỐ HÀM VÀ THỦ TỤC TRÊN XÂU KÍ TỰI. MỤC TIÊU

* Biết được cách chi xuất các phần tử của xâu.* Thành thạo trong việc sử dụng một số hàm và thủ tục trên xâu.

II. CHUẨN BỊGV: * Một số ví dụ thực tế.HS: * Ôn lại một số thủ tục và hàm trên xâu.

III. BÀI MỚI

Bài toán 1: Viết chương trình nhập vào họ và tên của một học sinh. Xuất họ và tên đó ra màn hình.Program bt1;Var t:string[29];BeginWrite(‘ nhap vao ho ten cua mot hoc sinh’);readln(t);Write(‘ho ten da nhap la’);writeln(t);Readln;End.

Bài toán 2: Viết chương trình nhập vào 3 biến: ho, tên, lot để nhập theo thứ tự họ, tên và chữ lót của một học sinh. Ghép 3biến lại thành họ lót tên và xuất kết quả ra màn hình.Program bt2;Var ho,ten:string[8];lot:string[20];

T:string[36];BeginWrite(‘ nhap vao ho’);readln(ho);Write(‘ nhap vao ten’);readln(ten);Write(‘ nhap vao chu lot’);readln(lot);T:=ho+lot+ten;Write(‘ho ten da nhap la’);writeln(t);Readln;End.

GV: Diệp Thanh Toàn Trang 35

Page 36: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Bài toán 3: Viết chương trình nhập vào 3 biến: ngày, tháng, năm. Ghép chúng với dạng ngày/tháng/ năm (ví dụ 10/01/2008) và xuất kết quả ra màn hình.Program bt2;Var ngay,thang:string[2];nam:string[4];

T:string[10];BeginWrite(‘ nhap vao ngay’);readln(ngay);Write(‘ nhap vao thang’);readln(thang);Write(‘ nhap vao nam’);readln(nam);T:=ngay+thang+nam;Write(‘ngay thang nam da nhap la’);writeln(t);Readln;End.

GV: Diệp Thanh Toàn Trang 36

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 37: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Tuần: 23 Ngày soạn:Tiết: 45, 46 Ngày dạy:

CHUẨN HÓA XÂUI. MỤC TIÊU

* Biết được một xâu kí tự viết đúng qui cách là gì, và cách biến đổi từ xâu không đúng qui cách về đúng qui cách.* Thành thạo trong việc sử dụng một số hàm và thủ tục trên xâu.

II. CHUẨN BỊGV: * Một số ví dụ thực tế.HS: * Ôn lại một số thủ tục và hàm trên xâu.

III. BÀI MỚIĐặt vấn đề: Khi lập danh sách họ và tên của học sinh thì chúng ta viết theo qui cách là: mỗi chữ cách nhau chỉ 1 kí tự trắng, kí tự đầu của chữ phải in hoa. Một xâu thỏa mản các ván đề đó thì tạm gọ là xâu đã được chuẩn hóa.

Như vậy, để chuẩn hóa xâu thì ta phải cắt bỏ các kí tự trắng thừa ở đầu, giữa xâu và in hoa kí tự đầu của chữ.

Giã sử xâu St là xâu cần chuẩn hóa

1. Cắt bỏ kí tự trắng thừa ở đầu xâu.While St[1]= ‘ ‘ do Delete(St,1,1);

2. Cắt bỏ kí tự trắng thừa ở giữa xâu.While Pos(‘ ‘,St)<>0 do Delete(St, Pos(‘ ‘,St),1);

3. In hoa kí tự đầu của chữSt[1]:= Upcase(St[1]);For i:=1to Length(St) do

If St[i]= ‘ ‘ then St[i+1]:=Upcase(St[i+1]);4. Bài tậpa) Viết chương trình nhập vào một xâu là họ và tên của 1 học sinh.Chuẩn hóa xâu vừa nhập.Program bta;Var St: String;i:Integer;BeginWrite(‘nhap va mot xau ki tu:’);Readln(St);While St[1]= ‘ ‘ do Delete(St,1,1);While Pos(‘ ‘,St)<>0 do Delete(St, Pos(‘ ‘,St),1);St[1]:= Upcase(St[1]);For i:=1to Length(St) do

If St[i]= ‘ ‘ then St[i+1]:=Upcase(St[i+1]);Write(‘xau da chuan hoa la:’);Writeln(St);Readln;End.

GV: Diệp Thanh Toàn Trang 37

Page 38: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

b) Viết chương trình nhập vào 2 xâu. St1 là họ và tên của 1 học sinh, St2 là ngày tháng năm sinh. Gán St=St1+St2.Chuẩn hóa xâu St.Program bta;Var St: String;i:Integer;BeginWrite(‘nhap va ho va ten:’);Readln(St1);Write(‘nhap va ngay thang nam sinh:’);Readln(St2);St:=St1+ ‘ ‘ +St2;While St[1]= ‘ ‘ do Delete(St,1,1);While Pos(‘ ‘,St)<>0 do Delete(St, Pos(‘ ‘,St),1);St[1]:= Upcase(St[1]);For i:=1to Length(St) do

If St[i]= ‘ ‘ then St[i+1]:=Upcase(St[i+1]);Write(‘xau da chuan hoa la:’);Writeln(St);Readln;End.

GV: Diệp Thanh Toàn Trang 38

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 39: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Tuần: 24 Ngày soạn:Tiết: 47, 48 Ngày dạy:

THỰC HÀNH CHUẨN HÓA XÂU KÍ TỰI. MỤC TIÊU

* Biết được cách chi xuất các phần tử của xâu.* Thành thạo trong việc sử dụng một số hàm và thủ tục trên xâu.

II. CHUẨN BỊGV: * Một số ví dụ thực tế.HS: * Ôn lại một số thủ tục và hàm trên xâu.

III. BÀI MỚI1) Viết chương trình nhập vào một xâu là họ và tên của 1 học sinh.Chuẩn hóa xâu vừa nhập.Program bta;Var St: String;i:Integer;BeginWrite(‘nhap va mot xau ki tu:’);Readln(St);While St[1]= ‘ ‘ do Delete(St,1,1);While Pos(‘ ‘,St)<>0 do Delete(St, Pos(‘ ‘,St),1);St[1]:= Upcase(St[1]);For i:=1to Length(St) do

If St[i]= ‘ ‘ then St[i+1]:=Upcase(St[i+1]);Write(‘xau da chuan hoa la:’);Writeln(St);Readln;End.2) Viết chương trình nhập vào 2 xâu. St1 là họ và tên của 1 học sinh, St2 là ngày tháng năm sinh. Gán St=St1+St2.Chuẩn hóa xâu St.Program bta;Var St: String;i:Integer;BeginWrite(‘nhap va ho va ten:’);Readln(St1);Write(‘nhap va ngay thang nam sinh:’);Readln(St2);St:=St1+ ‘ ‘ +St2;While St[1]= ‘ ‘ do Delete(St,1,1);While Pos(‘ ‘,St)<>0 do Delete(St, Pos(‘ ‘,St),1);St[1]:= Upcase(St[1]);For i:=1to Length(St) do

If St[i]= ‘ ‘ then St[i+1]:=Upcase(St[i+1]);Write(‘xau da chuan hoa la:’);Writeln(St);Readln;End.

GV: Diệp Thanh Toàn Trang 39

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 40: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Tuần: 25 Ngày soạn:Tiết: 49, 50 Ngày dạy:

TÌM KIẾM VÀ THAY THẾI. MỤC TIÊU

* Biết được cách kiểm tra từng kí tự trên xâu, cách so sánh, cách thay thế.* Thành thạo trong việc sử dụng một số hàm và thủ tục trên xâu.

II. CHUẨN BỊGV: * Một số ví dụ thực tế.HS: * Ôn lại một số thủ tục và hàm trên xâu.

III. BÀI MỚIĐặt vấn đề: Trong khi xử lí xâu kí tự thì người ta thường tìm kiếm 1 kí tự, một xâu kí tự thỏa mản một yêu cầu nào đó. Do dó, cách tìm kiếm và thay thế cũng rất quan trọng.

Giã sử xâu St là xâu cần chuẩn hóa

1. Tìm kiếm 1 kí tự trong xâuBT: Tìm trong xâu St có bao nhiêu kí tự a xuất hiện.d:=0;For i:=1 to length(St) doIf St[i]= ‘a’ then d:=d+1;2. Thay thế 1 kí tự trong xâu.BT: Thay thế trong xâu St các kí tự a thành kí tự e.

For i:=1 to length(St) doIf St[i]= ‘a’ then St[i]:= ‘e’;

3. Tìm kiếm xâu kí tự trong xâuBT: Tìm trong xâu St có bao nhiêu xau kí tự ‘tin’ xuất hiện.d:=0;For i:=1 to length(St) doIf Copy(St,I,3)= ‘tin’ then d:=d+1;4. Thay thế xâu kí tự trong xâu.BT: Thay thế trong xâu St các xâu kí tự st1 thành xâu kí tự st2.

For i:=1 to length(St) doIf copy(St,I,length(st1))= st1 then

BeginDelete(st,I,length(st1));Insert(st2,st,length(st1));

End;

4. Bài tập

GV: Diệp Thanh Toàn Trang 40

Page 41: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

a) Viết chương trình nhập vào một xâu kí tự. Hỏi trong xâu vừa nhập có bao nhiêu kí tự a.Program bta;Var St: String;I,d:Integer;BeginWrite(‘nhap va mot xau ki tu:’);Readln(St);d:=0;For i:=1 to length(St) doIf St[i]= ‘a’ then d:=d+1;Write(‘so ki tu a xuat hien la:’);Writeln(d);Readln;End.

b) Viết chương trình nhập vào 3 xâu. Thay thế trong xâu St các xâu kí tự st1 thành xâu kí tự st2.Program btb;Var St,st1,st2: String;i:Integer;BeginWrite(‘nhap va xau st:’);Readln(St);Write(‘nhap va xau st1:’);Readln(St1);Write(‘nhap va xau st2:’);Readln(St2);For i:=1 to length(St) doIf copy(St,I,length(st1))= st1 then

BeginDelete(st,I,length(st1));Insert(st2,st,length(st1));

End;Write(‘xau ket qua la:’);Writeln(St);Readln;End.

GV: Diệp Thanh Toàn Trang 41

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 42: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Tuần: 26 Ngày soạn:Tiết: 51, 52 Ngày dạy:

THỰC HÀNH TÌM KIẾM VÀ THAY THẾI. MỤC TIÊU

* Biết được cách chi xuất các phần tử của xâu.* Thành thạo trong việc sử dụng một số hàm và thủ tục trên xâu.

II. CHUẨN BỊGV: * Một số ví dụ thực tế.HS: * Ôn lại một số thủ tục và hàm trên xâu.

III. BÀI MỚI1) Viết chương trình nhập vào một xâu kí tự. Hỏi trong xâu vừa nhập có bao nhiêu kí tự a.Program bta;Var St: String;I,d:Integer;BeginWrite(‘nhap va mot xau ki tu:’);Readln(St);d:=0;For i:=1 to length(St) doIf St[i]= ‘a’ then d:=d+1;Write(‘so ki tu a xuat hien la:’);Writeln(d);Readln;End.2) Viết chương trình nhập vào 3 xâu. Thay thế trong xâu St các xâu kí tự st1 thành xâu kí tự st2.Program btb;Var St,st1,st2: String;i:Integer;BeginWrite(‘nhap va xau st:’);Readln(St);Write(‘nhap va xau st1:’);Readln(St1);Write(‘nhap va xau st2:’);Readln(St2);For i:=1 to length(St) doIf copy(St,I,length(st1))= st1 then

BeginDelete(st,I,length(st1));Insert(st2,st,length(st1));

End;Write(‘xau ket qua la:’);Writeln(St);Readln;End.

GV: Diệp Thanh Toàn Trang 42

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 43: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Tuần: 27 Ngày soạn:Tiết: 53, 54 Ngày dạy:

CHUYỂN ĐỔI SỐ VÀ XÂU KÍ TỰI. MỤC TIÊU

* Biết được các thủ tục đổi số thành xâu kí tự và ngược lại.* Thành thạo trong việc sử dụng một số hàm và thủ tục trên xâu.

II. CHUẨN BỊGV: * Một số ví dụ thực tế.HS: * Ôn lại một số thủ tục và hàm trên xâu.

III. BÀI MỚIĐặt vấn đề: Trong khi xử lí xâu kí tự thì người ta thường thực hiện các phép cộng số được nhập từ bàn phím. Nếu như số nào khai báo kiểu xâu thì cộng không ra kết quả như mong muốn. Do đó, ta cần chuyển đối xâu thành số.

1. Đổi xâu thành sốVal(st, v, c) ;Thủ tục biến đổi biểu thức xâu kí tự st thành số và gán kết quả cho biến số v. Biến c là biến nguyên (không nhận kiểu BYTE) dùng để ghi vị trí kí tự đầu tiên gây ra lỗi khi chuyển đổi từ st sang v. Nếu đổi không được thì c=0,đổi được (Không có lỗi) thì c = 0. Việc có đổi được hay không là phụ thuộc vào biểu thức xâu và khai báo kiểu của biến số v.VD1st=’12345’;val(st,v,c);Kết quả: v=12345, c=0;VD2st=’12st’;val(st,v,c);Kết quả: v=0, c<>0;

2. Đổi số thành xâu Str(v, st) ;Thủ tục biến đổi giá trị bỉểu thức số v thành xâu kí tự và gửi kết quả vào biến xâu st. VDv=123;Str(v,st);Kết quả: st= ‘123’;4. Bài tậpa) Viết chương trình nhập vào một xâu kí tự bất kì có cả kí tự số. Hỏi trong xâu vừa nhập có bao nhiêu kí tự số.

Program bta;Var St: String;I,d,v:Integer;BeginWrite(‘nhap va mot xau ki tu:’);Readln(St);d:=0;For i:=1 to length(St) doBeginVal(st[i],v,c);

GV: Diệp Thanh Toàn Trang 43

Page 44: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

If c= 0 then d:=d+1;End;Write(‘so ki tu so trong xau la:’);Writeln(d);Readln;End.b) Viết chương trình nhập vào một xâu kí tự bất kì có cả kí tự số. Tính tổng tất cả các kí tự số trong xâu.Program btb;Var St: String;I,d,v:Integer;BeginWrite(‘nhap va mot xau ki tu:’);Readln(St);d:=0;For i:=1 to length(St) doBeginVal(st[i],v,c);If c= 0 then d:=d+v;End;Write(‘so ki tu so trong xau la:’);Writeln(d);Readln;End.c) Viết chương trình nhập vào 3 số nguyên a,b,c. a là ngày, b là tháng, c là năm sinh của 1HS. Ghép theo thứ tự là ngày tháng năm các số vừa nhập thành xâu kí tự số. vd: nhap 3 so la a=12,b=2,c=1992. Kết quả là st=12/2/1992;Program btc;Var St: String;I,d,v:Integer;BeginWrite(‘nhap so thu 1:’);Readln(a);Write(‘nhap so thu 2:’);Readln(b);Write(‘nhap so thu 3:’);Readln(c);Str(a,sa);Str(b,sb);Str(c,sc);d:=0;st=sa+ ‘/’ +sb+ ‘/’ +sc;Write(‘ket qua la:’);Writeln(st);Readln;End.

GV: Diệp Thanh Toàn Trang 44

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn

Page 45: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

Tuần: 28 Ngày soạn:Tiết: 55, 56 Ngày dạy:

THỰC HÀNH CHUYỂN ĐỔI SỐ VÀ XÂU KÍ TỰI. MỤC TIÊU

* Biết được cách chi xuất các phần tử của xâu.* Thành thạo trong việc sử dụng một số hàm và thủ tục trên xâu.

II. CHUẨN BỊGV: * Một số ví dụ thực tế.HS: * Ôn lại một số thủ tục và hàm trên xâu.

III. BÀI MỚI

1) Viết chương trình nhập vào một xâu kí tự bất kì có cả kí tự số. Hỏi trong xâu vừa nhập có bao nhiêu kí tự số.

Program bta;Var St: String;I,d,v:Integer;BeginWrite(‘nhap va mot xau ki tu:’);Readln(St);d:=0;For i:=1 to length(St) doBeginVal(st[i],v,c);If c= 0 then d:=d+1;End;Write(‘so ki tu so trong xau la:’);Writeln(d);Readln;End.2) Viết chương trình nhập vào một xâu kí tự bất kì có cả kí tự số. Tính tổng tất cả các kí tự số trong xâu.Program btb;Var St: String;I,d,v:Integer;BeginWrite(‘nhap va mot xau ki tu:’);Readln(St);d:=0;For i:=1 to length(St) doBeginVal(st[i],v,c);If c= 0 then d:=d+v;End;Write(‘so ki tu so trong xau la:’);Writeln(d);Readln;End.

GV: Diệp Thanh Toàn Trang 45

Page 46: giao an tin hoc 8

Trường THCS Tây Đô Giáo án Tin học 8

3) Viết chương trình nhập vào 3 số nguyên a,b,c. a là ngày, b là tháng, c là năm sinh của 1HS. Ghép theo thứ tự là ngày tháng năm các số vừa nhập thành xâu kí tự số. vd: nhap 3 so la a=12,b=2,c=1992. Kết quả là st=12/2/1992;Program btc;Var St: String;I,d,v:Integer;BeginWrite(‘nhap so thu 1:’);Readln(a);Write(‘nhap so thu 2:’);Readln(b);Write(‘nhap so thu 3:’);Readln(c);Str(a,sa);Str(b,sb);Str(c,sc);d:=0;st=sa+ ‘/’ +sb+ ‘/’ +sc;Write(‘ket qua la:’);Writeln(st);Readln;End.

GV: Diệp Thanh Toàn Trang 46

Phương Bình, ngày…. tháng…. năm….Duyệt của tổ trưởng

Người soạn

Diệp Thanh Toàn