GIáo án Tin học 11 kỳ 1

Chương IV : Kiểu Dữ Liệu Có Cấu Trúc 15(7,6,2)

§11. KIỂU MẢNG

I/- Mục đích – yêu cầu :

v Về kiến thức :

+ Hiểu khái niệm mảng một chiều và mảng hai chiều.

+ Hiểu cách khai báo và truy cập đến các phần tử của mảng.

v Về kỹ năng :

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

+ Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng.

 Về thái độ :

+ Tiếp tục xây dựng lòng ham thích lập trình, nhằm giải quyết các bài toán bằng máy tính.

+ Ý thức chọn và xây dựng kiểu dữ liệu khi thể hiện những đối tượng trong thực tế, ý thức rèn luyện kỹ năng sử dụng các thao tác trên mỗi kiểu dữ liệu có cấu trúc và mong muốn chương trình là một sản phẩm thuận lợi cho người dùng.

 

doc101 trang | Chia sẻ: dung89st | Lượt xem: 1485 | Lượt tải: 2download
Bạn đang xem trước 20 trang mẫu tài liệu GIáo án Tin học 11 kỳ 1, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
 cần phải làm gì ?
? Để chạy chương trình ta ấn phím nào ? 
- Sau khi chạy chương trình ta nhập lần lược 3 giá trị a, b, c từ bàn phím. Và mỗi giá trị cách nhau bằng 1 dấu cách. 
- Trước từ khoá Else không có dấu chấm phẩy.
? Để lưu chương trình với tên PITAGO lên đĩa ta làm thế nào?
- Sau khi chúng ta đặt tên xong thì nó sẽ hiển thị tên PITAGO.Pas lên phía trên.
 + Sau khi dịch từng câu lệnh chương trình xong, ta tiếp tục nhập lần lượt 3 giá trị a= 3,b = 4, c = 5 từ bàn phím và các giá trị cách nhau bởi dấu cách, sau đó xem kết quả trên màn hình. 
+ Dịch từng câu lệnh F7 và theo
dõi giá trị của các biến trên cửa
+ a2= + 
+ b2= + 
+ c2= + 
+ Ấn Alt + F9 (F9)
+ Ấn Ctrl + F9.
+ Aán F2 
+ Đặt tên PITAGO vào khung filename
a) Gõ chương trì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) ; 
 a2 := a ; 
 b2 := b ;
 c2 := c ;
 a2 := a2 * a ;
 b2 := b2 * b ;
 c2 := c2 * c ;
if (a2 = b2 + c2) or ( b2 = a2 + c2) or (c2 = a2 + b2) Then 
Writeln(‘Ba so da nhap la bo so Pi-ta-go ‘) else Writeln(‘Ba so da nhap khong phai la bo so Pi-ta-go ‘) ;
Readln ;
End.
b) Lưu chương trình với tên PITAGO lên đĩa.
c) Nhấn phím F7 để thực hiện từng câu lệnh chương trình, nhập các giá trị a= 3, b= 4 , c= 5.
d) Vào bảng chọn Debug mở cửa sổ hiệu chỉnh để xem giá trị a2, b2, c2.
sổ Watches. Để hiện cửa sổ Watches , trước hết cần dùng tổ hợp phím CTRL+F7 làm xuất hiện cửa sổ Add watch, sau đó nhập tên biến(Vd: a2 là biến đang cần theo dõi gtrị) và ấn phím Enter sẽ có tên biến a2 cùng giá trị hiện thời của nó trong cửa sổ Watches. Có thể kết hợp phím Ctrl + F5( thay đổi kích thước của cửa sổ hiện thời chứa con trỏ màn hình) và phím F6 (chuyển cửa sổ hiện thời) để các cửa sổ lộ ra phần ttin cần theo dõi( không bị cửa sổ khác che lấp).
+ Tiếp tục ấn phím F7 để theo dõi quá trình rẽ nhánh.
+ Hãy nhập các giá trị a=700 , b= 1000 , c= 800 và xem kết quả trên màn hình.
+ Đối với a2 := a*a thì ta có thể dùng hàm gì ?
- Tương tự áp dụng cho b2 và c2.
+ Dịch từng câu lệnh(hiển thị khác màu)
+ Ta dùng hàm SQR(a).
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ả a2=9, b2=16, c2=25.
f) Quan sát quá trình rẽ nhánh.
g) Lặp lại các bước trên với bộ dữ liệu a=700 , b= 1000 , c= 800.
h) Nếu thay dãy lệnh 
a2 := a; b2 := b ; c2 := c ;
a2 := a2*a ; b2 := b2*b ; c2 := c2*c ;
Bằng dãy lệnh 
 a2 := a*a ; b2 := b*b ; c2 :=c*c ;
