intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

BÀI THỰC HÀNH SỐ 3

Chia sẻ: Paradise4 Paradise4 | Ngày: | Loại File: PDF | Số trang:8

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

Củng cố cho học sinh những hiểu biết về kiểu dữ liệu mảng ; - Tổ chức những hoạt động trong phòng máy để học sinh có được các kĩ năng cơ bản làm việc với kiểu mảng trong lập trình, cụ thể là: .Khai báo dữ liệu mảng; .Nhập dữ liệu cho mảng, đưa ra màn hình chỉ số và giá trị các phần tử của mảng; .Duyệt qua tất cả các phần tử của mảng để xử lý từng phần tử.

Chủ đề:
Lưu

Nội dung Text: BÀI THỰC HÀNH SỐ 3

  1. Giáo án số 2: BÀI THỰC HÀNH SỐ 3 Giáo viên hướng dẫn: Thầy Trần DoãnVinh Sinh viên thực hiện: Trần Hoài Nam A. Mục đích yêu cầu. I. Mục đích - Củng cố cho học sinh những hiểu biết về kiểu dữ liệu mảng ; - Tổ chức những hoạt động trong phòng máy để học sinh có được các kĩ năng cơ bản làm việc với kiểu mảng trong lập trình, cụ thể là: .Khai báo dữ liệu mảng; .Nhập dữ liệu cho mảng, đưa ra màn hình chỉ số và giá trị các phần tử của mảng; .Duyệt qua tất cả các phần tử của mảng để xử lý từng phầ n tử. II. Yêu cầu - Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập trình. - Giới thiệu hàm random(N) cho học sinh thấy có thể dùng lệnh để máy lấy ngẫu nhiên một số nguyên trong khoảng từ 0 đến N-1, giớ i hạn N do người lập trình đưa ra. B. Phương pháp, phương tiện: I. Phương pháp: - Phòng máy vi tính, máy chiếu để minh họa. - Vấn đáp, thuyết minh, chạy thử chương trình. II. Phương tiện: - Sách giáo khoa lớp 11. - Sách tham khảo (nếu có). C. Tiến trình lên lớp và nội dung: I. Ổn định lớp(1’): - Yêu cầu lớp trưởng báo cáo sĩ số. - Ổn định trật tự lớp. II. Kiểm tra bài cũ và gợi động cơ(7’): 1.Nêu định nghĩa mảng một chiều, mảng hai chiều? 2.Em hãy trình bày các cách khai báo biến mảng một chiều, mảng hai chiều? T8 ầ n H o à i N a m – K 5 6 A - C N T T - Đ H S P H N r Page 1
  2. 3. Nếu em muốn làm việc với một dãy các số ngẫu nhiên với máy tính thì em phải làm như thế nào? (Dùng thủ tục gì để sinh ra số ngẫu nhiên) 4. Đưa ra khai báo biến mảng với mảng nhiều chiều? III. Nội dung(30’): Như vậy qua bài cũ (một số bạn vừa trả lời) ta biết được việc khai báo biến mảng trong TP như thế nào rồi đúng không? Hôm nay chúng ta sẽ tìm hiểu sâu hơn nữa về mảng một chiều trong TP và một số thuật toán cơ bản khi làm việc với dữ liệu kiểu mảng thông qua các bài toán sau: Bài 1 (15’): Tạo mảng A gồ m n (n
  3. b) Hãy đưa các câu lệnh sau đây vào những vị trí cần thiết nhằm sửa đổ i chương trình trong câu a) để có được chương trình đưa ra số các số dương và số các số âm trong mảng. duong, am: interger; duong: = 0; am: = 0; if A[i] >0 then duong := duong +1 else if A[i]
  4.  Ta có màn hình Pascal khi đánh chương trình vào như sau:  Thực hiện chương trình ta thu được kết quả như sau: (VD: với n=6 và k=3 ta được kết quả như hình sau ) Câu hỏi 7: Quan sát ta thấy biến duong, am có ý nghĩa gì? Và duong: = 0; am: = 0; để làm gì? Học sinh trả lời: … Gợi ý : Hai biến duong, am dùng để lưu số lượng đếm được của các số dương và âm. Biến duong:=0, am:=0 dùng để khởi tạo hai biến duong, am ban đầu là rỗng. Câu hỏi 8: if A[i] >0 then duong := duong +1 else if A[i]
  5. Hỏi kết quả của học sinh và đưa ra kết quả của mình để so sánh chỉ ra chỗ sai của học sinh và nhận xét bài của các em .  Kết quả sau khi sửa câu a ta được câu b như sau: Màn hình dữ liệu là: Màn hình kết quả nhập là: (ứng với: n=7 ta thu được kết quả như hình dưới) Bài 2: (15’) 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) Hãy tìm hiểu chương trình sau: program Bài_2; uses crt; const nmax =100; type mang = array[1..nmax] of integer; var A:mang; n,i,j,max : integer; T8 ầ n H o à i N a m – K 5 6 A - C N T T - Đ H S P H N r Page 5
  6. Begin write(‘Nhap so luong phan tu cua day so ’, ‘n= ‘); readln(n); for i:=1 to n do begin write(‘Phan tu thu ’,i ,’= ’); readln(A[i]); end; j:=1; for i:=2 to n do if A[i] >A[j] then j:=i; write (‘Chi so : ’, j,’Giá trị : ’, A[j]:4); readln; end. b) Chỉnh sửa chương trình trên để đưa ra chỉ số của các phần tử có cùng giá trị lớn nhất. Các em nên chú ý ở câu a bài 2 này chúng ta có được một thuật toán tìm phần tử có giá trị lớn nhất.(Rất quan trọng)  Giáo viên hỏi cho học sinh trả lời. Gợi ý đáp án nếu học sinh không trả lời được. Câu hỏi 1: Vai trò của biến j trong chương trình trên? Học sinh trả lời: … Gợi ý: Giữ lại chỉ số của phần tử có giá trị lớn nhất. Câu hỏi 2: Nếu muốn tìm phần tử nhỏ nhất với chỉ số lớn nhất ta sửa ở chỗ nào? Học sinh trả lời:… Gợi ý: Sửa lại phép so sánh A[i]
  7.  Ta có màn hình Pascal khi đánh chương trình vào như sau:  Kết quả chạy thử (n=6 và có 2 giá trị lớn nhất là 9 với chỉ số nhỏ nhất là 1)  Đặt thêm yêu cầu mới: Đưa ra các chỉ số lớn nhất của các phần tử có giá trị lớn nhất. Câu hỏi 4: Cần giữ lại đoạn chương trình tìm giá trị lớn nhất không? Học sinh trả lời: … Gợi ý: Có Câu hỏi 5: Cần thêm lệnh nào nữa? Vị trí thêm lệnh đó? Học sinh trả lời: … Gợi ý: 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  Đưa ra kết quả Thử với n=9 và các giá trị lớn nhất là 32 có 3 giá trị lớn nhất với các chỉ số là 5,6,8 . Khi đó kết quả in ra là chỉ số lớn nhất là 8 và giá ttrị là 32 T8 ầ n H o à i N a m – K 5 6 A - C N T T - Đ H S P H N r Page 7
  8. VI. Củng cố bài (2’): -Như vậy hôm nay chúng ta đã thực hành và viết chương trình. -Khai báo mảng một chiều. -Các thuật toán cơ bản khi làm việc với kiểu dữ liệu mảng: .Tính tổng các phần tử thỏa mãn điều kiện nào đó. .Tìm phần tử lớn nhất (max), nhỏ nhất. .Đếm số các phần tử thỏa mãn điều nào đó (Tìm chỉ số âm, dương…). V. Bài tập về nhà(5’): Câu 1: Các em sửa lại chương trình ở câu a bài 1 thành nhập từng phần tử của mảng vào từ bàn phím.(có nghĩa là không dùng lệnh randomize; ) Câu 2: Nhập từ bàn phím mảng A gồm n phần tử. Tính tổng các phần tử chẵn, phần tử lẻ trong mảng? Tìm phần tử min trong mảng? Tính tổng các phần tử trong mảng là bội của 5? Tính tổng các phần tử trong mảng chia hết cho 2? Câu 3: Viết chương trình nhập một mảng một chiều A[1..20] và nhập một số x. Đếm số lượng số trong A có giá trị bằng x. VI. Nhận xét và rút kinh nghiệm giờ giảng: Nhận xét đánh giá của giáo viên hướng dẫn. T8 ầ n H o à i N a m – K 5 6 A - C N T T - Đ H S P H N r Page 8
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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