1. Trang chủ
  2. » Giáo án - Bài giảng

Slide tin học 11 bài kiểu mảng một chiều _H.L Hương

33 932 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kiểu Mảng Một Chiều
Tác giả Hà Lan Phương
Trường học Trường PT DTNT THPT Huyện Điện Biên
Chuyên ngành Tin học
Thể loại Bài giảng
Định dạng
Số trang 33
Dung lượng 2,14 MB

Nội dung

Slide tin học 11 bài kiểu mảng một chiều _H.L Hương tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn...

Trang 1

SỞ GIÁO DỤC VÀ ĐÀO TẠO TỈNH ĐIỆN BIÊN

Cuộc thi Thiết kế bài giảng điện tử E – learning

-Bài giảng KIỂU MẢNG MỘT CHIỀU Chương trình Tin học 11

Giáo Viên: Hà Lan Phương

Email: phuonghl.thptdtntdb@gmail.com

TRƯỜNG PT DTNT THPT HUYỆN ĐIỆN BIÊN

Trang 2

Bài 12: KIỂU MẢNG

Trang 3

Nhập vào nhiệt độ (trung bình) của mỗi ngày trong tuần Tính và đưa ra màn hình nhiệt độ trung bình của tuần và số lượng ngày có nhiệt độ TB cao hơn nhiệt trung bình trong tuần?

* Dữ liệu nhập vào (INPUT): t1,t2,t3,t4,t5,t6,t7

* Dữ cần tính và in ra (OUTPUT): tb, dem

Hãy xác định Input, Output và viết chương trình giải bài toán trên ?

Bài toán đặt vấn đề:

Trang 5

Quan sát chương trình, hãy cho biết nếu muốn tính nhiệt

độ trung bình của N ngày trong năm (VD:

N=365) thì sẽ gặp khó

khăn gì ?

Khai báo quá lớn (t1,t2,t3, ,t365) và chương trình quá dài (với 365 lệnh

IF) !!!!!

 Để khắc phục khó khăn

đó ta sử dụng kiểu dữ liệu mảng một chiều.

Bài toán đặt vấn đề:

Trang 6

Mảng một chiều là một 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ố

1 Khái niệm

Để mô tả mảng một chiều, các ngôn ngữ lập trình cho phép xác định:

-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 (truy xuất) đến các phần tử

Trang 7

Khai báo mảng 1 chiều

Trang 8

2 Khai báo mảng một chiều trong PASCAL

* Cách 1: Khai báo gián tiếp

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

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

Ví dụ: TYPE nhietdo = array[1 365] of integer;

Var A: nhietdo;

Trong đó :  Kiểu chỉ số thường là đoạn số nguyên liên tục có dạng n1 n2

với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và chỉ số cuối (n1 ≤ n2);

 Kiểu phần tử là các kiểu của các phần tử mảng.

* Cách 2: Khai báo trực tiếp

Var <Ds biến mảng> : array[< kiểu chỉ số >] of <kiểuphần tử>;

Var A,B : array[1 100] of real;

Ví dụ: Var nhietdo : array[1 365] of integer;

Trang 9

2 Khai báo mảng một chiều trong PASCAL

Ví dụ: Khai báo kiểu mảng sau đây là hợp lệ:

Type

arrReal = array [-50 50] of real;

arrBool = array [-n+1 n+1] of boolean; (n là hằng số)

arrInt = array [0 100] of integer;

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

Trang 10

Trong khai báo kiểu mảng ta biết được:

Correct - Click anywhere to

continue

Correct - Click anywhere to

continue Incorrect - Click anywhere to continue

Incorrect - Click anywhere to

continue

You answered this correctly!

Your answer:

The correct answer is:

You did not answer this question completely

You did not answer this question completely

You must answer the question

before continuing

You must answer the question

before continuing ĐÁP ÁN LÀM LẠI

A) tên kiểu mảng.

B) số lượng phần tử tối đa trong mảng.

