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

giáo án 11

22 975 3

Đ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

Định dạng
Số trang 22
Dung lượng 3,34 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

+ Số lượng các phần tử + Kiểu dữ liệu của các phần tử + Cách khai báo biến mảng + Cách tham chiếu đến phần tử VD: Xét bài toán nhập vào nhiệt độ Trung bình mỗi ngày trong tuần.. Kiến Thứ

Trang 1

Tuần: 20 Ngày soạn: 24/12/2011

Chương IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC

III TIẾN TRÌNH LÊN LỚP

1 Ổn Định Lớp : ổn định trật tự, lớp trưởng báo cáo sĩ số

2 Kiểm Tra Bài Cũ

3 Nội Dung

Ở chương III chúng ta đã được nghiên cứu về cấu trúc rẽ nhánh, cấu trúc lặp Mặt khác chúng ta cũng đã làm quen với các kiểu dữ liệu chuẩn như số nguyên, số thực, kiểu logic… Tuy nhiên với những kiểu dữ liệu này thì làm thế nào để lưu trữ

và xử lý một dãy số? lưu trữ và xử lý họ và tên một người?? các kiểu dữ liệu

chuẩn không đủ để biểu diễn dữ liệu của các bài toán trên

Chương này chúng ta sẽ tìm hiểu một số kiểu dữ liệu trong ngôn ngữ Pascal để xử

lý những vấn đề trên Với bài toán xử lý một dãy số ta dùng kiểu dữ liệu chuẩn Vậy mảng là gì? Sử dụng kiểu mảng như thế nào? Bài học hôm nay chúng ta sẽ tìm hiểu “Kiểu Mảng”

Gv: Thuyết trình

Trong lập trình thường có 2 loại

1 Kiểu Mảng Một Chiều Mảng một chiều là dãy hữu hạn các phần tử cùng

Trang 2

Hs: Trật tự ghi bài đầy đủ

GV: yêu cầu học sinh đọc ví dụ

trong SGK trang 53

Hs: Trật tự tập trung làm việc theo

nhóm

Gv: Gợi ý cho Hs dùng 7 biến thực

để lưu trữ nhiệt độ của các ngày

trong tuần (t1, t2, t3, t4, t5, t6, t7),

một biến tính giá trị trung bình TB

và một biến để đếm số ngày có

nhiệt độ cao hơn TB là dem

kiểu Mảng được đặt tên và mỗi phần tử có một chỉ

số Để mô tả mảng một chiều cần xác định kiểu các phần tử và đánh số các phần tử của nó

- Để lập trình có thể xây dựng và sử dụng kiểu mảng một chiều, các ngôn ngữ lập trình có quy tắc, cách thức cho phép xác định:

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

+ Số lượng các phần tử + Kiểu dữ liệu của các phần tử + Cách khai báo biến mảng + Cách tham chiếu đến phần tử

VD: Xét bài toán nhập vào nhiệt độ( Trung bình) mỗi ngày trong tuần Tính và đưa ra màn hình nhiệt

độ trung bình của cả tuần và đếm số ngày có nhiệt độ cao hơn trung bình

Nhiệt độ trung bình của các ngày trong tuần được tính theo công thức:

Trang 3

bài toán If t2> Tb then Dem:= Dem+1;

If t3> Tb then Dem:= Dem+1;

If t4> Tb then Dem:= Dem+1;

If t5> Tb then Dem:= Dem+1;

If t6> Tb then Dem:= Dem+1;

If t7> Tb then Dem:= Dem+1;

Writeln(‘Nhiet do trung binh tuan:’, Tb:4:2);Writeln(‘So ngay co nhiet do cao hon TB’, Dem);Readln

- Với chương trình tính nhiệt độ trung bình trên khi cần giải bài toán trên với

N ngày thì ta làm như thế nào? Có theo cách trên không hay có một phương pháp gọn hơn

Trang 4

Tuần: 20 Ngày soạn: 24/12/2011

