13
Bµi 12 Gi¸o ¸n ®iÖn tö tin häc líp 11

Bai 11 kieu mang

Embed Size (px)

DESCRIPTION

hgdhf

Citation preview

Page 1: Bai 11 kieu mang

Bµi

12

Gi¸o ¸n ®iÖn tö tin häc líp 11

Page 2: Bai 11 kieu mang

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 ®Ò:

Page 3: Bai 11 kieu mang

Program vd1;Uses crt;Var t1,t2,t3,t4,t5,t6,t7,tb : real; dem : integer;BEGIN

Clrscr; write(‘ Nhap vao nhiet do 7 ngay : ’); readln(t1,t2,t3,t4,t5,t6,t7); tb : = (t1+t2+t3+t4+t5+t6+t7)/7; dem : = 0 ; if (t1>tb) then dem := dem + 1; 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 trong tuan = ‘,tb : 6 : 2);

Writeln(‘ so ngay co nhiet do cao hon nhiet do tb ‘, dem);Readln;END.

Page 4: Bai 11 kieu mang

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,...,t36

5) 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.

Page 5: Bai 11 kieu mang

M¶ng mét chiÒu lµ mét d·y h÷u h¹n c¸c phÇn tö cïng kiÓu

17 20 18 25 19 12 19A 1 2 3 4 5 6 7

Trong ®ã :

Khi tham chiÕu ®Õn phÇn tö thø i ta viÕt A[i].

VÝ dô: A[5] = 19.

Tªn m¶ng : A.

Sè phÇn tö cña m¶ng: 7.

VÝ dô:

KiÓu d÷ liÖu cña c¸c phÇn tö: KiÓu nguyªn.

19

1. Kh¸i niÖm

Page 6: Bai 11 kieu mang

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[<chØ sè ®Çu>..<chØ sè cuèi>] 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 ®ã : ChØ sè ®Çu, chØ sè cuèi th êng lµ c¸c h»ng hoÆc biÓu thøc nguyªn;

ChØ sè ®Çu chØ sè cuèi;

Gi÷a 2 chØ sè lµ dÊu ..

* C¸ch 2: Khai b¸o trùc tiÕp

Var <Ds biÕn m¶ng> : array[<chØ sè ®Çu>..<chØ sè cuèi>] of <kiÓuphÇn tö>;

Var A,B : array[1..100] of real;VÝ dô: Var nhietdo : array[1..365] of integer;

Page 7: Bai 11 kieu mang

3. C¸c thao t¸c xö lÝ trong m¶ng mét chiÒu

A

n

1. NhËp sè phÇn tö cña m¶ng (n).

Write(‘ Nhap vao so ngay:’);

Readln(n);

2. NhËp vµo gi¸ trÞ cña c¸c phÇn tö trong m¶ng (A[i]).

For i:=1 to n do Begin write(‘nhiet do ngay thu’ ,i, ’ : ’); readln(A[i]); end;

.......

C¸c b íc ThÓ hiÖn b»ng pascal

a. NhËp m¶ng mét chiÒu

víi n = 7

19171921182017

VÝ dô: NhËp nhiÖt ®é n ngµy.

Page 8: Bai 11 kieu mang

b. In m¶ng mét chiÒu

Writeln(‘ Mang vua nhap : ’);

For i:=1 to n do Write(A[i]:5);

Mang vua nhap:

- Th«ng b¸o

- In gi¸ trÞ cña c¸c phÇn tö

17 20 18 21 19 17 19

KÕt qu¶ in ra mµn h×nh:

VÝ dô: In m¶ng võa nhËp.

Page 9: Bai 11 kieu mang

* §Õ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 A[i]>TB 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

7654321i

19171921182017A[i]

0 1 1 2 3 3 4

20 21 19 19

+1 +1 +1+1

Page 10: Bai 11 kieu mang

Program vd1;Uses crt;Var

A: Array[1..366] of integer;i,n,dem: integer;S,TB : real ;

BEGINClrscr;write(‘ Nhap vao so ngay : ’) ;readln(n) ;S := 0 ; For i := 1 to n do

Begin write(‘ Nhap nhiet do ngay thu ‘,i,’ : ‘) ; readln(A[i]) ; S:=S+A[i] ;End;

TB := S/n ; dem := 0 ; For i := 1 to n do

If A[i]>TB Then dem := dem+1; Writeln(‘ Nhiet do trung binh ’ ,n,’ ngay = ‘,TB : 6 : 2) ;

Writeln(‘ So ngay co nhiet do cao hon nhiet do TB la: ‘, dem) ;Readln ;END.

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

Page 11: Bai 11 kieu mang

Nhap vao so ngay : 7

Nhap nhiet do ngay thu 1 : 17

Nhap nhiet do ngay thu 2 : 20

Nhap nhiet do ngay thu 3 : 18

Nhap nhiet do ngay thu 4 : 21

Nhap nhiet do ngay thu 5 : 19

Nhap nhiet do ngay thu 6 : 17

Nhap nhiet do ngay thu 7 : 19

Nhiet do trung binh 7 ngay = 18.70

So ngay co nhiet do cao hon nhiet do TB la: 4

Ch ¬ng tr×nh ch¹y vµ cho kÕt qu¶ nh sau:

Page 12: Bai 11 kieu mang

Th«ng th êng, c¸c thao t¸c xö lÝ trong m¶ng mét chiÒu ®Òu dïng c©u lÖnh FOR...DO.

* TÝnh tæng c¸c phÇn tö trong m¶ng tho¶ m·n ®iÒu kiÖn cho tr íc

VÝ dô: TÝnh tæng c¸c phÇn tö trong m¶ng chia hÕt cho 3.

S :=0;

For i :=1 to n do

IF A[i] mod 3 = 0 then S:=S+A[i];

19121825162015

S = 45

Page 13: Bai 11 kieu mang

H·y nhí!

M¶ng mét chiÒu lµ mét d·y h÷u h¹n c¸c phÇn tö cïng kiÓu.

Khai b¸o: tªn m¶ng, chØ sè ®Çu, chØ sè cuèi, kiÓu phÇn tö.

Tham chiÕu phÇn tö m¶ng: Tªn biÕn m¶ng[chØ sè

phÇn tö] NhiÒu thao t¸c xö lÝ

m¶ng dïng cÊu tróc lÆp FOR ..TO.. DO.

15 20 19 25 18 12 16

Var A:ARRAY[1..100] OF integer;

A[5] = 18