C) kiểu dữ liệu của chỉ số(của các phần tử

Trang 11

Trong khai báo biến mảng một chiều sau:

Var A:array[1 100] of longint;

(Nối 2 ý ở hai cột trên để được một câu đúng)

Correct - Click anywhere to

continue Incorrect - Click anywhere to continue

Incorrect - Click anywhere to

continue

You answered this correctly!

Your answer:

The correct answer is:

You did not answer this question completely

You did not answer this question completely

You must answer the question

before continuing

You must answer the question

before continuing ĐÁP ÁNĐÁP ÁN LÀM LẠILÀM LẠI

Trang 12

write(‘nhiet do ngay thu’ ,i, ’ : ’); readln(nhietdo[i]);

19 21

18 20

17

Ví dụ: Nhập nhiệt độ n ngày

Các thao tác xử lí trong mảng một chiều

Trang 13

Các thao tác xử lí trong mảng một chiều

Trang 14

* Đếm các phần tử trong mảng thoả mãn điều kiện cho trước

dem :=0;

For i :=1 to n do

IF nhietdo[i]>trungbinh then dem:=dem+1;

c Các thao tác xử lí khác

Ví dụ: Đếm số ngày có nhiệt độ cao

hơn nhiệt độ TB của tuần

TB = 18.7

Dem=0

7 6

5 4

3 2

1 i

19 17

19 21

18 20

Trang 15

Khai báo mảng 1 chiều

Nhập mảng 1 chiều Tính tổng

Đếm số phần tử thoả mãn điều kiện

Trang 16

17 20 18 21 19 17 19

Chương trình chạy và cho kết quả như sau:

Các thao tác xử lí trong mảng một chiều

Bạn có thể chạy thử chương trình trên với bộ input khác

Trang 17

Bài 1 Tìm phần tử lớn nhất của dãy số nguyên (với n 250 và A[i] 500).

Hãy xác định Input, Output và nêu thuật toán tìm

Max?

* INPUT: Nhập số nguyên dương n và dãy n số nguyên dương a1,a2, ,an

* OUTPUT: Chỉ số và giá trị của phần tử lớn nhất trong dãy

4 Một số ví dụ

Trang 18

MAX

Trang 19

1 Nhập n và dãy a1, ,an;

2 Max a1 ; i 2; csmax 1

3 Nếu i>N đưa ra MAX và

csmax rồi Kết thúc;

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

5 i i+1; quay lại bước 3.

Trang 20

17 20 18 21 19 17 19

Chương trình chạy và cho kết quả như sau:

Thực hiện CT

Bạn có thể chạy thử chương trình trên với bộ input khác

Mời bạn nhấn vào nút Thực hiện CT

Trang 21

Hãy cho biết xác định bài toán trên đúng hay sai?

Input: nhập số nguyên dương n và dãy A.

Output: dãy số A đã được sắp xếp thành dãy không giảm.

Correct - Click anywhere to

continue

Correct - Click anywhere to

continue Incorrect - Click anywhere to continue

Incorrect - Click anywhere to

continue

You answered this correctly!

Your answer:

The correct answer is:

You did not answer this question completely

You did not answer this question completely

You must answer the question

before continuing

You must answer the question

before continuing ĐÁP ÁNĐÁP ÁN LÀM LẠILÀM LẠI

Bài 2 Nhập vào một dãy số nguyên, sắp xếp dãy theo trình tự không giảm

A) Đúng B) Sai

Trang 22

Em hãy cho biết để

giải bài toán trên, ở

lớp 10 chúng ta dùng thuật toán gì?

Thuật toán tráo

đổi

Bài 2 Nhập vào một dãy số nguyên, sắp xếp dãy theo trình tự không giảm

* INPUT: Nhập số nguyên dương n và dãy n số nguyên dương a1,a2, ,an

* OUTPUT: Dãy số được sắp xếp theo trình tự không giảm

Trang 23

i chạy từ đầu dãy đến vị trí [cuối

dãy - 2] (bỏ qua phần tử cuối).

Sau lượt thứ hai bọt nước có trọng lượng lớn thứ hai nằm sát trên bọt nước lớn nhất