Chương IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC

11 KIỂU MẢNG(T2)

I.MỤC TIÊU

1 Kiến Thức

- Cách khai báo mảng một chiều

- Biết cách xác định biến, cách tham chiếu đến các phần tử mảng

III TIẾN TRÌNH LÊN LỚP

1Ổn Định Lớp : ổn định trật tự, lớp trưởng báo cáo sĩ số

2 Kiểm Tra Bài Cũ

- Khái niệm mảng một chiều Nêu các cách thức cho phép xác định.?

3 Nội Dung

Gv: Bài học hôm trước chúng ta đã tìm

hiểu chương trình tính nhiệt độ trung

bình các ngày trong tuần Hôm nay

chúng ta sẽ tìm hiểu làm như thế nào để

giải bài toán trên với N ngày Ta sẽ sử

dụng kiểu dữ liệu mảng một chiều để mô

tả

Gv: Giải thích về khai báo mảng Khai

báo biến mảng một chiều gồm Max số

- Khai báo biến mảng một chiều(thông qua phần khai báo biến mảng) như sau:

Type Kmang1 = array [1 Max] of real;Var Nhietdo: Kmang1;

* Chương trình giải bài tập như sau:

Program Nhietdo_Nngay;

Trang 5

Hs: chú ý lắng nghe Nghĩ cách viết

chương trình để giải bài toán

Gv: Nêu câu hỏi điều kiện N phải như

thế nào?

Hs: N<= 366

Gv: giải thích:

Biến i lần lượt nhận các giá trị chỉ số của

mảng Tương ứng mỗi giá trị của i, một

phần tử của mảng được xác định bởi

Nhietdo[i] có thể được thực hiện các

thao tác nhập xuất hay xử lý trên phần tử

này

Như vậy, khi sử dụng một biến mảng,

với câu lệnh for- do chương trình được

viết ngắn gọn dễ hiểu hơn

Hs: chú ý lắng nghe và viết chương trình

theo nhóm

Gv: thuyết trình về khai báo mảng

Hs: :Lắng nghe ghi bài đầy đủ

- Hỏi: Dựa vào ví dụ trang 55 SGK, cho

biết:

Type Kmang1 = array [1 Max] of real;

Var Nhietdo: Kmang1;

Dem, I, N : byte;

Tong, Trung_binh: real;

Begin Write(‘Nhap so ngay: ’);

Readln(N);

Tong:= 0;

For i:= 1 to N do Begin

Write(‘Nhap nhiet do ngay thu’, i, ‘:’); Readln(Nhietdo[i]);

Tong:= Tong+ Nhietdo[i];

a Khai báo (Có hai cách) Cách 1: Khai báo trực tiếp:

Var <tên biến mảng>: array[kiểu chỉ số] of

Trang 6

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

Ví dụ 1:

Var Nhietdo: array [1 Max] Of real;

Ví dụ 2: Khai báo mảng tối đa 100 số nguyên (chỉ số đầu tiên là 1)

Var a: Array[1 Nmax] Of integer;

* Tham chiếu tới phần tử cuả mảng

Tên_biến[chỉ số]

4 Cũng Cố

Cách khai báo mảng một chiều

- Câu hỏi trắc nghiệm

1 Trong các khai báo biến mảng một chiều sau đây Những kiểu khai báo nào

là không hợp lệ

a Type m= array [-100 100] of real;

b Type m = array [1.5 10.5] of real;

c Type m= array [0 100] of integer;

d Type m= array[‘a’ ’z’] of boolean;

Trang 7

Tuần: 21 Ngày soạn: 29/12/2011

BÀI THỰC HÀNH SỐ 3 – T1

I MỤC TIÊU:

- Kiến thức: Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng.

- Kỹ năng: Khai báo được kiểu dữ liệu mảng, nhập dữ liệu mảng, đưa ra màn

hình chỉ số và giá trị của các phần tử mảng

