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

Tài liệu GA TIN 11

68 236 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 2 (tiếp)
Tác giả Nhóm tác giả
Trường học Trường Đại học Sư phạm Hà Nội
Chuyên ngành Giáo dục công nghệ
Thể loại Bài giảng
Năm xuất bản 2008
Thành phố Hà Nội
Định dạng
Số trang 68
Dung lượng 513,5 KB

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

Nội dung

Kiến thức - Kiểu mảng là một kiểu dữ liệu có cấu trúc; rất cần thiết và hữu ích trong nhiều CT; - Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu; - Các NNLT thông dụng cho phép

Trang 1

Ngày soạn: 7/ 1/ 2008

Ngày giảng: / / 2008…

Tiết 19 Bài tập và thực hành 2 (tiếp) I Mục tiêu 1 Kiến thức - Xây dựng chơng trình rẽ nhánh - Làm quen với các công cụ phục vụ hiệu chỉnh chơng trình 2 Kỹ năng - Biết sử dụng cấu trúc rẽ nhánh trong việc lập trình giải một số bài toán cụ thể - Làm quen với các công cụ phục vụ và hiệu chỉnh chơng trình 3 Thái độ - Có ý thức chăm lo đến giao diện khi xây dựng chơng trình II Ph ơng tiện dạy và học 1 Chuẩn bị của GV - Bài soạn, SGK, Phòng máy tính 2 Chuẩn bị của HS - Đồ dùng học tập III Tiến trình bài giảng 1 ổ n định tổ chức / /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

2 Kiểm tra bài cũ

- Không kiểm tra

3 Bài mới

Hoạt động của thầy và trò Nội dung bài giảng

GV: Hớng dẫn hs mở tệp lu bài tập

chơng trình Py- ta- go (chọn FILE

chọn OPEN, chọn tệp cần mở)

HS: Thực hành theo hớng dẫn của

giáo viên, mở chơng trình,

Bài thực hành:

Program Pi_ta_go;

Uses crt;

Var a, b, c: integer;

a2,b2,c2: longint;

Begin Clrscr;

Write(‘Nhap a, b, c =’);

Readln(a,b,c);

Trang 2

- GV: Hớng dãn thực hiện việc theo

dõi các lệnh của CT bằng cách nhấn

phím F7 và theo dõi các giá trị của

biến trên cửa sổ Watches, để hiện cửa

sổ Watches nhấn Ctrl+F7 để hiện cửa

sổ Add watch, sau đó nhập tên biến

(ví dụ a2 là biến đang cần theo dõi giá

trị) và nhấn phím Enter sẽ có tên biến

a2 cùng giá trị của nó

- HS: Quan sát và thực hiện theo

- GV: Yêu cầu tiếp tục nhấn F7 để

quan sát quá trình rẽ nhánh

- GV để HS nhập giá trị mới a=700,

b=1000, c=800 và tự làm các thao tác

nh trên trong thời gian này hớng dẫn

một số học sinh thực hiện các thao tác

trong bài thực hành

- HS: Quan sát và thực hiện theo nội

dung yêu cầu

writeln(‘Ba so da nhap la bo so ta-go’)

else writeln(‘Ba so da nhap khong la bo

so Pi – ta – go’);

readln

End.

d) Vào bảng Debug mở cửa sổ hiệu chỉnh

để xem giá trị a2, b2, c2;

e Nhấn phím F7 để thực hiện các câu lệnh tính những giá trị nói trên, so sánh với kết quả a=9, b=16, c=25;

+ Nhấn phím F7 đẻ thực hiện từng câu lệnh chơng trình;

+ Chọn Debug để mở cửa sổ hiệu chỉnh hoặc nhấn tổ hợp phím Cltr + F7

5 Bài tập về nhà

- Làm bài tập 5, 6, 7, 8 SGK – T51 giờ sau chữa bài tập và thực hành

Trang 3

Ngày soạn: 7 / 1/ 2008

Ngày giảng: / / 2008…

Tiết 20 Bài tập và thực hành 2 (tiếp) III Tiến trình bài giảng 1 ổ n định tổ chức / /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

2 Kiểm tra bài cũ

- Kiểm tra kết hợp trong nội dung thực hành

3 Bài mới

Hoạt động của thầy và trò Nội dung bài giảng

* Hoạt động 1( Hớng dẫn và giải đáp

các thắc mắc của HS về một số bài tập

ở nhà)

- GV: Gọi HS lên bảng giải bài tập 4

SGK- T51

- HS: Lên bảng

- GV: Nhận xét, bổ sung

- GV: Yêu cầu cả lớp cùng giải bài

tập 5 SGK- T51 trên máy tính

- GV gợi ý chơng trình, yêu cầu HS

thực hành theo nội dung BT

- HS: Quan sát, nghe giảng, thực hành

Bài 4 SGK- T51

a

if (sqr(x)+ sqr(y))<=1 then z:= sqr(x) + sqr(y) else

if y>= x then z := x+y else z := 0.5;

b

