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

Post on 14-Jan-2016

83 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

1

TRẦN THỊ HỒNG NHUNG

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

3

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

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

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ố.

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

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?

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 ^^

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

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

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

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;

14

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

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

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;

16

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;

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.

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

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.

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Ò

22

23

Hết tiết 1

top related