Bài giảng Môn Tin học lớp 11 - Tuần 1 - Tiết 1 - Bài 1: Khái niệm lập trình và ngôn ngữ lập trình

- Những hàm và thủ tục liên quan đến xâu

Thủ tục Delete(st, vt, n)

Thủ tục Insert(st1, st2, vt)

Hàm Copy(st, vt, n)

Hàm length(st)

Hàm Upcase(ch)

Hàm Pos(st1, st2)

5. Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)

BTVN: Viết chương trình nhập một xâu. In ra màn hình số từ có trong xâu

Chuẩn bị trước bài thực hành.

 

doc128 trang | Chia sẻ: rimokato | Lượt xem: 1655 | Lượt tải: 1download
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Môn Tin học lớp 11 - Tuần 1 - Tiết 1 - Bài 1: Khái niệm lập trình và ngôn ngữ lập trình, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
.
II. CHUẨN BỊ:
+ Giáo viên: Giáo án, hình ảnh minh họa và máy tính.
+ Học sinh: Đọc trước SGK.
III. TIẾN TRÌNH DẠY HỌC:
1. Ổn định tình hình lớp: (1’)
2. Kiểm tra bài cũ: (7’)
2.1 Viết khai báo trực tiếp biến mảng? Khai báo mảng 100 số thực.
Var : array[ Kiểu chỉ số] of ;
Var A : array[1..100] of Real;
2.2 Viết khai báo gián tiếp biến mảng? Khai báo mảng 150 số nguyên.
	 Type = ARRAY [Kiểu chỉ số] OF ;
Var : ;
	 Type SoNguyen = Array[1..150] of Integer;
	Var A : SoNguyen;	
Giảng bài mới:
Tg
HĐ của GV
HĐ của HS
Nội dung
15’
* Hoạt động 1: Vận dụng kiểu mảng một chiều để lập trình giải các bài toán đơn giản:
B1: Nhập N, các số hạng A1,A2,..,An.
 B2: i 0
 B3: Nếu I = N-1 thì đưa ra dãy A đã được sắp xếp rồi kết thúc
 B4: i i+1, j i
 B5: j i+1
 B6: Nếu j> N thì quay lại bước 3
 B7: Nếu Ai > Aj thì ttráo đổi Ai và Aj cho nhau
 B8: Quay lại bước 5. 
- Đối với bài toán trên nếu không sử dụng biến mảng 1 chiều, ta có thể giải quyết được bài toán không? Khó khăn gì?
* Định hướng: Sử dụng kiểu mảng 1 chiều để giải quyết bài toán
- Yêu cầu học sinh khai báo biến mảng
-Yêu cầu học sinh tìm các nhiệm vụ chính cần giải quyết
-Được, nhưng chương trình dài dòng, khó xây dựng. 
* Theo dõi sự hướng dẫn của giáo viên
- Var A: array[1..250] of integer;
- CccCác bước
+ Nhập N và nhập giá trị cho mảng
+ Thuật toán trao đổi 
+ In kết quả(N5+6)
3. Một số ví dụ:
a. Sắp xếp bằng thuật toán tráo đổi:
Sắp xếp dãy số nguyên bằng thuật toán tráo đổi.
- Input: soá nguyeân döông N vaø daõy soá A1,A2,..,An.
-Output: Daõy A ñöôïc saép xeáp theo thöù töï khoâng giaûm
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;
 End;
 Writeln('Day sau khi Sap xep:'); For i:= 1 to N do
 Write(A[i]:8);
 Readln
 End.