if (sqr(x-a) + sqr(y-b) <= sqr(r) then z:= abs(x) + abs(y)

else z:=x+y;

Bài 5 SGK- T51

a Y=1/2+2/3+3/4+ +50/51

Var Y: real;

N: byte;

Begin

Y: = 0;

For N:=1 to 50 do

Y:=Y+N/(N+1);

Writeln(‘Tong Y la:’,Y);

Readln End.

b e(N) = 1 + 1/1! + 1/2! + 1/3! + 1/4! + +

1/n! + cho đến khi 1/n! <2*10-6

Trang 4

Bài 6 SGK- T51 Var ga, cho: byte;

Readln End.

4 Củng cố

- Mọi quá trình tính toán đều có thể mô tả và thực hiện dựa trên ba cấu trúc cơ bản

là cấu trúc tuần tự, cấu trúc rẽ nhánh và cầu trúc lặp

5 Bài tập về nhà

- Đọc trớc bài 11 của chơng IV, giờ sau học lý thuyết

Trang 5

Ngày soạn: 15/ 1/ 2008

Ngày giảng: / / 2008…

Tiết 21 Chơng Iv Kiểu dữ liệu có cấu trúc Đ11 Kiểu mảng I Mục tiêu 1 Kiến thức - Kiểu mảng là một kiểu dữ liệu có cấu trúc; rất cần thiết và hữu ích trong nhiều CT; - Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu; - Các NNLT thông dụng cho phép ngời lập trình xây dựng kiểu dữ liệu mảng một chiều; - Để mô tả mảng một chiều cần khai báo kiểu của các phần tử và cách đánh số các phần tử của nó; - Có thể tham chiếu phần tử của mảng bằng tên của mảng và chỉ số tơng ứng của phần tử này 2 Kỹ năng - Nhận biết đợc các thành phần trong khai báo kiểu mảng một chiều; - Nhận biết các định danh của phần tử kiểu mảng một chiều xuất hiện trong một CT; - Biết cách khai bào kiểu mảng đơn giản với chỉ số kiểu miền con của kiểu nguyên - Tạo đợc kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngôn ngữ lập trình Pascal để giải quyết một số bài toán cụ thể đơn giản 3 Thái độ - Có ý thức tự giác học tập và có tinh thần tập thể tham gia hoạt động nhóm II Ph ơng tiện dạy và học 1 Chuẩn bị của GV - Bài soạn, SGK, bảng phụ 2 Chuẩn bị của HS - Đồ dùng học tập, bảng phụ III Tiến trình bài giảng 1 ổ n định tổ chức / /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

2 Kiểm tra bài cũ

- Không kiểm tra

3 Bài mới

Trang 6

Hoạt động của thầy và trò Nội dung bài giảng

* Hoạt động 1 (Tìm hiểu câu lệnh

kiểu mảng một chiều)

- GV: Yêu cầu HS tự đọc phần đầu của

mục 1 SGK –T53

- HS: Đọc SGK

- GV: Hãy cho biết khái niệm về mảng

một chiều? Tại sao cần dùng đến

- GV: Qua hai ví dụ trên ta thấy đợc

rằng, khi cần giải bài toán lên đến N

ngày thì cách làm nh CT

Nhietdo_tuan không những đòi hỏi

một khối lợng khai báo khá lớn mà CT

tính toán cũng khá dài Vì vậy cần sử

dụng đến mảng để giải quyết những

bài toán nh vậy

GV: Các em hãy quan sát hai ví dụ

trên; đó là các cách khai báo mảng

một chiều Qua các ví dụ trên, em hãy

chỉ ra cách khai báo mảng một chiều

- Khi xây dựng và sử dụng kiểu mảng một chiều, các NNLT có quy tắc, cách thức cho phép xác định:

+ Tên kiểu mảng một chiều;

+ Số lợng phần tử;

+ Kiểu dữ liệu của phần tử;

+ Cách khai báo biến mảng;

+ Cách tham chiếu đến phần tử

a Khai báo

- Ví dụ 1 Var LOP : array[40 100] of integer;

TO : array[1 7] of integer;

- Ví dụ 2TypeMyArray = array[1 max] of real;

Var N: MyArray;

* Tổng quát, khai báo mảng một chiều có hai dạng

- Cách 1: khai báo trực tiếp.

Var <tên biến mảng> : array[kiểu chỉ số] of

<kiểu phần tử>;

- Cách 2: Khai báo gián tiếp.

Type <tên kiểu mảng> = array[kiểu chỉ số]

Trang 7

đầu và chỉ số cuối (n1 ≤ n2);

+ Kiểu phần tử là kiểu của phần tử mảng

- GV: Chia nhóm lần 1, chia lớp thành

3 nhóm

- HS: Thảo luận theo nhóm, hoàn

thành kết quả vào bảng phụ

- GV: Yêu cầu các nhóm báo cáo và

4 Củng cố

- Cách tạo kiểu mảng một chiều và cách khai báo biến:

Type <tên kiểu mảng> = array[kiểu chỉ số] of <kiểu phần tử>;

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

- Tham chiếu đến từng phần tử của mảng một chiều đợc xác định bởi tên mảng cùng với chỉ số, đợc viết trong cặp dấu ngoặc [ ]

5 Bài tập về nhà

- Học bài theo câu hỏi SGK, Lấy ví dụ đúng và khai báo mảng một chiều ở hai dạng

Trang 8

Ngày soạn: 25/ 1/ 2008

Ngày giảng: / / 2008…

Tiết 22 Đ11 Kiểu mảng (tiếp) III Tiến trình bài giảng 1 ổ n định tổ chức / /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

2 Kiểm tra bài cũ

- Viết ví dụ khai báo biến mảng một chiều bằng hai cách đã học và giải thích các thành phần có trong cú pháp?

3 Bài mới

Hoạt động của thầy và trò Nội dung bài giảng

* Hoạt động 2 (Tìm hiểu một số chơng

trình có sử dụng kiểu mảng một chiều)

- GV: Yêu cầu HS đọc đề bài, hãy cho

biết Input và Output?

- HS: trả lời

- GV: Yêu cầu HS nhắc lại thuật toán

tìm Max (đã đợc học ở lớp 10)?

- HS: trả lời

- GV: Trình bày và giải thích chơng

trình Tìm giá trị Max (Dùng bảng phụ)

- HS: Quan sát, nghe giảng, ghi bài

- GV: Gọi HS đứng tại chỗ giải thích ý

nghĩa từng câu lệnh

1 Kiểu mảng một chiều

b Một số ví dụ

- Ví dụ 1: tìm phần tử lớn nhất của dãy số

nguyên.

Xác định bài toán

+ Input: Số nguyên dơng N và dãy gồm N sô nguyên dơng a1, a2, , a… n

+ Output: Max(a1, a2, , a… n)

Thuật toán:

B1: Nhập N, và dãy a1, a2, , a… n B2: Max ← a1; i ← 2;

B3: Nếu i > N thì đa ra Max, rồi kết thúc; B4:

+ Nếu a1 > Max thì Max ← ai; + i ← i + 1 rồi quay lại B3

Chơng trình:

Program Tim_max;

Const Nmax = 250;

Type ArrInt = Array[1 Nmax] of integer; Var

N, i, Max csmax: integer;

A: arrInt;

Begin Write(‘Nhap so phan tu cua day so, N=’);

Trang 9

- HS: Trả lời

- GV: Hãy xác định Input và Output?

- HS: trả lời

- GV: Nhắc lại thuật toán sắp xếp bằng

tráo đổi (dùng bảng phụ)

- HS: Quan sát, nghe giảng, ghi bài

- GV: Trình bày và giải thích chơng

trình sắp xếp bằng tráo đổi (Dùng bảng

phụ)

- HS: Quan sát, nghe giảng, ghi bài

- GV: Gọi HS đứng tại chỗ giải thích ý

nghĩa từng câu lệnh

- HS: Trả lời

Readln(N);

For i:=1 to N do Begin

Write(‘Phan tu thu ‘,i, ‘ =’);

End

Ví dụ 2: sắp xếp dãy số nguyên bằng thuật

toán tráo đổi.

+ Input: Số nguyên dơng N và dãy A gồm N

số nguyên dơng a1, a2, , a… n.+ Output: dãy A đựơc sắp xếp thành dãy không giảm

Thuật toán:

B1: Nhập N và dãy a1, a2, , a… n.B2: M ← N;

B3: Nếu M < 2 thì đa ra dãy A đã đợc SX rồi kết thúc;

B4: M ← M – 1; i ← 0;

B5 i ← i + 1;

B6: Nếu i > M thì quay lại B3;

B7: Nếu ai > ai+ 1thì tráo đổi ai và ai+ 1 cho nhau;

Trang 10

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

For i:=1 to N do Begin

Write(‘Phan tu thu ‘,i, ‘ =’);

Readln(A[i]);

End;

For j:=N downto 2 do For i:=1 to j – 2 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 la:’);

