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

Giáo án tin học lớp 11 ( Chuẩn không cần chỉnh)

84 799 0

Đ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

Định dạng
Số trang 84
Dung lượng 692,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

Kĩ năng - Biết được các thành phần trong khai báo kiểu mảng một chiều; - Biết được định danh của một phần tử kiểu mảng một chiều xuất hiện trong một chương trình; - Biết cách khai báo

Trang 1

Ngày soạn: Tiết PPCT: 20 Ngày dạy:

CHƯƠNG III KIỂU DỮ LIỆU CÓ CẤU TRÚC

BÀI 11: KIỂU MẢNG (t1)

I MỤC TIÊU

1 Kiến thức

- Biết được một kiểu dữ liệu mới là kiểu mảng một chiều

- Biết được một loại biến có chỉ số

- Biết cấu trúc tạo mảng một chiều, cách khai báo biến kiểu mảng một chiều

2 Kĩ năng

- Biết được các thành phần trong khai báo kiểu mảng một chiều;

- Biết được định danh của một phần tử kiểu mảng một chiều xuất hiện trong một chương trình;

- Biết cách khai báo mảng đơn giản với chỉ số miền con của kiểu nguyên;

- Biết cách tham chiếu đến các phần tử của mảng một chiều

3 Năng lực cần phát triển

- Nắm khái quát chung về dữ liệu kiểu mảng, cách khai báo biến mảng 1 chiều và xuất nhập dữ liệu trong mảng 1 chiều

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP

1 Phương pháp: - Đặt vấn đề, gợi mở thuyết giảng.

2 Phương tiện: Bảng + máy chiếu

III CÔNG TÁC CHUẨN BỊ

1 Giáo viên: Giáo án, SGK, sơ đồ cấu trúc mảng 1 chiều

HS: Đưa ra các phương án để trả lời

cho 3 câu hỏi trên

GV: Các ngôn ngữ lập trình thường

cung cấp một số kiểu dữ liệu được xây

dựng từ những kiểu dữ liệu chuẩn gọi

là kiểu dữ liệu có cấu trúc Chương

này chúng ta sẽ tìm hiểu một số kiểu

dữ liệu trong ngôn ngữ Pascal để trả

lời 3 câu hỏi trên

Có thể sử dụng ví dụ trongSGK, Vở ghi để học sinh dễ theodõi, gõ trước chương trình để có thể

sử dụng cho các phần tiếp theo

Trong lập trình thường có 2 loại mảng:

Với mảng một chiều ta quan

Trang 2

GV: Đưa ra ví dụ, cần lập trình xử lý

một dãy số nguyên, hãy tìm cách lưu

trữ một dãy số nguyên trong khi lập

trình?

(A3) Bằng cách nào để lưu trữ được

thông tin dưới dạng bảng khi lập trình?

HS: Đưa ra ý kiến.

GV: Đánh giá ý kiến của học sinh, sau

đó đưa ra mục đích của việc sử dụng

cấu trúc mảng trong chương trình

GV: Đưa ra khái niệm mảng một chiều

và một số yếu tố liên quan trong lập

trình nói chung

GV: Đi sâu phân tích hai chương trình

để cho học sinh nhận thấy sự tiện lợi

khi sử dụng mảng

HS: Trong khi giáo viên phân tích hai

chương trình, học sinh sẽ đưa ra ý kiến

nhận xét về 2 chương trình

Hoạt động 2:Tìm hiểu khai báo

mảng một chiều

GV: Đưa ra cách khai báo mảng một

chiều trong ngôn ngữ Pascal, giải thích

ý nghĩa của các từ khóa mới

(A2) Khai báo bằng cách nào tiện lợi

hơn?

HS: Thường thì học sinh trả lời cách 1

tiện lợi hơn ?

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

-Cách khai báo biến mảng mộtchiều

- Cách truy cập vào từng phần tử

của mảng: tên mảng[chỉ số].

Xét ví dụ: Nhập vào nhiệt độ trung

bình mỗi ngày trong tuần Tính vàđưa ra màn hình nhiệt độ trung bìnhcủa cả tuần và đếm số ngày có nhiệt

độ lớn hơn nhiệt độ trung bình này

Quan sát hai chương trình viếtbằng ngôn ngữ Pascal cùng để giảibài toán trên

- Chương trình 1: Không sử dụngkiểu mảng

- Chương trình 2: Sử dụng kiểumảng một chiều

a./ Khai báo mảng một chiều

Trong ngôn ngữ Pascal, mảng mộtchiều được khai báo bằng hai cáchnhư sau:

- Kiểu thành phần là kiểu dữliệu của phần tử mảng

- Để truy cập vào phần tử mảng

ta viết :

Trang 3

GV: Sử dụng một số hình ảnh trực

quan minh họa cho học sinh cấu trúc

mảng và chỉ số của phần tử

Chỉ

Giá

trị 53 81 62 18 26 41

(A3) Em hãy khai báo biến cho ví dụ

trên theo 2 cách?

HS Lên bảng viết.

Đưa ra một số khai báo mảng trong

Pascal

- <Tên biến mảng>[Chỉ số]

Ví dụ:

A[20]: Truy cập phần tử mang chỉ

số 20 trong mảng A

Ví dụ : Khai báo biến mảng thông qua kiểu mảng:

Type Array Integer=Array[1 100] of Integer;

Array Real=Array[1.50] of Real;

Var A: Array[1 50];

B: Array[1 50] of Real; Khai báo mảng trực tiếp : Var A: Array[1 100] of Integer ; B: Array[1 50] of Real ; 4 Câu hỏi và bài tập kiểm tra, đánh giá: - Khái niệm mảng 1 chiều ? (A1) - Cách khai báo mảng 1 chiều? (A2) - Viết khai báo 1 mảng số nguyên có tên là A gồm 100 phần tử? (A3) 5 Giao nhiệm vụ về nhà: - Làm bài tập 1, 2, 3, 4 trang 79 - Xem trước ví dụ tìm phần tử lớn nhất mảng Ký duyệt của tổ chuyên môn

Trang 4

Ngày soạn: Tiết PPCT: 21 Ngày dạy:

- Viết được chương trình tìm số lớn nhất, nhỏ nhất sử dụng kiểu mảng

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

1 Phương pháp: - Thuyết trình, vấn đáp, gợi mở giải quyết vấn đề.

2 Phương tiện: bảng + máy chiếu

III CÔNG TÁC CHUẨN BỊ:

1 Giáo viên: giáo án, bảng phụ, SGK, vở ghi

2 Học sinh: SGK, vở ghi

IV TIẾN TRÌNH LÊN LỚP

1 Ổn định lớp:- Cán bộ lớp báo cáo sĩ số.

2 Kiểm tra bài cũ:

- Viết cấu trúc khai báo biến một chiều theo 2 cách và cho ví dụ.(A2) (7p)

HS: Xây dựng thuật toán để giải bài

toán (thuật toán đã học ở lớp 10)

GV Y/cầu hs xác định những nội dung

chính cần viết trong chương trình

HD: +Khai báo biến

(A4) Viết chương trình trên bảng?

GV Yêu cầu học sinh lên bảng viết

- Input: Số nguyên dương N và

dãy số A1, A2, … , AN

- Output: Chỉ số và giá trị của số

lớn nhất trong dãy

- Ý tưởng:

+ Đặt số A1 là số lớn nhất(max)

+ Cho i lặp từ 2 đến N, nếuA[i]> max thì đổi max = A[i]