+ Duyệt qua phần tử của mảng để xử lý từng phần tử

- Về tư duy và Thái độ: rèn luyện tư duy lập trình, tác phong của người lập trình.

II PHƯƠNG TIỆN DẠY HỌC:

- GV: Phòng máy tính, máy chiếu Projector

CT mẫu bài 1a HS: Xem bài mẫu được trình chiếu.

?1: MyArray là tên kiểu

dữ liệu hay tên biến?

HS: Tên kiểu dữ liệu.

GV: Nhận xét.

?2: Vai trò của nmax và n

khác nhau như thế nào? n là số lượng phần tử của mảng, nmax là là số lượng pt lớn nhất có thể có của mảng

?3: Dòng lệnh nào dùng để

tạo biến mảng A?

VAR A: MyArray

Trang 9

?8: Đưa biến Posi và Neg

vào vị trí nào trong câu 1a?

GV: Yêu cầu HS chạy

chương trình và báo cáo kết

quả

HS: Lưu và chạy chương trình, báo cáo KQ

4) Củng cố:

Trang 10

Yêu cầu HS sửa lại chương trình trên để có thể nhập một mảng có 10 phần tử

từ bàn phím

5) Dặn dò:

- HS về nhà làm bài tập 4.15 trong sách bài tập

- Chuẩn bị chương trình bài 2 bài thực hành 3 chương IV trong SGK

IV RÚT KINH NGHIỆM, BỔ SUNG:

Trang 11

Tuần: 21 Ngày soạn: 2/1/2011

BÀI THỰC HÀNH SỐ 3 – T2

I MỤC TIÊU:

- Về Kiến thức: Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng.

- Về Kỹ năng: Khai báo được kiểu dữ liệu mảng, nhập dữ liệu mảng, đưa ra màn

hình chỉ số và giá trị của các phần tử mảng

+ Duyệt qua phần tử của mảng để xử lý từng phần tử

- Về tư duy và Thái độ: rèn luyện tư duy lập trình, tác phong của người lập trình.

II PHƯƠNG TIỆN DẠY HỌC:

- GV: Phòng máy tính, máy chiếu Projector

- HS: SGK, bài tập

III HOẠT ĐỘNG DẠY VÀ HỌC

1 Ổn định tổ chức: Kiểm tra sĩ số lớp.

2 Kiểm tra bài cũ: Khi nào ta nên khai báo biến mảng gián tiếp –

thông qua định nghĩa kiểu?

3 Nội Dung

1 Nêu đề bài toán (Nội dung)

Y/cầu hs xác định In/Output của

+ Cho biết số ptử của mảng A

+ Nhập giá trị cho các ptử của

Write(‘Nhap n = ’); readln(n);

{tao mang}

For i:=1 To n Do begin

write(‘phan tu thu ’,i,’ =’);

Trang 12

HS Lên bảng trình bày

Var S, N, k: integer;

A: array[1 100] of integer;

5 Tiếp tục y/cầu hs lên viết phần

chtrình tạo giá trị cho các ptử của

6 Để viết tiếp đoạn chtrình còn lại

(tính tổng) theo thuật toán ta phải

kiểm tra lần lượt tất cả các ptử của

mảng từ A[1] đến A[n] vậy ta sử

Var n, i : integer;

am, duong : integer;

A : array[1 100] of integer; Begin

Write(‘Nhap n = ’); readln(n);

{tao mang}

For i:=1 To n Do begin

write(‘phan tu thu ’,i,’ =’);

End.

IV Cñng cè

- Nh¾c l¹i c¸c kh¸i niÖm cÇn lu ý

Trang 13

- bµi tËp vÒ nhµ: ViÕt ch¬ng tr×nh nhËp 1 m¶ng mét chiÒu A gåm 20 phÇn tö vµ nhËp 1 sè x §Õm sè lîng sè trong A cã gi¸ trÞ b»ng x

T.T DuyệtNgày2/1/2012

