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;
Tuần: 1 Ngày soạn: 30/08/2006 Tiết: 1, 2 Ngày dạy: ÔN TẬP 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. 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. BÀI ÔN TẬP 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); Các kiểu dữ liệu -Số nguyên: INTEGER, LONGINT Ví dụ: var: integer; -Số thực: REAL Ví dụ: var: Real; IF ... THEN ... ELSE -Cú pháp: IF 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 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. 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. Bài giải Program bai1; Var a,b:integer; Begin write(‘ nhap a=’);readln(a); write(‘ nhap b=’);readln(b); write(‘ Tong la’);writeln(a+b); Readln; end. Program bai2; Var a,b:integer; Begin write(‘ nhap a=’);readln(a); write(‘ nhap b=’);readln(b); write(‘ Tong la’);writeln(a+b); write(‘ Hieu la’);writeln(a-b); Readln; end. Program bai3; Var a:integer; Begin write(‘ nhap a=’);readln(a); write(‘ ket qua la’);writeln(a*a); Readln; end. Program bai4; Var a,b:integer; Begin write(‘ nhap a=’);readln(a); write(‘ nhap b=’);readln(b); write(‘ Tong la’);writeln(a*a+b*b); Readln; end. Program bai5; Var a,b:integer; Begin write(‘ nhap a=’);readln(a); write(‘ nhap b=’);readln(b); write(‘ Tong la’);writeln(a*a+b*b); write(‘ Hieu la’);writeln(a*a-b*b); Readln; end. HƯỚNG DẪN VỀ NHÀ Ôn lại tất cả kiến thức đã học. Việt Trì, ngày. tháng. năm. Duyệt của tổ trưởng Người soạn Lưu Thị Bích Hạnh Tuần: 2 Ngày soạn: Tiết: 3, 4 Ngày dạy: VÒNG LẶP WHILE .. DO MỤC TIÊU *Nắm được cú pháp và cách sử dụng vòng lặp WHILEDO *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 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ụ: 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. Việt Trì, ngày. tháng. năm. Duyệt của tổ trưởng Người soạn Lưu Thị Bích Hạnh Tuần: 3 Ngày soạn: Tiết: 5, 6 Ngày dạy: THỰC HÀNH 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Ị 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. 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. 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 20 do Readln(a); Readln; End. HƯỚNG DẪN VỀ NHÀ Người soạn Lưu Thị Bích Hạnh Lài bài tập và xem trước bài mới. Việt Trì, ngày. tháng. năm. Duyệt của tổ trưởng Tuần: 4 Ngày soạn: Tiết: 7, 8 Ngày dạy: VÒNG LẶP REPEAT .. UNTIL MỤC TIÊU *Nắm được cú pháp và cách sử dụng vòng lặp REPEATUNTIL *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 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ì được kiểm tra trước, nếu thỏa 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 , nếu không thỏa thì tiếp tục thi hành cho đến khi 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. Người soạn Lưu Thị Bích Hạnh Việt trì, ngày. tháng. năm. Duyệt của tổ trưởng Tuần: 5 Ngày soạn: Tiết: 9, 10 Ngày dạy: THỰC HÀNH 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. CHUẨN BỊ 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. 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. BÀI THỰC HÀNH Bài 1: Viết chương trình nhập vào 1 số a. Nếu a không phải là số dương thì nhập lại, đến khi nào là số dương thì dừng. Bài 2: Viết chương trình nhập vào 1 số a. Nếu a không phải là số chẵn thì nhập lại, đến khi nào là số chẵn thì dừng. Bài giải bài 1 Program bai1; Var a:Real; Begin Repeat Readln(a); Until a>0; Readln; End. Bài giải bài 2 Program bai2; Var a:Real; Begin Repeat Readln(a); Until a mod 2=0; Readln; End. HƯỚNG DẪN VỀ NHÀ Người soạn Lưu Thị Bích Hạnh Lài bài tập và xem lại bài thực hành Việt Trì, ngày. tháng. năm. Duyệt của tổ trưởng Tuần: 6 Ngày soạn: Tiết: 11, 12 Ngày dạy: CẤU TRÚC DỮ LIỆU MẢNG 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. 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. 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; 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. Người soạn Lưu Thị Bích Hạnh Việt Trì, ngày. tháng. năm. Duyệt của tổ trưởng Tuần: 7 Ngày soạn: Tiết: 13, 14 Ngày dạy: THỰC HÀNH 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. CHUẨN BỊ GV:*Chẩn bị phòng máy, bài tập, lịch trình tiến trình giờ thự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. 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. Việt Trì, ngày. tháng. năm. Duyệt của tổ trưởng Người soạn Lưu Thị Bích Hạnh 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Ớ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]); Người soạn Lưu Thị Bích Hạnh Write(‘xau da chuan hoa la:’);Writeln(St); Readln; End. Việt Trì, ngày. tháng. năm. Duyệt của tổ trưởng 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â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 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. Việt Trì, ngày. tháng. năm. Duyệt của tổ trưởng Người soạn Lưu Thị Bích Hạnh 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Ớ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;Việt Trì, ngày. tháng. năm. Duyệt của tổ trưởng Người soạn Lưu Thị Bích Hạnh End. 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. 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, c0; 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); 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; Người soạn Lưu Thị Bích Hạnh End.Việt Trì, ngày. tháng. năm. Duyệt của tổ trưởng 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; 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. 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. Việt Trì, ngày. tháng. năm. Duyệt của tổ trưởng Người soạn Lưu Thị Bích Hạnh
Tài liệu đính kèm: