Tải bản đầy đủ (.pdf) (20 trang)

Giáo án Lớp 1 - Tuần 1

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (251.33 KB, 20 trang )

<span class='text_page_counter'>(1)</span>Ngày soạn Tiết 19: BÀI TẬP I. Mục tiêu 1. Kiến thức Củng cố lại cho học sinh những kiến thức liên quan đến tổ chức rẽ nhánh và lặp: Cấu trúc lặp, sơ đồ thực hiện, sự thực hiện của máy khi gặp lệnh lặp 2. Kĩ năng Rèn luyện kĩ năng vận dụng và linh hoạt trong việc lựa chọn cấu trúc rẽ nhánh và cấu trúc lặp phù hợp để giải quyết bài toán đặt ra. 3. Thái độ Tự giác, tích cực, chủ động trong giải quyết các bài tập II.Chuẩn bị của thầy và trò 1.Chuẩn bị của giáo viên: Hệ thống bài tập,máy chiếu. 2.Chuẩn bị của học sinh: SGK, ôn lại các bài đã học III. Tiến trình bài học 1. Ổn định tổ chức Lớp Ngày dạy Sĩ số HS vắng Lớp Ngày dạy Sĩ số HS vắng. 2. Kiểm tra bài cũ Kiểm tra trong quá trình học bài mới 3. Bài mới Hoạt động của giáo viên Ví dụ 1: Lập trình tính giá trị của hàm số:. Hoạt động của học sinh. TL: x3 x5 x 2 n 1 n sin( x)  x    ....  (1) 3! 5! (2n  1)! Đưa kết quả ra màn hình. Hỏi: - Input: x, n - Input của bài toán là gì? - Output: hàm số sin(x) - Output của bài toán ? - Hãy nêu tư tưởng thực hiện bài toán - Tư tưởng: Đầu tiên i← 1, t←x, gt←1, lt←x trên ? Trong vòng lặp: + i←i+2 + gt←gt*i + lt←(-1)*lt*x*x + t←t+lt/gt Thực hiện cho đến khi nào (i= 2*n + 1) thì thôi. Lop11.com.

<span class='text_page_counter'>(2)</span> - Viết chương trình. - Hãy viết CT cho bài tóan trên ? Ví dụ 2: Lập chương trình nhập liên tiếp một dãy số cho đến khi tích của chúng > a (a là một số thực được nhập từ bàn phím). Tính: 1. Tổng của dãy số 2. Trung bình cộng của dãy số đó 3. Số lượng các số dương 4. Số lượng các số âm 5. Số bé nhất 6. Số lớn nhất Đưa kết quả ra màn hình. Hỏi: - Input của bài toán là gì? - Input: Dãy số a1, a2,.., an và 1 số a - Output của bài toán ? - Output: Tổng của dãy, TBC, Số lượng các số dương, số lượng các số âm, giá trị Max, Min. - Hãy nêu tư tưởng thực hiện bài toán - Tư tưởng: tong←0; TBC←0; d1←0; d2←0; tich←1 trên ? - Nhập phần tử thử 1, nếu a1< a thì thực hiện cv sau: + max ←a1, min← a1 + Thực hiện vòng lặp Repeat-Until hoặc While-Do:  Nhập dãy số cho đến khi nào a1*a2*..*an >a thì thôi. Thực hiện việc lặp sau:  Nhập ptử ai, kiểm tra xem ai>0 thì d2←d2+1, ngược lại d1←d1 + 1  Kiểm tra xem, nếu ai> max thì max ←ai  Nếu ai< min thì min←ai  tong←tong+ai - Ra khỏi vòng lặp - TBC←tong/(d1+d2) - Số lượng các số dương= d2 - Số lượng các số âm = d1 - giá trị lớn nhất là Max - Giá trị nhỏ nhất là Min. - Ycầu hs viết CT - Viết CT cho bài toán 4. Củng cố Xem lại cấu trúc của các câu lệnh lặp, và cấu trúc rẽ nhánh 5. Bài tập- dặn dò Về nhà làm các bài tập trong sách bài tập.. Ngày soạn Chương IV. Lop11.com.

<span class='text_page_counter'>(3)</span> KIỂU DỮ LIỆU CÓ CẤU TRÚC Tiết 20: 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 mảng một chiều trong ngôn ngữ Pascal để giải quyết một số bài toán cụ thể 3. Thái độ II.Chuẩn bị của thầy và trò 1.Chuẩn bị của giáo viên: Hệ thống bài tập,máy chiếu. 2.Chuẩn bị của học sinh: SGK, ôn lại các bài đã học III. Tiến trình bài học 1. Ổn định tổ chức Lớp Ngày dạy Sĩ số HS vắng Lớp Ngày dạy Sĩ số HS vắng. 2. Kiểm tra bài cũ Hãy nêu lưu đồ và một số chú ý khi sử dụng lệnh 3. Bài mới Hoạt động của giáo viên Hoạt động của học sinh 1. Kiểu mảng một chiều - Nêu khái niệm: Là một dãy hữu hạn các - Chú ý lắng nghe phần tử cùng kiểu. Mảng được đặt tên và mỗi phần tử của nó có một chỉ số. Để mô tả mảng một chiều 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ó - Để người lập trình có thể xây dựng và sử - Nghiên cứu SGK và trả lời dụng kiểu mảng một chiều, các ngôn ngữ LT - Cách 1: Khai báo trực tiếp biến mảng một chiều có các qui tắc, cách thức cho phép xác định: Var <tên biến mảng>: array [kiểu  Tên kiểu mảng một chiều chỉ số] of <kiểu phần tử>;  Số lượng phần tử  Kiểu dữ liệu của phần tử Trong đó:  Cách khai báo biến trong mảng - Kiểu chỉ số thường là một đoạn số nguyên liên tục có  Cách tham chiếu đến phần tử dạng n1..n2 với n1, n2 là các hằng hoặc biểu thức a, Khai báo nguyên xác định chỉ số đầu và chỉ số cuối (n1 ≤ n2). Lop11.com.

<span class='text_page_counter'>(4)</span> - GV: Yêu cầu hs nghiên cứu SGK và cho - Kiểu phần tử là kiểu của các phần tử mảng biết cách tạo kiểu dữ liệu mảng một chiều - Ví dụ: trong ngôn ngữ LT Pascal. Var a: array[1..100] of integer; - Tạo một kiểu dữ liệu mới có tên a, gồm 100 phần tử, có kiểu nguyên. - Quan sát bảng và chọn khai báo đúng: Arr1= array[1..200] of real; Arr3= array[-100..0]of boolean;. - GV: Tìm một ví dụ để minh họa. - GV: Gọi một học sinh khác, hỏi: Ý nghĩa của lệnh bạn vừa viết? - GV: Chiếu lên bảng một số khai báo kiểu - Nghiên cứu SGK và trả lời Cách 2: Khai báo gián tiếp biến mảng qua kiểu mảng mảng một chiều Type một chiều Arr1= array[1..200] of real; Type <tên kiểu mảng> = array Arr2= array[byte] of real; [kiểu chỉ số] of <kiểu phần tử>; Arr3= array[-100..0]of boolean; Var <tên biến mảng>:<tên kiểu Hỏi: Những khai báo nào đúng?. mảng>;. 2. Yêu cầu hs cho biết cách khai báo biến và - Ví dụ: Type a=array[1..200] of integer; Var a1, a2: a; một ví dụ khai báo một biến mảng ứng với - Khai báo biến mảng một chiều kiểu dữ liệu vừa tạo - a đã chiếm 200 byte trong bộ nhớ. - Gọi học sinh khác hỏi: Ý nghĩa của lệnh bạn vừa viết? - Dung lượng bộ nhớ của biến a đã chiếm là bao nhiêu? - Chú ý cho học sinh về cách đặt tên kiểu dữ liệu và tên biến, tránh nhầm lẫn 3. Giới thiệu cách tham chiếu đến từng phần tử của mảng một chiều. Yêu cầu học sinh lấy một ví dụ. - Theo dõi hướng dẫn của giáo viên và độc lập suy nghĩ để trả lời: A[1] là phần tử ở vị trí 1 của mảng A[i] là phần tử ở vị trí thứ i của mảng - Viết CT, giải thích từng câu lệnh và cách khai báo, tham chiếu đến từng phần tử trong mảng cho học sinh. Ví dụ: Nhập n phần tử thực. In ra những phần tử có giá trị sai khác với giá trị TBC là -1 4. Củng cố. Lop11.com.

<span class='text_page_counter'>(5)</span> Những nội dung đã học:  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 5. Bài tập- dặn dò Làm các bài tập trong sách bài tập. Ngày soạn Tiết 21 KIỂU MẢNG (Tiếp) 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 mảng một chiều trong ngôn ngữ Pascal để giải quyết một số bài toán cụ thể 3. Thái độ  Tự giác, tích cực, chủ động trong giải quyết các bài tập II.Chuẩn bị của thầy và trò 1.Chuẩn bị của giáo viên: Hệ thống bài tập,máy chiếu. 2.Chuẩn bị của học sinh: SGK, ôn lại các bài đã học III. Tiến trình bài học 1. Ổn định tổ chức Lớp Ngày dạy Sĩ số HS vắng Lớp Ngày dạy Sĩ số HS vắng. 2. Kiểm tra bài cũ - Nêu hai cách khai báo trực tiếp và gián tiếp biến mảng một chiều? 3. Bài mới Hoạt động của giáo viên Hoạt động của học sinh b. Một số ví dụ VD1:. Lop11.com.