Nguyễn Hữu Quyền

Trang 14

Tuần: 22 Ngày soạn: 7/1/2011

11 KIỂU MẢNG(T3)I.MỤC TIÊU

1 Kiến Thức

- Cách khai báo mảng một chiều

- Biết cách xác định biến, cách tham chiếu đến các phần tử mảng

III TIẾN TRÌNH LÊN LỚP

1Ổn Định Lớp : ổn định trật tự, lớp trưởng báo cáo sĩ số

2 Kiểm Tra Bài Cũ

- Nêu các cách khai báo mảng một chiều? Cho ví dụ về khai báo kiểu gián tiếp?

Hs: trả lời input, out put

Gv: ý tưởng của thuật toán là gì?

Số nguyên dương N (N250) và dãy A gồm N số nguyên dương, mỗi số đều không vượt quá 500 Hãy sắp xếp dãy A thành dãy không giảm.:

In: N (N≤250), dãy A (A[i]<500)

Out: dãy A không giảm

2.Thuật toán

B1: Nhập N, dãy A ;B2: jN;

B3: nếu j<2 thì đưa ra dãy đã được sắp xếp, KT;

B4: jj-1; i1;

B5: Nếu i>j thì Qlại B3;

B6: Nếu A[i]>A[i+1] thì tráo đổi A[i]

Trang 15

Gv: chia nhóm phân công tìm thuật toán

của bài toán và cách viết chương trình,

* Chốt lại các nội dung chính cần viết

GV: Yêu cầu từng hs lên bảng viết từng

nội dung của chương trình

GV: Khai báo những biến gì?

GV Làm thế nào để tráo đổi giá trị 2

biến cho nhau (a[i] và a[i+1])?

HS: sử dụng thêm biến trung gian t:

write(‘phan tu thu ’,i,’ =’); readln(A[i]);

end;

{sap xep mang}

For j := N Downto 1 Do for i:=1 to j - 1 do

If a[i] > a[i+1] then begin

t:=a[i]; a[i]:=a[i+1];

a[i+1] :=t;

end;

{dua ra mang da sap xep}

Writeln (‘Mang da duoc sap xep ’);

For i :=1 To N Do write (a[i]:4);

Trang 16

Tuần: 22 Ngày soạn: 12/1/2011

11 KIỂU MẢNG(T3)

I.MỤC TIÊU

1 Kiến Thức

- Cách khai báo mảng một chiều

- Biết cách xác định biến, cách tham chiếu đến các phần tử mảng

III TIẾN TRÌNH LÊN LỚP

1Ổn Định Lớp : ổn định trật tự, lớp trưởng báo cáo sĩ số

2 Kiểm Tra Bài Cũ

- Nêu các cách khai báo mảng một chiều? Cho ví dụ về khai báo kiểu gián tiếp?

3 Nội Dung

Gv: trong bài toán trên thì input là gì?

Output là gì?

Hs: trả lời input, out put

Gv: ý tưởng của thuật toán là gì?

Hs: trả lời ý tưởng

Gv: chia nhóm phân công tìm thuật toán

của bài toán và cách viết chương trình,

 Cac so am la:

-7 vi tri la: 3-20 vi tri la: 5

Trang 17

* Chốt lại các nội dung chính cần viết.

GV: Yêu cầu từng hs lên bảng viết từng

nội dung của chương trình

GV: Khai báo những biến gì?

từng phần tử trong mảng xem có bé hơn

0 hay không Nếu bé hơn thì đưa ra kết

quả

- Đưa mảng ra màn hình

USES CRT;

VAR A: ARRAY[1 100] OF INTEGER;

I,N: INTEGER;

BEGIN WRITELN('NHAP SL PHAN TU: ');

READLN(N);

FOR I:=1 TO N DO BEGIN

WRITELN('NHAP SO THU: ',I,' ');

READLN(A[I]);

END;

