bài 11: kiỂu mẢng mỘt chiỀu

23
TRẦN THỊ HỒNG NHUNG 1

Upload: ronat

Post on 14-Jan-2016

83 views

Category:

Documents


0 download

DESCRIPTION

Bài 11: KIỂU MẢNG MỘT CHIỀU. Trần Thị Hồng Nhung. Bài toán đặt vấn đề. Xác định Input, Output Viết chương trình bài toán trên ?. Khi N lớn thì chương trình có những hạn chế nào ?. 1. KHÁI NIỆM MẢNG MỘT CHIỀU. 21.4. Trong đó. Tên mảng :. Số phần tử của mảng :. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Bài  11: KIỂU MẢNG MỘT CHIỀU

1

TRẦN THỊ HỒNG NHUNG

Page 2: Bài  11: KIỂU MẢNG MỘT CHIỀU

2

Bài toán đặt vấn đềNhập vào nhiệt độ của mỗi ngày trong tuần. Tính và xuất ra màn hình nhiệt độ trung bình của tuần và số ngày có nhiệt độ cao hơn nhiệt độ trung bình của tuần.

1. Xác định Input, Output 2. Viết chương trình bài toán trên?

Input: t1, t2, t3, t4, t5, t6, t7

Output: tb, dem

Page 3: Bài  11: KIỂU MẢNG MỘT CHIỀU

3

Page 4: Bài  11: KIỂU MẢNG MỘT CHIỀU

4

Xét bài toán nhập vào nhiệt độ của mỗi ngày trong năm, tính và đưa ra nhiệt độ trung bình của năm.

Khi N lớn thì chương trình có những hạn chế nào?

Phải khai báo quá nhiều biến

(366)

Chương trình tính toán phải

viết khá dài

Page 5: Bài  11: KIỂU MẢNG MỘT CHIỀU

5

Pascal cho phép tạo ra các kiểu dữ liệu có cấu trúc trên cơ sở các kiểu dữ liệu chuẩn theo một số kĩ thuật tạo kiểu do ngôn ngữ lập trình quy định. Hay KDL có cấu trúc là KDL do người dùng tự định nghĩa dựa trên các KDL chuẩn và cú pháp có sẵn

Kiểu mảng một chiều là kiểu dữ liệu có cấu trúc

Kiểu dữ liệu mảng một chiều sẽ giúp ta giải quyết vấn đề trên

Page 6: Bài  11: KIỂU MẢNG MỘT CHIỀU

6

1. KHÁI NIỆM MẢNG MỘT CHIỀU

Một số quy tắc xác định kiểu mảng một chiều:

Tên kiểu mảng một chiều

Số lượng phần tử

Kiểu dữ liệu của phần tử

Cách khai báo biến mảng

Cách tham chiếu đến phần tử: <Tên biến mảng> [Chỉ số] = Giá trị tại chỉ số

Mảng một chiều là dãy hữu hạn các 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ố.

Page 7: Bài  11: KIỂU MẢNG MỘT CHIỀU

7

20.5 18 19.2 26 25 21.4 17 20

Trong đó

Khi tham chiếu đến phần tử thứ i - ta viết A[i]

Tên mảng :

Số phần tử của mảng:

Ví dụ: một dãy NhietDo gồm 8 số

Kiểu dữ liệu của các phần tử:

21.4

Page 8: Bài  11: KIỂU MẢNG MỘT CHIỀU

8

2. KHAI BÁO KIỂU MẢNG MỘT CHIỀU

Có mấy cách khai báo mảng một chiều? Đó là những cách nào?

Có 2 cách khai báo: trực tiếp và gián tiếp

Có gì khác nhau giữa 2 cách?? Trông chúng

như thế nào?

Page 9: Bài  11: KIỂU MẢNG MỘT CHIỀU

9

Var <tên biến mảng>: array[<chỉ số đầu>..<chỉ số cuối>] of <kiểu phần tử>;

Chỉ số đầu, chỉ số cuối: là các hằng hoặc biểu thức nguyên

Chỉ số đầu ≤ chỉ số cuốiGiữa hai chỉ số là dấu ..

VD1: Var nhietdo : array[1..366] of integer;

VD2: var MangKytu:array[Byte] of Char;

VD3: Var b : array[1..100] of integer;

Kiểu phần tử: kiểu của các phần tử mảng

2. KHAI BÁO KIỂU MẢNG MỘT CHIỀUĐây là cách khai báo trực tiếp ^^

Page 10: Bài  11: KIỂU MẢNG MỘT CHIỀU

10

TYPE <tên kiểu mảng> = array[<chỉ số đầu>..<chỉ số cuối>] of <kiểu phần tử>;

Var <tên biến mảng> : <tên kiểu mảng>;

VD1: TYPE nhietdo = array[1..366] of integer;

Var A:nhietdo;VD2: Type mang1c = array[1..20] of real;Var a, b: mang1c;