18’
* Hoạt động 2:
Vì dãy A là dãy tăng, ta thực hiện thu hẹp nhanh phạm vi tìm kiếm bằng cách so sánh k với A[giua] và xét các trường hợp: 
- A[giua]=k ð tìm thấy chỉ số giữa và kết thúc;
- A[giua]>k ð Thu hẹp về phía bên trái (Cuối = Giữa -1);
- A[giua]<k ð Thu hẹp về phía bên phải (Đầu = Giữa +1);
Quá trình trên được lặp lại chừng nào còn chưa tìm thấy hoặc Dau <= Cuoi.
Mô tả bài toán này bằng phương pháp liệt kê:
Bước1:NhậpN,cácsố hạng a1, a2,..., aN và khoá k;
Bước 2:Dau ß1, Cuoi ß N;
Bước 3: Giua ß ;
Bước 4: Nếu aGiua = k thì thông báo chỉ số Giua, rồi kết thúc;
Bước 5: Nếu aGiua > k thì đặt Cuoi = Giua – 1 rồi chuyển đến bước 7;
Bước 6: Dau ß Giua+ 1;
Bước 7: Nếu Dau > Cuoi 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.
b. Tìm kiếm nhị phân:
Nhập vào một dãy A tăng gồm N (N £ 250) số nguyên dương khác nhau và một số k. Cho biết vị trí của số hạng có giá trị bằng k trong dãy (nếu có) ? 
* Input: Nhập số nguyên dương n, dãy n số nguyên dương a1,a2,...,an và số nguyên k
* Output: Chỉ số i mà ai = k hoặc thông báo “Không tìm thấy” nếu không có số hạng nào của dãy A có giá trị bằng k. 
Dau:=1; Cuoi:=n; tim_thay:=false;
while ( Dau<= Cuoi) or NOT(tim_thay) do
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;
IF Tim_thay then Writeln(‘ Chi so tim duoc la : ’,Giua) 
Else Writeln(‘Khong tim thay’);
Củng cố: (3’)
- Cách tạo biến mảng một chiều và cách khai báo biến mảng.
- Cách tham chiếu đến từng phần tử.
Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)
BTVN: Trả lời các câu hỏi 1 – 4, làm bài tập 5, 6, 7 sách giáo khoa.
	Đọc trước nội dung về kiểu mảng hai chiều, sách giáo khoa.
IV. RÚT KINH NGHIỆM, BỔ SUNG: …………………………………………………………….
	Tiết 20:	 KIỂU MẢNG (tt)
	Ngày soạn: 	Ngày dạy:
I. MỤC TIÊU:
	1. Kiến thức:
	- Biết được dữ liệu mới là kiểu mảng hai chiều.
	- Biết được cách tạo kiểu mảng hai chiều, cách khai báo biến, tham chiếu đến từng phần tử của mảng.
	2. Kỹ năng: 	
	- Tạo được kiểu mảng hai chiều và sử dụng biến mảng hai chiều trong ngôn ngữ lập trình Pascal để giải quyết một số bài toán cụ thể.
	3. Thái độ: 
	Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính.
II. CHUẨN BỊ:
+ Giáo viên: Giáo án, hình ảnh minh họa.
+ Học sinh: Đọc trước SGK.
III. PHƯƠNG PHÁP:
	Thuyết trình và vấn đáp.
IV. TIẾN TRÌNH DẠY HỌC:
 1. Ổn định tình hình lớp: (1’)
 2. Kiểm tra bài cũ: (Không kiểm tra bài cũ)
 3.	Giảng bài mới:
Tg
HĐ của GV
HĐ của HS
Nội dung
15’
* Hoạt động 1: Tìm hiểu ý nghĩa của mảng hai chiều:
Giới thiệu các ví dụ trong sách giáo khoa: Tính và đưa ra màn hình bảng cửu chương.
Hỏi: Sử dụng kiến thức mảng một chiều, hãy đưa ra cách sử dụng kiểu mảng đó để lưu trữ bảng cửu chương
- Với cách làm như thế thì ta phải khai báo bao nhiêu biến mảng?
- Có những khó khăn gì?
- Các yếu tố của mảng hai chiều:
Để mô tả mảng hai chiều ta cần xác định những yếu tố nào?
 Mỗi phần tử của mảng hai chiều được xác định bởi tên mảng cùng với hai chỉ số, được viết trong cặp ngoặc [ và ]. Các chỉ số cách nhau bởi dấu phẩy.
Chú ý theo dõi yêu cầu và dẫn dắt của giáo viên.
- Sử dụng 9 mảng một chiều, một mảng lưu một hàng của bảng.
- Khai báo 9 biến mảng một chiều.
- Khai báo nhiều biến, viết chương trình nhập xuất dữ liệu dài.
Các yếu tố để xây dựng mảng hai chiều:
- Tên kiểu mảng
- Số phần tử trên một dòng mà trên một cột.
- Kiểu dữ liệu chung của mọi phần tử.
1. Khái niệm:
Mảng hai chiều là bảng các phần tử cùng kiểu.
Var a : array [1..10] of array [1.. 20] of real; 
Var a : array [1..10, 1..20] of real; 
 Tổng quát, khai báo mảng hai chiều có dạng :
 VAR : ARRAY[Kiểu chỉ số] OF ARRAY[Kiểu chỉ số] OF 
