Bài tập tin học

5 1.5K 7
Bài tập tin học

Đang tải... (xem toàn văn)

Thông tin tài liệu

TÊN BÀI GIẢNG: Tiết 31 - KIỂU XÂU Giáo viên hướng dẫn: Thầy, Lê Đình Hoàn Sinh viên thực tâp: Nguyễn Thị Hà Phương Lớp: 11B3 Tiết:7 Thứ 6, ngày:14/03/08 phòng:P12 I. Mục đích, yêu cầu: - Củng cố cho học sinh những hiểu biết về kiểu xâu - Rèn luyện được kĩ năng: + Khai báo kiểu xâu + Nhập/ xuất xâu + Duyệt qua tất cả các kí tự của xâu để thực hiện xử lí tương ứng với từng kí tự đó. + Sử dụng được các hàm và thủ tục - Từng bước hình thành và rèn luyện tư duy lập trình, tác phong của người lập trình. II. Phương pháp giảng dạy: Sử dụng phương pháp giảng giãi, đưa ra những tình huống, những câu hỏi cho học sinh phân tích và hướng dẫn gợi ý. III. Tiến trình dạy học: 1. Ổn định lớp: - Ổn định trật tự - Báo cáo sĩ số 2. Nội dung bài học: Thời gian Nội dung ghi bảng Hoạt động của giáo viên Hoạt động của học sinh Tiết 31: BÀI TẬP 1, Bài tập1 : Viết chương trình nhập vào một xâu. Hãy xóa các kí tự trắng trong xâu đó và in ra xâu đó. Input: Một xâu Output: In ra xâu đã xóa kí tự trắng *Ví dụ: S:’emđihọc’  ‘emdihoc’ *Ý tưởng giải thuật: - Nhập một xâu - Xóa các kí tự trắng - In ra xâu đã xóa kí tự trắng. + Xóa: Dùng for để duyệt (1length(xâu)) Nếu s[i]= kí tự trắng thì xoa Sau khi học xong kiểu xâu, có một tiết bài tập và chúng ta cũng đã thực hành rồi. Các em đã thành thạo về kiểu xâu, đặc biệt là cách khai báo và nhâp, xuất xâu. Vậy bây giờ chúng ta sẽ đi tiếp phần bài tập về kiểu xâu và hôm nay chúng ta sẽ đi sâu hơn vào các hàm và thủ tục. Xác định bài toán? Em nào lấy một ví dụ về một xâu? Kết quả của bài toán sẽ là xâu gì? Bây giờ nêu lên ý tưởng giải thuật? Nêu cách xóa các kí tự trắng? (gợi ý: dùng lệnh gì để duyệt? Nếu bắt gặp kí tự trắng thì như thế nào? Không phải kí tự trắng thì như thế nào?). Nếu không bằng kí tự trắng thì làm gì? Để xóa thì ta sử dụng thủ tục gì? Ví dụ ta xét đến phần tử thứ 3 tức là i=3. Thì để HSTL HS đưa ra ví dụ HSTL HSTL HSTL HSTL Delete(s,vt,n) *Viết chương trình: Program bai1; Var s:string; i:byte; BEGIN Write(‘nhap xau:’);readln(s); For i:=1 to length(s) do If s[i]=’ ‘ then Delete(s,i,1); Write(s); END. 2, Bài toán 2: Viết chương trình nhập vào một xâu. In ra xâu không chứa từ đầu tiên của xâu đó. Input: Một xâu Output: Xâu không chứa từ đầu tiên của xâu đó. *Ví dụ: S:’lop 11b3 của em’  ‘11b3 của em’ *Ý tưởng giải thuật: muốn xóa kí tự này thì các tham số trong thủ tục delete phải là gì? Một bạn lên viết chương trình Ai có thể nêu lên cách giải bài toán này bằng cách khác? Chúng ta có thể tạo một xâu mới. Trong đó ta sẽ duyệt từng phần tử của xâu s nếu phần tử nào khác kí tự trắng thì copy sang xâu mới tạo đó. Thì cuối cùng ta được xâu mới không chứa kí tự trắng. Đây chính là bài tập về nhà hãy giải bài toán theo cách này cách tạo một xâu mới. Bây giờ chúng ta sẽ tiếp tục với bài toán 2 Một bạn xác định bài toán? Một đưa ra một ví dụ về một xâu bất kì? Bài toán sẽ đưa ra kết quả gì? Một em đưa ra ý tưởng giải thuật? Delete(s,i,1) HS lên bảng HSTL HSTL HSTL ‘11b3 của em’ HSTL - Nhập xâu - Xóa kí tự đầu tiên - IN ra xâu đã xóa kí tự đầu tiên * Xóa từ đầu tiên - Delete(s,vt,n) +Vt=1 + n=pos(‘ ‘,s) *Viết chương trình: Program bai2; Var s:string; n:byte; BEGIN Phần nhập và in ra thì chúng ta đã thành thạo rồi. Vậy chúng ta cùng nhau phân tích cách xóa kí tự đầu tiên. Để xóa thì chúng ta dùng thủ tục gì đây? Đối với ví dụ trên để xóa kí tự đầu tiên thì các tham số của delete là như thế nào? Nếu là ta xóa 3 kí tự thì xâu của nó sẽ có một kí tự trắng ở giữa sẽ không đẹp. Do đó chúng ta nên xóa mấy kí tự? Đó là ví dụ cụ thể thì ta mới lấy chính xác như vậy. Nếu là một xâu bất kì thì ta phải làm thế nào để xác định các tham số đó. Với bất kì xâu nào ta cũng đều có delete vị trí của từ đầu tiên thì bao giờ cũng xuất phát từ bao nhiêu? Còn việc xóa bao nhiêu kí tự thì ta còn phải phụ thuộc từ đầu tiên dài bao nhiêu nữa. Vậy ta thấy rằng độ dài của kí tự đầu tiên kể cả dấu cách nữa chính là bằng cái gì?(gợi ý: chính là vị trí của kí tự nào?) Vậy ta phải biết được vị trí của kí tự trắng đầu tiên. Mà để biết vị trí của kí tự trắng đầu tiên thì ta phải sử dụng hàm gì đây? Bây giờ một bạn lên viết chương trình, các bạn còn lại viết vào nháp. Cố sẽ gọi bất kì em nào lên để chấm bài. delete delete(s,1,3) delete(s,1,4) 1 Kí tự trắng Pos(s1,s2) HS lên bảng Write(‘nhap xau:’);readln(s); n:=pos(‘ ‘,s); Delete(s,1,n); Write(s); Readln; END. 3,Bài toán 3: Nhập vào một xâu. IN ra xâu mới trong đó các kí tự là chữ cái thường thì in hoa lên, còn lại thì giữ nguyên. Input: một xâu Output: xâu đã in hoa * ví dụ: S:’Lop 11b3’  ‘LOP 11B3’ Có cách giải quyết bài toán bằng cách khác không? Các em về tìm thêm các cách giải quyết bài toán này bằng cách khác. Còn bây giờ chúng ta sẽ vào tiếp bài tập tiếp theo. Xác định bài toán? Phần còn lại các em tự về nhà giải. HSTL HSTL Giáo viên hướng dẫn duyệt Thầy, Lê Đình Hoàn . gian Nội dung ghi bảng Hoạt động của giáo viên Hoạt động của học sinh Tiết 31: BÀI TẬP 1, Bài tập1 : Viết chương trình nhập vào một xâu. Hãy xóa các kí tự. Đây chính là bài tập về nhà hãy giải bài toán theo cách này cách tạo một xâu mới. Bây giờ chúng ta sẽ tiếp tục với bài toán 2 Một bạn xác định bài toán? Một

Ngày đăng: 21/06/2013, 01:25

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan