1. Chuẩn bị của GV: Phòng máy vi tính, máy chiếu hoặc bảng phụ để minh họa 2. Chuẩn bị của HS: SGK
III. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: Ôn lại kiến thức để chuẩn bị làm bài tập và thực hành
Hoạt động GV Hoạt động HS Ghi bảng
Cách khai báo mảng trực tiếp ? gián tiếp ?
- Cách 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 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>
2. Hoạt động 2: Đọc đề và tìm hiểu yêu cầu bài tập 2 SGK
Hoạt động GV Hoạt động HS Ghi bảng
Yêu cầu HS đọc đề BT2 SGK Yêu cầu của bài toán là gì?
Đọc đề và tìm hiểu yêu cầu của đề
- Tìm phần tử có giá trị lớn nhất trong mảng
Trả lời câu hỏi - In ra màn hình chỉ số nhỏ nhất của phần từ có giá trị lớn nhất
3. Hoạt động 3: Đọc chương trình và chạy chương trình trên giấy để hiểu thuật toán của chương trình trình
Hoạt động GV Hoạt động HS Ghi bảng
- Việc tạo mảng dữ liệu được thể hiện ở phần nào trong chương trình ?
- Tìm giá trị lớn nhất và đưa ra màn hình chỉ số nhỏ nhất của phần từ có giá trị lớn nhất được thể hiện ở phần nào ?
- Vai trò của biến j trong chương trình nhằm mục đích gì ?
- Thực hiện chương trình với giá trị của mảng nhập vào cụ thể như sau:
4 2 5 7 6 7
- Hãy dựa vào phần tìm giá trị lớn nhất và chạy chương trình trên giấy nháp và cho kết quả ? - Gọi HS lên bảng chạy lại chương trình
Thể hiện ở câu lệnh for
thứ nhất của chương trình.
- Từ j:=1 đến cuối chương trình
- Giữ lại chỉ số của phần tử có giá trị lớn nhất. - Thực hiện yêu cầu của GV.
Treo bảng phụ chương trình của bài toán.
B1: j=1, i=2, A[i]=2, A[j]=4 A[i]< A[j] B2: j=1, i=3, A[i] = 5, A[j] =4
A[i]>A[j] , j=3 B3: j=3, i=4, A[i]=7, A[j]=5
A[i]>A[j] j=4 B4: j=4, i=5, A[i]=6, A[j]=7
A[i]<A[j] B5: j=4, i=6, A[i]=7, A[j]=5
kết quả chỉ số: 4 A[4] = 7
4. Hoạt động 4: Chỉnh sửa chương trình để đưa ra chỉ số của các phần tử có cùng giá trị lớn nhất
Hoạt động GV Hoạt động HS Ghi bảng
- Có cần giữ lại đoạn chương trình tìm giá trị lớn nhất không ? - Để đưa ra màn hình tất các chỉ số của các phần tử đạt giá trị lớn nhất có cần duyệt lại các phân tử của mảng không ?
- Cần thêm lệnh nào có thê in được tất cả các chỉ số của các phần tử có giá trị lớn nhất ? - Đưa câu lệnh đó vào vị trí nào của chương trình ?
- Có - Có
- Trả lời câu hỏi. - Đưa vào cuối chương trình
For i:=1 to n do
If A[i] = A[j] then write (i); 5. Hoạt động 5: HS chạy chương trình trên máy tính và cho kết quả: