Bµi
12
Gi¸o ¸n ®iÖn tö tin häc líp 11
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 ®Ò:
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.
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.
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
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;
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.
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.
* §Õ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
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
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:
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
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