Thì kết quả có gì thay đổi với bộ dữ liệu cho ở câu g ?
4. Củng cố :(4’)
Cần nắm rõ cấu trúc của câu lệnh rẽ nhánh và câu lệnh lặp.
Cần phân biệt các dấu : . , ; : khi tham gia viết chương trình.
Cách sửa lỗi chương trình cũng như cách thực hiện chương trình. 
5. Dặn dò :(1’)
Các em về nhà viết lại các chương trình đơn giản và thử lại với nhiều bộ dữ liệu khác nhau.Sau đó quan sát kết quả trên màn hình. 
Khi ra khởi phòng phải tắt máy tính, tắt quạt, tắt đèn và đậy tất cả các máy tính lại. 
Về nhà chuẩn bị Câu Hỏi Và Bài Tập trong SGK trang 50và 51.
 Hoà Lợi, ngàyTháng Năm 2008 
 	 Duyệt 
Equation Chapter 1 Section 1Tuần : 9 Ngày soạn : 02/09/08 
Tiết : 17 Ngày Dạy: / /
 BàØI TẬP 
I/- Mục đích – yêu cầu :
Về kiến thức : 
+ Củng cố thêm về cấu trúc rẽ nhánh, cấu trúc lặp và những nội dung được học ở chương 3.
Về kỹ năng : 
+ Luyện tập cấu trúc lặp,chú ý bài toán tìm tổng của dãy số.
+ Tiếp tục làm quen với các công cụ phục vụ hiệu chỉnh chương trình. 
 v Về thái độ : 
+ Ham muốn học một ngôn ngữ lập trình cụ thể để có khả năng giải các bài toán bằng máy tính điện tử và vận dụng NNLT để viết chương trình. 
II/- Chuẩn bị :
 v GV : + Phải có giáo án ,bài tập và sử dụng thiết bị liên quan đến bài tập.
 + Chuẩn bị trước nhiều câu hỏi phát vấn cho học sinh để cho HS trả lời. 
 v HS : + Đọc trước sách giáo khoa trước ở nhà trang 50 và 51.
 v PP : + Làm việc theo nhóm(chia làm 6 nhóm).
 + Diễn giảng và phát vấn. 
III/- Hoạt động dạy học :
1. Ổn định lớp : Kiểm tra sĩ số (1’)
2. Kiểm tra bài cũ :(5’)
 1. Hãy cho biết sự giống nhau và khác nhau của hai dạng câu lệnh If – Then ?
 TL : 
Giống nhau : Cùng là câu lệnh cấu trúc rẽ nhánh, khi gặp một điều kiện nào đó thì chọn thực hiện thao tác thích hợp.
Khác nhau : Trong câu lệnh If – Then dạng thiếu, nếu điều kiện không đúng thì thoát khỏi cấu trúc rẽ nhánh, thực hiện câu lệnh tiếp theo của chương trình, còn trong câu lệnh If – Then dạng đủ, nếu điều kiện không đúng thì thực hiện công việc 2, sau đó mới thoát khỏi cấu trúc rẽ nhánh, thực hiện câu lệnh tiếp theo của chương trình.
 2. Câu lệnh ghép là gì ? Tại sao phải có câu lệnh ghép ? 
 TL : Câu lệnh ghép là 1 câu lệnh được hợp thành từ nhiều câu lệnh thành phần (đơn 
 hoặc ghép ). Câu lệnh ghép nhằm thực hiện thao tác gồm nhiều thao tác thành phần. 
 Mỗi thao tác thành phần tương ứng với 1 câu lệnh đơn hoặc câu lệnh ghép khác. Về 
 mặt NNLT, câu lệnh ghép là một trong các yếu tố cần thiết để xây dựng chương trình 
 có cấu trúc. 
 3. Có thể dùng câu lệnh While – Do để thay cho câu lệnh For – Do được không ? Nếu 
 được, hãy thực hiện điều đó với chương trình Tong_1a. 
 TL : Có thể thay thế đoạn chương trình chứa câu lệnh For – Do ( dạng tiến ) bằng đoạn chương trình chứa câu lệnh While – Do như sau :