;
 Để cho gọn có thể viết :
 VAR : ARRAY[Kiểu chỉ số dòng, Kiểu chỉ số cột] OF 
;
2. Ví dụ:
 Xây dựng mảng hai chiều B gồm 10 dòng, 10 cột với các phần tử là các số nguyên được tạo ngẫu nhiên trong phạm vi từ -20 đến 20. Đưa ra màn hình tất cả các phần tử của mảng có giá trị lớn hơn số k cho trước. Giá trị của k được nhập từ bàn phím.
25’
* Hoạt động 2: Rèn luyện kĩ năng sử dụng mảng hai chiều: 
Chiếu chương trình ví dụ, chạy thử chương trình.
Hỏi: mảng hai chiều trong chương trình trên có tên là gì? Và nó có chức năng gì?
- Mỗi phần tử trong mảng hai chiều này thuộc kiểu dữ liệu nào?
 Trong chương trình trên ta sử dụng hàm chuẩn Random(n)cho giá trị là số nguyên ngẫu nhiên trong khoảng từ 0 đến n - 1.
- Yêu cầu học sinh theo dõi chương trình trong SGK
- Để lần lượt có được giá trị các phần tử tạo nên mảng hai chiều B, thường dùng hai vòng lặp for – do lồng nhau. Yêu cầu học sinh hãy viết các lệnh để nhập từ bàn phím giá trị của phần tử này:
- Giới thiệu hàm Random(N) 
Mảng hai chiều trong chương trình trên có tên là b, nó dùng để tạo ra mảng 2 chiều gồm 10 dòng và 10 cột.
Mỗi phần tử trong mảng hai chiều này thuộc kiểu dữ liệu là integer.
- Lệnh để nhập từ bàn phím giá trị của phần tử này:
Write(‘B[‘, i,’,’j,’]= ’);
Readln(B[i,j]);
Program MangHaiChieu; 
Uses CRT; 
Var 
 b : array[1..10, 1..10] of integer; 
 i, j, k : integer; 
Begin 
 Clrscr; 
 Randomize; { Khởi động sinh số ngẫu nhiên }
 For i:= 1 to 10 do 
 begin 
 for j:= 1 to 10 do 
 begin 
 b[i,j]:= random(41)-20; 
 write(b[i,j], ' '); 
 end; 
 writeln; 
 end; 
 write('Nhap vao gia tri k = '); readln(k); 
 write('Danh sach cac phan tu mang co gia tri lon hon ',k,': ');
For i:= 1 to 10 do 
 For j:= 1 to 10 do 
 If b[i, j]>k then write (b[i, j], ' ');
 Readln 
End.
 	4. Củng cố: (3’)
- Cách tạo biến mảng hai chiều và cách khai báo biến mảng.
- Cách tham chiếu đến từng phần tử.
 	5. Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)
BTVN: Trả lời các câu hỏi 1 – 4, làm bài tập 8, 9 sách giáo khoa.
Chuẩn bị trước bài thực hành số 3.
V. RÚT KINH NGHIỆM, BỔ SUNG: …………………………………………………………………………………………………………
	Tiết 22 & 23: BÀI TẬP VÀ THỰC HÀNH 3
	Ngaøy soaïn:	Ngaøy daïy:
I. MỤC TIÊU:
	1. Kiến thức:
	- Thực hành những kĩ năng đã học về mảng một chiều
- Nâng cao kĩ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thông qua việc tìm hiểu, chạy thử các chương trình có sẵn
	2. Kỹ năng: 	
	- Biết giải được một số bài toán tính toán, tìm kiếm đơn giản trên máy tính
	3. Thái độ: 
	Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính.
II. CHUẨN BỊ:
- Giáo viên: Giáo án, hình ảnh minh họa và máy tính.
-Học sinh: Đọc trước SGK.
III. PHÖÔNG PHAÙP:
	Luyeän taäp
