1. Trang chủ
  2. » Trung học cơ sở - phổ thông

Chuong Mang mot chieu

4 8 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

Khái niệm Mảng một chiều là tập hữu hạn các phần tử có cùng kiểu dữ liệu, được lưu trữ trên máy tính bằng dãy liên tiếp các ô nhớ.. +Các phần tử có một tên chung là tên mảng +Các phần tử[r]

(1)Ngày soạn: 07/ 10/ 2011 Ngày dạy: 15/ 11/ 2011 Tiết: 18 BÀI: MẢNG MỘT CHIỀU (Tiết 1) I MỤC TIÊU Kiến thức: - Biết khái niệm mảng chiều và cách lưu trữ mảng chiều máy tính - Biết cú pháp khai báo mảng chiều - Biết cú pháp truy xuất đến phần tử mảng chiều - Lợi ích việc sử dụng mảng chiều lập trình Kỹ năng: - Sử dụng mảng chiều để giải các bài toán - Biết giải thuật và lập trình các thao tác trên mảng chiều Thái độ: - Hứng thú học tập, kích thích tính sáng tạo và tư logic lập tình II PHƯƠNG PHÁP: Đàm thoại, nêu vấn đề và giải vấn đề III CHUẨN BỊ Giáo viên: Bài giảng, máy chiếu, giáo án Sinh viên: Tài liệu, giáo trình, vở, bút IV HOẠT ĐỘNG DẠY HỌC: Ổn định lớp – Kiểm tra sĩ số (1’) Giảng bài TG Hoạt động GV Hoạt động 1: Xét ví dụ 7’ - Lấy ví dụ: - Yêu cầu SV xác định: + Input + Output + Viết giải thuật - Nhận xét giải thuật và viết chương trình Hoạt động SV - theo dõi bài -Suy nghĩ và trả lời: + Input: t1, t2, t3, t4 ,t5, t6, t7 + Output: t o , songay + Giải thuật: B1: Nhập vào nhiệt độ ngày ( t1, t2, …, t7) B2: tính nhiệt độ trung bình: tb B3: songay = B4: t1 > tb thì tăng songay lên B5: t2 > tb thì tăng songay lên B6: t3 > tb thì tăng songay lên B7: t4 > tb thì tăng songay lên B8: t5 > tb thì tăng songay lên B9: t6 > tb thì tăng songay lên B10:nếu t7 > tb thì tăng songay lên B11: thông báo t o : tb B12: thông báo số ngày có nhiệt độ cao t o : songay - Suy nghĩ và trả lời: Nội dung Ví dụ: Viết chương trình nhập vào nhiệt độ (trung bình) ngày tuần Tính và đưa màn hình nhiệt độ trung bình tuần và số ngày tuần có nhiệt độ cao nhiệt độ trung bình tuần? Giải: Program Nhiet_Do; Uses CRT; Var t1, t2, t3, t4, t5, t6, t7, tb : real; songay : byte; BEGIN Clrscr; write(‘ Nhap vao nhiet : ’); readln(t1,t2,t3,t4,t5,t6,t7); tb : = (t1+t2+t3+t4+t5+t6+t7)/7; songay : = ; if (t1>tb) then songay := songay + 1; if (t2>tb) then songay := songay + 1; (2) - Yêu cầu SV nhận xét chương trình + Câu lệnh CT +Câu lệnh if lặp lại lần - Suy nghĩ và trả lời - Đưa giả thuyết: vận dụng CT trên để giải bài toán tính t o năm và đếm số ngày có t0 cao t o thì gặp khó khăn gì? Hoạt động 2: Mảng chiều: 25’ - Dẫn dắt vấn đề: - Theo dõi - Nêu vấn đề: - Giải vấn đề + Số lượng phần tử + tập hữu hạn mảng là hữu hạn hay vô hạn? + Kiểu liệu các + Cùng chung kiểu liệu phần tử mảng có đặc điểm nào? + Tên các phần tử có + Các phần tử có tên đặc điểm gì? chung + Các phần tử phân biệt dựa vào đâu? + Các phần tử phân biệt dựa vào số (vị trí mảng) - Giới thiệu cách khai báo => Khái niệm mảng chiều biến mảng - theo dõi và ghi bài - Lấy ví dụ minh họa - Yều cầu SV lấy ví dụ - Yêu cầu SV viết định nghĩa tên kiểu mảng - Quan sát - Lên bảng cho ví dụ - Viết định nghĩa tên kiểu mảng if (t3>tb) then songay := songay + 1; if (t4>tb) then songay := songay + 1; if (t5>tb) then songay := songay + 1; if (t6>tb) then songay := songay + 1; if (t7>tb) then songay : = songay + 1; Writeln(‘Nhiet trung binh tuan =‘,tb:5:2); Writeln(‘so co nhiet cao hon nhiet tb=‘,songay:5); Readln; END Mảng chiều: a Khái niệm Mảng chiều là tập hữu hạn các phần tử có cùng kiểu liệu, lưu trữ trên máy tính dãy liên tiếp các ô nhớ +Các phần tử có tên chung là tên mảng +Các phần tử phân biệt thông qua số (vị trí phần tử mảng) Ví dụ: Dãy số nguyên; Danh sách tên lớp CT10; Bảng điểm SV; … b Khai báo biến mảng chiều: Cách 1: Khai báo trực tiếp: VAR <DS ten_bien_mang> : array[kiểu số] of <kiểu phần tử>; Ví dụ: Var t : array[1 100] of real; Cách 2: Khai báo gián tiếp: TYPE <Ten_kieu_mang> = array[kiểu số] of <kiểu phần tử>; VAR <DS ten_bien_mang> : <Ten_kieu_mang>; Trong đó: + DS ten_bien_mang: dãy tên biến mảng ngăn cách dấu phẩy ‘,’ + Kiểu số: Là kiểu liệu đếm như: kiểu nguyên (byte, shortint), ký tự, đoạn Thông thường để đơn giản, dễ hiểu việc truy xuất đến các phần tử mảng ta nên sử dụng kiểu đoạn (N1 N2) (N1<=N2) để khai báo kiểu số Dùng để xác định số phần tử mảng, và số phần tử mảng + Kiểu phần tử: Kiểu liệu các phần tử mảng Chú ý: (3) - Lấy ví dụ: - Yêu cầu SV xác định phạm vị số phần tử - Xác định cách truy xuất đúng: Kytu: array[0 255] of char; a Kytu[‘a’] b Kytu c Kytu[256] d Kytu[0] - Yêu cầu SV lên bảng viết lệnh nhập/xuất giá trị cho phần tử: a[i] - Nhận xét và kết luận - Trả lời - Khi khai báo thành công máy tính cấp phát khối các ô nhớ liên tục cho tất các phần tử mảng - Chỉ số phần tử đánh số theo miền giá trị kiểu số Ví dụ: Var A : array[1 100] of real; Kytu: array[byte] of char; Songuyen : array[-100 100] of shortint; c Truy xuất đến phần tử mảng Cú pháp: <Ten_Bien_Mang>[Chi_So_Phan_Tu]; Trong đó: Chi_So_Phan_Tu: là số phần tử mảng, có giá trị phạm vi miền giá trị kiểu số Chú ý: + Nếu Chi_So_Phan_Tu: nằm ngoài miền giá trị kiểu số thì báo lỗi - Lên bảng viết câu lệnh nhập: read(a[i]) readln(a[i]) ; - Lên bảng viết câu lệnh xuất: write(a[i]) writeln(a[i]) ; Các phần tử mảng sử dụng biến - Quan sát và ghi bài - Trả lời Hoạt động 3: Bài tập vận dụng 8’ - Nêu giả thuyết bài toán - Suy nghĩ và viết chương trình - Yều cầu SV phân tích đề bài và viết chương trình vào nháp - Hướng dẫn SV làm bài - Quan sát tập Bài tập: Viết chương trình nhập vào nhiệt độ n ngày Tính và đưa màn hình nhiệt độ trung bình n ngày đó và số ngày có nhiệt độ cao nhiệt độ trung bình? Giải Program Nhiet_do_N_Ngay; USES CRT; Var T : array[1 366] of real; TB, Tong:real; i, n, songay: integer; BEGIN clrscr; write('Nhap vao so n='); readln(n); Tong :=0; songay:=0; for i:=1 to n begin write('nhap vao nhiet thu ', i); readln(T[i]); Tong:=Tong + T[i]; end; TB := Tong/n; for i:= to n if T[i] > TB then INC(songay); (4) writeln('Nhiet trung binh ', n, ' la: ',TB:5:2); write('So co nhiet cao hon nhiet trung binh la:', songay:5); readln; END V CỦNG CỐ VÀ HƯỚNG DẪN VỀ NHÀ:(4’) Củng cố: Câu 1: Câu 2: Câu lệnh nào sau đây là đúng Var Kytu : array[‘0’ ’9’] of char; A.Var mang : array[1…100] of char; Câu lệnh nào sau đây là đúng B Var mang : array[1-100] of byte; A Kytu [0]:=‘a’; C Var 1mang : array[1 100] of char; B Kytu [‘1’]:=a; D Type mang= array[-100 100] of real; C Kytu [‘1’]:=‘1’; D Kytu [‘a’]:=‘a’; Hướng dẫn nhà: Bài tập: 1.Viết chương trình nhập vào dãy n số nguyên In màn hình số chia hết cho và 2.Viết chương trình nhập vào dãy n số thực a In màn hình vị trí đầu tiên x xuất mảng (x nhập từ bàn phím) b Nhập vào số nguyên k, số thực y chèn y vào vị trí thứ k mảng c Sắp xếp mảng theo thứ tự không giảm VI RÚT KINH NGHIỆM: GIẢNG VIÊN GIẢNG DẠY Nguyễn Dư Nghĩa (5)

Ngày đăng: 11/06/2021, 09:08

w