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?... Quan s¸t ch¬ng tr×nh, h·ykh¾c cho biÕt nÕukhã §Ó phôc muèn tÝ[r]
(1)Bµi 12 Gi¸o ¸n ®iÖn tö tin häc líp 11 (2) Bài toán đặt vấn đề: Nhập vào nhiệt độ (trung bình) ngày tuần Tính và đa màn hình nhiệt độ trung bình tuần và số lợng ngày có nhiệt độ TB cao nhiÖt trung b×nh tuÇn? Hãy xác định Input, Output vµ * D÷ liÖu nhËp vµo (INPUT): t1,t2,t3,t4,t5,t6,t7 viÕt ch¬ng tr×nh bµi to¸n trªn ?tb, dem * D÷ cÇn tÝnh vµ in ragi¶i (OUTPUT): (3) Program vd1; Uses crt; Var t1,t2,t3,t4,t5,t6,t7,tb : real; dem : integer; BEGIN Clrscr; write(‘ Nhap vao nhiet : ’); readln(t1,t2,t3,t4,t5,t6,t7); tb : = (t1+t2+t3+t4+t5+t6+t7)/7; dem : = ; 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 trung binh tuan = ‘,tb : : 2); Writeln(‘ so co nhiet cao hon nhiet tb ‘, dem); Readln; END (4) Quan s¸t ch¬ng tr×nh, h·ykh¾c cho biÕt nÕukhã §Ó phôc muèn tÝnh kh¨n đó ta sönhiÖt dụngđộkiểu trung b×nh cña N ngµy d÷ liÖu m¶ng mét chiÒu 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) !!!!! (5) Kh¸i niÖm M¶ng mét chiÒu lµ mét d·y h÷u h¹n c¸c phÇn tö cïng kiÓu VÝ dô: A 17 20 18 25 19 12 19 Trong đó : Tªn m¶ng : A Sè phÇn tö cña m¶ng: KiÓu d÷ liÖu cña c¸c phÇn tö: KiÓu nguyªn Khi tham chiếu đến phần tử thứ i ta viết A[i] VÝ dô: A[5] = 19 (6) Khai b¸o m¶ng mét chiÒu 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>; Trong đó : Chỉ số đầu, số cuối thờng là các biểu thức nguyên; ChØ sè ®Çu chØ sè cuèi; Gi÷a chØ sè lµ dÊu VÝ dô: TYPE nhietdo = array[1 365] of integer; Var A: nhietdo; * 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ö>; VÝ dô: Var nhietdo : array[1 365] of integer; Var A,B : array[1 100] of real; (7) C¸c thao t¸c xö lÝ m¶ng mét chiÒu a NhËp m¶ng mét chiÒu Ví dụ: Nhập nhiệt độ n ngày A C¸c bíc 17 20 18 21 19 víi nn = NhËp sè phÇn tö cña m¶ng (n) 17 19 ThÓ hiÖn b»ng pascal Write(‘ Nhap vao so ngay:’); Readln(n); NhËp vµo gi¸ trÞ cña c¸c phÇn tö m¶ng (A[i]) For i:=1 to n Begin write(‘nhiet thu’ ,i, ’ : ’); readln(A[i]); end; (8) b In m¶ng mét chiÒu VÝ dô: In m¶ng võa nhËp - Th«ng b¸o Writeln(‘ Mang vua nhap : ’); - In gi¸ trÞ cña c¸c phÇn tö For i:=1 to n Write(A[i]:5); KÕt qu¶ in mµn h×nh: Mang vua nhap: 17 20 18 21 19 17 19 (9) c C¸c thao t¸c xö lÝ kh¸c * §Õm c¸c phÇn tö m¶ng tho¶ m·n ®iÒu kiÖn cho tríc Ví dụ: Đếm số ngày có nhiệt độ cao dem :=0; nhiệt độ TB tuần For i :=1 to n IF A[i]>TB then dem:=dem+1; i A[i] Dem=0 17 20 18 21 19 17 19 +1 +1 +1 +1 TB = 18.7 (10) Program vd1; Uses crt; Var Khai b¸o m¶ng chiÒu A: Array[1 366] of integer; i,n,dem: integer; S,TB : real ; BEGIN Clrscr; write(‘ Nhap vao so : ’) ; readln(n) ; S := ; For i := to n NhËp m¶ng chiÒu Begin write(‘ Nhap nhiet thu ‘,i,’ : ‘) ; TÝnh tæng readln(A[i]) ; S:=S+A[i] ; End; TB := S/n ; dem := ; For i := to n §Õm sè phÇn tö tho¶ If A[i]>TB Then dem := dem+1; Writeln(‘ Nhiet trung binh ’ ,n,’ = ‘,TB : : 2) ; m·n ®iÒu kiÖn Writeln(‘ So co nhiet cao hon nhiet TB la: ‘, dem) ; Readln ; END (11) Ch¬ng tr×nh ch¹y vµ cho kÕt qu¶ nh sau: Nhap vao so : Nhap nhiet thu : Nhap nhiet thu : Nhap nhiet thu : Nhap nhiet thu : 17 20 18 21 Nhap nhiet thu : 19 Nhap nhiet thu : 17 Nhap nhiet thu : 19 Nhiet trung binh = 18.70 So co nhiet cao hon nhiet TB la: (12) * TÝnh tæng c¸c phÇn tö m¶ng tho¶ m·n ®iÒu kiÖn cho tríc VÝ dô: TÝnh tæng c¸c phÇn tö m¶ng chia hÕt cho S :=0; For i :=1 to n IF A[i] mod = then S:=S+A[i]; 15 20 16 25 18 12 19 S = 45 Thông thờng, các thao tác xử lí mảng chiều dùng câu lệnh FOR DO (13) H·y nhí! 15 20 19 25 18 12 16 M¶ng mét chiÒu lµ mét d·y h÷u h¹n c¸c phÇn tö cïng kiÓu Var A:ARRAY[1 100] OF integer; Khai b¸o: tªn m¶ng, chØ sè ®Çu, chØ sè cuèi, kiÓu phÇn tö A[5] = 18 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 (14)