IV. HOẠT ĐỘNG DẠY HỌC:
1. Ổn định tình hình lớp: (1’)
Kiểm tra bài cũ: (Không kiểm tra bài cũ)
Giảng bài mới:
Tg
HÑ cuûa GV
HÑ cuûa HS
Nội dung 
Tiết 1:
40’
Hoạt động 1: Tìm hiểu bài tập 1
- Yêu cầu học sinh đọc đề bài, tìm Input, Output của bài toán.
- Trong chương trình mẫu có sẵn, hãy chỉ ra phần khai báo mảng, nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng?
- Thực hành gõ chương trình trên vào máy tính và cho thực hiện chương trình.
- Kiểm tra kết quả thực hiện được.
Chú ý theo dõi yêu cầu và dẫn dắt của giáo viên.
Input: n là số nguyên, dãy A1, A2, … An mỗi phần tử có trị tuyệt đối không vượt quá 300.
Output: tổng các phần tử của mảng là bội số của một số nguyên dương k cho trước
Phần khai báo chương trình:
Type MyArray=Array[1..nmax] Of Integer;
Var A : MyArray; 
- Phần nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng
Write('Nhap n ='); 
ReadLn(n);
{Tạo ngẫu nhiên mảng gồm n số nguyên}
For i:= 1 to n do A[i]:= Random(301)- Random(301);
   Write('Nhap k = '); 
ReadLn(k);
Bài 1. Cho mảng A gồm n (n ≤ 100) số nguyên, mỗi số theo trị tuyệt đối không vượt quá 300. Tính tổng các phần tử của mảng là bội số của một số nguyên dương k cho trước. 
a) Hãy tìm hiểu, gõ và chạy thử chương trình sau đây :
Program 	Sum1; 
uses crt;
Const nmax=100; 
Type MyArray=Array[1..nmax] Of Integer;
Var A : MyArray; 
   s,n,i,k: Integer; 
Begin 
   Clrscr; Randomize;	
Write('Nhap n ='); 
ReadLn(n);
{Tạo ngẫu nhiên mảng gồm n số nguyên}
For i:= 1 to n do A[i]:= Random(301)- Random(301);
   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); 
   ReadLn 
End. 
b) Hãy đưa các câu 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 để có được 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 Inc(posi) 
       Else If A[i]<0 Then Inc(neg);
WriteLn(posi:4,neg:4); 
Tiết 2:
40’
Hoạt động 2: Tìm hiểu bài tập2
- Yêu cầu học sinh đọc đề bài, tìm Input, Output của bài toán.
- Trong chương trình mẫu có sẵn, hãy chỉ ra phần khai báo mảng, nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng?
- Thực hành gõ chương trình trên vào máy tính và cho thực hiện chương trình.
- Kiểm tra kết quả thực hiện được.
Chú ý theo dõi yêu cầu và dẫn dắt của giáo viên.
Input: n là số nguyên, dãy A1, A2, … An mỗi phần tử có trị tuyệt đối không vượt quá 300.
Output: chỉ số và giá trị của phần tử có giá trị lớn nhất của mảng. 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
Phần khai báo chương trình:
Type MyArray=Array[1..nmax] Of Integer;
Var A : MyArray; 
- Phần nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng
Randomize;
 Write('Nhap n = '); ReadLn(n);
 {Tạo ngẫu nhiên mảng gồm n số nguyên}
 For i:= 1 to n do A[i]:= Random(300)- Random(300);
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. Đư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 MaxElement; 
Const Nmax= 100; 
Type MyArray = Array[1..Nmax] Of Integer;
Var A : MyArray; 
   n,i,j : Integer; 
Begin 
   Randomize;
 Write('Nhap n = '); ReadLn(n);
 {Tạo ngẫu nhiên mảng gồm n số nguyên}
 For i:= 1 to n do A[i]:= Random(300)- Random(300);
   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) 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.
- Củng cố: (3’)
- Cách tạo biến mảng một chiều và cách khai báo biến mảng.
- Cách tham chiếu đến từng phần tử.
- Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)
Chuẩn bị trước bài thực hành số 4.
V. RÚT KINH NGHIỆM, BỔ SUNG:
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
	Tiết 23,24:	BÀI TẬP VÀ THỰC HÀNH 4
	Ngaøy soaïn:	Ngaøy daïy:
I. MỤC TIÊU:
	1. Kiến thức:
	- Thực hành những kĩ năng đã học về mảng hai chiều
- Biết nhận xét, phân tích, đề xuất thuật toán giải bài toán sao cho chương trình chạy nhanh hơn.
	2. Kỹ năng: 	
	- Làm quen với dữ liệu có cấu trúc và bài toán sắp xếp.
	3. Thái độ: 
	Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính.