<span class='text_page_counter'>(6)</span> Ví dụ 1: Viết CT nhập vào một mảng số nguyên. Tìm các giá trị max, min và vị trí của chúng trong dãy - Hỏi: Hãy nêu tư tưởng của thuật toán - Yêu cầu học sinh viết CT cho bài toán. - Tư tưởng: + B1: Nhập vào dãy số + B2: max ← a1, min ← a1 + B3: Duyệt từ đầu đến cuối dãy số, nếu ai> max thì max ← ai, nếu ai < min thì min ← ai. Kết thúc vòng lặp, ta tìm được chỉ số max thực sự và chỉ số min thực sự của dãy + B4: Lấy giá trị max và min vừa tìm được, đem so sánh với từng phần tử trong dãy số. Nếu phàn tử ai nào có giá trị = max hoặc min thì ta in chỉ số i tương ứng chính là vị trí của nó trong dãy số. - Viết CT Ví dụ 2: Viết CT tính tổng các số lẻ và trung VD2: - Tư tưởng: + Có TL← 0, TC ← 0 bình cộng các số chẵn thuộc [20, 200] - Hỏi: Hãy nêu tư tưởng của thuật toán + Cho i chạy từ 20 đến 200 + kiểm tra nếu i chia hết cho 2 thì TC ← TC + i; dem ← dem + 1 ngược lại thì TL ← TL + i; + thoát khỏi vòng lặp, ta in ra TL - Yêu cầu học sinh viết CT cho bài toán và TBC= TC/dem Ví dụ 3: Viết CT: - Viết CT - Nhập vào số nguyên n (1 <n ≤ 20)và n số thực b1, b2,.., bn. Mỗi số có không quá 2 số lẻ sau VD3: - Tư tưởng: dấu chấm thập phân. - Đưa ra màn hình: B1: Nhập vào số nguyên n và dãy số  Số nguyên k là số lượng số trong dãy có B2: K← 0; giá trị nhỏ hơn số bên trái cạnh nó B2: Duyệt từ đầu đến cuối dãy số (i:=2→n)  Nếu k > 0 thì đưa tiếp ra màn hình k Nếu a[i+1] < a[i] thì tăng biến k lên, và đưa ra dòng, mỗi dòng hai số: chỉ số i, và số thực a[i] Thoát khỏi vòng lặp, nếu k=0 thì thông báo  Số thứ tự i  Số thực bi < số cạnh nó bên trái, không có phần tử nào trong dãy có giá trị thỏa các số trên một dòng cách nhau mãn điều kiện trên một dấu cách 4. Củng cố Những nội dung đã học:  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 5. Bài tập- dặn dò Làm các bài tập trong sách bài tập Ngày soạn Tiết 22. Lop11.com.

<span class='text_page_counter'>(7)</span> KIỂU MẢNG (Tiếp) 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 mảng một chiều trong ngôn ngữ Pascal để giải quyết một số bài toán cụ thể 3. Thái độ  Tự giác, tích cực, chủ động trong giải quyết các bài tập II.Chuẩn bị của thầy và trò 1.Chuẩn bị của giáo viên: Hệ thống bài tập,máy chiếu. 2.Chuẩn bị của học sinh: SGK, ôn lại các bài đã học III. Tiến trình bài học 1. Ổn định tổ chức Lớp Ngày dạy Sĩ số HS vắng Lớp Ngày dạy Sĩ số HS vắng. 2. Kiểm tra bài cũ - Lồng vào trong quá trình học bài mới 3. Bài mới Hoạt động của giáo viên b. Một số ví dụ Ví dụ 1: Tìm phần tử lớn nhất của dãy số nguyên - Yêu cầu hs xác định Input và Output của bài toán - Thuật tóan: B1: Nhập N và dãy A1,…, AN B2: Max ← a1, i← 2 B3: Nếu i > N thì đưa ra giá trị Max rồi kết thúc B4: B4.1: Nếu ai > Max thì Max ← ai B4.2 : i← i + 1 rồi quay lại bước 3. Ví dụ 2: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi. Hoạt động của học sinh. Input: Số nguyên dương N (N≤ 250) và dãy A gồm N số nguyên dương A1,…, 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. Input: Số nguyên dương N (N≤ 250) và dãy A gồm N số nguyên dương A1,…, AN, mỗi số. Lop11.com.