i := ;
While Do 
Begin
 ;
 ;
End;
3. Nội dung bài mới : 
 TG
Hoạt Động Của GV
Hoạt Động Của HS
Nội Dung Bài
Tiết
17
+ Các em hãy mở sách giáo khoa trang 51 trong phần câu hỏi và bài tập. 
+ Hãy chuyển câu lệnh rẽ nhánh ở câu a và câu b thành câu lệnh trong pascal.
+ VCT tính tổng từ 1 đến 50 của n /(n+1).
? Để tính tổng câu a ta thực hiện câu lệnh lặp dạng nào?
- Đúng.Cho vòng lặp for chạy từ đâu đến đâu ?
+ Ta thực hiện câu lệnh lặp dạng for - do
- Từ 1 đến 50 
4/- Viết câu lệnh rẽ nhánh tính :
 x2 + y2 nếu x2 + y2 <= 1.
a) Z = x + y nếu x2 + y2 >1 và y >=x.
 0,5 nếu x2 + y2 >1 và y <x.
 If (sqr(x) + sqr(y)) <= 1 Then 
 Z := sqr(x) +sqr(y)
 Else 
 If y >= x Then Z := x+y 
 Else z := 0.5 ;
 {x } + {y} nếu điểm (x,y) thuộc 
 b) Z = hình tròn bk r (r>0),tâm (a,b).
 x + y trong trường hợp còn lại
If ( sqr(x-q) + sqr(y-b)) <= sqr(r) Then 
 z := abs(x) + abs(y)
Else z := x + y ;
5/- Lập trình tính :
a) Y = 
Program tonga;
uses crt ;
Var y : real ;
 n :byte ;
Begin 
 clrscr ;
y :=0 ; 
? Để tính tổng câu b ta thực hiện câu lệnh lặp dạng nào?
- Cách làm tương tự như câu a. Nhưng do số lần lặp không biết trước.
? Hỏi có bao nhiêu con mỗi loại 
+ Ta thực hiện câu lệnh lặp dạng While - do .
+ 14 chó và 22 gà
For n := 1 to 50 do 
 Y := y + n/(n+1) ;
Writeln(‘ tong=’, y :8:1) ;
Readln ;
End.
b) e(n)= 1 + cho đến khi < 2 x 10-6 đưa giá trị e(n) ra màn hình.
Program tongb;
uses crt ;
Var n : longint ;
 e,sh : real ;
Begin 
 clrscr ;
sh := ½ ;
n := 2 ;
e := 2 + sh ;
while sh >= 2*1E-6 do
 Begin 
 inc(n) ;
 sh := sh* (1/n) ;
 e := e + sh ;
 End ;
writeln(‘Gia tri cua e(n) la :’, e :8:2) ;
readln ;
End.
6/- Lập trình để giải bài toán cổ sau :
 Vừa gà vừa chó .
Bó lại cho tròn.
Ba mươi sáu con.
Một trăm chân chẳn.
Hỏi có bao nhiêu con mỗi loại ?
Program ga_cho ;
Uses crt ;
Var ga,cho : integer ;
Begin 
 For cho := 1 to 24 do
 Begin