For i:=1 to N do writeln(A[i]):4);

ReadlnEnd

- GV: Chia lớp thành 3 nhóm, yêu cầu

các nhóm thảo luận theo nội dung yêu

cầu Hoàn thành kết quả vào bảng phụ

- GV: Yêu cầu các nhóm báo cáo và

nhận xét nhóm chéo nhóm của mình

H1.

- Nhóm 1: Hãy viết khai báo mảng một chiều trong chơng trình VD 1 theo cách khác đã học ?

- Nhóm 2: Hãy viết khai báo mảng một chiều trong chơng trình VD 2 theo cách khác đã học ?

- Nhóm 3: Hãy tét thử chơng trình bằng một dãy số gồm 5 phần tử với các giá trị khác nhau Đa gia giá trị Max và csmax?

4 Củng cố

- Củng cố cho HS nắm chắc hai cách khai báo biến mảng một chiều:

Var <tên biến mảng> : array[kiểu chỉ số] of <kiểu phần tử>;

Hoặc

Type <tên kiểu mảng> = array[kiểu chỉ số] of <kiểu phần tử>;

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

5 Bài tập về nhà

- Học bài theo câu hỏi SGK, làm bài tập trong SBT, đọc trớc ví dụ 3 SGK- T58

Trang 11

Ngày soạn: 25/ 1/ 2008

Ngày giảng: / / 2008…

Tiết 23 Đ11 Kiểu mảng (tiếp) III Tiến trình bài giảng 1 ổ n định tổ chức / /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

2 Kiểm tra bài cũ

- Viết cấu trúc khai báo kiểu mảng một chiều cho bài tập 5 và 6 SGK- T79?

3 Bài mới

Hoạt động của thầy và trò Nội dung bài giảng

* Hoạt động 3 (Tìm hiểu một số

chơng trình có sử dụng kiểu mảng

một chiều)

- GV: Yêu cầu HS đọc đề bài, hãy

cho biết Input và Output?

- HS: trả lời

- GV: Yêu cầu HS đứng tại chỗ

đọc thuật toán Hình 12 SGK-

T58

- HS: Đọc SGK

- GV: Hãy cho biết bài toán nhận

đợc kết quả ở bớc nào?

- HS: Trả lời

- GV: Trình bày và giải thích