<span class='text_page_counter'>(8)</span> b1. Nhập N, các số hạng a1, ..aN b2: M ← N b3: Nếu M < 2 thì đưa ra dãy A đã được sắp xếp rồi kết thúc b4: M ← M -1, i ← 0 b5: i ← i + 1 b6: Nếu i > M thì quay lại bước 3 b7: Nếu ai > ai+1 thì tráo đổi ai, ai+1 cho nhau. b8: Quay lại bước 5 Ví dụ 3: Tìm kiếm nhị phân B1: Nhập N, các số hạng, các số hạng a1, a2,…,aN và k B2: Dau←1, Cuoi←N  Dau  Cuoi  B3: Giữa ←   2 . đều không vượt quá 500. Output: Dãy số A đã được sắp xếp thành dãy không giảm. Input: Dãy A là dãy tăng gồm N (N ≤ 250) số nguyên dương A1,…, 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.. B4: Nếu agiữa = k thì thông báo chỉ số giữa, kết thúc B5: Nếu agiữa > k thì đặt Cuoi= Giua – 1 rồi chuyển đến bước 7 B6: Dau←Giua + 1 B7: Nếu Dau > Cuoi thì thông báo A không có số hạng nào có giá trị bằng k và kết thúc B8: Quay lại bước 3 Ví dụ 4: Viết CT tính TBC của 100 phần tử - Nghiên cứu thuật tóan và viết CT nguyên nhập từ bàn phím. 4. Củng cố Những nội dung đã học:  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 5.. Bài tập- dặn dò Làm các bài tập trong sách bài tập và bài tập sau: Viết CT nhập vào một mảng số nguyên. Tìm các giá trị max, min và vị trí của chúng trong dãy Ngày soạn Tiết 23 KIỂU MẢNG (Tiếp) I. Mục tiêu 1. Kiến thức  Biết được một kiểu dữ liệu mới là kiểu mảng hai chiều. Lop11.com.

<span class='text_page_counter'>(9)</span>  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à khai báo biến mảng hai chiều trong ngôn ngữ lập trình Pascal. Sử dụng đúng biến mảng để giải quyết một số bài toán cụ thể 3. Thái độ  Tự giác, tích cực, chủ động trong giải quyết các bài tập II.Chuẩn bị của thầy và trò 1.Chuẩn bị của giáo viên: Hệ thống bài tập,máy chiếu. 2.Chuẩn bị của học sinh: SGK, ôn lại các bài đã học III. Tiến trình bài học 1. Ổn định tổ chức Lớp Ngày dạy Sĩ số HS vắng Lớp Ngày dạy Sĩ số HS vắng. 2. Kiểm tra bài cũ - Nêu hai cách khai báo trực tiếp và gián tiếp biến mảng một chiều? - Làm bài tập VN đã cho: Nhập n phần tử thực. In ra những phần tử có giá trị sai khác với giá trị TBC là -1 3. Bài mới Hoạt động của giáo viên Hoạt động của học sinh 1. Hoạt động 1: Giới thiệu ví dụ trong sách - Chú ý theo dõi yêu cầu và dẫn dắt của giáo giáo khoa. Tính và đưa ra màn hình bảng viên cửu chương - Hỏi: Sử dụng kiến thức về mảng một chiều, hãy đưa ra cách sử dụng kiểu mảng đó để lưu - Sử dụng 9 mảng một chiều, mỗi mảng lưu một trữ bảng cửu chương. hàng của bảng - Với cách lưu trữ như vậy, ta phải khai báo - Khai báo 9 biến mảng một chiều bao nhiêu biến mảng? - Có những khó khăn gì? - Để khắc phục các khó khăn này, ta xem mỗi - Khai báo nhiều biến, viết chương trình nhập, mảng một chiều là một phần tử, ghép 9 mảng xuất dữ liệu dài - Nếu xem mỗi hàng của mảng hai chiều là một một chiều thành một mảng hai chiều - Yêu cầu học sinh nhận xét về mảng 2 chiều? phần tử thì ta có thể nói mảng hai chiều là mảng 2. Hoạt động 2: Tìm hiểu về kiểu mảng một chiều mà mỗi phần tử là mảng một chiều - Các yếu tố xác định mảng hai chiều?. Lop11.com.

