Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
3,34 MB
Nội dung
Tuần: 20 Ngày soạn: 24/12/2011 Tiết:21 Ngày dạy: 27/12/2011 Chương IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC 11. KIỂU MẢNG(T1) I.MỤC TIÊU 1. Kiến Thức - Khái niệm kiểu mảng - Mảng một chiều là gì? 2. Kỹ năng - Nhận biết được các thành phần trong khai báo kiểu mảng một chiều. II. PHƯƠNG PHÁP II. PHƯƠNG PHÁP • Thuyết trình, vấn đáp, hoạt động nhóm • Gv: Giáo án, SGK. Hs: SGK, vở ghi III. TIẾN TRÌNH LÊN LỚP. 1. Ổn Định Lớp : ổn định trật tự, lớp trưởng báo cáo sĩ số 2. Kiểm Tra Bài Cũ 3. Nội Dung Ở chương III chúng ta đã được nghiên cứu về cấu trúc rẽ nhánh, cấu trúc lặp. Mặt khác chúng ta cũng đã làm quen với các kiểu dữ liệu chuẩn như số nguyên, số thực, kiểu logic… Tuy nhiên với những kiểu dữ liệu này thì làm thế nào để lưu trữ và xử lý một dãy số? lưu trữ và xử lý họ và tên một người?? các kiểu dữ liệu chuẩn không đủ để biểu diễn dữ liệu của các bài toán trên. 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 để xử lý những vấn đề trên. Với bài toán xử lý một dãy số ta dùng kiểu dữ liệu chuẩn. Vậy mảng là gì? Sử dụng kiểu mảng như thế nào? Bài học hôm nay chúng ta sẽ tìm hiểu “Kiểu Mảng”. Hoạt Động Của Thầy Và Trò Nội Dung Gv: Thuyết trình Trong lập trình thường có 2 loại 1. Kiểu Mảng Một Chiều Mảng một chiều là dãy hữu hạn các phần tử cùng 1 mảng thông dụng: Mảng một chiều và mảng hai chiều. Bài học hôm nay chúng ta sẽ tìm hiểu mảng một chiều Hs: trật tự Hs: đọc SGK GV: Mảng một chiều là gì? Hs: Nêu khái niệm mảng một chiều Gv: Thuyết trình về mảng một chiều Hs: Trật tự ghi bài đầy đủ GV: yêu cầu học sinh đọc ví dụ trong SGK trang 53 Hs: Trật tự tập trung làm việc theo nhóm Gv: Gợi ý cho Hs dùng 7 biến thực để lưu trữ nhiệt độ của các ngày trong tuần (t1, t2, t3, t4, t5, t6, t7), một biến tính giá trị trung bình TB và một biến để đếm số ngày có nhiệt độ cao hơn TB là dem Hs: Suy nghĩ cách xây dựng thuật toán và viết chương trình để giải kiểu. Mảng được đặt tên và mỗi phần tử có một chỉ số. Để mô tả mảng một chiều cần xác định kiểu các phần tử và đánh số các phần tử của nó. - Để lập trình có thể xây dựng và sử dụng kiểu mảng một chiều, các ngôn ngữ lập trình có quy tắc, cách thứ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 các phần tử + Cách khai báo biến mảng + Cách tham chiếu đến phần tử VD: Xét bài toán 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ình của cả tuần và đếm số ngày có nhiệt độ cao hơn trung bình. Nhiệt độ trung bình của các ngày trong tuần được tính theo công thức: Tb:= (t1+t2+t3+t4+t5+t6+t7)/7; Chương trình giải bài toán viết bằng Pascal như sau: Program nhietdotuan; Var t1, t2, t3, t4, t5, t6, t7, Tb: real; Dem: integer; Begin Writeln(‘Nhap vao nhiet do cua 7 ngay’); 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; 2 bài toán. 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; If t6> Tb then Dem:= Dem+1; If t7> Tb then Dem:= Dem+1; Writeln(‘Nhiet do trung binh tuan:’, Tb:4:2); Writeln(‘So ngay co nhiet do cao hon TB’, Dem); Readln End. 4. Củng Cố: Nêu khái niệm mảng một chiều 5. Dặn Dò: - Xem trước phần khai báo mảng một chiều. - Học bài cũ - Với chương trình tính nhiệt độ trung bình trên khi cần giải bài toán trên với N ngày thì ta làm như thế nào? Có theo cách trên không hay có một phương pháp gọn hơn. 3 Tuần: 20 Ngày soạn: 24/12/2011 Tiết:22 Ngày dạy: 3/1/2012 Chương IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC 11. KIỂU MẢNG(T2) I.MỤC TIÊU 1. Kiến Thức - Cách khai báo mảng một chiều - Biết cách xác định biến, cách tham chiếu đến các phần tử mảng 2. Kỹ năng - Biết cách khai báo mảng một chiều, cách tạo mảng một chiều. II. PHƯƠNG PHÁP Thuyết trình, vấn đáp, hoạt động nhóm Gv: Giáo án, SGK. Hs: SGK, vở ghi III. TIẾN TRÌNH LÊN LỚP. 1Ổn Định Lớp : ổn định trật tự, lớp trưởng báo cáo sĩ số 2 Kiểm Tra Bài Cũ - Khái niệm mảng một chiều. Nêu các cách thức cho phép xác định.? 3 Nội Dung Hoạt Động Của Giáo Viên Và Học Sinh Nội Dung Gv: Bài học hôm trước chúng ta đã tìm hiểu chương trình tính nhiệt độ trung bình các ngày trong tuần. Hôm nay chúng ta sẽ tìm hiểu làm như thế nào để giải bài toán trên với N ngày. Ta sẽ sử dụng kiểu dữ liệu mảng một chiều để mô tả. Gv: Giải thích về khai báo mảng. Khai báo biến mảng một chiều gồm Max số thực. Khai báo biến mảng Nhietdo qua kiểu mảng. - Khai báo biến mảng một chiều(thông qua phần khai báo biến mảng) như sau: Type Kmang1 = array [1 Max] of real; Var Nhietdo: Kmang1; * Chương trình giải bài tập như sau: Program Nhietdo_Nngay; Const Max = 366; 4 Hs: chú ý lắng nghe. Nghĩ cách viết chương trình để giải bài toán. Gv: Nêu câu hỏi điều kiện N phải như thế nào? Hs: N<= 366 Gv: giải thích: Biến i lần lượt nhận các giá trị chỉ số của mảng. Tương ứng mỗi giá trị của i, một phần tử của mảng được xác định bởi Nhietdo[i]. có thể được thực hiện các thao tác nhập xuất hay xử lý trên phần tử này. Như vậy, khi sử dụng một biến mảng, với câu lệnh for- do chương trình được viết ngắn gọn dễ hiểu hơn. Hs: chú ý lắng nghe và viết chương trình theo nhóm. Gv: thuyết trình về khai báo mảng Hs: :Lắng nghe ghi bài đầy đủ. - Hỏi: Dựa vào ví dụ trang 55 SGK, cho biết: Type Kmang1 = array [1 Max] of real; Var Nhietdo: Kmang1; Dem, I, N : byte; Tong, Trung_binh: real; Begin Write(‘Nhap so ngay: ’); Readln(N); Tong:= 0; For i:= 1 to N do Begin Write(‘Nhap nhiet do ngay thu’, i, ‘:’); Readln(Nhietdo[i]); Tong:= Tong+ Nhietdo[i]; End; Dem:= 0; Trung_binh:= Tong/N; For i:=1 to N do If Nhietdo[i] > Trung_binh then Dem:= Dem+1; Writeln(‘Nhiet do trung binh’, N, ‘ngay:’, Trung_binh:8:3); Writeln(‘So ngay co nhiet do cao hon trung binh:’, Dem); Readdln End. a. Khai báo (Có hai cách) Cách 1: Khai báo trực tiếp: Var <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 Type <tên kiểu mảng>= array[kiểu chỉ số] of <kiểu phần tử>; Var <tên biến mảng>:<tên kiểu mảng>; 5 + Tên kiểu mảng? + Số phần tử của mảng? + Mỗi phần tử của mảng thuộc kiểu gì? Trả lời: .ArrayReal .301 phần tử .Real 1. Cách tham chiếu đến từng phần tử của mảng: TL: a[2] p/tử ở vị trí thứ 2 của mảng a a[i] p/tử ở vị trí i của mảng a. Trong đó: +Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1 n2(n1<n2) (n1,n2 là các hằng hoặc biểu thức) + Kiểu phần tử là kiểu dl của các phần tử của mảng. Ví dụ 1: Var Nhietdo: array [1 Max] Of real; Ví dụ 2: Khai báo mảng tối đa 100 số nguyên (chỉ số đầu tiên là 1) Ta có các cách sau: Cách 1: Var a: Array[1 100] Of Integer; Cách 2: Const Nmax = 100; Var a: Array[1 Nmax] Of integer; * Tham chiếu tới phần tử cuả mảng Tên_biến[chỉ số] 4. Cũng Cố Cách khai báo mảng một chiều. - Câu hỏi trắc nghiệm 1. Trong các khai báo biến mảng một chiều sau đây. Những kiểu khai báo nào là không hợp lệ a. Type m= array [-100 100] of real; b. Type m = array [1.5 10.5] of real; c. Type m= array [0 100] of integer; d. Type m= array[‘a’ ’z’] of boolean; 6. Dặn Dò - Xem trước các ví dụ SGK - Học bài cũ T.T Duyệt Ngày 26/12/2012 Nguyễn Hữu Quyền 6 Tuần: 21 Ngày soạn: 29/12/2011 Tiết:23 Ngày dạy:9/1/2012 BÀI THỰC HÀNH SỐ 3 – T1 I. MỤC TIÊU: - Kiến thức: Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng. - Kỹ năng: Khai báo được kiểu dữ liệu mảng, nhập dữ liệu mảng, đưa ra màn hình chỉ số và giá trị của các phần tử mảng. + Duyệt qua phần tử của mảng để xử lý từng phần tử. - Về tư duy và Thái độ: rèn luyện tư duy lập trình, tác phong của người lập trình. II. PHƯƠNG TIỆN DẠY HỌC: - GV: Phòng máy tính, máy chiếu Projector. - HS: SGK, bài tập. III. HOẠT ĐỘNG DẠY VÀ HỌC 1) Ổn định tổ chức: Kiểm tra sĩ số lớp. 2) Kiểm tra bài cũ: Khi nào ta nên khai báo biến mảng gián tiếp – thông qua định nghĩa kiểu? 3) Giảng bài mới: HOẠT ĐỘNG CỦA GV - HS TRÌNH CHIẾU GV: Cài đặt và trình chiếu CT mẫu bài 1a. HS: Xem bài mẫu được trình chiếu. ?1: MyArray là tên kiểu dữ liệu hay tên biến? HS: Tên kiểu dữ liệu. GV: Nhận xét. ?2: Vai trò của nmax và n khác nhau như thế nào? n là số lượng phần tử của mảng, nmax là là số lượng pt lớn nhất có thể có của mảng. ?3: Dòng lệnh nào dùng để tạo biến mảng A? VAR A: MyArray 7 GV: Nhận xét. GV: Cho chạy thử CT bài 1a ?4: Lệnh gán A[i]:= random(300) – random(300) có ý nghĩa gì? GV: Nhận xét. Tạo ngẫu nhiên giá trị kiểu số nguyên cho mảng A trong khoảng -300 đến 300 ?5: Lệnh For i:=1 to n do Write(A[i]:5); có ý nghĩa gì? GV: Nhận xét. In ra các phần tử của mảng A mỗi phần tử cách nhau 5 kí tự trống ?6: Lệnh For i:=1 to n do If A[i] mod k = 0 then s:=s + A[i]; thực hiện nhiệm vụ gì? GV: Nhận xét. Tính tổng các phần tử chia hết cho k ?7: Lệnh s:=s+A[i]; được thực hiện bao nhiêu lần? GV: Nhận xét. Không xác định được. GV: Cho HS chạy thử chương trình để thấy kết quả. GV: Nhắc nhở HS lưu chương trình đã chạy tốt ở câu a. GV: Trình chiếu các câu lệnh của câu 1b. 8 ?8: Đưa biến Posi và Neg vào vị trí nào trong câu 1a? GV: Nhận xét. ?9: Nhiệm vụ của câu lệnh: If A[i]:>0 then Posi:=Posi+1 else If A[i]<0 then Neg:=Neg+1; ? GV: Nhận xét. GV: Yêu cầu HS đưa câu lệnh vào chương trình ở câu 1a. GV: Yêu cầu HS chạy chương trình và báo cáo kết quả. HS: Lưu và chạy chương trình, báo cáo KQ. 4) Củng cố: 9 Yêu cầu HS sửa lại chương trình trên để có thể nhập một mảng có 10 phần tử từ bàn phím. 5) Dặn dò: - HS về nhà làm bài tập 4.15 trong sách bài tập. - Chuẩn bị chương trình bài 2 bài thực hành 3 chương IV trong SGK. IV. RÚT KINH NGHIỆM, BỔ SUNG: 10 [...]... bài tập về nhà: Viết chơng trình nhập 1 mảng một chiều A gồm 20 phần tử và nhập 1 số x Đếm số lợng số trong A có giá trị bằng x T.T Duyt Ngy2/1/2012 Nguyn Hu Quyn 13 Tun: 22 Ngy son: 7/1/2 011 Tit:25 Ngy dy: 16/1/2012 11 KIU MNG(T3) I.MC TIấU 1 Kin Thc - Cỏch khai bỏo mng mt chiu - Bit cỏch xỏc nh bin, cỏch tham chiu n cỏc phn t mng 2 K nng - Bit cỏch khai bỏo mng mt chiu, cỏch to mng mt chiu II PHNG PHP... GV:To mng l lm nhng gỡ? HS: Nhp sl p/t ca mng v nhp giỏ tr cho cỏc p/t trong mng - a mng ra mn hỡnh 4 Cng c To mng, khai bỏo mng 5 Dn dũ Lm bi tp 5 SGK trang 79 15 Tun: 22 Ngy son: 12/1/2 011 Tit:26 Ngy dy: 17/1/2012 11 KIU MNG(T3) I.MC TIấU 1 Kin Thc - Cỏch khai bỏo mng mt chiu - Bit cỏch xỏc nh bin, cỏch tham chiu n cỏc phn t mng 2 K nng - Bit cỏch khai bỏo mng mt chiu, cỏch to mng mt chiu II PHNG PHP...Tun: 21 Ngy son: 2/1/2 011 Tit:24 Ngy dy: 10/1/2012 BI THC HNH S 3 T2 I MC TIấU: - V Kin thc: Cng c cho HS nhng hiu bit v kiu d liu mng - V K nng: Khai bỏo c kiu d liu mng, nhp d liu mng, a ra mn hỡnh ch s v giỏ tr ca cỏc phn... bin chớnh readln(A[i]); cn s dng l gỡ? end; TL: mng A write(Nhap k = ); readln(k); bin n: N, k, S S := 0; {khoi tao S ban dau} - Y/cu hs khỏc lờn vit phn khai {tinh tong} bỏo cỏc bin ú? For i:=1 To n Do 11 HS Lờn bng trỡnh by Var S, N, k: integer; A: array[1 100] of integer; 5 Tip tc y/cu hs lờn vit phn chtrỡnh to giỏ tr cho cỏc pt ca mng A (lu ý nhp s lng pt ca mng trc) Gi hs khỏc nhn xột * Chnh sa on... tp: Nhp vo 1 dóy s nguyờn gm N phn t (N . Tuần: 20 Ngày soạn: 24/12/2 011 Tiết:21 Ngày dạy: 27/12/2 011 Chương IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC 11. KIỂU MẢNG(T1) I.MỤC TIÊU 1. Kiến Thức - Khái niệm kiểu mảng. hay có một phương pháp gọn hơn. 3 Tuần: 20 Ngày soạn: 24/12/2 011 Tiết:22 Ngày dạy: 3/1/2012 Chương IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC 11. KIỂU MẢNG(T2) I.MỤC TIÊU 1. Kiến Thức - Cách khai báo mảng. giá trị bằng x T.T Duyt Ngy2/1/2012 Nguyn Hu Quyn 13 Tuần: 22 Ngày soạn: 7/1/2 011 Tiết:25 Ngày dạy: 16/1/2012 11. KIỂU MẢNG(T3) I.MỤC TIÊU 1. Kiến Thức - Cách khai báo mảng một chiều - Biết