II. CHUẨN BỊ:
1. Giáo viên: Giáo án, hình ảnh minh họa và máy tính.
2. Học sinh: Đọc trước SGK.
III. PHÖÔNG PHAÙP: 
	Luyeän taäp
IV. HOẠT ĐỘNG DẠY HỌC:
1. Ổn định tình hình lớp: (1’)
Kiểm tra bài cũ: (Không kiểm tra bài cũ)
3. Giảng bài mới:
Tg
HÑ cuûa GV
HÑ cuûa HS
Nội dung 
42’
Hoạt động 1: Tìm hiểu bài tập 1
- Yêu cầu học sinh đọc đề bài, tìm Input, Output của bài toán.
- Trong chương trình mẫu có sẵn, hãy chỉ ra phần khai báo mảng, nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng?
- Thực hành gõ chương trình trên vào máy tính và cho thực hiện chương trình.
- Kiểm tra kết quả thực hiện được.
Chú ý theo dõi yêu cầu và dẫn dắt của giáo viên.
Input: n là số nguyên, dãy A1, A2, … An mỗi phần tử có trị tuyệt đối không vượt quá 300.
Output: tổng các phần tử của mảng là bội số của một số nguyên dương k cho trước
Phần khai báo chương trình:
Type MyArray=Array[1..nmax] Of Integer;
Var A : MyArray; 
- Phần nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng
Write('Nhap n ='); 
ReadLn(n);
{Tạo ngẫu nhiên mảng gồm n số nguyên}
For i:= 1 to n do A[i]:= Random(301)- Random(301);
   Write('Nhap k = '); 
ReadLn(k);
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.
 Hãy gõ, tìm hiểu và chạy thử chương trình sau đây với các giá trị khác nhau của n. Qua đó, rút ra nhận xét về thời gian chạy của chương trình.
Program Sorting; 
Const Nmax=10000; 
Type MyArray=Array[1..Nmax] Of Integer;
Var A : MyArray; 
   n,i,j, k, tg : Integer; 
Begin 
 Randomize; 
   Write('Nhap n = '); ReadLn(n);
 {Tạo ngẫu nhiên mảng gồm n số nguyên}
 For i:= 1 to n do A[i]:= Random(300)- Random(300);
 For i:= 1 To n-1 Do 
 Begin
 k:= i;
 { Tìm chỉ số của phần tử nhỏ nhất trong đoạn từ i đến n }
 For j:= i+1 To n Do 
     If A[j] < A[k] Then k:= j; 
 { Đổi chỗ A[i] và A[k] }
 tg:= A[i]; A[i]:= A[k]; A[k]:= tg; 
 End;
 Write('Da sap xep xong. Go ENTER de xem ket qua...'); 
 Readln; 
{ Đưa kết quả ra màn hình }
   Writeln('Day duoc sap: ');
 For i:= 1 To n Do Write(A[i]:4);
   ReadLn 
End. 
42’
Hoạt động 2: Tìm hiểu bài tập2
- Yêu cầu học sinh đọc đề bài, tìm Input, Output của bài toán.
- Trong chương trình mẫu có sẵn, hãy chỉ ra phần khai báo mảng, nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng?
- Thực hành gõ chương trình trên vào máy tính và cho thực hiện chương trình.
- Kiểm tra kết quả thực hiện được.
Chú ý theo dõi yêu cầu và dẫn dắt của giáo viên.
Input: n là số nguyên, dãy A1, A2, … An mỗi phần tử có trị tuyệt đối không vượt quá 300.
Output: chỉ số và giá trị của phần tử có giá trị lớn nhất của mảng. 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
Phần khai báo chương trình:
Type MyArray=Array[1..nmax] Of Integer;
Var A : MyArray; 
- Phần nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng
Randomize;
 Write('Nhap n = '); ReadLn(n);
 {Tạo ngẫu nhiên mảng gồm n số nguyên}
 For i:= 1 to n do A[i]:= Random(300)- Random(300);
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. Đư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 MaxElement; 
Const Nmax= 100; 
Type MyArray = Array[1..Nmax] Of Integer;
Var A : MyArray; 
   n,i,j : Integer; 