<span class='text_page_counter'>(10)</span> Hỏi: Để mô tả kiểu mảng hai chiều, ta cần xác 2. Các yếu tố xây dựng mảng hai chiều? - Tên kiểu mảng định những yếu tố chính nào? a. Khai báo - Số phần tử trên một dòng, số phần tử trên một - Cách 1: Khai báo trực tiếp biến mảng hai cột chiều: - Kiểu dữ liệu chung của mọi phần tử Var <tên biến mảng> : array [kiểu chỉ số - Cách khai báo biến - Cách tham chiếu đến phần tử hàng, kiểu chỉ số cột] of <kiểu phần tử>; - Cách 2: Type <tên kiểu mảng> = array [kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần tử>; var <tên biến mảng>: <tên kiểu mảng>; - Ví dụ: Các khai báo sau đây là hợp lệ: var a: array [-100..200,1..15]of integer; type arr= array [0..3*(n+1), 0..n] of longint; - trong đó: n là hằng nguyên - Tham chiếu tớ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 phân cách bởi dấu phẩy và viết trong cặp ngoặc [ và ] b. Một số ví dụ Ví dụ 1 : Viết CT tính và đưa ra m.h bảng nhân Ví dụ 2 : Viết CT nhập vào từ b.p các phần tử - Yêu cầu hs viết CT của mảng 2 chiều B gồm 5 hàng, 7 cột với các - Yêu cầu hs viết CT ptử là các số nguyên và một số nguyên k. Sau đó đưa ra mh các ptử của mảng có giá trị < k. 4. Củng cố Những nội dung đã học:  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 5. Bài tập- dặn dò Làm các bài tập trong sách bài tập Ngày soạn Tiết 24. BÀI TẬP VÀ THỰC HÀNH 3 (tiết 1) I. Mục tiêu 1. Kiến thức  Củng cố lại các kiến thức cơ bản về kiểu dữ liệu mảng. 2. Kĩ năng  Nâng cao kĩ năng sử dụng một số lệnh kiểu dữ liệu mảng một chiều trong lập trình, cụ thể:  Khai báo kiểu dữ liệu mảng một chiều  Nhập/ xuất dữ liệu cho mảng  Duyệt qua tất cả các phần tử của mảng để xử lý từng phần tử. Lop11.com.

<span class='text_page_counter'>(11)</span>  Biết giải một số bài toán cơ bản thường gặp: Tính tổng các phần tử thỏa mãn điều kiện nào đó, Đếm số các phần tử thỏa mãn điều kiện nào đó, Tìm phần tử lớn nhất, nhỏ nhất. 3. Thái độ  Rèn luyện tác phong, tư duy lập trình: Tự giác, tích cực, chủ động, sáng tạo trong tìm kiếm kiến thức. II.Chuẩn bị của thầy và trò 1.Chuẩn bị của giáo viên: Hệ thống bài tập,máy chiếu. 2.Chuẩn bị của học sinh: SGK, ôn lại các bài đã học III. Tiến trình bài học 1. Ổn định tổ chức Lớp Ngày dạy Sĩ số HS vắng Lớp Ngày dạy Sĩ số HS vắng. 2. Kiểm tra bài cũ - Nêu hai cách khai báo trực tiếp và gián tiếp biến mảng một chiều? - Làm bài tập VN đã cho: Nhập n phần tử thực. In ra những phần tử có giá trị sai khác với giá trị TBC là -1 3. Bài mới 1. Hoạt động 1: Tìm hiểu cách sử dụng lệnh và kiểu dữ liệu mảng một chiều qua chương trình có sẵn Ví dụ 1: Tạo mảng A gồm n (n≤ 100) số nguyên, mỗi số có 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, Tìm hiểu, gõ vào máy và chạy thử CT sau: Program Sum; 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); {Tao ngau nhien mang gom n so nguyen} for i:=1 to n do a[i]:= random(300) – random(300); for i:=1 to n do write (a[i]: 5); {In ra mang vua tao} writeln; write(‘Nhap k=’);. Lop11.com.

<span class='text_page_counter'>(12)</span> 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. Hoạt động của giáo viên 1. Tìm hiểu chương trình ở bài 1.a (sgk-63) - Chiếu CT lên bảng - Hỏi: Khai báo uses crt; có ý nghĩa gì?. Hoạt động của học sinh - Quan sát, chú ý và trả lời. - Khai báo thư viện chương trình con crt để sử - Hỏi: myArray là tên kiểu dữ liệu hay tên dụng được thủ tục clrscrt; - Tên kiểu dữ liệu biến? - Hỏi: Những dòng lệnh nào dùng để tạo biến - type myArray=array[1..nmax] of Integer; mảng a? - Thực hiện chương trình để học sinh thấy kết var a: myArray; quả: + Hỏi: Lệnh gán a[i]:= random(300) – - Lệnh sinh ngẫu nhiên giá trị cho mảng a từ -299 random(300); có ý nghĩa gì? + Hỏi: Lệnh for i:=1 to n do write (a[i]: 5); đến 299 - In ra màn hình giá trị của từng phần tử trong có ý nghĩa gì? + Hỏi: Lệnh s:= s+ a[i]; được thực hiện bao mảng a, mỗi phần tử được dành cho 5 vị trí. - Có số lần đúng bằng số phần tử a[i] chia hết k nhiêu lần? - Thực hiện lại chương trình lần cuối để học - Quan sát giáo viên thực hiện chương trình và sinh thấy kết quả kết quả trên màn hình. b. Đưa các câu lệnh sau vào những vị trí - Quan sát và chú ý các câu hỏi của giáo viên cần thiết nhằm sửa đổi CT trong câu a, để có được CT đưa ra số các số dương và số các số âm trong mảng. - Chiếu lên màn hình các lệnh cần thêm vào - Quan sát các lệnh và suy nghĩ vị trí cần sửa chương trình ở câu a. trong chương trình câu a. - Hỏi: Ý nghĩa của biến posi và neg? - Dùng để lưu số lượng đếm được - Hỏi: Chức năng của lệnh: If a[i] > 0 then - Đếm số âm hoặc đếm số dương posi:= posi + 1 else if a[i] < 0 then neg:=neg +1; - Ycầu hs thêm vào vị trí cần thiết để chương - Chỉ ra vị trí cần thêm vào trong chương trình trình đếm được số - Yc hs gõ nội dung và lưu lại với tên - Lưu CT, thực hiện CT và thông báo kết quả. caub.pas. Thực hiện chương trình và báo cáo. Lop11.com.