B3: Nếu i > n thông báo giá trịMax rồi kết thúc

B4:

B41: Nếu a > Max thì Max = a

Trang 5

readln(A[i]) ;

End ;

(A3) Làm thế nào để tìm phần tử lớn

nhất và chỉ số của phần tử lớn nhất?

GV Yêu cầu học sinh lên bảng viết

phần tìm phần tử lớn nhất mảng và vị trí

của phàn từ đó

HS Lên bảng viết:

max := a[1] ; csmax := 1 ;

For i := 2 to n do

If a[i] > max then

Begin

max := a[i] ; csmax :=i ;

End ;

GV Yêu cầu học sinh lên bảng viết

phần đưa kết quả ra màn hình

HS Lên bảng viết:

Writeln('Gia tri lon nhat : ',max) ;

Writeln('chi so ptu lon nhat : ',csmax) ;

GV Yêu cầu học sinh lên bảng viết

phần khai báo mảng và hoàn tất chương

trình

HS Lên bảng viết:

Program timmax ;

Uses crt ;

var a : array[1 250] of integer ;

n, i, max, csmax: Integer ;

GV Đưa ra màn hình chương trình hoàn

chỉnh và chạy chương trình cho học sinh

xem kết quả

Với n=5, A=2 44 7 23 8 9

N=8, A=2 6 8 12 56 7 23 4 B42: tăng i = i + 1 rồi quay lại B3 Chương trình như sau: Program timmax ; Uses crt ; var a : array[1 250] of integer ; n, i, max, csmax: Integer ; Begin clrscr ; Write('Nhap n = ') ; Readln(n) ; For i := 1 to n do Begin Write('a[',i,'] = ') ; readln(a[i]) ; End ; max := a[1] ; csmax := 1 ; For i := 2 to n do If a[i] > max then Begin max := a[i] ; csmax :=i ; End ; Writeln('Gia tri lon nhat : ',max) ; Writeln('chi so ptu lon nhat : ',csmax) ; Readln ; End 4 Câu hỏi và bài tập kiểm tra, đánh giá: - Thay đổi chương trình tìm giá trị lớn nhất ở trên thành chương trình tìm phần tử bé nhất ? (A4) 5 Giao nhiệm vụ về nhà: - Bài 5,6 trang 79 - Xem trước ví dụ 2 sắp xếp để được dãy không giảm Ký duyệt của tổ chuyên môn

Trang 6

Ngày soạn: Tiết PPCT: 22 Ngày dạy:

- Viết được chương trình sắp xếp để được dãy tăng, giảm sử dụng kiểu mảng

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

1 Phương pháp: - Đặt vấn đề, gợi mở thuyết giảng.

2 Phương tiện: bảng + máy chiếu

III CÔNG TÁC CHUẨN BỊ:

1 Giáo viên: giáo án, bảng phụ, SGK, vở ghi

2 Học sinh: SGK, vở ghi

IV TIẾN TRÌNH LÊN LỚP

1 Ổn định lớp:- Cán bộ lớp báo cáo sĩ số.

2 Kiểm tra bài cũ:

- Viết chương trình tìm phần tử bé nhất mảng.(A3) (10p)

3 Bài mới:

30p Hoạt động 1: Tìm hiểu ví dụ 2

GV: Đưa ra ví dụ: Cho dãy A=a1, a2, a3,…

an gồm n số nguyên dương (n<=250) Viết

chương trình sắp xếp dãy A để được dãy

không giảm

(A1) Hãy xác định bài toán?

HS Trả lời

(A2) Xây dựng thuật toán?

HS: Xây dựng thuật toán để giải bài toán

(thuật toán đã học ở lớp 10)

(A4) Viết chương trình trên bảng?

Ví dụ 2: Sắp xếp dãy số nguyên

theo bằng thuật toán tráo đổi

- Input: Số nguyên dương N và

dãy số A1, A2, …, AN

- Output: Dãy A được sắp xếp

theo thứ tự không giảm

- Ý tưởng:

+ Đổi để đưa số lớn nhất về

vị trí cuối cùng + Làm tương tự đối vớinhững số còn lại

* Thuật toán

+ a) Cách liệt kê

+ Bước 1: Nhập N, và dãya1, a2, , aN;

+ Bước 2: M  N;

+ Bước 3: Nếu M < 2 thìđưa ra dãy A đã được sắpxếp rồi kết thúc;

+ Bước 4: M  M – 1, i  0;+ Bước 5: i  i + 1;

+ Bước 6: Nếu i > M thìquay lại bước 3;

+ Bước 7: Nếu ai > ai+1 thì

Trang 7

TL Hoạt động của Gv & Hs Nội dung

GV Yêu cầu học sinh lên bảng viết phần

(A3) Làm thế nào để tráo đổi giá trị 2 biến

cho nhau (a[i] và a[i+1])?

HS sử dụng thêm biến trung gian t:

GV Yêu cầu học sinh lên bảng viết phần

khai báo mảng và hoàn tất chương trình

GV Đưa ra màn hình chương trình hoàn

chỉnh và chạy chương trình cho học sinh

xem kết quả

đổi chỗ ai và ai+1 chonhau;

+ Bước 8: Quay lại bước 5

Chương trình như sau :

Program sapxep ;Uses crt ;

var A : Array[1 250] of integer ; n,i,j,tg : Integer ;

