1. Trang chủ
  2. » Giáo án - Bài giảng

Gián án Tiết 25 - 52

51 495 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Tập Và Thực Hành 3(t2)
Trường học Trường Đại Học
Thể loại Giáo án
Năm xuất bản 2008
Thành phố Hà Nội
Định dạng
Số trang 51
Dung lượng 533 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨCHoạt động 113’ Tìm hiểu cách sử dụng lệnh và kiểu dữ liệu mảng một chiều qua chương trình có sẳn Gv:Đưa bài toán lên máy chiếu, yêu cầu Hs thự

Trang 1

Ngày soạn 12 tháng 11 năm 2008

BÀI TẬP VÀ THỰC HÀNH 3(t2)

A.MỤC ĐÍCH:

1.Kiến thức:

- Củng cố lại một số kiến thức cơ bản về kiểu dữ liệu mảng một chiều

- Củng cố lại một số câu lệnh như: Nhập và xuất, rẽ nhánh và lặp

2.Kỹ năng:

- Nâng cao kỷ năng sử dụng một số lệnh kiểu dữ liệu mảng một chiều trong lập trình, cụ thể:

+Khai báo mảng một chiều

+Nhập/ xuất dữ liệu cho mảng

+Duyệt qua tất cả các phần tử của mảng để xử lý từng phần tử

-Biết giải một số bài toán cơ bản:

+Tính tổng các phần tử thoả mãn điều kiện nào đó

+ Bài toán đếm thoả mãn một điều kiện cho trước

3.Thái độ:

- Tiếp tục xây dựng lòng yêu thích giải toán bằng lập trình trên máy vi tính

- Nghiêm túc trong thực hành, giữ gìn máy tính

B.PHƯƠNG PHÁP: Thực hành + Vấn đáp tái hiện

C.CHUẨN BỊ:

1.Giáo viên: Giáo án, SGK, SBT, máy chiếu.

2.Học sinh: Chuẩn bị bài ở nhà.

D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Vắng II.KIỂM TRA BÀI CŨ(15’): Kiểm tra 15 phút (Gv đưa lên máy chiếu)

ĐỀ

Câu 1(5đ).Hãy viết cú pháp khai báo mảng một chiều?

Câu 2(5đ).Viết đoạn chương trình nhập và in mảng một chiều vừa nhập?

ĐÁP ÁN

Var <Ds biến mảng>:array[n1 n2] of <Kiểu phần tử> ; *Khai báo gián tiếp: Viết đúng 2,5đ

Type <Tên kiểu mảng>=array[n1 n2] Of <Kiểu phần tử>;

Var <Ds biến mảng> : <tên kiểu mảng>;

Câu2:*Đoạn chương trình nhập mảng một chiều Viết đúng 2,5đ

Write(‘Nhap so phan tu N=’); Readln(N);

For i=1 To N Do

Begin

Write(‘Nhap a[‘,i,’]=’); Readln(a[i]);

End;

*Đoạn chương trình in mảng một chiều vừa nhập: Viết đúng 2,5đ

For i:=1 To N do Write(‘Gia tri a[‘,i,’]=’, a[i]);

Trang 2

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC

Hoạt động 1(13’) (Tìm hiểu cách sử dụng lệnh và kiểu dữ liệu

mảng một chiều qua chương trình có sẳn)

Gv:Đưa bài toán lên máy chiếu, yêu cầu Hs

thực hiện theo các câu hỏi sau:

Hãy tìm hiểu, gõ chương trình vào máy và

chạy chương trình dưới đây:

Var A:array[1 100] of Integer;

S,N,i,K:Byte;

Begin

Randomize;

Write('Nhap gia tri N='); Readln(N);

Write('Nhap so nguyen K='); Readln(K);

If a[i] mod k =0 then S:=S+a[i];

Writeln('Tong can tinh la S=',S);

Gv:Quan sat học sinh thực hành.

Hàm chuẩn Random(n), Randomize làm chức

năng gì trong chương trình?

1.Đoạn chương trình nào tạo mảng có giá trị

tuyệt đối không vượt quá 300?

2.Giải sử chương trình bỏ hàm chuẩn

Radomize có được hay không?Vì sao?

Hs:Minh hoạ trên máy rồi giải thích

Gv:

Đưa chương trình trên máy chiếu và giải thích

từng đoạn chương trình để Hs hiểu vấn đề

Hoạt động 2(13’) (Viết chương trình về bài toán tạo mảng)

Gv:Đưa bài toán lên màn hình máy chiếu

Hs:Đọc đề bài toán 2

Gv:Yêu cầu Hs thực hiện một số việc như sau:

Hãy cho biết cách tổ chức dữ liệu của bài

Bài toán 1:

Tạo mảng A gồm n (n≤100) số nguyên, mỗi số

có trị tuyệt đó không vượt quá 300 Tính tổng cácphần tử của mảng là bội số của một số nguyêndương K cho trước

Var A:array[1 100] of Integer;

S,N,i,K:Byte;

Begin Randomize;

Write('Nhap gia tri N='); Readln(N);

Write('Nhap so nguyen K='); Readln(K);

For i:=1 to n do A[i]:=random(300)-random(300);

For i:=1 to N do Write(A[i]:5);

Writeln;

S:=0;

For i:=1 To N do