<span class='text_page_counter'>(13)</span> kết quả 2. Rèn luyện kĩ năng lập trình Ví dụ 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ị 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ử có chỉ số nhỏ nhất a. Tìm hiểu CT tìm chỉ số và giá trị lớn nhất - Yêu cầu hs nghiên cứu bài 2.a (sgk-64) - Hỏi: Vai trò của biến j trong chương trình - Hỏi: Nếu muốn tìm phần tử nhỏ nhất, cần sửa ở chỗ nào? - Hỏi: Nếu muốn tìm phần tử lớn nhất với chỉ số lớn nhất ta sửa ở chỗ nào? b. Yêu cầu hs: Viết CT đưa ra các chỉ số của các phần tử có giá trị lớn nhất - Hỏi: Cần thêm lệnh nào nữa?. - Yêu cầu học sinh viết chương trình.. - Quan sát CT, suy nghĩ và trả lời. - Giữ lại chỉ số của phần tử có giá trị lớn nhất - Phép so sánh a[i] < a[j] - Chuyển thứ tự duyệt từ n-1 về 1. - Theo dõi yêu cầu, suy nghĩ các câu hỏi định hướng để viết chương trình - Lệnh để in ra các chỉ số có giá trị bằng giá trị lớn nhất tìm được - Sau khi tìm được giá trị lớn nhất - Viết chương trình hòan thiện.. - Hỏi: Vị trí thêm các lệnh đó? - Yêu cầu: Viết CT hòan thiện 4. Củng cố Những nội dung đã học:  Một số thuật toán: Tính tổng các phần tử thỏa mãn đk nào đó, đếm số ptử tm đk nào đó, tìm max, min. 5. Bài tập- dặn dò  Làm các bài tập trong sách bài tập  Xem trước nội dung bài thực hành số 4. Ngày soạn Tiết 25.BÀI TẬP VÀ THỰC HÀNH 3 (Tiết 2). I. Mục tiêu 1. Kiến thức  Củng cố lại các kiến thức cơ bản khi lập trình với kiểu dữ liệu mảng  Làm quen với thuật toán sắp xếp đơn giản 2. Kĩ năng  Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc, kĩ năng diễn đạt thuật toán bằng chương trình sử dụng dữ liệu kiểu mảng  Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bài toán sao cho chương trình chạy nhanh hơn. 3. Thái độ  Tự giác, tích cực, chủ động trong giải quyết các bài tập. Lop11.com.

<span class='text_page_counter'>(14)</span> II.Chuẩn bị của thầy và trò 1.Chuẩn bị của giáo viên: Hệ thống bài tập,máy chiếu. 2.Chuẩn bị của học sinh: SGK, ôn lại các bài đã học III. Tiến trình bài học 1. Ổn định tổ chức Lớp Ngày dạy Sĩ số HS vắng Lớp. Ngày dạy. Sĩ số. HS vắng. 2. Kiểm tra bài cũ - Nêu hai cách khai báo trực tiếp và gián tiếp biến mảng một chiều? - Làm bài tập VN đã cho: Nhập n phần tử thực. In ra những phần tử có giá trị sai khác với giá trị TBC là -1 3. Bài mới Hoạt động của giáo viên Hoạt động của học sinh 1. Hoạt động 1: Giới thiệu ví dụ trong sách - Chú ý theo dõi yêu cầu và dẫn dắt của giáo giáo khoa. Tính và đưa ra màn hình bảng viên cửu chương - Hỏi: Sử dụng kiến thức về mảng một chiều, hãy đưa ra cách sử dụng kiểu mảng đó để lưu - Sử dụng 9 mảng một chiều, mỗi mảng lưu một trữ bảng cửu chương. hàng của bảng - Với cách lưu trữ như vậy, ta phải khai báo - Khai báo 9 biến mảng một chiều bao nhiêu biến mảng? - Có những khó khăn gì? - Để khắc phục các khó khăn này, ta xem mỗi - Khai báo nhiều biến, viết chương trình nhập, mảng một chiều là một phần tử, ghép 9 mảng xuất dữ liệu dài - Nếu xem mỗi hàng của mảng hai chiều là một một chiều thành một mảng hai chiều - Yêu cầu học sinh nhận xét về mảng 2 chiều? phần tử thì ta có thể nói mảng hai chiều là mảng 2. Hoạt động 2: Tìm hiểu về kiểu mảng một chiều mà mỗi phần tử là mảng một chiều - Các yếu tố xác định mảng hai chiều? Hỏi: Để mô tả kiểu mảng hai chiều, ta cần xác 2. Các yếu tố xây dựng mảng hai chiều? định những yếu tố chính nào? - Tên kiểu mảng a. Khai báo - Số phần tử trên một dòng, số phần tử trên một - Cách 1: Khai báo trực tiếp biến mảng hai cột - Kiểu dữ liệu chung của mọi phần tử chiều: Var <tên biến mảng> : array [kiểu chỉ số - Cách khai báo biến - Cách tham chiếu đến phần tử hàng, kiểu chỉ số cột] of <kiểu phần tử>;. Lop11.com.

