mang_mot_chieu - WordPress.com

Download Report

Transcript mang_mot_chieu - WordPress.com

1

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

2

3

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 4

Kiểu dữ liệu mảng một chiều sẽ giúp ta giải quyết vấn đề trên Kiểu mảng một chiều là kiểu dữ liệu có cấu trúc 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 5

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

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ử: [Chỉ số] = Giá trị tại chỉ số 6

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

20.5

18 19.2

26 25

Trong

đó Tên mảng :

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

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

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

17 20

7

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?

8

Đây là cách khai báo trực tiếp ^^

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ối Giữa hai chỉ số là dấu ..

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

VD1: Var nhietdo : array [1..366] of integer; VD2: var MangKytu:array[Byte] of Char;

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

9

Còn đây là cách khai báo gián tiếp ^^

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

>;

Tại sao không dùng

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ối Giữa hai chỉ số là dấu ..

Kiểu phần tử: kiểu của các phần tử 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;

10

A

A[1] A[2] A[3] . . .

A[N-1] A[N]

1 2 3 N-1 N

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

11

< Tên biến mảng

> [

chỉ số

] = Giá trị tại chỉ số Ví dụ: A

20

1 2

8 19

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

26

4

-3

5

15

6

7 -10

7 8 12

For i:=1 to n do Begin End; Write(‘A[’,i, ‘]:’); Readln (A[i]);

13

For i:=1 to n do

Write(‘ ‘, A[i]);

14

For i:=1 to n do Begin If <điều kiện> then ; End; ;

15

16

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;

17

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)

Input: Dãy N số nguyên dương A

1 , A 2 ,…, A N (N<=200)

Output: Chỉ số và giá trị của phần tử lớn

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

18

• • • • • • •

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’) 19

1. Nhập N và dãy a 1 ,...,a n ; 2. max  a1 ; i  1; 3.

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

Nếu a[i] >max thì max  a[i], i  i+1 => quay lại bước 3.

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; max:=a[1] ; chiso:=1; For i:=2 to n do If a[i]>max then begin max:=a[i] ; chiso:=i; end; 20

  

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ều BTVN

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

trên trang web làm bài tập

 

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

22

23