2. KHAI BÁO KIỂU MẢNG MỘT CHIỀUCòn đây là cách khai

báo gián tiếp ^^

Chỉ số đầu, chỉ số cuối: là các hằng hoặc biểu thức nguyênChỉ số đầu ≤ chỉ số cuốiGiữa hai chỉ số là dấu ..Kiểu phần tử: kiểu của các phần tử mảng

Tại sao không dùng khai báo trực tiếp

Page 11: Bài  11: KIỂU MẢNG MỘT CHIỀU

11

A[1] A[2] A[3] . . . A[N-1] A[N]

1 2 3 N-1 N

A

KẾT QUẢ

Mảng có tên và số phần tử Các số trong mảng có cùng kiểu dữ liệu

Page 12: Bài  11: KIỂU MẢNG MỘT CHIỀU

12

<Tên biến mảng> [chỉ số] = Giá trị tại chỉ số

A[2] = 8A[4] = 26A[7] = 7

Ví dụ:

3. 1 THAM CHIẾU ĐẾN PHẦN TỬ CỦA MẢNG

20 8 19 26 -3 15 7 -10A 1 2 3 4 5 6 7 8

Page 13: Bài  11: KIỂU MẢNG MỘT CHIỀU

13

3.2 NHẬP PHẦN TỬ CỦA MẢNG

For i:=1 to n doBegin

Write(‘A[’,i, ‘]:’);Readln (A[i]);

End;

Page 14: Bài  11: KIỂU MẢNG MỘT CHIỀU

14

3.3 XUẤT PHẦN TỬ CỦA MẢNG

For i:=1 to n doWrite(‘ ‘, A[i]);

Page 15: Bài  11: KIỂU MẢNG MỘT CHIỀU

15

3.4 XỬ LÍ CÁC PHẦN TỬ

For i:=1 to n doBegin

If <điều kiện> then<câu lệnh 1>;<câu lệnh 2>;<câu lệnh…>

End;

Page 16: Bài  11: KIỂU MẢNG MỘT CHIỀU

16

Page 17: Bài  11: KIỂU MẢNG MỘT CHIỀU

17

Khai báo mảng t (lưu trữ nhiệt độ từng ngày trong năm) bằng cách gián tiếp

Type t=array [1..366] of real;Var A: t;

Page 18: Bài  11: KIỂU MẢNG MỘT CHIỀU

18

Viết chương trình tìm giá trị lớn nhất của một mảng chứa các số nguyên gồm N phần tử. (N<=200)

4. BÀI TẬP NHỎ

• Input: • Dãy N số nguyên dương A1, A2,…, AN

(N<=200)• Output: • Chỉ số và giá trị của phần tử lớn

nhất trong dãy số đã cho.

Page 19: Bài  11: KIỂU MẢNG MỘT CHIỀU

19

• Nhóm 2 học sinh ngồi cùng bàn • Thời gian thảo luận (5 phút)• Đọc kĩ yêu cầu bài toán; xác định input, output; các

bước giải bài toán• Viết chương trình hoàn chỉnh • Nhóm làm xong trước nhất lên bảng giải; các nhóm

còn lại nộp lại bài cho GV, GV coi bài (3’)• Bài đúng, chính xác (cộng điểm bài kiểm tra 15’ tới) • GV nhận xét, sửa bài, cộng điểm các nhóm (2’)

QUY TẮC LÀM VIỆC NHÓM

Page 20: Bài  11: KIỂU MẢNG MỘT CHIỀU

20

1. Nhập N và dãy a1,...,an; Write(‘ Nhap vao so luong phan tu:’);

Readln(N);

For i:=1 to N do begin write(‘ Phan tu thu ’ ,i, ’ = ’); readln(a[i]) end;

2. max a1 ; i 1; max:=a[1]; chiso:=1;

For i:=2 to n do

If a[i]>max then begin max:=a[i]; chiso:=i;end;

3. Nếu i >N đưa ra MAX và chỉ số i => kết thúc;

4. Nếu a[i] >max thì maxa[i],

i i+1 => quay lại bước 3.

Page 21: Bài  11: KIỂU MẢNG MỘT CHIỀU

21

Khái niệm Hai cách khai báo, tham chiếu phần tử Thao tác nhập, xuất, xử lí trên mảng một chiềuBTVN Học lí thuyết, làm bài tập trong PBT http://

itmenteachers.blogspot.com/2011/12/trac-nghiem-tong-hop-mang-1-chieu.html làm bài tập trên trang web

Viết lại chương trình tính nhiệt độ năm, tìm max Xem bài mới

5. CỦNG CỐ - DẶN DÒ

Page 22: Bài  11: KIỂU MẢNG MỘT CHIỀU

22

Page 23: Bài  11: KIỂU MẢNG MỘT CHIỀU

23

Hết tiết 1