? Hãy tìm Input và Output của bài này ?
? Hãy tìm Input và Output của bài này ?
+ Input : nhập tuoi cha va tuoi con
+ Output : sau bao nhiêu năm thì tuổi của cha gấp đôi tuổi con.
+ Input : nhập vao số tiền gủi(A) và số tiền rút ra(B).
+ Output : sau bao nhiêu tháng thì người đó rút ra số tiền (B)
 Ga := 36 – cho ;
 If ga + 2 * cho = 50 then 
 Writeln(‘Ga :’, ga , ‘cho : ‘, cho ) ;
 End ;
Readln ;
End. 
7/- Nhập từ bàn phím tuổi của cha và con(hiện tại tuổi của cha lớn hơn hai lần tuổi của con và tuổi của cha hơn tuổi con ít nhất là 25). Đưa ra màn hình câu trả lời cho câu hỏi “Bao nhiêu năm nữa thì tuổi của cha gấp đôi tuổi tuổi con” ?
Program tinhtuoi ;
Uses crt ;
Var tuoicha, tuoicon , nam :word ;
Begin
 Clrscr;
Write(‘nhap vao tuoi cha va tuoi con’);
Write(‘tuoi cha > 2* tuoi con va tuoicha-tuoicon >=25 ‘);
Readln(tuoicha,tuoicon) ;
Nam :=0 ;
While tuoicha 2*tuoicon do
 Begin 
 Tuoicha := tuoicha + 1 ;
 Tuoicon := tuoicon +1 ;
 Nam := nam + 1 ;
 End ;
Writeln(‘ sau ‘, nam , ’ nam tuoi cha gap doi tuoi con’) ;
Readln ;
End.
8/- Một người gởi tiết kiệm không kỳ hạn với số tiền A đồng với lãi suất 0.3% mỗi tháng. Hỏi sau bao nhiêu tháng, người đó rút hết tiền thì sẽ nhận được số tiền ít nhất là B đồng ? Biết rằng với việc gởi tiết kiệm không kì hạn thì lãi không được cộng vào vốn.
Program tietkiem ;
Uses crt ;
Const laisuat = 0.03 ;
Var tiengui, tienrutve, luu : real ;
 Thang : integer ;
Begin
 Clrscr;
Write(‘nhap vao so tien gui : ‘) ;
Readln(tiengui) ;
 Luu := tiengui ;
Write(‘ So tien co khi rut ve :’) ;
Readln(tienrutve) ;
Thang :=0 ;
While tiengui < tienrutve do
 Begin
 Tiengui := tiengui + luu * laisuat ;
 Thang := thang + 1 ;
 End ;
Write(‘gui’, luu :10:2, ‘ dong, sau ‘ , thang ,’ thang’) ;
Writeln(‘ se nhan duoc so tien ‘, tienrutve :10:2, ‘đong’) ;
Readln ;
End.
4. Củng cố :(4’) 
- Khi viết chương trình nếu biến là kiểu số thực thì chú ý cách xuất ra màn hình theo dạng có quy cách. Khi viết chương trình cần chú ý các dấu trong các lệnh Pascal. 
5. Dặn dò :(1’) 
- Học bài và làm thêm các bài tập trong sách bài tập. Để chuẩn bị Kiểm Tra 1 Tiết. 
	 	 Hoà Lợi, ngàyTháng Năm 2008 
 	 Duyệt 
Equation Chapter 1 Section 1Tuần : 9 Ngày soạn : 10/09/08 
Tiết : 18 Ngày Kiểm : / /
KIỂM TRA 1 TIẾT
1. Mục tiêu đánh giá :
 - Kiểm tra kết quả tiếp thu của học sinh sau khi học hết chương III.
2. Mục đích yêu cầu của đề : 
 - Nắm được lệnh rẽ nhánh và lặp.
 - Lập trình giải một số bài toán về rẽ nhánh và lặp.
3. Ma trận đề :
Nhận biết 
1, 10
Thông hiểu
5,6,8,9
Vận dụng
2, 3,4,7,11,12,13
4. Nội dung đề kiểm tra : 
Hãy chọn câu đúng hoặc sai trong các câu sau :
1/-Hãy chỉ ra cấu trúc của câu lệnh ghép ?
 a. Begin : ........ End ; b. Begin ; ......... End ;
 c. Begin ................ End ; d. Begin ................ End.