If a[i] mod k =0 then S:=S+a[i];

Writeln('Tong can tinh la S=',S);

-Radomize:Khởi tạo cơ chế sinh số ngẫu nhiên

Bài toán 2:(SBT.4.10/33): Cho hai dãy số nguyên

A={a1, a2, , aN} và B={b1, b2, ,bN} Dãy C={c1, c2, , c2n} được xác định như sau:

b.Tạo và đưa ra màn hình mảng C

Trang 3

IV.CỦNG CỐ(1’): Nhận xét buổi thực hành=> Đưa ra một số lổi thường gặp trong thực hành V.DẶN DÒ(1’): Đưa lên màn hình máy chiếu như sau:

-Tiết sau học tiết: Bài tập và thực hành 4(T2) -Bài tập về nhà: 1 Làm một số bài tập sau: 4.7,4.8,4.9,4.10 /trang 32,33 (SBT)

Ngày soạn 20 tháng 11 năm 2008

BÀI TẬP

A.MỤC ĐÍCH:

Tiết

26

Trang 4

1.Kiến thức:

- Củng cố các kiến thức cơ bản khi lập trình với kiểu dữ liệu mảng

- Làm quen với thuật toán sắp xếp nổi bọt

- Hs nắm được một số tổ hợp phím khi chạy chương trình Pascal

- Tự giác, chủ động trong khi thực hành

B.PHƯƠNG PHÁP: Thực hành + Vấn đáp tái hiện

C.CHUẨN BỊ:

3.Giáo viên: Giáo án, SGK, SBT, máy chiếu.

4.Học sinh: Chuẩn bị bài ở nhà.

D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Lớp 11A 1 11B 1 11B 2 11B 3 11B 4 Vắng

II.KIỂM TRA BÀI CŨ(5’): Gv đưa câu hỏi lên máy chiếu

1 Hãy nêu cách khai báo mảng hai chiều?

2.Hãy viết đoạn chương trình nhập và in mảng hai chiều?

a.Đặt vấn đề(1’): Bài tập và Thực hành 4(T1)

b.Triển khai bài mới:

Hoạt động 1(20’) (Tìm hiểu cách sử dụng lệnh và kiểu dữ liệu

mảng một chiều qua chương trình có sẳn)

Gv:

Đưa bài toán lên máy chiếu, yêu cầu Hs

thực hiện theo các câu hỏi sau:

a.Hãy tìm hiểu và chạy thử chương trình thực hiện

thuật toán sắp xếp dãy số nguyên bằng thuật toántráo đổi với các giá trị khác nhau của n dưới đây

Type dayso=array[1 250] of Integer;

Var i,j,n,Tg:Integer;

Readln(A[i]);

End;

Trang 5

- Mảng a được khai báo gián tiếp

- Đoạn chương trình hoán đổi:

Gv:Yêu cầu Hs thực hành với bộ dữ liệu khác.

Hs:Thực hành với bộ dữ liệu bất kỳ để kiểm tra

tính đúng đắn của thuật toán

Hoạt động 2(15’) (Bài toán về đếm) Gv: Đưa yêu cầu ở trên máy chiếu về bài toán

trên như sau:

Khai báo thêm biến nguyên Dem và bổ sung

vào chương trình những câu lệnh cần thiết để

biến Dem tính số lần thực hiện tráo đổi trong

thuật toán Đưa kết quả tìm được ra màn

Gv:Quan sát Hs thực hành trên máy về cách

sửa chương trình đếm số lần tráo đổi

Hs:Thực hành trên máy tính với một dữ liệu bất

kỳ và quan sát kết của bài toán

For j:=n downto 2 do For i:=1 to j -1 do

If A[i]>A[i+1] then Begin

Tg:=A[i];

A[i]:=A[i+1];

A[i+1]:=Tg;

End;

Writeln('Day so duoc sap xep ');

For i:=1 to n do Write(A[i]:5);

Readln;

END.

b.Khai báo thêm biến nguyên Dem và bổ sung

vào chương trình những câu lệnh cần thiết để biến

Dem tính số lần thực hiện tráo đổi trong thuật

toán Đưa kết quả tìm được ra màn hình.?

Type dayso=array[1 250] of Integer;

Readln(A[i]);

End;

Dem:=0;

For j:=n downto 2 do For i:=1 to j -1 do

If A[i]>A[i+1] then Begin

Writeln('Day so duoc sap xep ');

For i:=1 to n do Write(A[i]:5);

Writeln(‘So lan trao doi la’, Dem);

Readln;

END.

Trang 6

IV.CỦNG CỐ(2’):

-Nhận xét buổi thực hành=> Đưa ra một số lổi thường gặp trong thực hành

- Cần nắm thuật toán sắp xếp nổi bọt

V.DẶN DÒ(1’): Đưa lên màn hình máy chiếu như sau:

-Tiết sau học tiết: Bài tập và thực hành 4(T2) -Bài tập về nhà: 1 Làm một số bài tập sau: Bài 1->9/79(SGK)

2.Viết chương trình tính bảng cửu chương

Ngày soạn 27 tháng 11 năm 2008

KIỂU DỮ LIỆU XÂU

(tiết 1)

Tiết

27

Trang 7

A.MỤC ĐÍCH:

1.Kiến thức:

- Biết được một kiểu dữ liệu mới(Kiểu dữ liệu xâu) như: khai báo biến kiểu xâu, tham chiếu đến biến xâu,

- Phân biệt sự giống nhau va khác nhau giữa kiểu mảng kí tự với xâu ký tự

- Biết được các phép toán liên quan đến xâu

5.Giáo viên: Giáo án, SGK, SBT, máy chiếu.

6.Học sinh: Chuẩn bị bài ở nhà.

D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Lớp 11A 1 11B 1 11B 2 11B 3 11B 4 Vắng

II.KIỂM TRA BÀI CŨ(3’): Đưa bài toán lên máy chiếu như sau

Hãy viết chương trình nhập vào N số nguyên dương, dãy ký tự A={a1,a2, ,aN } được nhập vào

từ bàn phím và thông báo dãy vừa nhập ra màn hình

Y/c:Hãy khai báo mảng ký tự ?

a.Đặt vấn đề(1’): Trong thực tế có những bài toán không chỉ thuộc kiểu dữ liệu số mà còn cả

dạng phi số đó là kiểu dữ liệu xâu Bài học hôm nay chúng ta tìm hiểu xem kiểu dữ liệu xâu cókhai báo biến như thế nào, cách truy xuất, có giống với kiểu dữ liệu mảng hay không?

b.Triển khai bài mới:

Hoạt động 1(20’) (Tìm hiểu khai báo biến) Gv: Đưa bài toán lên màn hình máy chiếu

Viết chương trình nhập họ và tên của 30 học

sinh trong lớp?

Y/c:

Bài toán đó ta sẽ chọn kiểu dữ liệu như thế

nào? Khai báo biến như thế nào?

Hs:Khai báo kiểu mảng ký tự

Gv:Minh hoạ chương trình của bài toán trên ở

trên máy chiếu để hs quan sát những khó khăn

For i:=1 to n do Read(a[i]);

Chương trình trên khi chạy có gặp khó khăn

Trang 8

Em hiểu thế nào là xâu ký tự? Trong NNLT có

quy định như thế nào?

Hs:Dựa vào SGK để trả lời câu hỏi.

Gv:Đưa khái niệm lên máy chiếu và tìm hiểu ví

Khi khai báo không có [độ dài lớn nhất của xâu]

thì số lượng ký tự tối đa là bao nhiêu?

Hs:Ký tự tối đa là 255.

Gv:Xâu chỉ gồm một ký tự trống được viết như

thế nào? Số lượng ký tự bao nhiêu?

Hs:Dựa vào SGK để trả lời câu hỏi.

Gv:Xâu rỗng được viết như thế nào? Độ dài của

xâu rỗng là bao nhiêu?

Hs:Dựa trên hiểu biết để trả lời

Gv: Đưa bài tập sau lên máy chiếu

Var st:string; c:char;

Begin

C:=ST[1]; {1}

C:=st; {2}

End.

Trong hai câu lệnh {1}, {2} câu lệnh nào đúng?

Hs:Dựa vào kiến thức đã học để trả lời câu hỏi.

Hoạt động 2(16’) (Tìm hiểu một số phép toán xử lý xâu)

Độ dài của xâu (số ký tụ trong xâu): 7 Khi tham chiếu đến ký tự thứ I của xâu, ta viếtA[i]

b.Khai báo biến:

Var <Tên biến>:String[độ dài lớn nhất của xâu]; Var Hten:String[30];

*Lưu ý:

-Khi khai báo xâu có thể bỏ qua phần khai báo [độ

dài lớn nhất của xâu], khi đó độ dài lớn nhất củaxâu gầm định là 255 ký tự

a.Phép toán xâu:Là biểu thức trong đó các toán

hạng là các biến xâu, biến ký tự

Trang 9

Write(ST);

Readln;

End

Hãy cho biết kết quả in ra trên màn hình? Cho

biết chức năng của phép +?

Hs:Quan sát Gv minh hoạ đoạn chương trình rồi

trả lời câu hỏi

Gv:Đưa ra ví dụ trên máy chiếu và chạy chương

Hãy cho biết kết quả in ra màn hình ?Cách so

sánh hai xâu được thể hiện như thế nào?

Hs:Quan sát chương trình rồi trả lời kết quả in ra

*Ký tự đầu tiên khác nhau giữa chúng ở xâu

A có mã ASCII lớn hơn ở xâu B

Ví dụ: ‘HA NOI’ > ‘HA NAM’

*Xâu B là đoạn đầu của xâu A

Ví dụ: ‘HA NOI’ > ‘HA’

IV.CỦNG CỐ(3’):

-Nắm cú pháp khai báo biến kiểu xâu, cách truy xuất từng phần tử của xâu

- Hãy viết chương trình nhập họ tên của hai học sinh và so sánh xâu nào lớn hơn thì đư ra màn hình còn bằng nhau thì đưa ra cả hai xâu?

Var Hoten1, Hoten2:String[25];

Begin

Write(‘Nhap Ho va Ten 1=’); Readln(Hoten1);

Write(‘Nhap Ho va Ten 2=’); Readln(Hoten2);

If Hoten 1> Hoten2 Then Writeln(Hoten1)

V.DẶN DÒ(1’): Đưa lên màn hình máy chiếu như sau:

-Tiết sau học tiết: Kiểu xâu(T2) -Bài tập về nhà: 1 Làm một số bài tập sau: Bài 10/80(SGK)

- Xem và đọc trả lời các câu hỏi sau:

1.Xử lý xâu gồm có những thủ tục nào?

2.Viết chương trình nhập họ và tên và đếïm xem có bao nhiêu chữ N xuất hiện trong xâu ho tên?

Trang 10

Ngày soạn 04 tháng 03 năm 2008

KIỂU DỮ LIỆU XÂU

(tiết 2)

A.MỤC ĐÍCH:

Tiết

28

Trang 11

1.Kiến thức:

- Biết được lợi ích của các hàm và thủ tục liên quan đến xâu trong ngôn ngữ lập trình Pascal

- Biết được chức năng của các hàm và thủ tục chuẩn, nắm được cấu trúc chung, hiểu được cáctham số của hàm và thủ tục

7.Giáo viên: Giáo án, SGK, máy chiếu.

8.Học sinh: Chuẩn bị bài ở nhà.

D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Lớp 11A 1 11B 1 11B 2 11B 3 11B 4 Vắng

II.KIỂM TRA BÀI CŨ(3’): Đưa bài toán lên máy chiếu như sau

-Hãy nêu các khai báo kiểu dữ liệu xâu? Lấy ví dụ minh hoạ?

-Hãy viết đoạn chương trình nhập vào từ bàn phím hai chuổi bất kỳ và so sánh chuổi nào lớn hơnthì in ra màn hình?

a.Đặt vấn đề(1’): Ở tiết trước chúng ta học bài kiểu dữ liệu xâu, ngày hôm nay chúng ta tìm hiểu

xem kiểu dữ liệu xâu có những hàm và thủ tục nào liên quan đến xâu

b.Triển khai bài mới:

Hãy cho biết kết quả in ra màn hình?

Hs: Dựa vào thủ tục xoá để trả lời câu hỏi

Gv:Hãy cho biết kết quả các thủ tục xoá các

Delete(‘ABCD’,1,0)->’ABCD’

Trang 12

Hãy nêu chức năng của hàm Insert(s1,s2,vt)?

Hs:Dựa vào SGK để trả lời câu hỏi

Hãy cho biết kết quả in ra màn hinh?

Hs: Trả lời ‘HA NOI’

Gv:Đưa câu hỏi sau lên máy chiếu

COPY(‘BAI THUC HANH’,5,9);

Hs:Trả lời ‘THUC HANH’

Gv:-Giới thiệu cấu trúc chung và chức năng

Gv:- Giới thiệu cấu trúc và chức năng của hàm

Length(s), Pos(s1,s2), Upcase(ch)

-Hãy cho biết kết quả in ra màn hình:

+Hàm Length(S) cho giá trị là độ dài của xâu

Ví dụ: Length(‘THUC HANH’)=9

+Hàm Pos(S1,S2) cho vị trí xuất hiện đầu tiên củaxâu S1 trong xâu S2

Ví dụ:

Trang 13

Hs:Dựa vào cú pháp của các hàm để trả lời

câu hỏi

Gv:Minh hoạ trên máy chiếu để Hs thấy kết

quả của các hàm trên

Hạot động 2(17’) (Giới thiệu một số ví dụ)

Gv:

-Giáo viên soạn sẳn các ví dụ để tiện cho

Hs theo dõi trên màn hình cũng như việc chạy

thử chương trình và không làm mất thời gian

ngồi viết chương trình

-Với mỗi ví dụ, Gv đi sâu vào câu lệnh

trực tiếp đáp ứng yêu cầu của ví dụ, như vậy

các em tiếp thu nhanh hơn

Ví dụ 1 : Nhập 1 xâu, viết ra màn hình xâu dài

hơn

Ví dụ 2 : Nhập 1 xâu, kiểm tra xem ký tự đầu tiên

của xâu S1 có trùng với ký tự cuối cùng của xâu

S2 hay không ?

Ví dụ 3 : Nhập 1 xâu, viết ra màn hình xâu đó theo

thứ tự ngược lại của các ký tự trong xâu

Pos(‘cd’,’abcdef’)=3 Pos(‘k’,’abcdef’) =0 +Hàm Upcase(ch) cho chữ cái in hoa ứng với chữcái trong ch

Ví dụ: Upcase(‘d’)=’D’

3.Một số ví dụ:

VD 1 :

Var s1,s2 : String ;Begin

Write('Nhap xau thu 1 : ') ; Readln(s1) ;

Write('Nhap xau thu 2 : ') ; Readln(s2) ;

If length(s1) > Length(s2) then Write(s1)

else Write(s2);

Readln ;End

VD 2 :

Var s1,s2 : String ;

x : Byte ;Begin Write('Nhap xau thu 1 : ');

Readln(s1) ; Write('Nhap xau thu 2 : ');

Readln(s2) ;

x := length(s2) ;

If s1[1] = s2[x] then Write('Trung nha') else

Write('Khac nhau');

Readln ;End

VD 3 :

Var i,k : Byte ;

a : String ;Begin

Write('Nhap xau : ') ;

Trang 14

Ví dụ 4 : Nhập 1 xâu, viết ra màn hình xâu đó

nhưng đã được bỏ tất cả các ký tự là dấu cách