Begin clrscr ; Write('Nhap so phan tu mang n

= ') ; Readln(n) ; For i := 1 to n do Begin

Write('A[',i,'] = ') ; readln(A[i]) ; End ;

For i := 1 to n-1 do For j := i+1 to n do

If A[i] > A[j] then Begin

tg := A[i] ; A[i] := A[j] ; A[j] := tg ; End ;

Writeln('day sau khi sap xep : ') ; For i := 1 to n do

write(a[i]:8) ; readln ;End

4 Câu hỏi và bài tập kiểm tra, đánh giá:

Trang 8

- Viết chương trình sắp xếp để được dãy không tăng? (A4)

5 Giao nhiệm vụ về nhà:

- Bài 7 trang 79

Ký duyệt của tổ chuyên môn

Trang 9

Ngày soạn: Tiết PPCT: 23 Ngày dạy:

BÀI TẬP

I MỤC TIÊU

1 Kiến thức

- Củng cố những kiến thức, hiểu biết về kiểu dữ liệu mảng

- Biết biết cách khai báo và sử dụng mảng một chiều

2 Kỹ năng

- Nhận biết được các thành phần trong khai báo mảng trong ngôn ngữ Pascal

- Cài đặt được thuật toán giải 1 số bài toán đơn giản với dữ liệu kiểu mảng 1 chiều

- Viết được chương trình sử dụng kiểu mảng

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

1 Phương pháp:

- Đặt vấn đề, gợi mở thuyết giảng.

- Kết hợp các phương pháp dạy học như: giảng giải, minh hoạ, học theo nhóm

2 Phương tiện: bảng + phấn

III CÔNG TÁC CHUẨN BỊ:

1 Giáo viên: SGK, Vở ghi; SGV; Giáo án.

2 Học sinh: SGK, Vở ghi; Vở ghi chép.

IV TIẾN TRÌNH LÊN LỚP

1 Ổn định tổ chức: Kiểm tra sỹ số

2 Bài cũ: Giáo viên gọi một HS lên bảng trả lời câu hỏi:

- Viết cấu trúc khai báo mảng một chiều? (A2) (8p)

HS Sử dụng phép toán chia lấy phần dư

(a[i] mod 2=0 thì a[i] là số chẳn)

(A1) Hãy xác định bài toán?

- Input: Số nguyên dương N và

dãy số A1, A2, …, AN

Trang 10

TL Hoạt động của GV và HS Nội dung

10p

(A4) Yêu cầu học sinh lên bảng viết phần

tính tổng các phần tử chẳn trong mảng

HS Lên bảng viết:

s:=0;

for i:=1 to n do

if a[i] mod 2=0 then s:=s+a[i];

(A3) Yêu cầu học sinh lên bảng viết phần

đưa mảng ra màn hình

HS Lên bảng viết:

writeln('tong chan s:',S:4);

(A3) Yêu cầu học sinh lên bảng viết phần

khai báo mảng và hoàn tất chương trình

HS Lên bảng viết:

program tongchan;

USES CRT;

var a:array[1 100] of integer;

n,i,s:integer;

GV Đưa ra màn hình chương trình hoàn

chỉnh và chạy chương trình cho học sinh

xem kết quả với dãy A=3,6,1,8,3,7

Hoạt động 2:

(A4) Sửa lại chương trình trên để có

chương trình tính tổng các phần tử lẻ?

Với A =2, 6, 7, 3, 8 S=?

HS Lên bảng làm

begin clrscr;

write('nhap n:'); readln(n); for i:=1 to n do

begin write('A[',i,']=');

readln(a[i]);

end;

s:=0;

for i:=1 to n do

if a[i] mod 2=0 then s:=s+a[i];

writeln('tong chan s:',S:4); readln;

END

if a[i] mod 2<>0 then s:=s+a[i]; 4 Câu hỏi và bài tập kiểm tra, đánh giá: - Viết chương trình nhập vào một mảng số nguyên A gồm N phần tử Tinh tổng các phần tử là số lẻ? (A3) 5 Giao nhiệm vụ về nhà: - Cho mảng B gồm k phần tử Viết chương trình tính: + Tổng các phần tử ở vị trí chẳn.(A3) - Tham khảo các bài tập trong SBT - Xem trước bài thực hành 3 Ký duyệt của tổ chuyên môn

Trang 11

Ngày soạn: Tiết PPCT: 24 Ngày dạy:

- Viết được chương trình sử dụng kiểu mảng

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

1 Phương pháp: Hoạt động nhóm

2 Phương tiện: máy tính, máy chiếu

III CÔNG TÁC CHUẨN BỊ:

1 Giáo viên: Giáo án, phòng máy vi tính.

2 Học sinh: Sách giáo khoa, vở ghi chép.

IV TIẾN TRÌNH LÊN LỚP

1 Ổn định tổ chức: Nắm sĩ số.

- Phân công học sinh theo nhóm : 2 học sinh/ 1 máy tính

2 Kiểm tra bài cũ: Thực hiện trong quá trình thực hành.

HS trả lời câu hỏi

GV Yêu cầu học sinh mở sách giáo

khoa và giải thích các lệnh trong

chương trình

- Hàm random(n): cho giá trị là số

nguyên ngẫu nhiên trong [0 n-1]

- Thủ tục Randomize khởi tạo cơ chế

sinh số ngẫu nhiên

- Câu lệnh tạo ngẫu nhiên 1 mảng gồm

a, Hãy tìm hiểu, gõ và chạy thử chương trình sau đây.

Học sinh chuẩn bị theo hướng dẫncủa giáo viên

Trang 12

(A3) Chương trình gồm những công

việc chính nào?

HS trả lời câu hỏi:

- Khai báo mảng A có 100 số

nguyên

- Nhập mảng A ngẫu nhiên

- Nhập k từ bàn phím

- Tính tổng các số chia hết cho k

(A4) Gõ chương trình vào máy, sửa

lỗi và chạy chương trình với dãy

A=45,65,12,7,9,10 và K=5 Đọc kết

quả

HS S=120.

(A4) Hãy đưa các lệnh sau đây vào

những vị trí cần thiết nhằm sửa đổi

chương trình trong câu a để chương

trình đưa ra số lượng số dương và số

lượng số âm trong mảng.

posi, neg: Integer;

posi := 0; neg := 0;

If A[i] > 0 then Posi := posi +1

else

if A[i] < 0 then Neg := neg + 1;

Writeln (posi:4, Neg: 4);

(A4) Chạy thử chương trình với dãy

A=3,-7,8,4,-9,-2,45,-12 rồi đọc kết

quả

HS thực hành theo hướng dẫn của giáo viên

Kq: posi=60; neg=30

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 s:',S:4); readln;

END

program tongchan;

USES CRT;

var a:array[1 100] of integer;

posi, neg,n,i:integer;

begin clrscr; randomize;

write('nhap n:'); readln(n); for i:=1 to n do a[i]:=random(301)-random(301);

for i:=1 to n do write(a[i]:4);

posi := 0; neg := 0; If A[i] > 0 then Posi := posi +1 else if A[i] < 0 then Neg := neg + 1; Writeln (posi:4, Neg: 4 ); readln; END 4 Câu hỏi và bài tập kiểm tra, đánh giá: - Cho mảng A gồm n số nguyên (n<=100), mỗi số theo trị tuyệt đối không vượt quá 100 Tính tổng các phần tử của mảng là số chẵn Hiển thị kết quả ra màn hình? (A4) 5 Giao nhiệm vụ về nhà: Xem trước bài 2 Ký duyệt của tổ chuyên môn

Trang 13

Ngày soạn: Tiết PPCT: 25 Ngày dạy:

- Các kỹ năng cơ bản làm việc với kiểu mảng trong lập trình:

+ Khai báo biến mảng

+ Nhập dữ liệu cho mảng

+ Đưa ra màn hình chỉ số và giá trị của các phần tử của mảng

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

3 Năng lực cần phát triển

- Rèn luyện tác phong, phẩm chất của người lập trình như: tính cẩn thận, nghiêm túc,rèn luyện thói quen kiểm tra, thử nghiệm, đánh giá và ghi nhớ kiến thức

- Viết được chương trình sử dụng kiểu mảng

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

1 Phương pháp: Hoạt động nhóm

2 Phương tiện: máy tính, máy chiếu

III CÔNG TÁC CHUẨN BỊ:

1 Giáo viên: Giáo án, phòng máy vi tính.

2 Học sinh: Sách giáo khoa, vở ghi chép.

IV HOẠT ĐỘNG DẠY HỌC

1 Ổn định tổ chức

- Điểm diện học sinh

- Phổ biến nội dung công việc của buổi thực hành

- Phân công học sinh theo nhóm 2 học sinh / 1 máy tính

2 Kiểm tra bài cũ: Thực hiện trong quá trình thực hành

3 Bài mới:

TL Hoạt động của giáo viên, học sinh Nội dung

20p Hoạt động 1: Làm bài tập 2

(A3) Giáo viên yêu cầu học sinh gõ, tìm

hiểu chương trình trong sách giáo khoa

rồi thực hiện chương trình

HS Học sinh chuẩn bị theo hướng dẫn

của giáo viên

GV Chạy chương trình với N=5

A=3, 6, 1, 8, 9

Bài 2 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.

Program Maxelement;

Const nmax=100Type Myarray = [1 nmax] ofinteger;

Trang 14

20p Hoạt động 2: Viết lại chương trình

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

GV Hướng dẫn học sinh sửa đổi

chương trình

HS.thực hành theo hướng dẫn của giáo

viên

(A4) Kiểm tra lỗi, sửa lỗi và chạy

chương trình với n=6, A=5,2,4,5,2,5

HS Thực hành trên máy.

write('A[',i,']=');

readln(a[i]);

end;

j:=1;

for i:=2 to n do

if a[i] >a[j] then j:=i;

Writeln(‘Chi so la’,j,’gia tri:’,a[i]:4);

Readln;

End

Program maxEement;

Const nmax = 100;

Type Myarray = [1 nmax] of integer;

Var A: Myarray; N,i,j ,max: Integer; Begin

Writeln(‘ Nhap n = ‘);Readln(n); For i:= 1 to n do

begin write('A[',i,']=');

readln(a[i]);

end;

Max:= A[1];

For i:= 2 To n Do

If A[i] > max Then Max:= A[i];

For i := 1 to n do

If A[i] = max Then Writeln(‘Chi so la’,i);

Readln;

End

4 Câu hỏi và bài tập kiểm tra, đánh giá:

- Bài tập và thực hành này các em cần nắm vững những nội dung sau đây:

+ Biết cách khai báo mảng, Biết cách duyệt mảng

5 Giao nhiệm vụ về nhà:

- Viết lại chương trình vào vở và xem trước bài thực hành 4 câu 1

Ký duyệt của tổ chuyên môn

Trang 15

Ngày soạn: Tiết PPCT: 26 Ngày dạy:

3 Năng lực cần phát triển

- Rèn luyện tác phong, phẩm chất của người lập trình như: tính cẩn thận, nghiêm túc,rèn luyện thói quen kiểm tra, thử nghiệm, đánh giá và ghi nhớ kiến thức

- Viết được chương trình sử dụng kiểu mảng

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

1 Phương pháp: Hoạt động nhóm

2 Phương tiện: máy tính, máy chiếu

III CÔNG TÁC CHUẨN BỊ:

1 Giáo viên: Giáo án, phòng máy vi tính.

2 Học sinh: Sách giáo khoa, vở ghi chép.

IV TIẾN TRÌNH LÊN LỚP

1 Ổn định tổ chức

- Điểm diện học sinh

- Phân công học sinh theo nhóm 2 học sinh / 1 máy tính

2 Kiểm tra bài cũ: Thực hiện trong quá trình thực hành

HS Thực hành trên máy và trả lời.

HS: Nhận xét về thời gian chạy chương

trình

Bài 1 Viết chương trình sắp xếp các phần tử của mảng theo thứ tự không giảm.

Program cau1;

Uses crt;

Const nmax=250;

Type arrint=array[1 nmax] ofinteger;

Var A: arrint; i,n,j,t: integer;

Begin Clrscr; Randomize;

Write(‘nhap n=’); readln(n); For i:=1 to n do

random(300);

For i=1 to n do writeln(a[i]:6); Writeln;

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

Trang 16

20p Hoạt động 2: Sửa đổi chương trình ở bài

tập 1

(A4) Khai báo biến nguyên Dem và bổ

sung câu lệnh vào chương trình để tính số

lần thực hiện tráo đổi

Var A: arrint; i,n,j,t: integer;

Begin Clrscr; Randomize;

Write(‘nhap n=’); readln(n); For i:=1 to n do

random(300);

For i=1 to n do writeln(a[i]:6);Writeln;

dem:=0;

for i:=1 to n-1do for j:=i+1 to n do

if a[i]>a[j] then begin

t:=a[i];

a[i]:=a[j];a[j]:=t;dem:=dem+1; end;

writeln('day a tang dan la:');

for i:=1 to n do writeln(a[i]:2); write('so lan hoan doi:',dem:3); readln;

end

 Kq: dem=5

4 Câu hỏi và bài tập kiểm tra, đánh giá:

- Viết chương trình sắp xếp các phần tử của mảng theo thứ tự không tăng? (A3)

5 Giao nhiệm vụ về nhà:

- Viết lại chương trình vào vở và xem trước câu 2.

Ký duyệt của tổ chuyên môn

Trang 17

Ngày soạn: Tiết PPCT: 27

3 Năng lực cần phát triển

- Rèn luyện tác phong, phẩm chất của người lập trình như: tính cẩn thận, nghiêm túc,rèn luyện thói quen kiểm tra, thử nghiệm, đánh giá và ghi nhớ kiến thức

- Viết được chương trình sử dụng kiểu mảng

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

1 Phương pháp: Hoạt động nhóm

2 Phương tiện: máy tính, máy chiếu

III CÔNG TÁC CHUẨN BỊ:

1 Giáo viên: Giáo án, phòng máy vi tính.

2 Học sinh: Sách giáo khoa, vở ghi chép.

IV TIẾN TRÌNH LÊN LỚP

1 Ổn định tổ chức

- Điểm diện học sinh

- Phân công học sinh theo nhóm 2 học sinh/ 1 máy tính

2 Kiểm tra bài cũ: Thực hiện trong quá trình thực hành

3 Bài mới:

20p Hoạt động 1: Gõ chương trình ở bài 2

(A1) Gõ và thực hiện chương trình

program subsum;

const nmax=100;

type myarray=array[1 nmax] of integer;

var B,A:myarray; n,i,j:integer;begin

Trang 18

20p Hoạt động 2: Thay đổi chương trình

(A2) Thay đoạn chương trình

For i:= 1 to n do

Begin

B[i]:= 0;

For j:= 1 To i Do B[i]:= B[i] +

A[j];

End;

Bằng đoạn chương trình sau:

B[1] := A[1];

For i:= 2 To n Do B[i] := B[i-1] +

A[i];

Rồi thực hiện lại chương trình

(A3) Rút ra nhận xét về thời gian chạy

của chương trình

HS Sau khi thay bởi đoạn chương trình

mới thì chương tình sẽ chạy nhanh hơn,

hiệu quả hơn vì máy tính phải thực hiện

ít phép tính hơn

GV Như vậy, trong khi lập trình cần

chọn giải thuật nào hiệu quả hơn để cài

đặt chương trình

begin B[i]:=0;

for j:=1 to i do b[i]:=b[i] +a[j];

end;

for i:=1 to n do writeln(b[i]:4); readln;

end

program subsum;

const nmax=100;

type myarray=array[1 nmax] of integer;

var B,A:myarray; n,i,j:integer; begin

randomize;

write('nhap so luong phan tu:');

readln(n);

for i:=1 to n do a[i]:=random(301)-random(301);

for i:=1 to n do writeln(a[i]:5); writeln;

B[1]:=A[1];

for i:=2 to n do b[i]:=b[i-1]+a[i];

for i:=1 to n do writeln(b[i]:4); readln;

end

4 Câu hỏi và bài tập kiểm tra, đánh giá:

- Cho mảng A gồm n phần tử Hãy viết chương trình tạo mảng B [1 n] trong đó B[i] là tích của i phần tử đầu tiên của A ? (A4)

5 Giao nhiệm vụ về nhà:

- Viết lại chương trình vào vở và xem trước bài 12: Kiểu xâu

Ký duyệt của tổ chuyên môn

Trang 19

Ngày soạn: Tiết PPCT: 28 Ngày dạy:

Bài 12: KIỂU XÂU (t1)

I MỤC TIÊU

1 Kiến thức

- Biết xâu là một dãy kí tự Biết cách khai báo xâu, truy cập phần tử của xâu

- Các phép so sánh trên xâu Sử dụng được một số thủ tục, hàm thông dụng về xâu

2 Kỹ năng

- Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal

- Có thể nhập hay xuất giá trị của một biến kiểu xâu

- So sánh xâu, sử dụng biến xâu, các phép toán và các hàm, thủ tục chuẩn trên xâu đểgiải quyết một bài toán đơn giản

3 Năng lực cần phát triển

- Sử dụng được các hàm và thủ tục trong xâu, khai báo biến xâu

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

1 Phương pháp: - Kết hợp phương pháp giảng dạy như thuyết trình, vấn đáp

2 Phương tiện: Bảng + phấn

III CÔNG TÁC CHUẨN BỊ:

1 Giáo viên: - Sách giáo viên, SGK, Vở ghi, giáo án tin 11

2 Học sinh: - SGK, Vở ghi, Vở ghi tin 11

IV TIẾN TRÌNH LÊN LỚP

1 Ổn định tổ chức: Nắm sĩ số.

2 Kiểm tra bài cũ

Câu hỏi: Viết chương trình cho phép nhập và in ra màn hình họ tên của một hs trong

lớp Với yêu cầu trên ta sẽ sử dụng kiểu dữ liệu đã học nào? Và khai báo ra sao? (A2) (10p)

- Kiểu dữ liệu mảng một chiều và kiểu các phần tử là kiểu kí tự

- Var hoten : array [1 50] of char

3 Bài mới

10p Hoạt động 1: Giới thiệu mục đích

bài dạy và một số khái nệm về kiểu

xâu.

GV: Bài toán đặt vấn đề: Viết chương

trình nhập và in ra màn hình họ tên của

một học sinh trong lớp

(A2): Ta sẽ sử dụng kiểu dữ liệu đã học

nào? Khai báo ra sao?

HS: Kiểu mảng 1 chiều Khai báo:

Var A:array[1 50] of char;

(A2): Khai báo cho phép nhập vào họ

tên của 50 học sinh? Giải quyết bài toán

trên gặp phải khó khăn gì?

HS: Chương trình giải quyết dài dòng

Khó khăn khi nhập dữ liệu

==> Để giải quyết vấn đề này, chúng ta

- Tên kiểu xâu.

- Số lượng phần tử trong xâu

Trang 20

TL HOẠT ĐỘNG CỦA GV, HS NỘI DUNG

10p

20p

tìm hiểu một kiểu dữ liệu mới – kiểu

xâu.

(A2): Vậy xâu là gì? Yêu cầu HS cho

một số vd về xâu Độ dài của xâu là bao

nhiêu? Có thể xem xâu là mảng một

chiều được không? Tham chiếu như thế

nào?

GV trình bày khái niệm, ví dụ và giới

thiệu các thành phần của xâu, cách tham

chiếu đến các kí tự

Hoạt động 2: Khai báo biến kiểu xâu

GV: Trình bày cách khai báo xâu Giải

thích các thành phần trong cấu trúc

HS: nghiêm túc lắng nghe, trả lời và ghi

chép

Lưu ý: Có thể bỏ qua phần khai báo

độ dài của xâu Xâu được tạo thành bởi

các kí tự, trong đó có thể có dấu cách

Dấu cách thể hiện trong văn bản là

phần trống ngăn cách giữa hai từ viết

liên tiếp

(A3) Yêu cầu HS khai báo biến Hoten

và biến Lop thuộc kiểu xâu

HS Lên bảng viết.

GV: Đưa ra quy ước đối với : Xâu chỉ

gồm một dấu cách được viết như thế

nào? Số lượng kí tự là bao nhiêu? Xâu

rỗng được viết như thế nào? Số lượng

kí tự là bao nhiêu?

HS: Nghe giảng và ghi chép.

Hoạt động 3: Các thao tác xử lý xâu:

GV Trình bày thao tác ghép xâu và

lấy ví dụ minh họa

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

<Tên biến xâu>[chỉ số] vd: Biến Lop lưu trữ giá trị hằng xâu ‘Lop11A5’ thì Lop[6] cho ta

kí tự thứ 6 là ‘A’.

* Chú ý:

+ Có thể xem xâu là mảng một chiều mà mỗi phần tử là một kí tự.Các kí tự của xâu được đánh số thứ tự, thường bắt đầu từ 1

2 Khai báo biến xâu:

Var <tên biến>: string[độ dài lớn

nhất của xâu];

vd: var Hoten : string [30];

Var Lop: string [5];

var Mahs : string;

Lưu ý:

+ Giá trị hằng xâu được đặt

trong dấu nháy đơn ‘’.

+ Độ dài lớn nhất của xâu là 255

+ Nếu không khai báo độ dài lớnnhất của xâu thì ngầm định là 255.+ Xâu rỗng, có độ dài là 0 Kí

hiệu là ‘’.

3 Các thao tác xử lý xâu:

a Phép ghép xâu:

+ Kí hiệu: (+), sử dụng để ghép nhiều xâu thành một

Vd: ‘Ha’ + ‘Noi’ + ‘ - ’+ ‘Viet

Nam’

Š ‘Ha Noi - Viet Nam’

b Phép so sánh:

Các phép so sánh: bằng (=), khác (<>), nhỏ hơn (<), lớn hơn (>),

Trang 21

TL HOẠT ĐỘNG CỦA GV, HS NỘI DUNG

(A3) Lấy ví dụ minh họa và yêu cầu

học sinh cho kết quả ?

(A3) Lấy ví dụ minh họa và yêu cầu

học sinh cho kết quả ?

(A3) Lấy ví dụ minh họa và yêu cầu

học sinh cho kết quả ?

+ A và B có độ dài khác nhau và

A là đoạn đầu của B thì A < B + A = B nếu A và B giống nhau hoàn toàn

Lưu ý: Một xâu có độ dài nhỏ hơn

có thể lớn hơn (>) xâu có độ dài lớn hơn

Vd: ‘AC’ > ’ABC’

c Một số hàm và thủ tục xử lý xâu:

vd: s:= ‘Bai Kieu Xau’

copy (s, 5,8) Š ‘Kieu Xau’

 Hàm length(s): cho giá trị là

độ dài xâu

Vd: s:= ‘Lap trinh Pascal’ Š

length(s) =16

 Hàm pos(s1,s2): cho vị trí xuất hiện đầu tiên của xâu s1

Trang 22

TL HOẠT ĐỘNG CỦA GV, HS NỘI DUNG

trong xâu s2

Vd: S2:= ‘Lop 11A5 co 45 HS’

Pos(’45 HS’, S2) Š 13

Pos (‘b’, S2) Š 0

 Hàm upcase(ch): cho chữ cái

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

ch Vd: ch:= ‘h’ Š ‘H’

4 Câu hỏi và bài tập kiểm tra, đánh giá:

- Cho xâu S=’ Chao cac ban’

Hãy cho biết kết quả sau khi thực hiện các thao tác sau: (A3)

a) Delete(s,6,3)