Quá trình duyệt, tráo đổi được lặp đi lặp lại cho đến khi chỉ còn duyệt hai phần tử và thu được dãy không giảm.

Trang 24

Số phần tử ở các lượt duyệt (j) sẽ giảm

từ n xuống hai phần tử.

Tại mỗi lượt duyệt:

- Cho i chạy từ 1 đến số phần tử -1,

nếu A[i]>A[i+1] thì

tráo đổi vị trí A[i] và A[i+1]

thông qua biến trung gian (Tg).

Các em hãy cho biết trong Pascal nhận xét 1 được thể hiện bằng lệnh

Trang 25

Khai báo mảng 1 chiều

Nhập mảng 1 chiều

Xử lí mảng bằng thuật

toán nổi bọt

In kết quả

Trang 26

17 20 18 21 19 17 19

Chương trình chạy và cho kết quả như sau:

Thực hiện CT

Bạn có thể chạy thử chương trình trên với bộ input khác

Bạn có thể chạy thử chương trình trên với bộ input khác

Mời bạn nhấn vào nút Thực hiện CT

Trang 27

Trong chương trình sapxep thể hiện thuật toán sắp xếp không giảm, nếu đổi điều kiện a[i] > a[i+1] thành điều kiện

a[i]< a[i+1] thì:

Correct - Click anywhere to

continue

Correct - Click anywhere to

continue Incorrect - Click anywhere to continue

Incorrect - Click anywhere to

continue

You answered this correctly!

Your answer:

The correct answer is:

You did not answer this question completely

You did not answer this question completely

You must answer the question

before continuing

You must answer the question

before continuing ĐÁP ÁNĐÁP ÁN LÀM LẠILÀM LẠI

A) chương trình sẽ không thể hiện một thuật toán sắp

xếp nào.

B) thuật toán mà chương trình thể hiện chuyển từ sắp

xếp không giảm thành sắp xếp không tăng C) chương trình sẽ chuyển thành thể hiện thuật toán

tìm phần tử lớn nhất trong dãy số D) chương trình dịch sẽ báo lỗi thuật toán

Trang 28

Trong thuật toán sắp xếp bằng tráo đổi mà ta

đã tìm hiểu ở ví dụ trước, biến t có vai trò:

Correct - Click anywhere to

continue

Correct - Click anywhere to

continue Incorrect - Click anywhere to continue

Incorrect - Click anywhere to

continue

You answered this correctly!

Your answer:

The correct answer is:

You did not answer this question completely

You did not answer this question completely

You must answer the question

before continuing

You must answer the question

before continuing ĐÁP ÁNĐÁP ÁN LÀM LẠILÀM LẠI

A) thu hẹp phạm vi xem xét là một dãy con a[1],

a[2], , a[t] để tìm phần tử lớn nhất và chuyển về cuối dãy con này.

B) kiểm tra xem việc sắp xếp mảng đã hoàn tất hay

chưa?

C) Kết hợp với biến i để điều khiển quá trình lặp trong

thuật toán.

D) điều khiển việc đổi chỗ cặp phần tử a[i] và a[i+1]

trong thuật toán.

Trang 29

Your Score {score}

Max Score {max-score}

Trang 31

H·y nhí!

-Ôn lại bài học hôm nay;

-Làm bài tập 5, 6, 7 trong SGK trang 79-Chuẩn bị trước bài tập và thực hành 3

Trang 32

TÀI LIỆU THAM KHẢO

1 Sách giáo khoa Tin học 11, sách Giáo viên Tin học 11_Nhà xuất bản Giáo dục

2 Sách bài tập Tin học 11_Nhà xuất bản Giáo dục.

3 Sách dạy học theo chuẩn kiến thức,kĩ năng Tin học 11_ Nhà xuất bản Đại học

sư phạm.

4 Giáo trình Pascal.

5 Một số tư liệu khác từ Website: Google.vn; Violet.vn.

6 Một số phần mềm: Camtasia studio; Total video converted.

Ngày đăng: 09/07/2015, 13:29

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w