Ví dụ 5 : Nhập 1 xâu, viết ra màn hình xâu gồm

các ký tự số của xâu đó

Readln(a) ;

k := length(a) ; For i := k downto 1 do Write(a[i]) ;

Readln ;End

VD 4 :

Var i,k : Byte ; a,b : String ;Begin

Write('Nhap xau : ') ; Readln(a) ;

k := length(a) ;

b :='' ; For i := 1 to k do

if a[i] <> '' then

b := b+a[i] ; Write(b) ; Readln ;End

VD 5 :

Var s1,s2 : String ;

i : Byte ;Begin Write('Nhap xau s1 : ') ; Readln(s1) ;

s2 := '' ; For i := 1 to length(s1) do

If ('0'<s1[i]) and (s1[i]<='9') then s2 := s2 + s1[i] ;

Write(s2);

Readln ;End

IV.CỦNG CỐ(2’):

- Cần nắm cấu trúc chung của một số hàm và thủ tục xử lý xâu.

-Thông qua các bài tập cơ bản để nắm cách khai báo biên và một số câu lệnh cơ bản

V.DẶN DÒ(1’): Đưa lên màn hình máy chiếu như sau:

-Tiết sau học tiết: Tiết 31: Bài tập và Thực hành 4(t1)

Ngày soạn 05 tháng 12 năm 2008

Trang 15

- Khắc sâu thêm phần kiến thức về lý thuyết kiểu xâu kí tự, đặc biệt các hàm và thủ tục liên quan -Nắm được một số thuật toán cơ bản: tạo xâu mới, đếm số lần xuất hiện một ký tự,

2.Kỹ năng:

-Khai báo biến kiểu xâu

-Nập, xuất giá trị cho biến xâu

-Duyệt qua tất cả các ký tự của xâu

9.Giáo viên: Giáo án, SGK, máy chiếu.

10. Học sinh: Chuẩn bị bài ở nhà.

D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Lớp 11A 1 11B 1 11B 2 11B 3 11B 4 Vắng

II.KIỂM TRA BÀI CŨ(3’): Đưa bài toán lên máy chiếu như sau

Hãy cho biết quả của một số hàm và thủ tục chuẩn sau đây:

S=’THUC HANH TIN HOC’

b.Triển khai bài mới:

-Giáo viên yêu cầu Hs gõ một số chương

trình sau vào NNLT Pascal, rồi chạy chương

trình để kiểm tra tính đúng đắn của thuật toán

-Với mỗi ví dụ, Gv đi sâu vào giải thích

từng câu lệnh trực tiếp đáp ứng yêu cầu của ví

dụ, như vậy các em tiếp thu nhanh hơn

Hs : Soạn thảo từng ví dụ vào máy và tìm hiểu

cách sử dụng biến, hàm và thủ tục

Ví dụ 1 : Nhập 1 xâu, kiểm tra xem ký tự đầu tiên

của xâu S1 có trùng với ký tự cuối cùng của xâu

Trang 16

Ví dụ 2 : Nhập 1 xâu, viết ra màn hình xâu đó

theo thứ tự ngược lại của các ký tự trong xâu

Ví dụ 3 : Nhập 1 xâu, viết ra màn hình xâu đó

nhưng đã được bỏ tất cả các ký tự là dấu cách

Ví dụ 4 : Nhập 1 xâu, viết ra màn hình xâu gồm

các ký tự số của xâu đó

Readln(s1) ; Write('Nhap xau thu 2 : ');

Readln(s2) ;

x := length(s2) ;

If s1[1] = s2[x] then Write('Trung nha') else

Write('Khac nhau');

Readln ;End

VD 2 :

Var i,k : Byte ;

a : String ;Begin

Write('Nhap xau : ') ; Readln(a) ;

k := length(a) ; For i := k downto 1 do Write(a[i]) ;

Readln ;End

VD 3 :

Var i,k : Byte ; a,b : String ;Begin

Write('Nhap xau : ') ; Readln(a) ;

k := length(a) ;

b :='' ; For i := 1 to k do

if a[i] <> '' then

b := b+a[i] ; Write(b) ; Readln ;End

VD 4 :

Var s1,s2 : String ;

i : Byte ;Begin Write('Nhap xau s1 : ') ; Readln(s1) ;

s2 := '' ; For i := 1 to length(s1) do

If ('0'<s1[i]) and (s1[i]<='9') then s2 := s2 + s1[i] ;

Write(s2);

Readln ;

Trang 17

Gv:Yêu cầu hs kiểm tra với một số bộ dữ liệu

được nhập vào từ bàn phím và giải thích từng

câu lệnh ở trong 4 ví dụ

Hoạt động 2(17’) (Rèn luyện kỷ năng lập trình)

Gv:Đưa câu hỏi lên máy chiếu

Hãy cho biết hàm đổi ký tự thường thành chữ

Hs:Thực hành trên máy rồi trả lời câu hỏi

For i:=1 To Length(S) Do