b) Copy(s, 10, 3)

5 Giao nhiệm vụ về nhà

- Xem và chuẩn bị mục 3 SGK trang 71

Ký duyệt của tổ chuyên môn

Trang 23

Ngày soạn: Tiết PPCT: 29 Ngày dạy:

Bài 12: KIỂU XÂU (t2)

I MỤC TIÊU

1 Kiến thức

- Biết xâu là một dãy kí tự Biết cách khai báo xâu, truy cập phần tử của xâu

- Các phép so sánh trên xâu Sử dụng được một số thủ tục, hàm thông dụng về xâu

- Hiểu một số chương trình đơn giản có sử dụng xâu

- Viết được chương trình đơn giản có sử dụng các hàm và thủ tục trong xâu

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

1 Phương pháp: - Kết hợp phương pháp giảng dạy như thuyết trình, vấn đáp

2 Phương tiện: Bảng + phấn

III CÔNG TÁC CHUẨN BỊ:

1 Giáo viên: - Sách giáo viên, SGK, Vở GHI, giáo án tin 11

2 Học sinh: - SGK, Vở GHI, Vở ghi tin 11

IV TIẾN TRÌNH LÊN LỚP

1 Ổn định tổ chức : Kiểm diện

2 Kiểm tra bài cũ:(7p)