Begin 
   Randomize;
 Write('Nhap n = '); ReadLn(n);
 {Tạo ngẫu nhiên mảng gồm n số nguyên}
 For i:= 1 to n do A[i]:= Random(300)- Random(300);
   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) 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.
+ Củng cố: (3’)
- Cách tạo biến mảng một chiều và cách khai báo biến mảng.
- Cách tham chiếu đến từng phần tử.
+ Dặn dò học sinh chuẩn bị cho tiết học sau: (2’)
Ñoïc tröôùc baøi Kieåu xaâu.
V. RÚT KINH NGHIỆM, BỔ SUNG:
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
	 Tiết 25:	 KIỂU XÂU
	Ngày soạn:	Ngaøy daïy:
I. MỤC TIÊU:
	1. Kiến thức:
	- Biết được một kiểu dữ liệu mới, biết được khái niệm kiểu xâu.
	- Phân biệt sự giống và khác nhau giữa kiểu mảng kí tự và kiểu xâu kí tự.
	- Biết được cách khai báo biến, nhập xuất dữ liệu, tham chiếu đến từng kí tự của xâu.
	- Biết các phép toán liên quan đến 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. Sử dụng biến xâu và các phép toán trên xâu để giải quyết một soá baøi toán đơn giản.
	3. Thái độ: 
	Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính.
II. CHUẨN BỊ:
- Giáo viên: Giáo án, hình ảnh minh họa.
- Học sinh: Đọc trước SGK.
III. PHÖÔNG PHAÙP:
	Thoâng qua caùc hoaït ñoäng töông taùc giöõa troø – troø, thaày – troø ñeå lónh hoäi kieán thöùc, kó naêng theo muïc tieâu baøi hoïc.
IV. HOẠT ĐỘNG DẠY HỌC:
1. Ổn định tình hình lớp: (1’)
Kiểm tra bài cũ: (Không kiểm tra bài cũ)
3. Giảng bài mới:
Tg
HÑ cuûa GV
HÑ cuûa HS
Nội dung 
15’
Hoạt động 1: Tìm hiểu xâu và cách sử dụng
1. Tìm hiểu ý nghĩa của xâu kí tự:
Bài toán đặt vấn đề: Viết chương trình nhập họ tên của 30 học sinh trong lớp:
Hỏi: Ta sẽ chọn kiểu dữ liệu như thế nào? Khai báo biến như thế nào?
Hỏi: Có những khó khăn gì gặp phải?
2. Tìm hiểu về kiểu xâu:
- Giới thiệu cách khai báo biến xâu trong ngôn ngữ lập trình Pascal.
- Ý nghĩa của từ String, [n]?
- Khi khai báo không có [n] thì số lượng kí tự tối đa là bao nhiêu?
- Yêu cầu học sinh cho một ví dụ về xâu kí tự.
- Xâu có bao nhiêu kí tự.
Hoïc sinh traû lôøi:
- Kiểu mảng một chiều gồm 30 kí tự.
- Khai báo một biến mảng A để lưu họ tên của một học sinh
Readln(a[1]); 
Readln(a[2]);
Readln(a[3]);
….
Readln(a[n]);
- Chương trình viết dài dòng. Khi nhập dữ liệu, phải thực hiện gõ nhiều phím.
- String là tên kiểu xâu
[n] là giá trị quy định số lượng kí tự tối đa mà biến xâu có thể chứa.
- Số kí tự tối đa là 255.
- Ví dụ: ‘HA NOI’
- Xâu có 6 kí tự, dấu cách là một kí tự.
1. Kiểu dữ liệu xâu và cách khai báo: 
 Xâu là dãy các kí tự trong bảng mã ASCII. 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 0 gọi là xâu rỗng. Để khai báo kiểu dữ liệu xâu ta sử dụng từ khoá STRING tiếp theo là độ dài lớn nhất của xâu (không vượt quá 255) được ghi trong cặp ngoặc [ và ].
Khai baùo: 
VAR : STRING[Độ dài lớn nhất của xâu]; 
 Ví dụ : Var Name : string[26];
 Trong mô tả xâu có thể bỏ qua phần khai báo độ dài, chẳng hạn :
Var Chugiai : String;
 Khi đó độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là 255.
10’
Hoạt động 2: Nhập, xuất dữ liệu cho biến 

File đính kèm:

  • docGIAO AN TIN HOC 117 TIET DAU.doc