2/- Câu lệnh sau đây cho kết quả nào ? 
 If a>b Then c :=a Else c :=b;
a. Hoán đổi giá trị hai biến a và b. b. Tìm giá trị c = Max(a,b).
c. Tìm giá trị c = Min(a,b). d. Tìm giá trị c :=a;
3/- Cho đoạn chương trình sau và hãy cho biết kết quả S bằng bao nhiêu ? 
 I :=1 ; S :=0 ;
 While I < 10 Do
 Begin
 S := S + 2 ;
 I := I +1 ;
 End ;
 a. 16 b. 18 c.20 d.0
4/- Cho đoạn chương trình sau và hãy cho biết kết quả S bằng bao nhiêu ? S := 0 ;
 For I := 1 to 5 Do 
 S := S + I ;
 a. S = 21 b. S = 0 S = 10 d . S = 15 
5/- Trong Pascal, muốn kiểm tra đồng thời cả ba giá trị của a,b,c có lớn hơn 0 hay không ta dùng câu lệnh rẽ nhánh nào là đúng ?
If a,b,c > 0 Then .......
If a > 0 And b > 0 And c > 0 Then .......
If (a > 0) And (b > 0) And (c > 0) Then .......
If (a > 0) Or (b > 0) Or (c > 0) Then ....... 
6/- Trong Pascal,phát biểu nào sau đây là đúng với câu lệnh rẽ nhánh If .... Then ..... else ..... ?
Nếu sau Then muốn thực hiện nhiều câu lệnh thì các lệnh phải đặt giữa hai dấu ngoặc đơn.
Nếu sau Then muốn thực hiện nhiều câu lệnh thì các lệnh phải đặt giữa Begin và End ; 
Nếu sau Then muốn thực hiện nhiều câu lệnh thì các lệnh phải đặt giữa Begin và End.
Nếu sau Then muốn thực hiện nhiều câu lệnh thì các lệnh phải đặt giữa {..... }; 
7/- Trong Pascal, đoạn chương trình sau đây đưa ra màn hình kết quả gì ?
 For I := 10 to 1 Do Write(I :1) ;
 a. 1 2 3 4 5 6 7 8 9 10 b. 10 9 8 7 6 5 4 3 2 1 
 c. Đưa ra 10 dấu cách. d. Không đưa ra kết quả gì cả.
8/- Trong Pascal, đoạn chương trình sau thực hiện công việc gì ?
 I := 0 ; While I 0 Do Write( I ) ;
a. Không đưa ra thông tin gì cả b. Đưa ra màn hình 10 chữ số 0. 
c. Lặp vô hạn việc đưa ra màn hình số 0. d. Đưa ra màn hình 1 chữ số 0.
9/- Trong Pascal, đoạn chương trình sau cho kết quả là gì ?
 T := 0 ;
 For I := 1 To N Do 
 If ( I Mod 3 = 0 ) Then T := T + I*I ;
Tính tổng các số nguyên trong phạm vi từ 1 đến N.
Tính tổng các số chia hết cho 3 trong phạm vi từ 1 đến N.
Tính tổng bình phương các số chia hết cho 3 trong phạm vi từ 1 đến N.
Tính tổng bình phương các số trong phạm vi từ 3 đến N.
10/ Phát biểu nào sau đây là sai trong câu lệnh lặp While – Do ?
Câu lệnh sau Do sẽ được thực hiện khi điều kiện đúng.
Câu lệnh sau Do sẽ không được thực hiện lần nào khi điều kiện sai.
Câu lệnh sau Do sẽ không được thực hiện khi sau Do có dấu chấm phẩy(;).
Câu lệnh sau Do sẽ được thực hiện khi điều kiện sai. 
B/- Bài Tập : (5đ)
11/- Ta có phát biểu sau : (1đ)
 Nếu x2 + y2 >= 1 thì Z= x2 + y2
 Ngược lại, nếu y >= x thì Z = x + y 
 Ngược lại, Z=0,5. 