ch-1 Kiểu mảng một chiều

b Một số ví dụ

- Ví dụ 3: Tìm kiếm nhị phân

Xác định bài toán

+ Input: Dãy a là dãy tăng gồm N (N<=250) số nguyên dơng A1, A2, , A… N và số nguyên k;

+ Output: Chỉ số i mà Ai = k hoặc thông báo

“khong tim thay” nếu không có só hạng nào của dãy A có giá trị bằng k

Thuật toán

Bớc 1: Nhập N, các số hạng a1, a2, , aN

và giá trị khoá k;

Bớc 2: Đầu ơ 1, Cuối ơ N;

Bớc 3: Giữa ơ [(Đầu + Cuối)/2];

Bớc 4: Nếu aGiữa = k thì thông báo chỉ số Giữa rồi

kết thúc;

Bớc 5: Nếu aGiữa > k thì đặt

Cuối = Giữa – 1 rồi chuyển sang bớc 7;

Bớc 6: Đầu ơ Giữa + 1;

Bớc 7: Nếu Đầu ≤ Cuối thì thông báo dãy A không

có số hạng có giá trị bằng k, rồi kết thúc;

Bớc 8: Quay lại bớc 3.

Chơng trình

PROGRAM TK_NHIPHAN;

CONST Nmax = 250;

TYPE

Trang 12

¬ng tr×nh T×m kiÕm nhÞ ph©n

(dïng m¸y chiÕu hoÆc b¶ng phô)

- HS: Quan s¸t, nghe gi¶ng, ghi

READLN(N);

WRITELN('Nhap cac phan tu cua day so tang: ');

FOR i:= 1 TO N DO BEGIN

WRITE('Phan tu thu ',i,' = ');

BEGIN Giua:=(Dau + Cuoi) Div 2;

IF A[Giua] = k THEN Tim_thay:= True ELSE

IF A[Giua] > k THEN Cuoi:= Giua - 1 ELSE

Dau:= Giua + 1; END;

Trang 14

- Cách khai báo biến mảng 2 chiều;

- Có thể hình dung kiểu mảng hai chiều nh một bảng có các dòng và các cột Các dòng

và các cột đều đợc đnáh số nguyên liên tiếp Hai đoạn số nguyên dùng để đánh số cho các dòng và các cột có thể khác nhau Mỗi phần tử của mảng hai chiều đợc hình dung nh một ô trong bảng, mỗi ô có chỉ số dòng và chỉ số cột;

2 Kỹ năng

- Nhận biết đợc các thành phần trong khai báo kiểu mảng hai chiều;

- Nhận biết đợc các định danh của một phần tử mảng hai chiều xuất hiện trong một CT;

- Viết đợc khai báo kiểu mảng hai chiều với các chỉ số thuộc kiểu nguyên

3 Thái độ

- Có ý thức tự giác học tập và có tinh thần tập thể tham gia hoạt động nhóm

II Ph ơng tiện dạy và học

2 Kiểm tra bài cũ

- Viết cú pháp khai báo biến mảng một chiều cho bài tập 7 SGK- T79?

3 Bài mới

Hoạt động của thầy và trò Nội dung bài giảng

* Hoạt động 4 (Tìm hiểu câu lệnh

kiểu mảng hai chiều)

- GV: Yêu cầu HS đọc phần đầu của

gồm các giá trị cùng kiểu Có thể biểu

2 Kiểu mảng hai chiều

- Có thể hình dung một mảng hai chiều chmột bảng có các dòng và các cột

Trang 15

diễn bảng nhân bằng kiểu dữ kiệu

mảng hai chiều

- GV: Các ngôn ngữ lập trình có qui

tắc và cách thức cho phép xác định đối

với mảng hai chiều nh thế nào?

- HS: Trả lời câu hỏi

- GV: Qua ví dụ trên, yêu cầu HS lên

bảng viết khai báo một số biến mảng

trình (Dùng máy chiếu hoặc bảng phụ)

- HS: quan sát, nghe giảng, ghi bài

- Kiểu mảng hai chiều là mảng một chiều mà mỗi phần tử của nó lại là mảng một chiều

* Với kiểu mảng hai chiều, các NNLT cho phép xác định:

- Tên kiểu mảng hai chiều;

- Số lợng phần tử của mỗi chiều;

- Kiểu dữ liệu của phần tử;

- Cách khai báo biến;

- Cách tham chiếu đến phần tử

Ví dụ: biến mảng hai chiều B lu trữ bảng nhân

có thể đợc khai báo trong Pascal nh sau:

Var B: array[1 9] of array[1 10] of integer;Hay

Var B: array[1 9,1 10] of integer;

a Khai báo

Tổng quát, khai báo biến mảng hai chiều:

- Cách 1: khai báo trực tiếp biến mảng hai chiều:

Var <tên biến mảng> = Array[kiểu chỉ số

VAR B:array [1 5, 1 7] of Integer;

d, i, j, k: Integer;

BEGIN WRITELN('Nhap cac phan tu cua mang theo dong:');

FOR i:= 1 TO 5 DO

Trang 16

BEGIN FOR j:= 1 TO 7 DO READ(B[i,j]);

IF B[i,j]< k THEN BEGIN

WRITE(B[i,j], ' '); d:= d+ 1;

END;

IF d= 0 THEN WRITELN ('Khong co phan tu nao nho hon', k);

READLN END.

- GV: Chia nhãm lÇn 1, chia líp thµnh

3 nhãm

- HS: Th¶o luËn theo nhãm, hoµn

thµnh kÕt qu¶ vµo b¶ng phô

- GV: Yªu cÇu c¸c nhãm b¸o c¸o vµ

2) Type Mang 1 : array[1 5, 1 6] of real; Var A= Mang1;

