intTypePromotion=1
ADSENSE

Giáo án Tin học 11 bài 11: Kiểu mảng

Chia sẻ: Lê Bảo Kiều | Ngày: | Loại File: DOC | Số trang:59

453
lượt xem
60
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Với bộ giáo án bài Kiểu mảng môn Tin học 11 quý thầy cô giúp học sinh nắm được những nội dung trọng tâm của bài, dễ dàng củng cố kiến thức Tin học cho học sinh. Ngoài ra bộ sưu tập giáo án bài Kiểu mảng còn giúp quý thầy cô có thêm những tư liệu tham khảo hữu ích giúp tiết kiệm được nhiều thời gian hơn trong việc biên soạn giáo án giảng dạy. Thông qua bài học, học sinh sẽ nắm được những kiến thức cần thiết, phát triển các kỹ năng Tin học và có thể áp dụng những kiến thức học được vào trong thực tế.

Chủ đề:
Lưu

Nội dung Text: Giáo án Tin học 11 bài 11: Kiểu mảng

  1. Giáo án Tin học 11 KIỂU MẢNG I. Mục tiêu 1. Kiến thức - Biết được một số 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 kiểu mảng một chiều và cách khai báo bi ến ki ểu m ảng m ột chiều. 2. Kỹ năng - Tạo được kiểu mảng một chiều và sử dụng biến kiểu mảng một chiều trong ngôn ngữ lập trình Pascal để giải quyết một số bài toán cụ thể. III. Đồ dùng dạy học 1. Chuẩn bị của giáo viên - Máy tính, máy chiếu Projector 2. Chuẩn bị của học sinh - Sách giáo khoa III. Hoạt động dạy - học 1. Hoạt động 1: Tìm hiểu ý nghĩa của mảng một chiều a. Mục tiêu
  2. Biết được ý nghĩa và sự cần thiết của kiểu mảng một chi ều trong vi ệc gi ải quyết một số bài toán. Biết được khái niệm mảng một chiều. b. Nội dung - Ví dụ 1: 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 có nhi ệt đ ộ cao h ơn nhiệt độ trung bình của tuần. - Chương trình minh họa: Program nhiet_do_tuan; Var t1, t2, t3, t4, t5, t6, t7, tb: Real; Dem: Integer; Begin Write(‘Nhap nhiet do cua 7 ngay trong tuan: ‘); readln(t1, t2, t3, t4, t5, t6, t7); Tb := (t1+t2+t3+t4+t5+t6+t7)/7; Dem :=0; If t1>tb then dem := dem+1; If t2>tb then dem := dem+1; If t3>tb then dem := dem+1; If t4>tb then dem := dem+1; If t5>tb then dem := dem+1;
  3. If t6>tb then dem := dem+1; If t7>tb then dem := dem+1; Writeln(‘Nhiet do trung binh cua tuan: ‘, tb); Writeln(‘So ngay co nhiet do cao hon nhiet do trung binh cua tuan la: ‘, dem); Readln; End. - Ví dụ 2: Nhập vào nhiệt độ (trung bình) của N ngày. Tính và đ ưa ra màn hình nhiệt độ trung bình của N ngày và số lượng ngày có nhiệt độ cao hơn nhiệt đ ộ trung bình của N ngày đó. - Mảng một chiều là dãy hữu hạn các phần tử có cùng kiểu dữ liệu. Các phần tử trong mảng có cùng chung một tên và phân biệt bởi chỉ số. Để mô tả mảng một chiều cần xác định được kiểu của các phần tử và cách đánh số các ph ần t ử của nó. - Hầu hết các ngôn ngữ lập trình đều có quy tắc cho phép xác đ ịnh tên ki ểu mảng, số lượng phần tử, kiểu dữ liệu các phần tử, cách khai báo một bi ến ki ểu mảng và cách tham chiếu đến từng phần tử của mảng. c. Các bước tiến hành TG Hoạt động của giáo viên Họat động của học sinh 10’ 1. Chiếu ví dụ 1: Ví dụ 1: Nhập vào nhiệt độ (trung bình) của mỗi ngày trong tuần. Tính
  4. và đưa ra màn hình nhiệt độ trung bình của tuần và số lượng ngày có nhiệt độ cao hơn nhiệt độ trung bình của tuần. - Gợi ý: dùng 7 biến thực t1, t2, t3, t4, t5, t6, t7 để lưu nhiệt độ trung bình của các ngày trong tuần, biến tb dùng để lưu nhiệt độ trung bình của 1 tuần. - Dùng biến dem để lưu số ngày có nhiệt độ cao hơn nhiệt độ trung bình Program nhiet_do_tuan; của tuần. Var t1, t2, t3, t4, t5, t6, t7, tb: Real; - Dùng câu lệnh If để kiểm tra nhiệt độ ngày nào trong tuần cao hơn Dem: Integer; nhiệt độ trung bình của tuần. Begin 2 Yêu cầu học sinh viết chương Write(‘Nhap nhiet do cua 7 trình giải quyết bài toán trên. ngay trong tuan: ‘); readln(t1, t2, t3, t4, t5, t6, t7); Tb := (t1+t2+t3+t4+t5+t6+t7)/7; Dem :=0; If t1>tb then dem := dem+1; If t2>tb then dem := dem+1;
  5. If t3>tb then dem := dem+1; - Có nhận xét gì về cách khai báo If t4>tb then dem := dem+1; biến và các câu lệnh trong chương If t5>tb then dem := dem+1; trình? If t6>tb then dem := dem+1; - Với cách khai báo biến như trên, có thể thay các câu lệnh If trên bằng If t7>tb then dem := dem+1; lệnh lặp được không? Writeln(‘Nhiet do trung binh 3. Chiếu ví dụ 2: cua tuan: ‘, tb); Ví dụ 2: Nhập vào nhiệt độ (trung Writeln(‘So ngay co nhiet do bình) của N ngày. Tính và đưa ra cao hon nhiet do trung binh cua tuan màn hình nhiệt độ trung bình của N la: ‘, dem); ngày và số lượng ngày có nhiệt độ Readln; cao hơn nhiệt độ trung bình của N End. ngày đó. - Khai báo nhiều biến - Để giải quyết bài toán này, có thể sử dụng tương tự như bài toán trên - Câu lệnh If được sử dụng lặp lại được không? nhiều lần. - Để lưu nhiệt độ trung bình của N - Với cách khai báo biến như vậy ngày thì dùng N biến t1, ..tn và N câu không thể dùng câu lệnh lặp được. lệnh If được không? (N tổng quát) - Để giải quyết được bài toán này, các ngôn ngữ lập trình, ngôn ngữ Pascal cung cấp cho chúng ta cấu trúc mảng 1 chiều.
  6. - Mảng một chiều là dãy hữu hạn - Vì N là tổng quát chưa biết là bao các phần tử có cùng kiểu dữ liệu. nhiêu nên không biết phải khai báo Các phần tử trong mảng có cùng bao nhiêu biến và sử dụng bao chung một tên và phân biệt bởi chỉ nhiêu câu lệnh If. số. Để mô tả mảng một chiều cần xác định được kiểu của các phần tử và cách đánh số các phần tử của nó. - Hầu hết các ngôn ngữ lập trình đều có quy tắc cho phép xác định tên kiểu mảng, số lượng phần tử, kiểu dữ liệu các phần tử, cách khai báo một biến kiểu mảng và cách tham chiếu đến từng phần tử của mảng. 2. Hoạt động 2: Tạo kiểu mảng một chiều và khai báo biến kiểu mảng a. Mục tiêu Học sinh biết được cách tạo kiểu mảng một chiều trong ngôn ngữ lập trình Pascal, biết cách khai báo biến và tham chiếu đến từng phần tử của mảng. b. Nội dung - Có hai cách khai báo biến kiểu mảng một chiều: * Cách 1: Khai báo biến thông qua định nghĩa kiểu dữ liệu mảng một chiều: - Định nghĩa kiểu dữ liệu mảng một chiều: TYPE = Array [ ] Of ;
  7. + Kiểu_chỉ_số: Thường là một đoạn số nguyên (hoặc đoạn kí tự) xác định chỉ số đầu và chỉ số cuối của mảng. + Kiểu_ thành_phần: Là kiểu dữ liệu chung của mọi phần tử trong mảng. + Khai báo biến mảng một chiều: VAR : ; * Cách 2: Khai báo trực tiếp: VAR : Array [ ] Of ; - Tham chiếu đến từng phần tử: Tên_biến[chỉ số] c. Các bước tiến hành TG Hoạt động của giáo viên Hoạt động của học sinh 15’ 1. Nhắc lại cấu trúc chung của chương trình? - Nhắc lại cấu trúc chung của chương trình. 2. Từ khóa định nghĩa kiểu và từ khóa khai báo biến? - Từ khóa TYPE dùng để định nghĩa kiểu và từ khóa VAR 3. Chiếu cách định nghĩa kiểu dữ liệu mảng dùng để khai báo biến. một chiều và khai báo biến mảng: - Có hai cách khai báo biến kiểu mảng một chiều: * Cách 1: Khai báo biến thông qua định nghĩa kiểu dữ liệu mảng một chiều: - Chú ý theo dõi và ghi bài - Định nghĩa kiểu dữ liệu mảng một chiều: TYPE = Array
  8. [ ] Of ; + Kiểu_chỉ_số: Thường là một đoạn số nguyên (hoặc đoạn kí tự) xác định chỉ số đầu và chỉ số cuối của mảng. + Kiểu_ thành_phần: Là kiểu dữ liệu chung của mọi phần tử trong mảng. + Khai báo biến mảng một chiều: VAR : ; * Cách thứ 2: Khai báo trực tiếp: VAR : Array [ ] Of ; - Tham chiếu đến từng phần tử: Tên_biến[chỉ s ố] - áp dụng định nghĩa kiểu và khai báo biến ví dụ 1: * Cách 1: Type Array_a = array[1..7] Of real; VAR a: array_a; * Cách 2: VAR a: array[1..7] Of real; * Cách 1:
  9. - áp dụng với ví dụ 2? Type Array_a = array[1..n] Of real; VAR a: array_a; * Cách 2: VAR a: array[1..n] Of real; - Type - Láy một số ví dụ khác? Kieu_mang=Array[1..11] Of real; - Chiếu lên bảng một số định nghĩa kiểu Var A: Kieu_mang; mảng một chiều: TYPE Array_a = array[1..200] Of real; Array_B = array [byte] Of real; Array_C = array[-100..0] Of Boolean; - Định nghĩa đúng: Chọn định nghĩa đúng? TYPE Array_a = array[1..200] Of real; Array_C = array[-100..0] Of 4. Giới thiệu cách tham chiếu đến từng phần Boolean; tử: - Chiếu mô phỏng - Ví dụ 1: A[3] là phần tử ở vị
  10. - Yêu cầu học sinh lấy ví dụ? trí thứ 3 của mảng, lưu nhiệt độ trung bình của ngày thứ 4 trong tuần. 3. Hoạt động 3: Rèn luyện kỹ năng sử dụng mảng một chiều vào giải bài toán đơn giản a. Mục tiêu: Bước đầu vận dụng được cách khai báo biến kiểu mảng một chiều và cách tham chiếu đến các phần tử trong mảng. b. Nội dung: - Ví dụ 1: Nhập vào nhiệt độ (trung bình) của các ngày trong 1 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 có nhi ệt đ ộ cao h ơn nhiệt độ trung bình của tuần đó? - Ví dụ 2: Nhập vào nhiệt độ (trung bình) của N ngày. Tính và đ ưa ra màn hình nhiệt độ trung bình của N ngày và số lượng ngày có nhiệt độ cao hơn nhiệt đ ộ trung bình của N ngày đó? c. Các bước tiến hành TG Hoạt động của giáo viên Hoạt động của học sinh 15’ - Chiếu ví dụ lên màn hình chiếu. - Ví dụ 1: - Theo dõi ví dụ trên màn hình và suy nghĩ trả - Gợi ý: lời câu hỏi. + Thay bằng dùng 7 biến lưu nhiệt độ trung bình của - Thay bằng cách lưu vào mảng một chiều 7 ngày thì dùng mảng một
  11. chiều gồm bao nhiêu phần được. Mản gồm 7 phần tử. tử? - Khi đó thay 7 câu lệnh IF - THEN bằng câu + Sử dụng mảng một chiều lệnh lặp FOR được. (Lặp 7 lần) để lưu nhiệt độ của 7 ngày, vậy có thể thay 7 câu lệnh nhập nhiệt độ của 7 ngày Program vi_du1; vào và 7 câu lệnh IF - ThEN Var T : Array[1..7] Of real; bằng lệnh lặp được không? I, dem: Integer; + Lặp biết trước hay không Tb: Real; biết trước số lần lặp? Begin - Yêu cầu học sinh viết chương trình hoàn chỉnh và Dem:=0; tb:=0; một học sinh lên bảng viết Writeln(‘Nhap nhiet do cua cac ngay: ‘); chương trình? For i:=1 to 7 do read(T[i]); For i:=1 to 7 do tb:=tb+T[i]; Tb:=tb/7; For i:=1 to 7 do If T[i]>tb then dem:=dem+1; Writeln(‘Nhiet do trung binh cua 1 tuan la:’,tb); Writeln(‘so ngay co nhiet do cao hon TB :’,dem);
  12. Readln; - Chiếu ví dụ 2: END. - Gợi ý, tương tự ví dụ 1. - Sử dụng mảng gồm bao - Sử dụng mảng một chiều gồm N phần tử. nhiêu phần tử? Program vi_du2; - Học sinh viết chương Var T : Array[1..N] Of real; trình và một học sinh lên sửa lại chương trình của ví I, dem,N: Integer; dụ 1 để giải quyết ví dụ 2? Tb: Real; Begin Dem:=0; tb:=0; Writeln(‘Nhap so ngay can tinh nhiet do: ‘); Readln(N); Writeln(‘Nhap nhiet do cua cac ngay: ‘); For i:=1 to N do read(T[i]); For i:=1 to N do tb:=tb+T[i]; Tb:=tb/N; For i:=1 to N do If T[i]>tb then dem:=dem+1;
  13. Writeln(‘Nhiet do trung binh cua N ngay la:’,tb); Writeln(‘so ngay co nhiet do cao hon TB :’,dem); Readln; END. IV. Đánh giá cuối bài (5ph) 1. Những kiến đã học - Có hai cách khai báo biến kiểu mảng một chiều: * Cách 1: Khai báo biến thông qua định nghĩa kiểu dữ liệu mảng một chiều: - Định nghĩa kiểu dữ liệu mảng một chiều: TYPE = Array [ ] Of ; + Kiểu_chỉ_số: Thường là một đoạn số nguyên (hoặc đoạn kí tự) xác định chỉ số đầu và chỉ số cuối của mảng. + Kiểu_ thành_phần: Là kiểu dữ liệu chung của mọi phần tử trong mảng. + Khai báo biến mảng một chiều: VAR : ; * Cách thứ 2: Khai báo trực tiếp: VAR : Array [ ] Of ; - Tham chiếu đến từng phần tử: Tên_biến[chỉ số]
  14. 2. Câu hỏi và bài tập về nhà - Viết chương trình tính điểm trung bình học kỳ I của 1 học sinh. - Làm các bài tập trong sgk và sbt.
  15. KIỂU MẢNG (TIẾT 2) I. Mục tiêu 1. Kiến thức - Biết được một số 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 kiểu mảng một chiều và cách khai báo bi ến ki ểu m ảng m ột chiều. 2. Kỹ năng - Tạo được kiểu mảng một chiều và sử dụng biến kiểu mảng một chiều trong ngôn ngữ lập trình Pascal để giải quyết một số bài toán cụ thể. III. Đồ dùng dạy học 1. Chuẩn bị của giáo viên - Máy tính, máy chiếu Projector 2. Chuẩn bị của học sinh - Sách giáo khoa III. Hoạt động dạy - học 1. Hoạt động 1(10ph): Kiểm tra bài cũ a. Mục tiêu
  16. Biết được ý nghĩa và sự cần thiết của kiểu mảng một chi ều trong vi ệc gi ải quyết một số bài toán. Biết được khái niệm mảng một chiều. Biết cách đ ịnh nghĩa và khai báo biến mảng một chiều. b. Nội dung - Nêu các cách khai báo biến kiểu mảng một chiều? - Viết chương trình tính điểm trung bình học kỳ 1? 2. Hoạt động 2: Rèn luyện kỹ năng sử dụng mảng một chiều vào bài toán tìm phần tử lớn nhất của dãy N phần tử. a. Mục tiêu: Học sinh sử dụng được biến kiểu mảng một chiềuđể giải bài toán tìm phần tử lớn nhất của dãy (Thuật toán tìm max đã học ở lớp 10). b. Nội dung Bài toán 1: Tìm phần tử lớn nhất của dãy gồm N phần tử nguyên. c. Các bước tiến hành
  17. TG Hoạt động của Hoạt động của HS Gv 15' 1. Chiếu nội dung - Theo dõi nội dung bài toán trên màn hình và trả lời câu hỏi. bài toán lên màn - Input: N nguyên dương và dãy: a1,..., aN. hình. - Output: Max của dãy. 2. Gợi ý để giải quyết bài toán: - Thuật toán: - Xác định bài B1: Nhập N và dãy A1,..AN. toán? B2: Max←a1, i←2 B3: Nếu i>N thì đưa ra giá trị Max - Thuật toán tìm B4: Nếu ai> max thì Max←ai max? B5: i←i+1, rồi quay lại B3 - Mô phỏng thuật toán. - Để lưu giá trị của N phần tử, dùng mảng một chiều gồm N phần tử. - Dãy gồm N phần tử, để lưu giá trị của N phần tử này, cần khai báo biến như thế nào? - Để tìm được số - Thao tác so sánh ai với Max được lặp đi lặp lại. lớn nhất, so sánh lần lượt các phần tử từ phần tử thứ hai đến phần tử - Lặp biết trước số lần lặp (N lần) thứ N so sánh với Max, vậy có thao Program Tim_max; tác nào được lặp Uses crt; đi lặp lại ở đây Type mang_A = Array[1..100] Of Real; không? Var A: mang_A;
  18. 3. Hoạt động 3: Rèn luyện kỹ năng sử dụng biến mảng một chiều để giải quyết bài toán tìm kiếm nhị phân. a. Mục tiêu: Hiểu thuật toán tìm kiếm nhị phân và vận dụng kiểu m ảng một chiều để giải quyết bài toán. b. Nội dung: Bài toán: Cho dãy A gồm N số nguyên: a 1,..., aN, đã được sắp xếp dãy thành dãy A không giảm. Tìm vị trí của phần tử trong dãy có giá trị bằng K. c. Các bước tiến hành TG Hoạt động của Hoạt động của hs gv 15' 1. Chiếu nội dung - Theo dõi bài tập 3 trên bảng và suy nghĩ trả lời câu bài tập 3 hỏi 2. Gợi ý bằng các câu hỏi - Xác định bài toán? - Input: N nguyên dương và dãy A không giảm - Output: Vị trí số hạng có giá trị bằng K hoặc thông - Mô phỏng thuật báo không tìm thấy. toán. - Tìm thấy khi a[g]=k, vòng lặp while - do - Dựa vào thuật toán đã học ở lớp 10, khi nào thì tìm Program Nhi_phan;
  19. thấy? và dùng uses crt; vòng lặp nào? const Nmax=300; Type day=Array[1..Nmax] of integer; - Viết chương Var A: day; trình? N,i,k,d,c,g,vt:Integer; chua_thay:Boolean; Begin clrscr; write('Nhap vao so phan tu cua day N='); readln(N); write('Nhap vao gia tri cua K='); readln(K); writeln('Nhap cac phan tu cua day khong giam:'); for i:=1 to N do Begin write('Nhap phan tu thu i= ',i,' ,a[',i,']='); readln(A[i]); End; d:=1; c:=N;vt:=0; chua_thay:=true; while (dk then c:=g-1 else d:=g+1; if a[g]=k then Begin chua_thay:=false; vt:=g; end;
  20. end; If not chua_thay then writeln('So hang thu ',vt,'trong day co gtri bang k=',k) else writeln('Khong co so hang nao trong day bang ',k); readln; End. IV. Đánh giá cuối bài (5ph) - Kiến thức đã học: Định nghĩa, và khai báo biến kiểu mảng một chi ều. áp d ụng được vào giải quyết các bài toán đơn giản đã học ở lớp 10. - Bài tập về nhà: Bài tập trong sgk và sbt
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2