Trường THCS Tây Đô Tuần: 1 Tiết: 1, 2
Giáo án Tin học 8 Ngày soạn: 30/08/2006 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 ELSE -Đâ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 := TO := DO -Đâ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 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
Trường THCS Tây Đô 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);
Giáo án Tin học 8 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.
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
GV: Diệp Thanh Toàn
Trường THCS Tây Đô
Giáo án Tin học 8
Tuần: 2 Tiết: 3, 4
Ngày soạn: Ngày dạy:
VÒNG LẶP WHILE .. DO I.
IV.
V.
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 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. 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
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
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ải Program bai1; Var a:Real; Begin Readln(a); While a<0 do Readln(a); Readln; End.
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
GV: Diệp Thanh Toàn
Trang 4
Trường THCS Tây Đô Tuần: 3 Tiết: 5, 6
Giáo án Tin học 8 Ngày soạn: Ngày dạy:
THỰC HÀNH I.
VI.
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. 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.
Người soạn
Phương Bình, ngày…. tháng…. năm…. Duyệt của tổ trưởng Diệp Thanh Toàn GV: Diệp Thanh Toàn
Trang 5
Trường THCS Tây Đô Tuần: 4 Tiết: 7, 8
Giáo án Tin học 8 Ngày soạn: Ngày dạy:
VÒNG LẶP REPEAT .. UNTIL I.
IX.
X.
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 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. 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 Repeat GV: Diệp Thanh Toàn
Trang 6
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 . - Ngược lại, trong cấu trúc REPEAT .. UNTIL thì 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 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. 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
GV: Diệp Thanh Toàn
Trang 7
Trường THCS Tây Đô Tuần: 5 Tiết: 9, 10
Giáo án Tin học 8 Ngày soạn: 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 Bài giải bài 2
Program bai1; Var a:Real; Begin Repeat Readln(a); Until a>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 Phương Bình, ngày…. tháng…. năm…. Duyệt của tổ trưởng
Program bai2; Var a:Real; Begin Repeat Readln(a); Until a mod 2=0; Readln; End. Người soạn
Diệp Thanh Toàn
GV: Diệp Thanh Toàn
Trang 8
Trường THCS Tây Đô Tuần: 6 Tiết: 11, 12
Giáo án Tin học 8 Ngày soạn: 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)); End; GV: Diệp Thanh Toàn
Trang 9
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ì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. Phương Bình, ngày…. tháng…. năm…. Người soạn Duyệt của tổ trưởng
Diệp Thanh Toàn
GV: Diệp Thanh Toàn
Trang 10
Trường THCS Tây Đô Tuần: 7 Tiết: 13, 14
Giáo án Tin học 8 Ngày soạn: 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; Người soạn End. Phương Bình, ngày…. tháng…. năm…. Duyệt của tổ trưởng Diệp Thanh Toàn
GV: Diệp Thanh Toàn
Trang 11
Trường THCS Tây Đô Tuần: 8 Tiết: 15, 16
Giáo án Tin học 8 Ngày soạn: 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 Begin GV: Diệp Thanh Toàn
Trang 12
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ế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.
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
GV: Diệp Thanh Toàn
Trang 13
Trường THCS Tây Đô Tuần: 9 Tiết: 17, 18
Giáo án Tin học 8 Ngày soạn: 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; Người soạn End. Phương Bình, ngày…. tháng…. năm…. Duyệt của tổ trưởng Diệp Thanh Toàn
GV: Diệp Thanh Toàn
Trang 14
Trường THCS Tây Đô Tuần: 10 Tiết: 19, 20
Giáo án Tin học 8 Ngày soạn: 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
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
GV: Diệp Thanh Toàn
Trang 15
Trường THCS Tây Đô Tuần: 11 Tiết: 21, 22
Giáo án Tin học 8 Ngày soạn: 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 Phương Bình, ngày…. tháng…. năm…. Duyệt của tổ trưởng
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. Người soạn
Diệp Thanh Toàn
GV: Diệp Thanh Toàn
Trang 16
Trường THCS Tây Đô Tuần: 12 Tiết: 23, 24
Giáo án Tin học 8 Ngày soạn: 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]; a[1]:=a[imin]; {đổi giá trị nhỏ nhất về đầu dãy}
GV: Diệp Thanh Toàn
Trang 17
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ệ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
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
GV: Diệp Thanh Toàn
Trang 18
Trường THCS Tây Đô Tuần: 13 Tiết: 25, 26
Giáo án Tin học 8 Ngày soạn: 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: Diệp Thanh Toàn
Trang 19
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).
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
GV: Diệp Thanh Toàn
Trang 20
Trường THCS Tây Đô Tuần: 14 Tiết: 27, 28
Giáo án Tin học 8 Ngày soạn: 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 begin GV: Diệp Thanh Toàn
Trang 21
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 do Write(‘ Tong so cac so chan la :’,d); Readln; End.
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
GV: Diệp Thanh Toàn
Trang 22
Trường THCS Tây Đô Tuần: 15 Tiết: 29, 30
Giáo án Tin học 8 Ngày soạn: 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 b. Repeat <ĐK> Until 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 b. While 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 a2 thì ta viết a. Writeln('a*a') b. Readln(' a*a ') c. Writeln(a*a) d. Writwln(a2) GV: Diệp Thanh Toàn
Trang 23
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 đị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)) 3 3 Câu 19. Viết biểu thức toán a -b sang Pascal thì ta viết là: a. a3-b3 b. a*a*a-b*b*b c. a.a.a-b.b.b d. aaa-bbb 2 Câu 20. Để gán giá trị b 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; c) Max:=b;If a>Max then Max:=a; d) Cả 3 câu đều đúng. GV: Diệp Thanh Toàn
Trang 24
Trường THCS Tây Đô Tuần: 16 Tiết: 31, 32
Giáo án Tin học 8 Ngày soạn: Ngày dạy:
ƯỚC CHUNG – BỘI CHUNG XXVII.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. XXVIII.CHUẨN BỊ 1. GV: 2. HS: XXIX.BÀI HỌC
1. 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
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);
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
GV: Diệp Thanh Toàn
Trang 26
Trường THCS Tây Đô Tuần: 17 Tiết: 33, 34
Giáo án Tin học 8 Ngày soạn: Ngày dạy:
THI THỰC HÀNH XXX. 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
Người soạn Phương Bình, ngày…. tháng…. năm…. Duyệt của tổ trưởng Diệp Thanh Toàn
GV: Diệp Thanh Toàn
Trang 27
Trường THCS Tây Đô Tuần: 18 Tiết: 35, 36
Giáo án Tin học 8 Ngày soạn: 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 Until b. Repeat 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. baithi c. 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 b. While 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 và Longint a. Bằng nhau b. Đều là kiểu số nguyên c. 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
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 định c. 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. 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 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 a c. 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=18 b. 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 b d. 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 ÁN Câu 1d Câu 11b
Câu 2d Câu 12b
Câu 3d
Câu 4b
Câu 5b
Câu 6a
Câu 7c
Câu 8b
Câu 9b
Câu 10c
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
Trường THCS Tây Đô Tuần: 19 Tiết: 37, 38
Giáo án Tin học 8 Ngày soạn: Ngày dạy:
XÂU KÍ TỰ XXXI.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ị. XXXII.CHUẨN BỊ 1. GV: 2. HS: XXXIII.BÀI HỌC 1. Khái niệm Chú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 String VAR 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âu Length (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âu Tê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. * Thuật giải GV: Diệp Thanh Toàn
Trang 30
Trường THCS Tây Đô
Giáo án Tin học 8
Bà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. Phương Bình, ngày…. tháng…. năm…. Duyệt của tổ trưởng
GV: Diệp Thanh Toàn
Trang 31
Trường THCS Tây Đô Tuần: 20 Tiết: 41, 42
Giáo án Tin học 8 Ngày soạn: Ngày dạy:
THỰC HÀNH XÂU KÍ TỰ XXXIV.MỤC TIÊU *Nắm vững hơn về xâu kí tự. XXXV.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. XXXVI.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; Write(‘ho ten da nhap la’);writeln(t); Var t:string[29]; Readln; Begin End. Write(‘ nhap vao ho ten cua mot hoc sinh’);readln(t); Program bt2; Write(‘ho ten da nhap la’);writeln(t); Var ngay,thang:string[2];nam:string[4]; Readln; T:string[10]; End. Begin Program bt2; Write(‘ nhap vao ngay’);readln(ngay); Var ho,ten:string[8];lot:string[20]; Write(‘ nhap vao thang’);readln(thang); T:string[36]; Write(‘ nhap vao nam’);readln(nam); Begin T:=ngay+thang+nam; Write(‘ nhap vao ho’);readln(ho); Write(‘ngay thang nam da nhap Write(‘ nhap vao ten’);readln(ten); la’);writeln(t); Write(‘ nhap vao chu lot’);readln(lot); Readln; T:=ho+lot+ten; End.
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
GV: Diệp Thanh Toàn
Trang 32
Trường THCS Tây Đô Tuần: 21 Tiết: 39, 40
Giáo án Tin học 8 Ngày soạn: Ngày dạy:
MỘT SỐ HÀM VÀ THỦ TỤC VỚI XÂU I. 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âu a. 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âu st1 + 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+st2 Cho ta kết quả là st=‘truong thcs tay dolop 8a’ 3. Thủ tục xoá và chèn xâu con a. 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
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; begin write(‘ nhap vao mot xau ki tu’);readln(st); for i:=1 to length(st) do if st[[i]=’a’ then begin d:=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.
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
GV: Diệp Thanh Toàn
Trang 34
Trường THCS Tây Đô Tuần: 22 Tiết: 43, 44
Giáo án Tin học 8 Ngày soạn: 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]; Begin Write(‘ 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]; Begin Write(‘ 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
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]; Begin Write(‘ 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.
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
GV: Diệp Thanh Toàn
Trang 36
Trường THCS Tây Đô Tuần: 23 Tiết: 45, 46
Giáo án Tin học 8 Ngày soạn: Ngày dạy: CHUẨN HÓA XÂU
I. 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ập a) 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; Begin Write(‘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
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; Begin Write(‘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.
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
GV: Diệp Thanh Toàn
Trang 38
Trường THCS Tây Đô Tuần: 24 Tiết: 47, 48
Giáo án Tin học 8 Ngày soạn: 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ỚI 1) 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; Begin Write(‘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; Begin Write(‘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. Người soạn Phương Bình, ngày…. tháng…. năm…. Duyệt của tổ trưởng
GV: Diệp Thanh Toàn
Diệp Thanh Toàn
Trang 39
Trường THCS Tây Đô Tuần: 25 Tiết: 49, 50
Giáo án Tin học 8 Ngày soạn: 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âu BT: 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) do If 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) do If St[i]= ‘a’ then St[i]:= ‘e’; 3. Tìm kiếm xâu kí tự trong xâu BT: 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) do If 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) do If copy(St,I,length(st1))= st1 then Begin Delete(st,I,length(st1)); Insert(st2,st,length(st1)); End; 4. Bài tập GV: Diệp Thanh Toàn
Trang 40
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; Begin Write(‘nhap va mot xau ki tu:’);Readln(St); d:=0; For i:=1 to length(St) do If 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; Begin Write(‘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) do If copy(St,I,length(st1))= st1 then Begin Delete(st,I,length(st1)); Insert(st2,st,length(st1)); End; Write(‘xau ket qua la:’);Writeln(St); Readln; End.
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
GV: Diệp Thanh Toàn
Trang 41
Trường THCS Tây Đô Tuần: 26 Tiết: 51, 52
Giáo án Tin học 8 Ngày soạn: 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ỚI 1) 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; Begin Write(‘nhap va mot xau ki tu:’);Readln(St); d:=0; For i:=1 to length(St) do If 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; Begin Write(‘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) do If copy(St,I,length(st1))= st1 then Begin Delete(st,I,length(st1)); Insert(st2,st,length(st1)); End; Write(‘xau ket qua la:’);Writeln(St); Readln;End. Người soạn Phương Bình, ngày…. tháng…. năm…. Duyệt của tổ trưởng Diệp Thanh Toàn GV: Diệp Thanh Toàn
Trang 42
Trường THCS Tây Đô Tuần: 27 Tiết: 53, 54
Giáo án Tin học 8 Ngày soạn: 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: HS:
* Một số ví dụ thực tế. * Ô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. VD1 st=’12345’;val(st,v,c); Kết quả: v=12345, c=0; VD2 st=’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. VD v=123;Str(v,st); Kết quả: st= ‘123’; 4. Bài tập a) 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; Begin Write(‘nhap va mot xau ki tu:’);Readln(St); d:=0; For i:=1 to length(St) do Begin Val(st[i],v,c); GV: Diệp Thanh Toàn
Trang 43
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; Begin Write(‘nhap va mot xau ki tu:’);Readln(St); d:=0; For i:=1 to length(St) do Begin Val(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; Begin Write(‘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. Phương Bình, ngày…. tháng…. năm…. Người soạn Duyệt của tổ trưởng
Diệp Thanh Toàn
GV: Diệp Thanh Toàn
Trang 44
Trường THCS Tây Đô Tuần: 28 Tiết: 55, 56
Giáo án Tin học 8 Ngày soạn: 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; Begin Write(‘nhap va mot xau ki tu:’);Readln(St); d:=0; For i:=1 to length(St) do Begin Val(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; Begin Write(‘nhap va mot xau ki tu:’);Readln(St); d:=0; For i:=1 to length(St) do Begin Val(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
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; Begin Write(‘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.
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
GV: Diệp Thanh Toàn
Trang 46