WRITELN('CAC SO AM LA: '); FOR I:=1 TO N DO

IF A[I] < 0 THEN BEGIN

WRITE(A[I]:4);

WRITELN(' VI TRI LA: ',I); END;

READLNEND

Trang 18

Tuần: 23 Ngày soạn: 14/1/2011

BÀI THỰC HÀNH SỐ 4 T1

I Mục tiêu

1 Kiến thức

- Củng cố kiến thức về dữ liệu kiểu mảng

- Xây dựng cấu trúc dữ liệu, hiểu thuật toán sắp xếp bằng tráo đổi

2 Kĩ năng

- Biết chỉnh sữa lỗi trong chương trình

- Tự nhập các bộ dữ liệu để hiểu ý nghĩa một số câu lệnh

Gv : Nêu cách khai báo kiểu mảng 1

End;

Đề: Sắp xếp dãy số nguyên bằng thuật

toán tráo đổi với các giá trị khác nhau của

• Ý tưởng: Với mỗi cặp số hạng đứng liền

kề trong dãy, nếu số trước lớn hơn số sau thì ta đổi chỗ chúng cho nhau Việc đó

Trang 19

* Tìm hiểu chương trình

GV:Vai trò của biến i, j trong CT?

Hs : Dùng làm biến chỉ số.

Gv: Đoạn lệnh nào thực hiện tráo đổi

giá trị 2 phần tử liền kề của mảng?

Giúp hs phát hiện và sữa lỗi

Thuật toán trên tiến hành đưa số lớn

- B6: Nếu i > M thì quay lại bước 3;

- B7: Nếu ai > ai+1 thì tráo đổi ai và ai+1 cho nhau;

- B8: Quay lại bước 5

Chương trìnhSGK trang 65

4) Củng cố : Thuật toán sắp xếp bằng tráo đổi Đếm số lần tráo đổi

Nhập vào số nguyên K, tìm xem K có trong dãy không? Nếu có thì đưa ra các

vị trí của nó trong dãy Nếu không thì thông báo “Không tìm thấy”

Vd: Dãy A gồm 5 phần tử: 1 5 6 12 5

Nhap so can tim: 5

 Cac vi tri cua 5 la: 2 5

Trang 20

Tuần: 23 Ngày soạn: 14/1/2011

BÀI THỰC HÀNH SỐ 4 T2

I Mục tiêu:

1 Kiến thức:

- Củng cố lại kiến thức cơ bản khi lập trình với kiểu dữ liệu mảng.

- Làm quen với một số bài toán liên quan

SGK, sách bài tập và vở bài tập đã viết ở nhà

III Hoạt động dạy học

Hoạt động 1: Rèn luyện kỹ năng nhận xét, phân tích và đề xuất cách giải bài

toán sao cho chơng trình chạy nhanh hơn

1 Mục tiêu:

- Học sinh biết sử dụng kiểu mảng để lập trình giải một bài toán Biết nhận xét phân tích để đề xuất phơng án giải này.

2 Nội dung:

Cho mảng A gồm n phần tử Viết chơng trình tạo mảng B[1 n], trong đó B[i]

là tổng giá trị của i phần tử đầu tiên của mảng A.

Trang 21

For i:=1 to n do write(a[i]:5);

liệu vào, dữ liệu ra?

- Gợi ý để học sinh viết

để học sinh biết thời gian thực

hiện chơng trình và kết quả của

toán, có thể có nhiều cách giải

quyết khác nhau Ngời lập trình

1 Quan sát bài và trả lời câu hỏi.

- Thay đoạn lệnh:

For J:=1 to i do B[i] : =B[i] + A[i];

Soạn chơng trình vào máy, thực hiện chơng trình và thông báo kết quả.

Nhận xét

Trang 22

Hoạt động của GV Hoạt động của HS

cần chọn cách sao cho máy thực

hiện nhanh nhất.

Ngày đăng: 03/11/2014, 13:00

Xem thêm

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w