- Giáo viên kết luận về hoạt động của học sinh và vào bài mới.. - Giáo viên kết luận về hoạt động của học sinh và vào bài mới.. - Giáo viên kết luận về hoạt động của học sinh và vào bài
Trang 1Ngày dạy: / /2020 tại lớp 11B6 Ngày dạy: / /2020 tại lớp 11B7 Ngày dạy: / /2020 tại lớp 11B8 Ngày dạy: / /2020 tại lớp 11B9
PPCT: 19
BÀI TẬP THỰC HÀNH 2
I MỤC TIÊU
1 Kiến thức:
- Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh
- Làm quen với việc hiệu chỉnh chương trình
II CHUẨN BỊ CỦA GV VÀ HS.
1 Chuẩn bị của GV: - Giáo án, phấn, bảng, phòng thực hành
2 Chuẩn bị của HS: - Sách giáo khoa, vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn về viết cấu trúc lặp trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
2 Bài mới:
HĐ1.(40')Giáo viên nêu nội dung các
bài tập có sử dụng cấu trúc rẽ nhánh
GV: Nêu yêu cầu của bài:
Bài toán: Cho bộ ba số nguyên a, b, c
được gọi là bộ số Pi-ta-go nếu tổng các
bình phương của hai số bằng bình
phương của số còn lại Viết chương
trình nhập từ bàn phím ba số nguyên a,
b, c và kiểm tra xem chúng xem chúng
có là bộ số Pi-ta-go không?
I NỘI DUNG:
Bài toán: Bộ số Pitago
a) Gõ chương trình kiểm tra bộ số ta-go
Pi-Program Pi_ta_go;
Var a, b, c :Integer;
a2, b2, c2: Longint;
Begin Write(‘ a, b, c ‘); Readln(a, b, c); a2:=a; b2:=b; c2:=c;
Trang 2có xảy ra hay không:
a2 = b2 + c2
b2 = a2 + c2
c2 = a2 + b2
GV: Hướng dẫn học sinh thực hiện
nhập chương trình, lưư chương trình
với tên là PITAGO và thực hiện với các
bộ số trong sách giáo khoa
Writeln(‘ Day la bo so Pi-ta-go’) Else Writeln(‘ Day khong phai bo so Pi-ta-go’);
Readln End
b) Lưu chương trình với tên Pitago lên đĩa
Muốn lưu tên chương trình được thì saukhi gõ xong chương trình ta nhấn phím F2 hoặc chọn vào File-> Saves hiển thị hộp thoại ta gõ tên chương trình
là:Pitago rồi chọn OK
Trang 3Ngày dạy: / /2020 tại lớp 11B6 Ngày dạy: / /2020 tại lớp 11B7 Ngày dạy: / /2020 tại lớp 11B8 Ngày dạy: / /2020 tại lớp 11B9
PPCT: 20
BÀI TẬP 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 có sử dụng cấu trúc rẽ nhánh
- Làm quen với việc hiệu chỉnh chương trình
II CHUẨN BỊ CỦA GV VÀ HS.
1 Chuẩn bị của GV: - Giáo án, phấn, bảng, phòng thực hành
2 Chuẩn bị của HS: - Sách giáo khoa, vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn về viết cấu trúc lặp trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
2 Bài mới:
HĐ2 (40') Giáo viên nêu nội dung bài
tập có sử dụng cấu trúc rẽ nhánh
GV: Yêu cầu hs làm bài tập 4a SGK-51
GV:Giáo viên hướng dẫn học sinh nhập
chương trình
HS: Làm theo hướng dẫn của GV
GV:Với bài này có sử dụng các lệnh rẽ
nhánh dạng thiếu được không?
2 Thực hiện các bài tập trong sách giáokhoa
a) bài tập 4a:
Program baitap4a;
Var x, y :Integer; z: Real;
Begin Write(‘ Nhap vao so x: ’);
Readln(x);
Write(‘ Nhap vao so y: ’);
Readln(y);
Trang 4HS: Trả lời ta không sử dụng được
GV: Nêu đầu bài SGK trang 51
HS: Theo dõi và đọc yêu cầu của bài
tập
GV: Gọi mộ hs trả lời với bài tập này
cần khai báo những biến gì ?
thì bài toán thực hiện như thế nào?
HS: Trả lời câu hỏi
GV:Ta có cần một biến trung gian để
tính các giai thừa của bài toán?
HS: Quan sát chương trình đã viết và
trả lời
If (x*x+y*y) <=1 then z:=
x*x+y*y Else
If y>=x then z:=x+y Else z:=0.5;
Writeln(‘Gia tri cua z la: ’,z:8:2); Readln;
For n:=1 to 50 do S:=S+n/(n+1);
Writeln(‘Tong day so la: S= ’,S:8:2); Readln;
While (1/tg>0.000002) do Begin
N:=n+1;
Tg:=tg*n S:=S+1/tg;
Trang 5Ngày dạy: / /2020 tại lớp 11B7 Ngày dạy: / /2020 tại lớp 11B8 Ngày dạy: / /2020 tại lớp 11B9PPCT: 21
Chương IV: DỮ LIỆU CÓ CẤU TRÚC
Bài 11: KIỂU MẢNG
I MỤC TIÊU
1 Kiến thức:
- Hiểu khái niệm mảng một chiều
- Hiểu cách khai báo và truy cập đến phần tử của mảng một chiều
II CHUẨN BỊ CỦA GV VÀ HS.
1 Chuẩn bị của GV: - Giáo án, phấn, bảng, phòng thực hành
2 Chuẩn bị của HS: - Sách giáo khoa, vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn viết về cấu trúc mảng trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
2 Bài mới:
HĐ1: Học sinh hiểu khái niệm
Bài toán đặt vấn đề: Xét bài toán nhập vào nhiệt
độ (trung bình) của mỗi ngày trong tuần, tính và đưa ra màn hình nhiệt độ trung bình của tuần
và số lượng ngày trong tuần có nhiệt độ cao hơn nhiệt độ trung bình của tuần.
*) Xác định bài toán
Dữ liệu đã biết(Input): t1,t2,t3,t4,t5,t6,t7
Dữ liệu cần tính và in ra(Output) : tb, dem
Trang 6trung b×nh cña N ngµy trong
+) Khai báo gián tiếp
TYPE nhietdo = array[1 365]
of integer;
Var A: nhietdo;
- Vậy quay trở lại với bài toán
tính nhiệt độ trên Khi cần tính
nhiệt độ của N ngày chúng ta
- Để có thể lập trình và sử dụng kiểu mảng mộtchiều các ngôn ngữ lập trình có quy tắc và cáchthức cho phép xác định
+ Tên kiểu mảng một chiều;
+ Số lượng các phần tử;
+ Kiểu dữ liệu của phần tử;
+ Cách khai báo biến mảng mảng;
+ Cách tham chiếu đến phần tử;
a) Khai báoCách khai báo mảng một chiều có dạng:
- Cách 1: Khai báo trực tiếp biến mảng một
chiềuVar <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 biến mảng qua mảng
- Kiểu phần tử là kiểu của các phần tử mảng
*) Tham chiếu tới 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
Trang 7- Chiếu chương trình và giải
viết trong cặp ngoặc [và]
VD: Tham chiếu tới phần tử thứ 3 của mảng A taviết A[3]
Chương trình giải bài toán tổng quát với N ngày được viết như sau:
3 Củng cố, luyện tập (3’)
+) Củng cố
- Nhắc nhở lại kiến thức cơ bản của bài học về khai báo mảng một chiều +) Luyện tập
Câu 1: Cách khai báo mảng 1 chiều nào sau đây là đúng?
A Var <tên biến mảng>:array[kiểu chỉ số] of <kiểu phần tử>;
B Var <kiểu mảng>:array[kiểu chỉ số] of <kiểu phần tử>;
C Var <tên chỉ số>:array[kiểu chỉ số] of <kiểu phần tử>;
D Var <tên biến mảng>=array[kiểu chỉ số] of <kiểu phần tử>;
Câu 2: Cách khai báo nào sau đây là đúng?
A Var A: Array[1 100] of Integer:
B Var A: Array[1 100] of Integer;
C Var A: Array[1 100] of Integer:
D Var A=Array[1 100] of Integer:
Câu 3: Cho mảng A gồm những phần tử sau cách tham chiếu nào sau đây
Trang 8Lớp Ngày dạy Sĩ số Học sinh vắng
II CHUẨN BỊ CỦA GV VÀ HS.
1 Chuẩn bị của GV: - Giáo án, phấn, bảng, phòng thực hành
2 Chuẩn bị của HS: - Sách giáo khoa, vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn viết về cấu trúc mảng trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
Bước 1: GV Chiếu thuật toán tìm giá
trị lớn nhất của dãy số nguyên lên máy
chiếu và giải thích
Ví dụ 1: Tìm phần tử lớn nhất của
dãy số nguyên
Ta có thuật toán tim giá trị lớn nhất của
dãy số nguyên như sau:
b) Một số ví dụ
Ví dụ 1:
Input: Số nguyên dương N(N<=250) và dãy N số nguyên dương A1,A2…,An, mỗi số đều không vượt quá 500.
Output: Chỉ số và giá trị của phần tử lớn nhất trong dãy số đã cho.
Trang 9Bước 1: Nhập giá trị N và dãy A 1 , A 2 ,…, A N
Bước 2: Max ← A 1 ; i ← 2;
Bước 3: Nếu i > N thì đưa ra giá trị Max rồi
kết thúc
Bước 4:
Bước 4.1: Nếu A i >Max thì Max ← A i ;
Bước 4.2: i ← i+1 rồi quay lại bước 3;
- Lấy ví dụ cụ thể 1 dãy số và thực hiện
VD: N=3, a1=13; a2= 15; a3=11
- Hướng dẫn học sinh viết chương trình
cụ thể và giải thích ý nghĩa các câu
lệnh
Bước 2: HS chú ý\
Bước 3: GV chuẩn lại kiến thưc
Chương trình dưới đâythực hiện việcduyệt tuần tự các phần tử trong dãy để tìm
Write(‘Phan tu thu ’,i,’ = ‘);
Trang 10Nhóm 3,4 viết đoạn chương trình tìm
giá trị nhỏ nhất và viết kết quả ra màn
hình
- Cách nhập phần tử trong mảng làm
tương tự như tìm phần tử lớn nhất
- Ta giả sử số lớn nhất trong dãy là số
đầu tiên, lần lượt so sánh số đó với các
số tiếp theo, nếu Ai < Min thì Min gán
bằng Ai
-Quá trình kiểm tra khi kết thúc dãy số
Bước 2: HS các nhóm thực hiện theo
- Cách khai báo mảng 1 chiều
- Cách tham chiếu tới phần tử mảng
- Cách duyệt phần tử mảng
4 Vận dụng mở rộng(2')
*) Bài tập: Nhập vào dãy số, đếm các số chăn, số lẻ
Gợi ý: - Các thao tác khai báo giống các bài tập đã chữa
- Đếm tra và tính tổng số chẵn: Duyệt từ đầu dãy đến cuối dãy,nếu là số chắn thì tăng biến đếm
Trang 11Lớp Ngày dạy Sĩ số Học sinh vắng
Sách giáo khoa, vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn viết về cấu trúc mảng trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
2 Bài mới:
HĐ1: HS áp dụng khai báo mảng
một chiều thực hiện viết chương
trình các bài toán
Hình thức: Cả lớp
Thời gian: 30’
Bước 1: GV nêu yêu cầu của bài toán
- Input: Số nguyên dương N và dãy số
nguyên dương y A1, A2,…, AN
- Output: Dãy số được sắp xếp không
Trang 12Bước 1: GV hướng dẫn học sinh cách
sắp xếp dãy theo chiều giảm đần
- Cách nhập phần tử trong mảng làm
tương tự như tìm phần tử lớn nhất
- Ta so sánh lần lượt các cặp số liền kề
trong dãy, nếu số sau lớn hơn số trước
ta đổi chỗ chúng cho nhau
Quá trình đổi chỗ khi không còn cặp số
nào cần đổi chỗ
Bước 2: HS thực hiện theo hướng dẫn
Bước 3: GV chuẩn lại kiến thức
Write(‘Nhap so luong phan tu cua day N= ‘); Readln(N);
For i:=1 to N do Begin
Write(‘Phan tu thu ‘,i,’ = ‘);
Readln(A[i]);
End;
For j:=N dowto 2 do For i:=1 to j-1 do
If A[i]>A[i+1] Then Begin
If A[i]<A[i+1] Then Begin
Câu 1: Với bài tập thực hành trên cách khai báo nào sau đây đúng
A Var A:Array[ 1 250] of Integer
B Var A:Array[ 1 250] of Integer;
C Var A:Array[ 1 250] of Integer
D Var A:Array[ 1 250] of Integer;
Câu 2: Đoạn chương trình sau dùng để làm gì?
Trang 14Lớp Ngày dạy Sĩ số Học sinh vắng
Sách giáo khoa, vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn viết về cấu trúc mảng trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
2 Bài mới:
HĐ1: HS biết cách cài đặt bài toán về
Trang 15Bước 1: GV hướng dẫn học sinh kiểm
tra số lẻ, số chẵn sau đó cộng và biến
đếm
Bước 2: Học sinh thực hiện cài đặt
Write('Nhap so phan tu cua mang: ');Readln(n);
For i:=1 to n do Begin
Writeln('Tong cac so duong trong mang:',s2:3);
{Tong so am}
s3:=0;
For i:=1 to n do
If A[i]<0 then s3:=s3+A[i];
Writeln('Tong cac so am mang: ',s3:3); Readln;
d1:=0; d2:=0;
For i:=1 to n do
Trang 16chương trình thuật toán theo sự hướng
dẫn
Bước 3: GV chuẩn lại kiến thức
If (A[i] mod 2 <> 0) then d1:= d1+1
Else d2:=d2+1;
- Sau đó viết giá trị d1 và d2 ra màn hình
3 Củng cố, luyện tập(4’)
- Nhắc nhở lại kiến thức cơ bản của bài học về cách sử dụng mảng mộtchiều trong chương trình thể hiện thuật toán cơ bản tìm kiếm và sắp xếpLuyện tập:
Cho các đoạn chương trình sau: Đoạn nào kiểm tra đếm số lẻ, số chẵn, sốdương, số âm?
For i:=1 to n do
If A[i]>0 then d:=d+1;
- Đoạn chương trình trên kiểm tra số dương
For i:=1 to n do
If A[i] mod 2 =0 then d:=d+1;
- Đoạn chương trình trên kiểm tra số chẵn
For i:=1 to n do
If A[i] mod 2 <> 0 then d:=d+1;
- Đoạn chương trình trên kiểm tra số lẻ
Trang 17Lớp Ngày dạy Sĩ số Học sinh vắng
- Hiểu khái niệm mảng một chiều
- Hiểu cách khai báo và truy cập đến phần tử của mảng
Sách giáo khoa, vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn viết về cấu trúc mảng trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
2 Bài mới:
HĐ1: HS hiểu chương trình tạo
mảng và tính tổng các phần tử là bội
của k
Hình thức: Làm theo nhóm
Thời gian: 10
Bước 1: Đưa ra yêu cầu của bài
- Với đầu bài toán cho điều kiện
(n<=100) có ý nghĩa gì
Bài 1: Tạo mảng A gồm n số ( n<=100 )
số nguyên, Tính tổng các phần tử là bội của số nguyên k
a) Hãy tìm hiểu và chạy thử chương trình sau dây?
program tinhtong;
Uses Crt;
var a:array [1 100]of integer;
Trang 18- Nhập dữ liệu cho từng phần tử của
mảng như thế nào
Lệnh S:=S+A[i]; dùng để làm gì
Bước 2: Học sinh trả lời và dựa vào đó
cài đặt thuật toán
Bước 3: GV chuẩn lại kiến thức
HĐ2: HS hiểu bài toán và đưa các
lệnh cần thiết vào chương trình
Hình thức: Làm theo nhóm
Thời gian: 20’
Bước 1: GV đưa ra yêu cầu của bài
- Dựa vào yêu cầu của bài hs hãy đưa
các câu lệnh sau vào đúng vị trí nhằm
sửa đổi chương trình
- Nhập dữ liệu cho từng phần tử của
writeln('nhan N'); readln(N);
for i:=1 to n dobegin
writeln('nhap vao phan tu thu',i,'=');readln(a[i]);
if a[i] mod k =0 then s:=s+a[i];
Writeln('tong can tinh la',s);
readln end
b)Hãy đưa những câu lệnh sau đây vào những vị trí cần thiết….
writeln('nhan N'); readln(N);
for i:=1 to n dobegin
writeln('nhap vao phan tu thu',i,'=');readln(a[i]);
end;
soam:=0; soduong:=0;
for i:=1 to n do Begin
if a[i]>0 then soduong:=soduong+1 else
if a[i]<0 then soam:=soam+1;
End;
writeln('so am la',soam);
writeln('sodungla',soduong);
readln end
3 Củng cố, luyện tập(3’)
Trang 19- Nhắc nhở lại kiến thức cơ bản của bài học về khai báo mảng một chiều,mảng hai chiều và cách tham chiếu đến các phần tử của mảng một chiều Luyện tập:
Từ ý a của bài 1 hãy viết lại cách khai báo mảng một chiều theo cách khaibáo trực tiếp?
4 Vận dụng mở rộng (2’)
- Về nhà học bài và làm bài tập ở nhà
- Xem tiếp bài tập còn lại
Trang 20Sách giáo khoa, vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn viết về cấu trúc mảng trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
2 Bài mới:
HĐ1: Giáo viên nêu yêu cầu của bài
- Tìm hiểu chương trình và chỉnh sửa
chương trình trên để đưa ra chỉ số của
phần tử có cùng giá trị lớn nhất
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ị 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ử có chỉ số nhỏ nhất? a) Hãy tìm hiểu chương trình sau đây?
Program MaxEliment;
Const Nmax =100;
Type MyArray=array[1 Nmax] of Integer;
Var A:MyArray;
Trang 21Bước 2: HS thực hiện theo hướng dẫn
Bước 3: GV chuẩn lại kiến thức
HĐ2: GV yêu cầu hs chỉnh sửa
chương trình để tìm giá trị lớn nhất
Hình thức: Làm bài theo nhóm
Thời gian: 20’
Bước 1: GV đưa ra yêu cầu:
- Bài tập này cần khai báo những biến
Write(‘Phan tu thu ,’i,’=’); Readln(A[i]);
End;
J:=1;
For i:=2 to n do
If A[i]>A[j] then j:=I;
Write(‘chi so:’,j.’Gia tri:’,A[j]:4);Readln
End.
b) Chỉnh sửa chương trình trên để đưa
ra chỉ số của phần tử có cùng giá trị lớn nhất?
Program TimMax;
Var A: Array[1 100] of Integer;
Csmax, n, i, Max: Integer;
Trang 22Luyện tập:Cho mảng A gồm N phần tử Hãy khai báo mảng A theo cách trựctiếp và gián tiếp?
4 Vận dụng mở rộng: (2’)
- Về nhà học bài và làm bài tập ở nhà
- Đọc trước bài thực hành 4
Trang 23Lớp Ngày dạy Sĩ số Học sinh vắng
- Hiểu khái niệm mảng một chiều
- Hiểu cách khai báo và truy cập đến phần tử của mảng
II CHUẨN BỊ CỦA GV VÀ HS:
1 Chuẩn bị của GV: Giáo án, phấn, bảng, phòng thực hành
2 Chuẩn bị của HS: Sách giáo khoa, vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn viết về cấu trúc mảng trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
2 Bài mới:
HĐ1: HS tìm hiểu bài toán: Tạo
mảng, săp xếp mảng theo chiều tăng
dần
Hình thức: Làm theo nhóm
Thời gian: 20’
Bước 1: GV đưa ra yêu cầu
- Cần khái báo những biến nào
Trang 24- Cách tráo đổi các phần tử trong mảng
một chiều
- Cách viết giá trị các phần tử của
mảng một chiều
Bước 2: HS trả lời và thực hiện
Bước 3: GV chuẩn lại kiến thức
HĐ2: HS tìm hiểu cách đếm số lần
thực hiện tráo đổi trong trương trình
Hình thức: Làm bài theo nhóm
Thời gian: 20’
Bước 1: GV đưa ra yêu cầu
- Ta sử dụng biến đếm để làm gì?
- Lệnh nhập vào mảng một chiều?
Bước 2: HS trả lời và thực hiện
Bước 3: GV chuẩn lại kiến thức
Write(‘A[‘,i,’]= ‘);Readln(A[i]);
End;
For i:=1 to n 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;
Write(‘A[‘,i,’]= ‘); Readln(A[i]);
End;
Dem:=0;
For i:=1 to n do For j:=i+1 to n do
If A[i] >A[j] then
Trang 25- Nhắc nhở lại kiến thức cơ bản của bài học về khai báo mảng một chiêu,mảng hai chiều và cách tham chiếu đến các phần tử của mảng một chiều vàhai chiều
Luyện tập: Cho mản A gồm n phần tử hãy khai báo mảng trên ?
4 Vận dụng mở rộng (2’)
- Về nhà học bài và làm bài tập ở nhà
- Xem trước bài mới
Trang 26Lớp Ngày dạy Sĩ số Học sinh vắng
- Hiểu khái niệm mảng một chiều
- Hiểu cách khai báo và truy cập đến phần tử của mảng
II CHUẨN BỊ CỦA GV VÀ HS:
1 Chuẩn bị của GV: Giáo án, phấn, bảng, phòng thực hành
2 Chuẩn bị của HS: Sách giáo khoa, vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn viết về cấu trúc mảng trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
2 Bài mới:
HĐ1: HS hiểu bài toán: Nhập vào
mảng, viết chương trình tạo mang B
gồm các phần tử là tổng của mảng A
Hình thức: Làm theo nhóm
Thời gian: 35p’
Bước 1: GV đưa ra yêu cầu của bài
- Cần khai báo những biến nào
- Nhập dữ liệu bằng lệnh
- Thuật toán tính tổng mảng của mảng B
Bài 2: 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ổng các phần tử đầu tiên của phần tử của mảng A
Trang 27như thế nào
-Cách viết các phần tử của mảng
Bước 2: HS thực hiện theo yêu cầu và
hướng dẫn của GV
Bước 3: GV chuẩn lại kiến thức
Writeln(‘ Nhap so phan tu cua mang’); Readln(n);
Luyện tập: Cho mảng A gồm 50 phần tử hãy khai báo mảng trên ?
4 Vận dụng mở rộng: (2’)
- Về nhà học bài và làm bài tập ở nhà
- Xem trước bài mới
Trang 28Lớp Ngày dạy Sĩ số Học sinh vắng
B8 … /… / 2020 /…
B9 … /… / 2020 /…
Tiết 29
KIỂU XÂU
I MỤC TIÊU
1 Kiến thức:
- Biết xâu là một dãy kí tự( có thể coi xâu là mảng một chiều)
- Biết cách khai báo xâu, truy cập phần tử của xâu
II CHUẨN BỊ CỦA GV VÀ HS:
1 Chuẩn bị của GV: Giáo án, phấn, bảng
2 Chuẩn bị của HS: Sách giáo khoa, vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn viết về xâu trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
2 Bài mới:
HĐ1:HS hiểu khái niệm về xâu
Hình thức: Cả lớp
A:=’HOANG THU TRANG’
B:=’NGUYEN THI LINH’
Yêu cầu HS: Hãy cho biết hai biến A
và B thuộc kiểu dữ liệu gì
Bước 2: HS nghiên cứu ví dụ và trả lời
* Xâu là một dãy kí tự trong bộ mã ASCII,
mỗi kí tự được gọi là một phần tử của xâu
Số lượng kí tự trong một xâu được gọi là
độ dài của xâu Xâu có độ dài bằng 0 đượcgọi là xâu rỗng
VD: ‘HOANG HA’
Xâu có độ dại là 8( Tính cả kí tự trống)
* Các ngôn ngữ lập trình đều có quy tắc
và cách thức cho phép xác định:
- Tên kiểu xâu;
- Cách khai báo biến kiểu xâu;
- Số lượng kí tự trong xâu;
Trang 29câu hỏi
Bước 3: GV chuẩn lại kiến thức
HĐ2: HS biết cách khai báo xâu
Hình thức: Cả lớp
Thời gian: 5’
Bước 1: GV yêu cầu hs tìm hiểu sgk
và trả lời câu hỏi
- Cách khai báo xâu
Bước 2: HS tìm hiểu sgk và trả lời
Bước 3: GV chuẩn lại kiến thức
HĐ3:HS hiểu các thao tác xử lí xâu
Hình thức: Cả lớp
1 A:=’ hong anh’
B:=’tran hanh’=> kết quả: Xâu A<B
2.A:=‘may tinh’
B:=’may tinh cua toi’
Ta so sánh thấy hai xâu A và B có độ
dại khác nhau và A là đoạn đầu của B
vầy xâu A<B
- Thủ tục delete dùng để
- Cácphép toán thao tác với xâu;
- Cách tham chiếu tới phần tử của xâu;+ Tương tự với mảng, 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 [và]
1 Cách khai báo kiểu xâu:
Để khai bao kiểu dữ liễu xâu ta sử dụngtên dành riêng string, tiếp theo là độ dàilớn nhất của xâu(không vuợt quá 255 kítự) được ghi trong cặp ngoặc [và]
Biến kiểu xâu có thể được khai báo nhưsau:
Var <tên biến>:String[độ dài lớn nhất củaxâu];
b)Các phép so sánh gồm:
So sánh bằng(=), khác(<>), lớn hơn(>),nhỏ hơn(<), lớn hơn hoặc bằng(>=), nhỏhơn hoặc bằng(<=) Có thứ tự thực hiệnthấp hơn phép ghép xâu và thực hiện việc
so sách hai xâu hai xâu theo quy tắc sau:
*Xâu A là lớn hơn xâu B nếu như kí tự đầutiên khác nhau giữa chúng kể từ trái sangtrong xâu A có mã ASCII lớn hơn
* Nếu A và B là các xâu có độ dài khácnhau và A là đoạn đầu của B thì A là nhỏhơn B
* Hai xâu được coi la bằng nhau nếuchúng giống nhau hoàn toàn:
VD: ‘TIN HOC’=’TIN HOC’
c) Thủ tục delete(st,vt,n) thực hiện việc
xoá kí tự của biến xâu st bắt đầu từ vị trí vt.
VD:
Trang 30- Thủ tục Insert có ý nghĩa gì
VD: Insert(S1,S2,4) có ý nghĩa
- Hàm Copy dùng để
VD: Cho xâu S1:=’song hong’
Vậy Copy(s1,3,7) kết quả là
- Hàm length dùng để
- Hàm Upcase dùng để
VD: cho xâu ‘hang so”
Upcase(ch); kết quả ‘HANG SO’
Bước 2: HS trả lời câu hỏi
Bước 3: GV chuẩn lại kiến thức
d) Thủ tục insert(s1,s2,vt) chèn xâu s1
vào xâu s2, bắt đầu ở vị trí vt.
VD:
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 xâu S.
VD:
f)Hàm length(S) cho giá trị độ dài xâu s.
VD:
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.
VD:
h)Hàm Upcase(Ch) cho chữ cáI in hoa
ứng với chữ cái trong ch
Trang 31A Var S: Integer; B Var S: Byte;
C Var S: Char D Var S: String;
Câu 2: Hàm nào để trả về độ dài của xâu kí tự:
Trang 32Lớp Ngày dạy Sĩ số Học sinh vắng
II CHUẨN BỊ CỦA GV VÀ HS:
a Chuẩn bị của GV: Giáo án, phấn, bảng
b Chuẩn bị của HS: Sách giáo khoa, vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn viết về xâu trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
2 Bài mới:
Trang 33Ví dụ 1: Chương trình nhập vào tên
của hai người và hai biến xâu và đưa ra
màn hình xâu dài hơn, nếu bằng nhau
thì đưa ra xâu nhập sau
- Hàm Length thực hiện thao tác nào?
Ví dụ 2: Nhập vào hai xâu, kiểm tra
xem kí tự đẫu của xâu thứ nhất có trùng
với kí tự cuối cùng của xâu thứ 2
Ví dụ 3: Nhập vào xâu kí tự, viết
ngược lại xâu đó
- Để viết ngược lại xâu đó ta thực hiện
như thế nào?
Ví dụ 4: Nhập vào một xâu, đưa ra
màn hình xâu thu được từ nó bởi việc
Trang 34- Ta khai báo những biến nào
- Xâu b dùng để thực hiện công việc gì
Ví dụ 5: Chương trình nhập vào một
xâu s1, tạo xâu s2 gồm tất cả các chữ
số trong xâu s1
- Khai báo những biến nào
- Các phép toán so sanh trong xâu như
thế nào
Bước 2: HS trả lời cầu hỏi theo sự
hướng dẫn của GV
Bước 3: GV chuẩn lại kiến thức
Write(‘ Nhap xau‘); Readln(a); k:= length(a); b:=’’;
For i:=1 to leng(s1) do
If (‘0’=< s1[i]) and (s1[i]<=9) then
Câu 3: Để viết các kí tự ‘A’ trong xâu ta thực hiện
A For i:=1 to 50 do Write(A,’ ’);
B For i:= 1 to Length(S) do If S[i]:=’A’ then Write(S);
C For i:= 1 to Length(S) do If S[i]:=’A’ then Write(’A’);
4 Vận dụng mở rộng: (2’)
- Về nhà học bài và làm bài tập ở nhà
- Xem trước bài tập và thực hành 5
Trang 35Lớp Ngày dạy Sĩ số Học sinh vắng
- Thực hiện được khai báo, truy cập, tính toán các phần tử của mảng
- Thực hiện được khai báo, truy cập đến phần tử của xâu
II CHUẨN BỊ CỦA GV VÀ HS
a Chuẩn Bị Của Gv: - Giáo Án, Sgk
b Chuẩn Bị Của Hs: - SGK, Vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn viết về xâu trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
2 Bài mới:
HĐ1: Nhắc lại một số nội dung chính
về xâu
Hình thức: Cả lớp
Thời gian: 10’
Bước 1: GV đưa ra một số yêu cầu
+ Yêu cầu học sinh nhắc lại
- Khái niệm xâu, cách khai báo
xâu, cách truy cập tới phần tử
3 Các thủ tục với xâu: Thủ tục Delete, Insert
4 Các hàm: Hàm copy, length, pos, upcase
Trang 36Bước 1: GV đưa ra một số yêu cầu của
bài và yêu cầu hs thực hiện
Bài 1: Cho xâu s1='TIN HOC'
s2='LOP 11'
a) Hãy ghép xâu s1 với xâu s2
b) Hãy so sánh xâu s1 với xâu s2
Bài 2: Cho xâu s1='ham yen'
S2=' que huong toi'
Bước 2: HS thực hiện theo yêu cầu
Bước 3: GV chuẩn lại kiến thức
Bài tập 1:
a) 'TIN HOC LOP 11'b) s1>s2 vì kí tự 'T' có mã ASCI là 84 > kí tự'L' có mã ASCI là 76
Bài tập 2:
a) s1='ham'b) ='ham yen que huong toic) length(s2)=14
Writeln('Nhap xau a'); Readln(a);
Writeln('Nhap xau b'); Readln(b);
Nhắc lại kiến thức cơ bản về khai báo mảng, xâu, các thao tác về mảng, xâu
Câu 1: Cho xâu s1 = ‘123’; s2 = ‘abc’ sau khi thực hiện thủ tục
insert(s1,s2,4) thì được kết quả sau:
A ‘1abc23’ B ‘abc123’ C ‘123abc’ D ‘12abc3’
Câu 2: Trong khai báo biến xâu, khai báo nào đúng?
A Var hoten : string[15]; B Var hoten: string “15”;
C Var hoten = string[15]; D Var hoten = string “15”;
Câu 3: Cho xâu S=‘THPT PHÙ LƯU’ lệnh Copy(S,1,4) cho kết quả ?
Trang 374 Vận dụng mở rộng: (1’)
- Về nhà xem lại cỏc thao tác trong các bài tập
- Xem tiếp các bài tập còn lại
Trang 38Lớp Ngày dạy Sĩ số Học sinh vắng
B8 … /… / 2020 /…
B9 … /… / 2020 /…
Tiết 32
BÀI TẬP THỰC HÀNH 5
I MỤC TIÊU
1 Kiến thức:
- Hiểu khái niệm xâu kí tự
- Hiểu cách khai báo và truy cập đến phần tử của xâu kí tự
Sách giáo khoa, vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn viết về xâu trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
Trang 39vào 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ừ trái sang phải
cũng thu được kết quả đọc từ phải sang
trái
- Cần khái báo những biến nào
- Viết xâu đối xứng như thế nào
Bài 1 ý b trang 73_BTVTH3:
- Bắt đầu chương trình bằng từ khoá gì
- Ta cần khai báo những biến nào
Write (‘Day la xau doi xung:’); Readln;
For i:=1 to x div 2 do { so sánh cấp kí
tự đối xứng}
If A[i]<> A[x-i+1] then Hello:=False;
If Hello then writeln(‘Xau la doi xung’)Else
writeln(‘Xau khong la doi xung’) Write (‘Day la xau doi xung:’);
Trang 40Lớp Ngày dạy Sĩ số Học sinh vắng
- Hiểu khái niệm xâu kí tự
- Hiểu cách khai báo và truy cập đến phần tử của xâu kí tự
II CHUẨN BỊ CỦA GV VÀ HS:
1 Chuẩn bị của GV: Giáo án, phấn, bảng, phòng thực hành
2 Chuẩn bị của HS: Sách giáo khoa, vở ghi
III HOẠT ĐỘNG DẠY HỌC
- Hướng dẫn viết về xâu trong Pascal
- Giáo viên kết luận về hoạt động của học sinh và vào bài mới
2 Bài mới:
HĐ1: Tìm hiểu cách viết chương
Bài 2: Nhập vào một xâu, đếm xem xâu
đó kí tự a xuất hiện bao nhiêu lầnProgram Demkitu;
Var st : String;
x, i, d: Byte;
Begin Write(‘ Nhap xau ki tu:’); Readln(st); x:=Length(a); d:=0;
For i:=1 to x do