<span class='text_page_counter'>(15)</span> - Cách 2: Type <tên kiểu mảng> = array [kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần tử>; var <tên biến mảng>: <tên kiểu mảng>; - Ví dụ: Các khai báo sau đây là hợp lệ: var a: array [-100..200,1..15]of integer; type arr= array [0..3*(n+1), 0..n] of longint; - trong đó: n là hằng nguyên - Tham chiếu tớ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 phân cách bởi dấu phẩy và viết trong cặp ngoặc [ và ] b. Một số ví dụ Ví dụ 1 : Viết CT tính và đưa ra m.h bảng nhân Ví dụ 2 : Viết CT nhập vào từ b.p các phần tử - Yêu cầu hs viết CT của mảng 2 chiều B gồm 5 hàng, 7 cột với các - Yêu cầu hs viết CT ptử là các số nguyên và một số nguyên k. Sau đó đưa ra mh các ptử của mảng có giá trị < k. 4. Củng cố Những nội dung đã học:  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 5. Bài tập- dặn dò Làm các bài tập trong sách bài tập. Ngày soạn: Tiết : 26 BÀI TẬP I. MỤC TIÊU 1. Kiến thức - Củng cố lại các kiến thức cơ bản về kiểu dữ liệu mảng một chiều. 2. Kĩ năng - Biết giải một số bài toán cơ bản thường gặp. 3. Thái độ - Góp phần rèn luyện tác phong, tư duy lập trình: Tự giác, tich cực, chủ động và sáng tạo trong tìm kiếm kiến thức. II. CHUẨN BỊ CỦA THẦY VÀ TRÒ 1. Chuẩn bị của giáo viên - Giáo án, SGK, phiếu học tập. 2. Chuẩn bị của học sinh. Lop11.com.

<span class='text_page_counter'>(16)</span> - Sách giáo khoa. III. TIẾN TRÌNH BÀI HỌC 1. Ổn định tổ chức Lớp Ngày dạy. Sĩ số. Hs vắng. 2. Kiểm tra bài cũ Thực hiện trong quá trình dạy học 3. Bài mới. Hoạt động 1: Củng cố lại các kiến thức đã học về mảng một chiều. HOẠT ĐỘNG CỦA GIÁO VIÊN. HOẠT ĐỘNG CỦA HỌC SINH. ? Thế nào là mảng một chiều. Là dãy các phần tử có cùng kiểu dữ liệu.. ? Để mô tả mảng một chiều ta phải xác định được các Ta cần xác định được các yếu tố sau: yếu tố nào + Tên kiểu mảng một chiều + Kiểu chỉ số + Kiểu dữ liệu + Cách khai báo + Cách tham chiếu. ? Có mấy cách để khai báo mảng một chiều? Đó là Có hai cách để khai báo mảng một chiều: những cách nào + C1: 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ử>; + C2: 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>; ? Lấy ví dụ minh họa. VD: Var a: array[1..100] of byte; Var b: array[a..z] of char; Type c=array[1..100] of byte; Var a:c; ……………... Hoạt động 2: Chữa một số bài tập trong SGK. HOẠT ĐỘNG CỦA GIÁO VÊN Bài tập 5 trang 79: Gợi ý hướng dẫn học sinh viết chương trình. gọi học sinh lên bảng chữa bài. Nhận xét và sửa chữa nếu có. HOẠT ĐỘNG CỦA HỌC SINH Dựa vào gợi ý của giáo viên suy nghĩ viết chương trình Nhận xét bài làm của bạn và bổ sung nếu cần. 4. Củng cố Nhấn mạnh cho học sinh cách khai báo mảng và cách dùng vòng lặp for-do hợp lí. Lop11.com.

<span class='text_page_counter'>(17)</span> 5.Hướng dẫn về nhà: Đọc và chuẩn bị bài tập thực hành 4. Lop11.com.

<span class='text_page_counter'>(18)</span> Ngày giảng: Tiết PPCT: 27 BÀI THỰC HÀNH SỐ 4(tiết 1) I. MỤC TIÊU 1. Kiến thức - Củng cố lại các kiến thức cơ bản khi lập trình với kiểu dữ liệu mảng. - Làm quen với thuật toán sắp xếp đơn giản. 2. Kĩ năng - Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc, kĩ năng diễn đạt thuật toán bằng chương trình sử dụng dữ liệu kiểu mảng. - Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bài toán sao cho chương trình chạy nhanh hơn. 3. Thái độ - Tự giác, chủ động trong khi thực hành. II. CHUẨN BỊ CỦA THẦY VÀ TRÒ 1. Chuẩn bị của giáo viên -SGK, hệ thống câu hỏi và bài tập 2. Chuẩn bị của học sinh - Sách giáo khoa, bài tập ở nhà. III. Tiến trình bài học 1. Ổn định tổ chức Lớp Ngày dạy. Sĩ số. Hs vắng. 2.Kiểm tra bài cũ: Thực hiện trong quá trình dạy học 3.Bài mới 1. Hoạt động 1: Tìm hiểu chương trình diễn đạt của thuật toán sắp xếp. HOẠT ĐỘNG CỦA GIÁO VIÊN. HOẠT ĐỘNG CỦA HỌC SINH. 1. Gợi ý cho học sinh thuật toán sắp xếp tăng dần. 1. Chú ý theo dõi những dẫn dắt của giáo - Lấy một ví dụ thực tiễn: Người mù sắp xếp một dãy viên để trả lời câu hỏi các viên bi theo kích thước không giảm. - Yêu cầu: Vạch ra các bước để sắp xếp các phần tử của một mảng không giảm. - Lần lượt lấy từng phần tử từ trái qua phải. - Cứ mỗi phần tử ta đem so sánh lần lượt với các phần tử đứng bên phải của nó. 2. Tìm hiểu chương trình ví dụ, sách giáo khoa, trang - Nếu nhỏ hơn thì đổi chỗ. 65. 2. Quan sát chương trình, suy nghĩ câu hỏi - Chiếu chương trình ví dụ lên bảng. và trả lời. - Hỏi: Vai trò của biến i, j trong chương trình? mỗi. Lop11.com.

<span class='text_page_counter'>(19)</span> vòng lặp For trong đoạn chương trình sắp xếp có ý nghĩa gì? - Hỏi: Ba lệnh tg:=a[i]; a[i]:=a[i+1]; a[i+1]:=tg; có ý nghĩa gì? - Thực hiện chương trình, nhập dữ liệu để học sinh thấy kết quả chương trình. - Hỏi: Chương trình làm công việc gì?. - Biến i, j dùng làm chỉ số. - Mỗi vòng lặp For ứng với mỗi phép duyệt lần lượt. - Dùng để đổi giá trị của hai phần tử a[i] với a[i+1]. - Quan sát giáo viên thực hiện chương trình. - Chương trình sắp xếp dãy số thao thứ tự 3. Sửa chương trình để giải quyết bài toán ở câu b. không giảm. - Đặt yêu cầu mới: Khai báo thêm biến nguyên Dem và 3. Quan sát yêu cầu mới, chú ý định bổ sung vào chương trình đoạn lệnh cần thiết để biến hướng giải quyết của giáo viên. Dem tính số lần thực hiện tráo đổi trong thuật toán. In kết quả tìm được ra màn hình. - Hỏi: Đoạn chương trình nào dùng để thực hiện tráo đổi giá trị? - Yêu cầu hoc sinh viết lệnh để đếm số lần tráo đổi. - Hỏi: Lệnh này được viết ở vị trí nào trong chương tg:=a[i]; a[i]:=a[i+1]; a[i+1]:=tg; trình? - Yêu cầu học sinh soạn chương trình vào máy. - Dem := Dem+1; - Yêu cầu học sinh nhập dữ liệu vào của giáo viên và - Ngay sau đoạn lệnh tráo đổi. thông báo kết quả. - Soạn chương trình vào máy, thực hiện chương trình và thông báo kết quả. - Đánh giá kết quả của học sinh. 2. Hoạt động 2: Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bài toán sao cho chương trình chạy nhanh hơn. HOẠT ĐỘNG CỦA GIÁO VIÊN. HOẠT ĐỘNG CỦA HỌC SINH. 1. Xác định bài toán. - Yêu cầu: Xác định dữ liệu vào, dữ liệu ra?. 1. Quan sát đề bài và tả lời câu hỏi. - Vào: Mảng A gồm n phần tử. - Ra: Mảng B gồm n phần tử. - Gợi ý để học sinh đề xuất thuật toán thô. - Tại vị trí i ta tính tổng giá trị các phần tử từ 1 đến i. 2. Giới thiệu chương trình chưa cải tiến.. 2. Quan sát chương trình trên bảng. - Hỏi: Trong chương trình phải thực hiện bao nhiêu - Phải thực hiện n(n+1)/2 phép cộng. phép cộng? - Hỏi: Có cách nào để cải tiến? - Để tính bước thứ i, ta sử dụng kết quả đã tính ở bước thứ i-1. B[i]:=B[i-1]+A[i]; - Lệnh này được thay lệnh nào trong chương trình? - Thay đoạn lệnh For j:=1 to i do B[i]:=B[i]+A[j]; Viết ở vị trí nào? 3. Yêu cầu: Viết chương trình hoàn thiện. 4.Củng cố - Thuật toán sắp xếp đơn giản. - Một bài toán có thể có nhiều cách viết thành một chương trình. Cần chọn cách có số phép tính ít nhất. 5.Hướng dẫn về nhà - Xem lại tất cả các kiến thức đã học, bao gồm: lệnh cơ bản, lệnh điều khiển, kiểu dữ liệu cơ bản, kiểu dữ liệu có cấu trúc.. Lop11.com.

<span class='text_page_counter'>(20)</span> Lop11.com.

<span class='text_page_counter'>(21)</span>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×