1) Viết cấu trúc các hàm trong xâu và cho ví dụ ? (A2)

2) Viết cấu trúc các thủ tục trong xâu và cho ví dụ? (A2)

3 Bài mới

30p Hoạt động 1: Một số ví dụ

GV: Viết chương trình cho nhập họ

tên của hai người vào hai biến xâu và

đưa ra xâu dài hơn, nếu bằng nhau thì

đưa ra xâu nhập sau

(A3) Làm thế nào để xác định độ dài

(A3): Cần sử dụng cấu trúc nào để so

sánh độ dài của xâu?

HS Trả lời

(A4) Gọi học sinh lên bảng viết

chương trình

4 Một số ví dụ:

Ví dụ 1: Viết chương trình cho

nhập họ tên của hai người vào hai biến xâu và đưa ra xâu dài hơn, nếu bằng nhau thì đưa ra xâu nhập sau.Program Vi_du_1;

Uses Crt;

Var a,b : string;

Begin write(‘Ho ten thu nhat: ’);

Trang 24

TL HOẠT ĐỘNG CỦA GV, HS NỘI DUNG

HS Lên bảng viết.

GV Sửa lỗi trên bài HS và chạy

chương trình trên máy (đã chuẩn bị

trước) để HS quan sát

HS Quan sát và ghi chép.