3) Var B : array[1 5, 1 9] of real;

4 Cñng cè

- Nh¾c l¹i c¸ch khai b¸o biÕn m¶ng mét chiÒu vµ khai b¸o biÕn m¶ng hai chiÒu:

+ M¶ng mét chiÒu

Var <tªn biÕn m¶ng> : array[kiÓu chØ sè] of <kiÓu phÇn tö>;

Type <tªn kiÓu m¶ng> = array[kiÓu chØ sè] of <kiÓu phÇn tö>;

Var <tªn biÕn m¶ng>: <tªn kiÓu m¶ng>;

+ M¶ng hai chiÒu

Trang 17

Var <tªn biÕn m¶ng> = Array[kiÓu chØ sè hµng, kiÓu chØ sè cét] of <kiÓu

Trang 18

- Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng;

- Cung cấp cho HS ba thuật toán cơ bản và đơn giản thờng gặp với dữ liệu kiểu mảng: Tính tổng các phần tử thoả mãn điều kiện nào đó; Đếm số các phần tử thoả mãn điều kiện nào đó; Tìm phần tử lớn nhất hay nhỏ nhất cùng vị trí của nó trong mảng;

- Giới thiệu hàm ramdom;

2 Kỹ năng

- HS có đợc các kỹ năng cơ bản làm việc với kiểu mảng (một chiều) trong lập trình, cụ thể là: Khai báo kiểu dữ liệu mảng; nhập dữ liệu cho mảng, đa ra màn hình chỉ số và giá trị các phần tử của mảng; Duyệt qua các phần tử của mảng để xử lý từng phần tử;

- Biết chạy chơng trình với một số chơng trình có sẵn và biết giải một số bài toán tính toán, tìm kiếm đơn giản

3 Thái độ

- Góp phần 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 tiện dạy và học

2 Kiểm tra bài cũ

- GV: Thủ tục ramdomize khởi tạo lấy

số ngẫu nhiên trớc khi dùng lênh

Bài 1:

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

số có giá trị tuyệt đối không lớn hơn 300 Tính tổng các phần tử của mảnglà bội số của một số nguyên dơng k cho trớc

Trang 19

ramdom(n) để lấy số ngẫu nhiên trong

- HS: Thực hành theo yêu cầu

- GV: Yâu cầu HS thực hành theo yêu

cầu của ý b

- HS: Thực hành theo yêu cầu

- GV: Chi biết biến Posi và biến neg

Write(‘Nhap n=’);

Readln(n);

For i:=1 to n do A[i]:=ramdom(300) – ramdom(300); For i:=1 to n do write(a[i]:5);

Writeln;

Write(‘Nhap k =’); readln(k);

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:8:4);

ReadlnEnd

b Đa các câu lệnh sau đây vào các vị trí cần thiết nhằm sửa đổi CT trong câu a) để

* Hoạt động 2 (Sửa đổi chơng trình)

- GV: Yêu cầu các nhóm thực hiện

theo yêu cầu

- HS: các nhóm thực hiện theo yêu

Trang 20

4 Củng cố

- Nhắc lại cách xây dựng và sử dụng biến mảng một chiều

- Thủ tục ramdomize khởi tạo lấy số ngẫu nhiên trớc khi dùng lênh ramdom(n) để lấy số ngẫu nhiên trong phạm vi từ 0 đến (n-1)

5 Bài tập về nhà

- Làm Bài tâp 4.1 đến 4.8 SBT – 31+32

- Đọc trớc bài 2 SGK- T 64 (bài thực hành 3)

Trang 21

Ngày soạn: 15/ 2/ 2008

Ngày giảng: / / 2008…

Tiết 26 Bài tập và thực hành 3 (tiếp) III Tiến trình bài giảng 1 ổ n định tổ chức / /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

/ /2008 ./ /2008 / /2008 … … …

2 Kiểm tra bài cũ

- Kiểm tra kết hợp nội dung học thực hành

3 Bài mới

Hoạt động của thầy và trò Nội dung bài giảng

* Hoạt động 3 (Tìm hiểu và soạn

thảo chơng trình Bài 2 SGK- 64)

-GV: Yêu cầu HS thực hành theo nội

dung hớng dẫn:

+ Hãy soạn thảo chơng trình (ý a) Bài

2 SKG- 64

+ Hãy lu tệp với tên mình_ lớp …

+ Kiểm tra lỗi và chạy chơng trình

- HS: Thực hành soạn thảo nội dung

chơng trình (ý a) Bài 2 SGK- 64, Lu

tệp, hiệu chỉnh, chạy chơng trình với

nhiều bộ Input khác nhau

Bài 2 SGK- 64 Viết chơng trình tìm phần tử

có giá trị lớn nhất của mảng và đa ra màn hình chỉ số và giá trị của phần tử tìm đợc Nếu có nhiều phần tử có cùng giá trị lớn nhất thì đa ra phần tử với chỉ số nhỏ nhất

a Hãy gõ, tìm hiểu chơng trình sau đây:

PROGRAM Bai2SGK_T64;

CONST Nmax=100;

VAR A: Array [1 Nmax] of Integer;