12/- Hãy sắp xếp đoạn chương trình sau và thêm các dấu vào cho hoàn chỉnh :(1.5đ)
 1. Begin 6. Program GPTB1
 2. Readln(a,b) 7. If (a = 0 ) and (b = 0 ) Then
 3. Write(‘phuong trinh vo so nghiem’) 8. Else Writeln(‘phương trinh co nghiem x=’, -b/a)
 4. Readln 9. Var a,b : Real
 5. End 10. Writeln(‘Nhap vao he so a,b’)
13/- Viết chương trình nhập vào tự nhiên N,sau đó tính tổng và in lên màn hình các số nguyên từ 1 đến N (Vd : S = 1 + 2 + ... + N và áp dụng câu lệnh lặp For – do) (2.5đ)
----------- Hết -------------
Thang Điểm Và Đáp Án
Câu
Đáp án
Điểm
1
C
0.5
2
B
0.5
3
B
0.5
4
C
0.5
5
D
0.5
6
B
0.5
7
D
0.5
8
A
0.5
9
C
0.5
10
D
0.5
11/- (1đ) áp dụng câu lệnh rẽ nhánh trong Pascal như sau :
 If x2 + y2 >= 1 Then Z := x2 + y2
 Else If y >= x Then Z := x + y
 Else Z :=0.5 ;
12/- (1.5đ) sau khi sắp xếp : 
 6 - 9 – 1 – 10 – 2 – 7 - 3 – 8 – 4 – 5.
13/- (2.5đ)
Chương trình :
Program Tong ;
 Var N,S,I : integer ; 
 Begin
 Writeln(‘ Nhap vao so tu nhien N’) ;
 Readln(N);
 S := 0 ;
 For I := 1 To N do 
 S := S + I ;
 Write(‘ Tong s la :’ , S ) ;
 Readln ;
 End.
 Hoà Lợi, ngàyTháng Năm 2008 
 	 Duyệt 
Tuần : 10,22 Ngày soạn : 15/09/08 
Tiết : 19,20,21 Ngày Dạy: / /
Chương IV : Kiểu Dữ Liệu Có Cấu Trúc 15(7,6,2)
§11. KIỂU MẢNG
I/- Mục đích – yêu cầu :
Về kiến thức : 
+ Hiểu khái niệm mảng một chiều và mảng hai chiều.
+ Hiểu cách khai báo và truy cập đến các phần tử của mảng.
Về kỹ năng : 
+ Cài đặt được thuật toán giải một số bài toán đơn giản với kiểu dữ liệu mảng một chiều. 
+ Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng.
 v Về thái độ : 
+ Tiếp tục xây dựng lòng ham thích lập trình, nhằm giải quyết các bài toán bằng máy tính. 
+ Ý thức chọn và xây dựng kiểu dữ liệu khi thể hiện những đối tượng trong thực tế, ý thức rèn luyện kỹ năng sử dụng các thao tác trên mỗi kiểu dữ liệu có cấu trúc và mong muốn chương trình là một sản phẩm thuận lợi cho người dùng.
II/- Chuẩn bị :
 v GV : + Phải có giáo án và các đồ dùng dạy học liên quan đến bài dạy.
 + Cần chuẩn bị khổ giấy lớn cho chương trình nhietdo_tuan.( ví dụ trong SGK ).
 + Hướng dẫn cho HS xem xét chương trình đầu tiên sử dụng kiểu mảng 1 chiều ở 
 sách giáo khoa để thấy biến i lần lượt nhận các giá trị chỉ số của mảng.
 v HS : + Đọc trước sách giáo khoa ở nhà.
 v PP : + Diễn giảng ,phát vấn và các hình vẽ trực quan (nếu có ). 
III/- Hoạt động dạy học :
1. Ổn định lớp : Kiểm tra sĩ số (1’)
2. Kiểm tra bài cũ : (4’) 
3. Nội dung bài mới : 
 TG
Hoạt Động Của GV
Hoạt Động Của HS
Nội Dung Bài
 Tiết