Write(Upcase(S[i]);

Gv:Đưa câu hỏi bài 2 lên máy chiếu

Hãy nêu ý tưởng thuật toán đếm trong xâu S

có bao nhiêu ký tự là số?

Hs:Thực hành trên máy->Trả lời câu hỏi

Dem:=0;

For i:=1 To length(S) Do

If (S[i]>=’0’) and (S[i] <=’9’) Then

Dem:=Dem+1;

Gv:Quan sát thực hành của hs và đưa ra câu

hỏi tiếp theo

Ngoài cách viết thuật toán như trê ta còn có

cách viết nào khác nửa?

Bài1:Hãy viết chương trình nhập vào một xâu S

bất kỳ và đưa ra màn hình xâu in hoa.

Var S : String ;

i : Byte ;Begin Write('Nhap xau S : ') ; Readln(S) ;

For i:=1 To Length(S) Do Write(Upcase(S[i]);

Readln;

End

Bài2:Hãy viết chương trình nhập vào một xâu bất

kỳ (có cả ký tự và ký tự số) và đưa ra màn hình có bao nhiêu ký tự là số?

Ví dụ:

S=’08bC156546CD’ =>Dem=8Var S:String;

i, Dem:Byte;

Begin Write(‘Nhap xau S=’);Readln(S);

Dem:=0;

For i:=1 To length(S) Do

If (S[i]>=’0’) and (S[i] <=’9’) Then Dem:=Dem+1;

Write(‘Tong so ky tu la so’,Dem);

Readln;

End

IV.CỦNG CỐ(2’):

- Nhận xét buổi thực hành=>đưa ra một số lổi thường gặp khi thực hành.

- Cần nắm cách khai báo biến xâu, các hàm và thủ tục xử lý xâu,

V.DẶN DÒ(1’): Đưa lên màn hình máy chiếu như sau:

Trang 18

-Tiết sau học tiết: Tiết 32: Bài tập và Thực hành 5(t2) -Bài tập về nhà: 10,11/79(SGK)

- Xem và đọc trả lời các câu hỏi sau:

1.Hãy viết chương trình nhập vào từ bàn phím xâu S và đếm xâu S có bao nhiêu dấu cách?2.Hãy viết chương trình nhập từ bàn phím xâu S và tách một xâu con từ xâu S bắt đầu từ vị trí

- Hs tự xây dựng một số thật toán về xâu và soạn thảo trong NNLT Pascal

- Khắc sâu thêm phần kiến thức về lý thuyết kiểu xâu kí tự, đặc biệt các hàm và thủ tục liên quan

Tiết

30

Trang 19

2.Kỹ năng:

-Khai báo biến kiểu xâu

- Nhập, xuất giá trị cho biến xâu

- Duyệt qua tất cả các ký tự của xâu

11. Giáo viên: Giáo án, SGK, máy chiếu.

12. Học sinh: Chuẩn bị bài ở nhà.

D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Lớp 11A 1 11B 1 11B 2 11B 3 11B 4 Vắng

II.KIỂM TRA BÀI CŨ(3’): Gọi một Hs lên bảng viết

Hãy nêu cú pháp và ý nghĩa các hàm và thủ tục cơ bản xử lý xâu? Mỗi thủ tục hoặc hàm lấy một

ví dụ?

a.Đặt vấn đề(1’): Hôm nay chúng ta học bài “Bài tập và Thực hành5(t2)” để kiểm tra một số

thuật toán, một số thủ tục và hàm xử lý xâu

b.Triển khai bài mới:

Hãy gõ chương tình và chạy thử với các bộ

test như sau:

A=’abccba’

A=’fgđhfs’

Hs:Quan sát trên màn hình máy chiếu và SGK

để gõ chương trình vào NNLT Pascal

Gv: Quan sát Hs gõ chương trình và đưa ra

câu hỏi thảo luận như sau:

Với hai bộ test trên thì kết quả xuất ra màn

hình như thế nào?

Hs: Thực hành rồi trả lời kết qua.í

Gv: Hãy sửa lại chương trình trên mà không

Nhập vào từ bàn phím một xâu Kiểm tra xâu

đó có phải là xâu đối xứng hay không Xâu đối xứng có tính chất: đọc nó từ phải sang trái cũng thu được kết quả giống như đọc từ trái sang phải (Còn gọi xâu là palindrome)

a.Hãy chạy thử chương trình sau:

Var i,x:Byte;

a,p:String;

Begin Write(‘Nhap xau a=’); Readln(a);

P:=’’;

For i:=length(a) Downto 1 Do p:=p+a[i];

If a=p Then Write(‘Xau là palindrome) Else Write(‘Xau khong phai la palindrome); Readln;

End

b.Hãy viết lại chương trình trên, trong đó không dùng biến xâu p?

Var i,x:Byte;

a,p:String;

Trang 20

-Soạn thảo chương trình

-Chạy thử chương trnhf với bộ Test trên

If i>(x div 2) Then Write(‘Xau là palindrome)

Else Write(‘Xau khong phai la palindrome);

Hoạt động 2(22’) (Rèn luyện kỷ năng lập trình)

Gv:Đưa câu hỏi lên máy chiếu

S=’AbaCDacd’

Hãy cho biết số lần xuất hiện của mỗi chữ cái

tiếng Anh trong S ( không phân biệt chữ hoa

Gv: Hãy viết đoạn chương trình đếm số lần

xuất hiện chữ cái trong tiếng Anh?

Kt:=True;

X:=length(a);

For i:=1 To x div 2 Do

If a[i]<> a[x-i+1] Then kt:=False;

If Kt Then Write(‘Xau là palindrome) Else Write(‘Xau khong phai la palindrome);Readln;

End

II.Vận dụng kiểu dữ liệu xâu để lập trình:

Bài 2: Viết chương trình nhập từ bàn phím một

xâu S và thông báo số lần xuất hiện của mỗi chữ cái tiếng Anh trong S ( không phân biệt chữ hoa hay chữ thường).

Input:Nhập xâu S Output: Đếm số lần xuất hiền chữ cái tiếng

anh

Trang 21

Dem[S[i]]:=Dem[s[i]]+1;

End;

Gv:Yêu cầu hoạt động theo nhóm (2Hs/1máy

tính) theo mẫu sau:

Write('Nhap xau S='); Readln(S);

For ch:='A' To 'Z' Do Dem[ch]:= ;

For i:=1 to Length(S) Do

If S[i] in ['A' 'Z'] Then

Hãy viết chương trình đầy đủ và chạy thử

chương trình để để tra xem kết quả đúng?

Hs:Thảo luận theo nhóm để điền và chạy

chương trình rồi báo cáo kết quả

Gv:Quan sát và đưa toàn bộ chương trình lên

máy chiếu và chạy thử để Hs quan sát

Write('Nhap xau S='); Readln(S);

For ch:='A' To 'Z' Do Dem[ch]:=0;

For i:=1 to Length(S) Do

If S[i] in ['A' 'Z'] Then Begin

End.

IV.CỦNG CỐ(2’):

- Nhận xét buổi thực hành=>đưa ra một số lổi thường gặp khi thực hành.

- Cần nắm cách khai báo biến xâu, các hàm và thủ tục xử lý xâu,

- Cần nắm thuật toán đếm số lần xuất hiện chữ cái tiếng anh, kểu tra xâu đối xứng

V.DẶN DÒ(1’): Đưa lên màn hình máy chiếu như sau:

-Tiết sau học tiết: Tiết 33: Bài tập

-Bài tập về nhà:

1.Nhập từ bàn phím một xâu Thay thế tất cả các cụm kí tự 'anh' bằng cụm kí tự 'em'

Ngày soạn 18 tháng 12 năm 2008

KIỂU BẢN GHI

A.MỤC ĐÍCH:

1.Kiến thức:

- Biết được khái niệm về kiểu bảng ghi

- Biết cách khai báo bản ghi, truy xuất trường của bản ghi

- Phân biệt sự giống nhau và khác nhau giữa kiểu bản ghi với mảng một chiều

2.Kỹ năng:

Tiết

31

Trang 22

- Khai báo được kiểu bản ghi, khai báo được biến kiểu bản ghi trong NNLT Pascal.

- Nhập xuất dữ liệu cho biến bản ghi

- Tham chiếu đến từng trường của kiểu bản ghi

- Sử dụng kiểu bản ghi để giải quyết một số bài toán

3.Thái độ:Tiếp tục rèn luyện các phẩm chất cần thiết của nguời lập trình như: ý thức chọn và xây

dựng kiểu dữ liệu, ý thức rèn luyện kỹ năng,

B.PHƯƠNG PHÁP: Nêu và giải quyết vấn đề + Thuyết trình

C.CHUẨN BỊ:

13. Giáo viên: Giáo án, SGK, máy chiếu.

14. Học sinh: Chuẩn bị bài ở nhà.

D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Lớp 11A 1 11B 1 11B 2 11B 3 11B 4 Vắng

II.KIỂM TRA BÀI CŨ: Không

a.Đặt vấn đề(2’): Đưa lên máy chiếu về bài toán cần giải quyết như sau:

Viết chương trình dùng để quản lí các thí sinh của một kỳ thi tuyển sinh

Chương trình của chúng ta cần quản lí được :

+ SBD của thí sinh,

+ Họ tên thí sinh,

+ Giới tính,

+ Điểm của các môn …

GV : Đưa ra một số câu hỏi sau :

- Làm thế nào để quản lý toàn bộ thông tin trên của học sinh ?

- Mỗi thông tin trên có kiểu dữ liệu là gì ?

HS : Có thể quản lý mỗi dữ kiện trên là một mảng một chiều

=>Ngôn ngữ lập trình bậc cao có cách tốt hơn để quản lý dữ liệu trên -> Bản ghi

b.Triển khai bài mới:

Hoạt động 1(10’)

(Giới thiệu một số khái niệm)

Gv:Đưa một bảng điểm trong SGK lên máy

I.Một số khái niệm:

- Kiểu bản ghi được dùng để mô tả cho các đốitượng có cùng một số thuộc tính mà các thuộctính có thể có các kiểu dữ liệu khác nhau

- Bản ghi thường được gọi là Record, mỗi Record

sẽ lưu trữ dữ liệu về một đối tượng cần quản lí

- Mỗi thuộc tính của đối tượng tương ứng với mộttrường của bản ghi Các trường khác nhau cóthể có dữ liệu khác nhau

- Các ngôn ngữ lập trình thường cho cách để xácđịnh :

+ Tên kiểu bản ghi + Tên các trường + Kiểu dữ liệu của trường + Cách khai báo biến +Cách tham chiếu đến trường

<Tên biến bản ghi> <Tên trường>

II.Khai báo biến bảng ghi:

Trang 23

Gv: -Mỗi NN có một cách khai báo bảng ghi

khác nhau

-Ngôn ngữ Pascal không cho bạn khai báo biến

bản ghi trực tiếp mà phải khai báo biến bản ghi

thông qua khai báo kiểu bản ghi

-Trước hết phải khai báo kiểu bản ghi sau đó

biến bản ghi được khai báo thông qua kiểu bản ghi

này

GV : Làm thế nào để có thể khai báo được nhiều

biến bản ghi có cùng một kiểu ?

HS : GV sẽ gợi ý để học sinh đưa ra đó là sử dụng

kiểu mảng trong đó phần tử mảng sẽ có kiểu bản

ghi

Gv:Ví dụ về khai báo bản ghi

+Khai báo một kiểu bản ghi để xử lý bảng kết

quả thi của các học sinh

Mỗi bản ghi sẽ bao gồm : Họ và tên của học sinh

(Hoten), ngày tháng năm sinh(Ngaysinh), Giới tính

(NamNu), và điểm thi các môn của mỗi học sinh

(Toan, Ly, Hoa, Van, Su, Dia,Tin)

Hãy xác định kiểu dữ liệu cho các trường trên (Mỗi

nội dung trên là một trường của bản ghi)?

Hs:Vận dụng để viết cách khai báo

GV : Khi có nhu cầu thay đổi thông tin trong từng

trường, làm thế nào để truy cập thông tin vào từng

trường của bản ghi ?

Hs:Mỗi ngôn ngữ có một cách truy cập khác nhau

nhưng thường được viết là :

<Tên biến bản ghi>.<tên trường>

GV: Đưa ra một số ví dụ

Hoạt động 2(8’) (Giới thiệu cách gán giá trị)

Gv: Dựa vào cách khai báo biến bản ghi ở trên

hãy cho biết cách gán A:=B hoặc B:=A đúng

hay sai?

Hs:A, B cùng kiểu nên gán cho nhau đúng

Gv:Giới thiệu và đưa lên máy chiếu về nội dung

gán

1.Cách khai báo kiểu :

Type <Tên kiểu bản ghi>=Record

<Tên trường 1> : <Kiểu trường 1>;

Var A, B : Hocsinh ; Lop : Array[1 100] Of Hocsinh ;

Ví dụ : A.Hoten B.Ngaysinh Lop[i].Toan Lop[i].Ly

……… với i là chỉ số nào đó của mảng Lop

Để truy cập vào từng trường của bản ghi, ta viết:

<Tên biến bản ghi> <Tên trường>

III.Gián giá trị:

Có 2 cách để gán giá trị cho bản ghi

- Dùng lệnh gán trực tiếp : Nếu A, B là hai bản ghicùng kiểu ta có thể gán giá trị của A cho B bằng câulệnh gán:

Vd : B := A ; hoặc A := B ;

- Gán giá trị cho từng trường Dùng câu lệnh gángán giá trị cho các trường hoặc nhập từ bàn phím

Trang 24

A.Hoten := ‘Nguyen Van Tuan’ ;Readln(a.Ngaysinh);

Chương trình xử lý bảng kết quả thi

IV.CỦNG CỐ(8'): Đưa lên máy chiếu ví dụ như sau:

Ví dụ : Chương trình sau được viết trong ngôn ngữ Pascal dùng kiểu bản ghi để xử lý bảng kết quả thi baogồm 2 môn Toán, Văn của học sinh , Sau khi nhập xong danh sách sẽ đưa ra bảng kết quả học tập và xếp loại(xem kỹ đầu bài trong SGK)

(* Kieu ban ghi xu ly bang ket qua thi 2 mon : Toan, Van *)Type Hocsinh = Record

if Tg >= 18 then Lop[i].Xeploai := 'A'

Else if Tg >= 14 then Lop[i].Xeploai := 'B'

Else if Tg >= 10 then Lop[i].Xeploai := 'C'

V.DẶN DÒ(1’): Đưa lên màn hình máy chiếu như sau:

-Tiết sau học tiết: Tiết 35:Bài tập

- Về nhà đọc bài: Kiểu bản ghi

+Cách khai báo +Truy xuất dữ liệu+Nhập và in

Trang 25

-Bài tập về nhà: bài11/80(SGK)

Thông tin về Hs gồm các trường:

+Họ Đệm:mỗi xâu 25 ký tự +Tên:mỗi xâu 10 ký tự +Tuổi:gồm một số nguyên hai chữ số +Lớp:Một xâu hai chữ số và một chữ cái viết hoa Hãy lập chương trình nhập từ bàn phím danh sách một lớp 15 học sinh vào một mảng bảng ghi Sau đó hiển thị danh sách lên màn hình, mỗi người một dòng?

Ngày soạn 19 tháng 12 năm 2008

Ngày đăng: 01/12/2013, 10:11

HÌNH ẢNH LIÊN QUAN

BẢNG ĐIỂM TRUNG BÌNH NĂM HOC 2007-2008 - Gián án Tiết 25 - 52
2007 2008 (Trang 26)
Bảng trình bày, các nhóm khác bổ sung. - Gián án Tiết 25 - 52
Bảng tr ình bày, các nhóm khác bổ sung (Trang 27)

TỪ KHÓA LIÊN QUAN

w