n, i, j: Integer;

BEGIN WRITELN('Nhap so luong phan tu cua day so, N =');

READLN(N);

FOR i:= 1 TO N DO BEGIN

WRITELN ('Phan tu thu ', i, '= ');

READLN(A[i]);

END;

j:=1;

FOR i:= 2 TO N DO

IF A[i]< A[j] THEN j:=i;

WRITELN ('Chi so: ', j, ' Gia tri: ', A[j]: 4);

Trang 22

* Hoạt động 4 (Kiểm tra đánh giá

cuối bài- chia lớp thành 10 nhóm)

-GV: Hãy soạn lại chơng trình trên

để đa ra các chỉ số của các phần tử có

cùng giá trị lớn nhất

- HS: Thực hành theo nhóm và thực

hiện các yêu cầu của GV

- Kiểm tra kết quả, đánh giá

READLN END.

b Viết lại chơng trình trên để đáp ứng yêu cầu sau: Đa ra các chỉ số của các phần tử có cùng giá trị lớn nhất.

Trang 23

- Củng cố cho HS những kiến thức và kỹ năng khi lập trình với kiểu dữ liệu mảng;

- Củng cố cho HS một số thuật toán sắp xếp các phần tử của một dãy (bằng tráo đổi) và biết vận dụng để diễn đạt thuật toán này bằng CT sử dụng dữ liệu kiểu mảng trên máy tính

2 Kỹ năng

- HS có đợc các kỹ năng cơ bản làm việc với kiểu mảng (một chiều) trong lập trình,

- Biết chạy chơng trình với một số chơng trình có sẵn và thay đổi những câu lệnh cần thiết;

- Rèn luyện kỹ năng nhận xét, phân tích và đề xuất cách giải bài toán sao cho chơng trình chạy nhanh hơn

3 Thái độ

- Rèn luyện HS một ý thức cần có của ngời lập trình là viết CT với khối lợng tính toán

ít nhất có thể đợc;

- Góp phần 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 tiện dạy và học

2 Kiểm tra bài cũ

- Kiểm tra kết hợp trong quá trình thực hành

3 Bài mới

Hoạt động của thầy và trò Nội dung bài giảng

* Hoạt động 1 (Tìm hiểu chơng trình

bài 1)

- GV: Yêu cầu đọc đề đầu bài, nhắc

lại thuật toán sắp xếp bằng tráo đổi?

- HS: Trả lời

- GV: Yêu cầu HS soạn thảo chơng

Bài 1 SGK- 65 a) Hãy tìm hiểu và chạy thử CT thực hiện thuật toán sắp xếp dãy số nguyên bằng thuật toán tráo đổi với các giá trị khác nhau của n dới đây.

Const Nmax = 250;

Trang 24

Readln(‘Nhap n=’);

Readln(n);

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

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

Writeln;

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

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

WritelnEnd

* Hoạt động 2 (Sửa đổi chơng trình)

- Để đáp ứng yêu cầu ở câu b) GV có

thể dùng một số câu hỏi gợi ý nh:

- GV: Đoạn nào (gồm những câu lệnh

nào) thể hiện một lần tráo đổi giá trị

của hai phần tử liện kề của mảng?

+ Phải đặt câu lệnh tăng biến Dem ở

đâu?

+ Khai báo biến đếm nh thế nào?

+Khởi tạo biến Dem nh thế nào?

- GV: Lu chơng trình với tên mình_

bài 1_Yb_T65

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

sung vào CT 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.

4 Củng cố

- Nhắc lại thuật toán sắp xếp đơn giản.;

- Mỗi bài toán có thể có nhiều cách viết thành một chơng trình vì vậy cần chọn cách

có số phép tính ít nhất

Trang 25

5 Bài tập về nhà

- Xem lại Bài 1 đã học, đọc trớc Bài 2 SGK- T66 giờ sau thực hành

Trang 26

2 Kiểm tra bài cũ

- Kiểm tra kết hợp nội dung học thực hành

3 Bài mới

Hoạt động của thầy và trò Nội dung bài giảng

* Hoạt động 3 (Tìm hiểu và soạn

thảo chơng trình Bài 2 SGK- 66)

- GV: Hãy đọc và tìm hiểu những

phân tích để viết CT giải bài toán

+ Yêu cầu HS đọc đề bài;

+ Yêu cầu HS soạn thảo CT (có sẵn)

- HS: Gõ và chạy thử CT;

- GV: Yêu cầu HS sửa đổi CT bằng

cách: chọn Save As rồi mới sửa

- GV: hớng dẫn, chỉ rõ cho HS tại sao

lại có đợc B[i] = B[i-1] + A[i];

Bài 2 SGK- T66.

Cho mảng A gồm n phần tử Hãy viết CT tạo mảng B[1 n] trong đó B[i] là tổng của i phần tử đầu tiên của A.

B[i]:=0;

For j:=1 to i do B[i]:=B[i]+A[j];

Trang 27