19
+ Đặt vấn đề : Với những kiểu dliệu như đã biết, làm thế nào để :Lưu trữ và xử lý 1 dãy số ? 
Lưu trữ và xử lý họ tên của một người
Hoặc lưu trữ và xử lý bảng kết quả thi tốt nghiệp ?
+ Để giải quyết vấn đề đó, ta 
+ Ta có thể dùng nhiều biến để lưu trữ
sử dụng kiểu dữ liệu mảng một chiều để mô tả dữ liệu trên. Ta đi vào số 1 kiểu mảng 1 chiều.
- Các NNLT thường cung cấp 1 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.
? Để xử lý và lưu trữ một dãy số nguyên trong lập trình thì ta dùng kiểu dữ liệu nào ? 
- Phân tích 2 chương trình để cho học sinh nhận thấy sự tiện lợi khi sử dụng mảng.
- Nếu không phải kiểm tra lại nhiệt độ của từng ngày sau khi tính nhiệt độ trung bình của tuần thì chương trình không cần dùng đến bảy biến thực với mỗi biến lưu nhiệt độ của 1 ngày.
- Ở ctrình Nhietdo_Nngay sử dụng dạng cấu trúc mảng một chiều và nhận thấy chương trình Nhietdo_Nngay sử dụng kiểu mảng một chiều và chương trình Nhietdo_tuan không sử dụng kiểu mảng. 
+ ta có thể dùng kiểu dữ liệu có cấu trúc ( mảng 1 chiều).
1/- Kiểu mảng một chiều :
- Mảng 1 chiều là một dãy hữu hạn các phần tử có cùng kiểu, mảng được đặt tên và mỗi phần tử mang một chỉ số. Để mô tả mảng 1 chiều ta cần xác định kiểu của các phần tử và cách đánh số các phần tử của nó.
Với mảng 1 chiều ta cần quan tâm đến :
Tên mảng một chiều.
Số lượng phần tử trong mảng 
Kiểu dữ liệu của phần tử
Cách khai báo biến mảng 1 chiều 
Cách tham chiếu đến từng phần tử
Ví dụ : Xem SGK trang 53,54.
a) Khai báo :
Khai báo trực tiếp :
Var : Array[ Kiểu chỉ số ] Of ;
Khai báo gián tiếp :
Type = Array [ Kiểu chỉ số ] Of ;
Var : ; 
 Tiết
20
Ví dụ :
Khai báo gián tiếp :
Type 
 Songuyen = Array[1..100] Of integer ;
 Sothuc = Array [1..50 ] Of Real ;
Var A : Songuyen ;
 B : Sothuc ;
Khai báo trực tiếp :
Var X : Array [1..50 ] Of integer ;
 Y : Array [ 1..50 ] Of Real ;
+ Đặt vấn đề : Ở tiết trước chúng ta đã học dạng cấu trúc của mảng một chiều, hôm nay chúng ta tiếp tục vận dụng cấu trúc này để viết chương trình.Ta xét một số thuật toán về tìm kiếm và sắp xếp. 
? Thuật toán trên dừng lại khi nào ?
+ Dạng 2 tiện hơn
 Chỉ số phần tử
 Mảng 
+ Dừng lại i > N thì đưa ra giá trị Max rồi kết thúc. 
Trong đó : 
- Kiểu chỉ số : thường là 1 đoạn số nguyên liên tục có dạng n1..n2, với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và chỉ số cuối ( n1 < n2 ).
- Kiểu phần tử : là kiểu của các phần tử trong mảng.
Ví dụ :
Var A :Array[ 1..50 ] of integer;
Type Lop = Array[1..50] of Byte;
Var B : Lop ;
Để truy cập vào phần tử mảng, ta viết :
 [ chỉ số ] ;
Vd : A[20] ; truy cập đến phần tử thứ 20 trong mảng A.
22 25 27 33 25 25
 1 2 20 99 100
Nhietdo [20]
b) Một số ví dụ :

File đính kèm:

  • docgiao an lop 11 hk 1.doc
Giáo án liên quan