GV: Viết chương trình nhập hai xâu từ

bàn phím và kiểm tra ký tự đầu tiên

của xâu thứ nhất có trùng với ký tự

cuối cùng của xâu thứ hai không

(A3) Xác định các hàm, thủ tục cần sử

dụng trong chương trình?

HS Trả lời.

(A3): Cần sử dụng cấu trúc nào để so

sánh ký tự đầu tiên của xâu thứ nhất

(a[1]) với ký tự cuối cùng của xâu thứ

GV Sửa lỗi trên bài HS và chạy

chương trình trên máy (đã chuẩn bị

(A3): Cần sử dụng cấu trúc nào để

đưa ra xâu đảo ngược của xâu cần

GV Sửa lỗi trên bài HS và chạy

chương trình trên máy (đã chuẩn bị

trước) để HS quan sát

HS Quan sát và ghi chép.

write(b);

readlnEnd

Ví dụ 2: Viết chương trình nhập hai

xâu từ bàn phím và kiểm tra ký tự đầu tiên của xâu thứ nhất có trùng với ký tự cuối cùng của xâu thứ hai không

write(‘Nhap xau mot: ’);

else write(‘Khac nhau’);

readlnEnd

Ví dụ 3: Viết chương trình nhập

vào một xâu từ bàn phím và đưa ra màn hình xâu đó nhưng được viết theo thứ tự ngược lại

for i:= k downto 1 do write(a[i]);

readln

Trang 25

TL HOẠT ĐỘNG CỦA GV, HS NỘI DUNG

GV Sửa lỗi trên bài HS và chạy

chương trình trên máy (đã chuẩn bị

GV Sửa lỗi trên bài HS và chạy

chương trình trên máy (đã chuẩn bị

Ví dụ 5: Viết chương trình nhập

vào xâu ký tự s1 từ bàn phím, tạoxâu s2 gồm tất cả các chữ số cótrong s1 (giữ nguyên thứ tự xuấthiện của chúng) và đưa kết quả ramàn hình

write (‘Nhap vao xâu s1: ’);

readln(s1);

s2:= ‘’;

for i:= 1 to length(s1) do If(‘0’<= s1[i]) and (s1[i]<=‘9’)then

s2:=s2 + s1[i];

writeln(‘Ket qua: ’,s2);

readln;

End

4 Câu hỏi và bài tập kiểm tra, đánh giá:

- Viết chương trình nhập vào một xâu từ bàn phím, xóa tất cả các kí tự trắng thừa ởgiữa xâu (A4)

Trang 26

5 Giao nhiệm vụ về nhà:

- Bài 10 SGK trang 80

- Xem và chuẩn bị bài thực hành số 5

Ký duyệt của tổ chuyên môn

Trang 27

Ngày soạn: Tiết PPCT: 30 Ngày dạy:

- Khai báo biến kiểu xâu, nhập, đưa xâu ra màn hình, truy cập đến phần tử của xâu

- Sử dụng được một số hàm và thủ tục xửa lí xâu

3 Năng lực cần phát triển

- Viết được chương trình có sử dụng hàm và thủ tục trong xâu, khai báo được biếnxâu

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

1 Phương pháp: - Kết hợp phương pháp giảng dạy như thuyết trình, vấn đáp

2 Phương tiện: Bảng + phấn

III CÔNG TÁC CHUẨN BỊ:

1 Giáo viên: - Sách giáo viên, SGK, Vở GHI, giáo án tin 11

2 Học sinh: - SGK, Vở GHI, Vở ghi tin 11

IV TIẾN TRÌNH LÊN LỚP

1 Ổn định tổ chức: Nắm sĩ số.

2 Kiểm tra bài cũ: Viết cấu trúc khai báo kiểu xâu? Cho ví dụ (7p)

3 Giảng bài mới

- Duyệt qua từng kí tự trong xâu

Kiểm tra nếu là kí tự số thì đếm và

cộng vào xâu rỗng

- Xuất kết quả

(A2) Trong chương trình cần sử dụng

các thủ tục hay hàm nào trong xâu?

(A3) Xác định các công việc phải

Bài tập 10 - SGK-Trang 80: Viết chương trình nhập một xâu kí tự S

từ bàn phím có độ dài không quá

100 Hãy cho biết có bao nhiêu chữ

số xuất hiện trong xâu S Thông báo kết quả ra màn hình.

Program xau;

uses crt;

var s:string[100]; demso,i:byte;

begin clrscr;

writeln('moi ban nhap vao mot xau:');

readln(s);

demso:=0;

for i:=1 to length(s) do

if ('0'<=s[i]) and (s[i] <= '9') then demso:=demso+1;

writeln('so luong chu so trong xa:', demso);

readlnend

Bài tập 1: Viết chương trình nhập một xâu kí tự S từ bàn phím có độ

Trang 28

TL HOẠT ĐỘNG CỦA GV - HS NỘI DUNG

- Duyệt qua từng kí tự trong xâu

Kiểm tra nếu là kí tự chữ cái thì đếm

và cộng vào xâu rỗng Lưu ý: không

phân biệt chữ hoa, chữ thường

- Xuất kết quả

(A4) Vận dụng chương trình trên,

sửa lại để được chương trình đếm

liên tiếp ở giữa xâu thì xóa đi 1 kí tự

- Chuyển kí tự ở đầu xâu thành chữ

hoa

(A4) Vận dụng chương trình trên,

sửa lại để được chương trình

chuẩn hóa xâu.

for i:=1 to length(s) do

if ('A'<=s[i]) and (s[i] <= 'Z') or ('a'<=s[i]) and

(s[i]<='z') then begin

Bài tập 2: Viết chương trình nhập một xâu kí tự S từ bàn phím có độ dài không quá 100 Chuẩn hóa xâu (Xóa các kí tự trắng thừa trong xâu

và in hoa chữ cái đầu xâu) {cau c: chuan hoa xau}

program xoadaucach;

uses crt;

var s:string; I,vt:byte;

begin clrscr;

writeln('nhap xau s='); readln(s); while s[1]=' ' do delete(s,1,1); while s[length(s)]=' ' do delete(s,length(s),1);

While pos(#32#32,s)<>0 do Begin

Vt:=pos(#32#32,s);

Delete(s,vt,1);

End;

S[1]:=upcase(s[1]);

Trang 29

TL HOẠT ĐỘNG CỦA GV - HS NỘI DUNG

write(‘xau duoc chuan hoa:’,s); readln

end

4 Câu hỏi và bài tập kiểm tra, đánh giá:

- Viết chương trình nhập vào một xâu kí tự S từ bàn phím Xóa tất cả các ký tự là chữ

số ở trong xâu? (A3)

5 Giao nhiệm vụ về nhà:

- BTVN : tự làm lại bài và thực hành trên máy

- Chuẩn bị bài thực hành 5 câu 1

Ký duyệt của tổ chuyên môn

Trang 30

Ngày soạn: Tiết PPCT: 31Ngày dạy:

BÀI TẬP VÀ THỰC HÀNH 5 (t1)

I MỤC TIÊU

1 Kiến thức

- Nắm lại cấu trúc các hàm và thủ tục trong xâu và cách sử dụng chúng

- Cung cấp một vài thuật toán cơ bản và đơn giản thường gặp khi xử lí văn bản

2 Kỹ năng

- Giúp học sinh có được các kỹ năng cơ bản làm việc với xâu trong lập trình:

+ Khai báo kiểu xâu, nhập dữ liệu cho xâu, đưa ra màn hình giá trị của xâu

+ Truy cập phần tử của xâu, sử dụng các hàm và thủ tục xử lí xâu

3 Năng lực cần phát triển

- Viết được chương trình kiểu xâu và sử dụng các hàm, thủ tục trong xâu

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

1 Phương pháp: Hoạt động nhóm.

2 Phương tiện: Máy tính, máy chiếu

III CÔNG TÁC CHUẨN BỊ:

1 Giáo viên: - Sách giáo viên, SGK, giáo án tin 11

2 Học sinh: - SGK, Vở ghi tin 11

IV TIẾN TRÌNH LÊN LỚP

GV Cho 2 ví dụ về hai xâu khác

nhau để cho học sinh hiểu thế nào là

xâu palindrome?

VD S=’abcdcba’

GV Xâu Palindrome có tính chất:

Đọc nó từ trái sang phải cũng thu

được kết quả giống như đọc từ phải

sang trái

GV Yêu cầu học sinh gõ chương

trình trong SGK trang 73, chạy

chương trình và xem kết quả

HS Thực hành trên máy.

Hoạt động 2: Sửa lại chương trình

(A3) Sửa lại chương trình trên và

không sử dụng biến p

HS Viết chương trình câu 1b, sửa

lỗi và xem kết quả

program xauso;

uses crt;

var s,p:string[50]; i:integer;

begin write('nhap xau s:'); readln(s); p:='';

for i:= length(s) downto 1 do p:=p+s[i];

if s=p then write('xau la palindrome')

else writeln('xau khong la palindrome');

Trang 31

TL HOẠT ĐỘNG CỦA GV – HS NỘI DUNG

GV: Quan sát, hướng dẫn học sinh

if palin then write('xau la palindrome') else writeln('xau khong la

palindrome');

readln;

end

4 Câu hỏi và bài tập kiểm tra, đánh giá:

- Làm bài tập 1 theo cách khác? (A4)

5 Giao nhiệm vụ về nhà:

- Viết lại chương trình vào vở bài tập

- Xem tiếp bài BÀI TẬP VÀ THỰC HÀNH 5: bài 2, bài 3 trang 73 trong SGK, VởGHI

Ký duyệt của tổ chuyên môn

Trang 32

Ngày soạn: Tiết PPCT: 32 Ngày dạy:

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

I MỤC TIÊU

1 Kiến thức:

- Nắm lại cấu trúc các hàm và thủ tục trong xâu và cách sử dụng chúng

- Cung cấp một vài thuật toán cơ bản và đơn giản thường gặp khi xử lí văn bản

2 Kỹ năng

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

3 Năng lực cần phát triển

- Viết được chương trình kiểu xâu và sử dụng các hàm, thủ tục trong xâu

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

1 Phương pháp: Hoạt động nhóm.

2 Phương tiện: Máy tính, máy chiếu

III CÔNG TÁC CHUẨN BỊ:

1 Giáo viên: - Sách giáo viên, SGK, Vở GHI, giáo án tin 11

2 Học sinh: - SGK, Vở GHI, Vở ghi tin 11

IV TIẾN TRÌNH LÊN LỚP

Kết quả của đoạn chương trình trên là gì? (A3) (3p)

Câu 2 Thủ tục Delete(st,vt,n) và Insert(s1,s2,vt) thực hiện công việc gì? Cho ví dụ

minh hoạ (A3) (5p)

HS Nghe giảng và ghi chép.

(A4) Yêu câu HS gõ chương trình

lên máy, sửa lỗi và chạy chương

trình

HS Thực hành trên máy.

Bài tập 2: Viết chương trình nhập

vào 1 xâu kí tự S từ bàn phím và thông báo ra màn hình 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)

Program bai2;

Var a: array['A' 'Z'] of Integer;

s: String; i: Integer; c: Char;

BeginFor c:= 'A' to 'Z' do a[c]:= 0;

Write('Nhap chuoi S: '); Readln(s);

Trang 33

TL HOẠT ĐỘNG CỦA GV –HS NỘI DUNG

15p Hoạt động 2: Làm bài tập 3

GV Hướng dẫn học sinh viết phần

thân

HS Nghe giảng và ghi chép.

(A4) Yêu câu HS gõ chương trình

lên máy, sửa lỗi và chạy chương

ReadlnEnd

While pos (‘anh’, st ) <>0 do Begin

Vt: = pos ( ‘ anh ‘, st );

Detele ( st, vt, 3);

Insert (‘ em ‘, st, vt) End;

Write ( st );

Readln;

End

4 Câu hỏi và bài tập kiểm tra, đánh giá:

- Nhắc lại các thao tác để tìm và thay thế sự xuất hiện một từ bằng một từ kháctrong toàn bộ văn bản

- Nhắc lại cho học sinh một số kiến thức về: Khai báo biến xâu, các hàm và thủ tụcvới xâu

5 Giao nhiệm vụ về nhà:

- Ghi lại 2 chương trình vào vở bài tập

- Xem lại toàn bộ kiến thức về xâu và mảng

Ký duyệt của tổ chuyên môn

Trang 34

Ngày soạn: Tiết PPCT: 33 Ngày dạy:

- Viết được chương trình kiểu xâu, kiểu mảng

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

1 Phương pháp: - Kết hợp phương pháp giảng dạy như thuyết trình, vấn đáp

2 Phương tiện: Bảng + phấn

III CÔNG TÁC CHUẨN BỊ:

1 Giáo viên: - Sách giáo viên, SGK, giáo án tin 11

2 Học sinh: - SGK, Vở ghi tin 11

IV TIẾN TRÌNH LÊN LỚP

1 Ổn định tổ chức: Điểm danh

2 Kiểm tra bài cũ: Kiểm tra trong quá trình học

3 Nội dung bài mới:

- Duyệt qua tuần tự các phần tử

trong mảng Nếu là số dương thì

dừng và in ra màn hình

(A4) Viết chương trình trên máy,

kiểm tra lỗi, chạy chương trình và

write('n='); readln(n);

for i:=1 to n do Begin

write('a[',i,']='); readln(a[i]); end;

i:=1;

while a[i]<=0 do Begin

i:=i+1; duong:=a[i]; csduong:=i; end;

writeln('so duong dau tien trong mang la: ',duong:3);

Trang 35

TL HOẠT ĐỘNG CỦA GV - HS NỘI DUNG

- Thông báo kết quả

(A4) Viết chương trình trên máy,

kiểm tra lỗi, chạy chương trình và

Bài 2: Thêm một phần tử vào mảng.

write('n='); readln(n);

for i:=1 to n do begin

write('a[',i,']='); readln(a[i]); end;

write('nhap vi tri can chen ');

4 Câu hỏi và bài tập kiểm tra, đánh giá:

- Thực hiện bài 2 bằng cách khác (A4)

5 Giao nhiệm vụ về nhà:

- Tự làm lại bài và thực hành trên máy

- Học bài, ôn lại kiến thức chương 2, 3, 4

Ký duyệt của tổ chuyên môn

Trang 36

Ngày soạn: Tiết PPCT: 34 Ngày dạy:

- Vận dụng được kiến thức đã học để giải quyết những bài toán tương tự

- Vận dụng được kiến thức 1 cách linh hoạt và có sáng tạo trong lập trình

3 Năng lực cần phát triển

- Viết được các chương trình sử dụng kiểu dữ liệu mảng và xâu

II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

1 Phương pháp: - Kết hợp phương pháp giảng dạy như thuyết trình, vấn đáp

2 Phương tiện: Bảng + phấn

III CÔNG TÁC CHUẨN BỊ:

1 Giáo viên: - Sách giáo viên, SGK, Vở GHI, giáo án tin 11

2 Học sinh: - SGK, Vở GHI, Vở ghi tin 11

IV TIẾN TRÌNH LÊN LỚP

1 Ổn định tổ chức: Điểm danh

2 Kiểm tra bài cũ: trong quá trình giảng bài

3 Giảng bài mới:

20p Hoạt động 1: Ôn tập phần lý thuyết

(A1+2) Viết cấu trúc của khai báo

biến kiểu mảng theo 2 cách trực tiếp

và gián tiếp Mỗi cấu trúc cho 1 ví dụ

HS Lên bảng viết.

(A1) Viết cấu trúc câu lệnh nhập mảng

1 chiều cho mảng A gồm n phần tử

HS Lên bảng viết.

(A1) Viết cấu trúc của khai báo biến

kiểu xâu và cách tham chiếu đến phần

* Nhập dữ liệu cho mảng 1 chiều

Write(‘A[‘,I,’]=’);readln(A[i]);

End;

* Cách truy cập vào từng phần tử

của mảng: tên mảng[chỉ số].

b Kiểu xâu:

Trang 37

TL HOẠT ĐỘNG CỦA GV - HS NỘI DUNG

20p

(A2) Viết cấu trúc các hàm và thủ tục

trong xâu, nêu ý nghĩa của các hàm và

thủ tục

HS Lên bảng viết.

(A1) Nhắc lại một số thao tác khi thực

hành trên máy (lưu, mở, kiểm tra lỗi,

chạy chương trình)

HS Trả lời.

Hoạt động 2: Bài tập

II Bài tập

(A3) Trong ngôn ngữ lập trình Pascal,

đoạn chương trình sau đưa ra màn hình

kết quả gì?

For i:=5 downto 1 Do Write (i,’ ’);

HS Trả lời

(A3) Trong ngôn ngữ lập trình Pascal,

đoạn chương trình sau thực hiện công

(A3) Trong ngôn ngữ lập trình Pascal,

với câu lệnh như sau :

Writeln (‘ Tong so hoc sinh cua truong

* Cách tham chiếu đến phần tử trong xâu.

<Tên biến xâu>[chỉ số]

* Khai báo biến xâu:

Var <tên biến>: string[độ dài lớn

nhất của xâu];

* Một số hàm và thủ tục xử lý xâu:

+ Delete(st,vt,n)+ Insert(s1,s2,vt) + Copy (S, vt, N)

+ Hàm length(s)

+ Hàm

pos(s1,s2)+ Hàm upcase(ch)

c Một số thao tác trên máy.

Trang 38

TL HOẠT ĐỘNG CỦA GV - HS NỘI DUNG

THPT Quang Trung la: ‘, hs);

(A4) Trong ngôn ngữ lập trình Pascal,

viết câu lệnh để xóa đi kí tự đầu tiên

của xâu kí tự S?

HS Lên bảng viết

(A4) Trong ngôn ngữ lập trình Pascal,

để đổi giá trị hai phần tử mảng 1 chiều

A tại 2 vị trí i và j, ta viết mã lệnh như

thế nào?

HS Lên bảng viết

(A3) Trong ngôn ngữ lập trình Pascal,

đoạn chương trình thực hiện việc việc

gì? (A là mảng có N phần tử)

S:=0 ;

For i:= 1 to N do S:=S+ A[i] ;

HS Trả lời

(A4) Trong ngôn ngữ lập trình Pascal,

viết đoạn chương trình tính tích các

Bài 7:

Tính tổng các phần tử trongmảng

Bài 8:

S:=1;

For i:=1 to n do

If i mod 2<>0 then s:=s*a[i];

4 Câu hỏi và bài tập kiểm tra, đánh giá:

- Viết chương trình nhập vào một mảng số nguyên A gồm N phần tử Tính tổng cácphần tử ở vị trí chẵn.(A4)

- Viết chương trình nhập vào một xâu In hoa tất cả các kí tự đầu tiên của mỗi từ.(A4)

5 Giao nhiệm vụ về nhà:

- Chuẩn bị tiết sau kiểm tra thực hành

Ký duyệt của tổ chuyên môn

Trang 39

Ngày soạn: Tiết PPCT: 35 Ngày dạy:

KIỂM TRA 1 TIẾT

Lưu bài làm bằng số máy của nhóm Ví dụ: học sinh ngồi máy số 18 thì lưu tên

bài: máy 18.1(câu 1), máy 18.2 (câu 2).

Trang 40

If I mod 2 = 0 then S:=S+A[i];

Write (‘Tong=’ S);

Readln

End

Câu 2: (2đ)

Cho xâu S=‘Chuc ban hoc gioi’

Hãy cho biết kết quả sau khi thực hiện các thủ tục và hàm sau

Câu 1 Dòng 1:Program baitap;

Dòng 3:Var A : Array[1 100] of integer;

Câu 3 program cau1;

var s: string[30]; vt: byte;

Câu 4 program cau2;

var B: array [1 100] of integer;

Ngày đăng: 10/04/2018, 13:19

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w