* Hoạt động 4 (Kiểm tra đánh giá

cuối bài- chia lớp thành nhóm ngồi

{Ket thuc tao B}

For i:=1 to n do write(B[i]:5);

ReadlnEnd

Trang 28

- Biết một xâu là một dãy các kí tự, có thể coi xâu nh một mảng một chiều;

- Biết kiểu xâu với một số hàm thủ tục chuẩn;

- Hiểu cách khai báo kiểu dữ liệu xâu

- Biết vận dụng khai báo kiểu xâu vào bài tập và chơng trình trên máy tính

2 Kỹ năng

- Biết khai báo kiểu dữ liệu xâu;

- Biết so sánh hai xâu;

- Nhận biết và bớc đầu sử dụng đợc các hàm, các thủ tục chuẩn

3 Thái độ

- Có ý thức tự giác học tập và có tinh thần tập thể tham gia hoạt động nhóm

- Tiếp tục xây dựng lòng ham thích giải bài toán bằng lập trình trên MTĐT

II Ph ơng tiện dạy và học

2 Kiểm tra bài cũ

- Không kiểm tra

3 Bài mới

Hoạt động của thầy và trò Nội dung bài giảng

* Hoạt động 1 (Tìm hiểu khái niệm, quy

tắc và cách thức cho phép xác định đối

với kiểu xâu)

- GV: Đa ra VD về xâu đơn giản (trình

chiếu) Hãy cho biết khái niệm Xâu?

Trang 29

quy tắc và cách thức cho phép xác định

(Yêu cầu HS học SGK- T68)

- HS: Nghe giảng, học SGK

- GV: Có thể hình dung xâu nh mảng

một chiều Tham chiếu tới phần tử của

xâu đợc xác định bởi tên biến xâu và chỉ

số đặt trong cặp ngoặc [chỉ số]

+ Khi viết một xâu kí tự, ta phải viết xâu

kí tự đó giữa hai dấu nháy đơn

- HS: Nghe giảng, ghi nhớ

* Các NNLT có quy tắc và cách thức cho phép xác định:

- SGK- T68

- VD: Biến A lu trữ giá trị hằng xâu

Huyen Ham Yen

A[3] cho ta kí tự ‘y’

* Hoạt động 2 (Tìm hiểu cú pháp khai

báo kiểu dữ liệu xâu)

- GV: Để khai báo kiểu dữ liệu xâu ta sử

dụng tên dành riêng STRING, tiếp theo là

độ dai không quá 255 đợc ghi trong cặp

ngoặc [255]

- HS: Nghe giảng, ghi nhớ

- GV: Trình bày cú pháp khai báo kiểu dữ

liệu xâu (viết bảng)

- GV: Khi trong khai báo không có phần

khai báo độ dài thì biến đó có giá trị

ngầm định là 255

- GV: Lấy ví dụ khai báo xâu?

- HS: lên bảng viết ví dụ

1 Khai báo kiểu dữ liệu xâu

VAR <Tên biến> : STRING [Độ dài lớn nhất của xâu];

- VD:

VAR Ten : String [20];

VAR Ghichu: String;

* Hoạt động 3 (Tìm hiểu các thao tác xử

u tiên thấp hơn phép ghép xâu

+ Xâu A là lớn hơn xâu B nếu nh kí tự

đầu tiên khác nhau giữa chúng kể từ trái

sang trong xâu A có mã ASCII lớn hơn

+ Xâu A là đoạn đầu của xâu B thì A nhỏ

- VD: ‘abc’ + ‘ks’, Cho kết quả là ‘abcks’

b Các phép so sánh =, <>, <, >, <=, >=

- Ví dụ: ‘TIN’ + ‘HOC’ < ‘TIN HOC 10’

* Để xử lí các xâu, có thể sử dụng các thủ tục và hàm chuẩn sau:

c Thủ tục chuẩn DELETE (St, vt, n) thực

hịên việc xoá n kí tự của xâu St bắt đầu từ vị trí vt

d Thủ tục INSERT(S1, S2, vt) chèn xâu S1

vào xâu S2, bắt đầu từ vị trí vt

Trang 30

- HS: Quan sát nghe giảng, ghi bài.

- GV: Để xử lí các xâu, TP sử dụng các

thủ tục và hàm chuẩn (trình bày giải thích

chi tiết từng thủ tục và hàm chuẩn- dùng

bảng phụ hoặc máy chiếu)

- GV: Lấy ví dụ cụ thể cho các hàm và

- HS: Quan sát, nghe giảng, ghi bài

e Hàm COPY(S., vt, N) Tạo xâu gồm N kí

tự liên tiếp bắt đầu từ vị trí vt của sâu S

f Hàm LENGTH(S) Cho giá trị là độ dài

xâu S

g Hàm POS(S1, S2) cho vị trí xuất hiện

đầu tiên của xâu S1, trong xâu S2

h Hàm UPCASE(ch) cho chữ cái viết hoa

ứng với chữ cái trong ch

- Ví dụ chơng trình đơn giản

* Hoạt động 4 (GV: Chia lớp thành 3

nhóm, yêu cầu các nhóm làm việc)

- HS: Thảo luận theo nhóm, hoàn thành

kết quả vào bảng phụ

- GV: Yêu cầu các nhóm báo cáo và nhận

Giá trị st: ‘Mon Tin Hoc 10’;

Thao tác: DELETE(st, 4, 6 ); KQ?

- Nhóm 3:

+ Hãy cho biết kết quả:

a Giá trị S1: ‘ Lam Van’; S2: ‘Sach Tap lop 10’

- Học bài, làm bài tập 4.18 đến 4.21 trong SBT- t36;

- Đọc trớc mục 3 của bài 12 SGK - T71

Trang 31

Ngày soạn: 01/ 3/ 2008

Ngày giảng: / / 2008…

Tiết 30

Đ12 Kiểu xâu (tiếp)

III Tiến trình bài giảng

1 ổ n định tổ chức

/ /2008 ./ /2008 / /2008 … … … / /2008 ./ /2008 / /2008 … … … / /2008 ./ /2008 / /2008 … … …

2 Kiểm tra 15 phút

Đề bài

Câu 1 (0,5 điểm) Hãy khoanh vào chữ Đ và S

A Mảng hai chiều là một dãy hữu hạn các phần tử cùng kiểu Đ S

B Xâu là dãy các kí tự trong bộ mã ASCII gồm 255 kí tự Đ S

Câu 2 (0,5 điểm) Khai báo nào trong các khai báo sau là đúng

A VAR B= array[1 20] Of Integer;

B VAR B: array[1 20] Of Integer;

C VAR B:= array[1 20] Of Integer;

D VAR B: array[1 20] Of Integer;…

Câu 3 (0,5 điểm) Khai báo nào trong các khai báo sau là đúng

A VAR C: array[1 10, 15 1 ] Of Integer;

B VAR C: array[1 10, 1 15] Of Integer;… …

C VAR C: array[1 10, 1 15] Of Integer;

D VAR C:= array[1 10, 1 15 ] Of Integer;

Câu 4 (0,5 điểm) Khai báo nào trong các khai báo sau là đúng

A: String[266]; A= String[255];

A: =String[255]; A: String;

Câu 5 (6 điểm) Hãy cho biết kết quả các phép toán, thao tác và biểu thức sau:

a ‘TRUONG’ + ‘ THPT ’ + ‘THAI HOA’; KQ?

b Giá trị st: ‘Mon Tin Hoc 10’; Thao tác: DELETE(st, 6, 3 ); KQ?

c Giá trị s1: ‘Van 10’; Giá trị s2: ‘ Hoc ’;

Thao tác INSERT(s1, s2, 4); KQ?

d Giá trị s: ‘Huyen Ham Yen’; Biểu thức: COPY(s, 8, 6); KQ?

e Giá trị s: ‘Huyen Ham Yen’; Biểu thức: LENGTH(s); KQ?

f Giá trị ch: ‘tinh tuyen quang’; Biểu thức: UPCASE(ch); KQ?

Đáp án và biểu điểm

Trang 32

Hoạt động của thầy và trò Nội dung bài giảng

* Hoạt động 1 (tìm hiểu ví dụ 1 về

a, b: string;

Begin Write('Nhap ho ten thu nhat: '); Readln (a);

Write('Nhap ho ten thu hai: '); Readln (b);

x:= length(b);

{Xac dinh do dai xau b de biet vi tri cua ki tu cuoi cung}

If a[1] = b[x] Then Write('Trung nhau') Else Write('Khac nhau');

Readln End.

* Hoạt động 3 (tìm hiểu ví dụ 3 )

Readln (a);

K:= length(a);{Xac dinh do dai xau} For i:= k Downto 1 Do Write(a[i]); Readln

End.

* Hoạt động 4 (tìm hiểu ví dụ 4 ) Ví dụ 4

Trang 33

Write(' Ket qua: ', b);

Readln End.

* Hoạt động 5 (tìm hiểu ví dụ 5 )

- GV: Trình bày chơng trình

- HS: Quan sát, nghe giảng, ghi bài

- GV: Hãy cho biết ý nghĩa một số câu

i: Byte;

Begin Write('Nhap vao xau s1: ');

Readln (s1);

s2:= '';

{Khoi tao xau S2 rong}

For i:= 1 to length(s1) Do

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

Write('Ket qua: ', s2);

Readln End.

Trang 34

- Biết một xâu là một dãy các kí tự, có thể coi xâu nh một mảng một chiều;

- Biết kiểu xâu với một số hàm thủ tục chuẩn;

- Hiểu cách khai báo kiểu dữ liệu xâu

- Làm quen với việc tìm kiếm, thay thế và biến đổi xâu

- Biết áp dụng các hàm, các thủ tục chuẩn vào bài tập cụ thể

2 Kỹ năng

- Biết khai báo kiểu dữ liệu xâu;

- Biết sử dụng các thủ tục và hàm chuẩn để xử lý xâu

- Soạn thảo và chạy thử đợc chơng trình trong bài thực hành và một số yêu cầu khác

3 Thái độ

- Có ý thức bảo vệ tài sản phòng máy;

- Góp phần 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 tiện dạy và học

2 Kiểm tra bài cũ

- Kiểm tra kết hợp nội dung thực hành

3 Bài mới

Hoạt động của thầy và trò Nội dung bài giảng

* Hoạt động 1 (Tìm hiểu chơng trình Bài

1 SGK- T73)

- GV: Yêu cầu HS khởi động TP sau đó

soạn thảo chơng trình, soát lỗi, chạy

Ngày đăng: 30/11/2013, 06:11

HÌNH ẢNH LIÊN QUAN

Bảng viết khai báo một số biến mảng - Tài liệu GA TIN 11
Bảng vi ết khai báo một số biến mảng (Trang 15)
Bảng phụ hoặc máy chiếu) - Tài liệu GA TIN 11
Bảng ph ụ hoặc máy chiếu) (Trang 30)
Bảng hoặc trình chiếu) - Tài liệu GA TIN 11
Bảng ho ặc trình chiếu) (Trang 45)
Hình   để   học   sinh   theo   dõi;   Chạy - Tài liệu GA TIN 11
nh để học sinh theo dõi; Chạy (Trang 60)
w