Tải bản đầy đủ (.ppt) (13 trang)

Tiet 19 mang mot chieu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (469.65 KB, 13 trang )

Bài
12

Giáo án điện tử tin học lớp 11


Bài toán đặt vấn đề:
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ữ
* Dữ

HÃy xác định
Input,
Output
liệu nhập vào (INPUT):
t1,t2,t3,t4,t5,t6,t7.
và viết chơng
trình giảitb,
bàidem.
cần tính và in ra (OUTPUT):
toán trê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,
chokhó
Để
khắchÃy
phục
biết
nếu
khăn
đó

ta muốn
sử dụng
tính nhiệt độ
kiểu dữ liệu mảng
trung bình của N
mộttrong
chiều.
ngày
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) !!!!!


1. 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

1

2

3

4

5

12

19

6

7

Trong đó :
Tên mảng : A.
Số phần tử của mảng: 7.

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.


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
tử>; : <tên kiểu mảng>;
Var <ds biến mảng>
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 ..
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;



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

a. Nhập mảng một
chiều

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

A

17

20

Các bớc

18 .......
21 19

17

19

n=
với n
7

1. Nhập số phần tử của

mảng (n).
2. Nhập vào giá trị của các
phần tử trong mảng
(A[i]).

Thể hiện bằng
pascal
Write( Nhap vao so ngay:’);
Readln(n);

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


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 : ’);

For i:=1 to n do Write(A[i]:5);
- In giá trị của các
phần tử
Kết quả in ra màn h×nh:


Mang vua nhap:
17 20 18 21 19 17 19


c. Các thao tác xử lí
khác
* Đếm các phần tử trong mảng thoả mÃn điều kiện cho trớc
Ví dụ: Đếm số ngày có nhiệt

dem :=0;

độ cao hơn nhiệt độ TB
của tuÇn.

i
A[i]

Dem=0

For i :=1 to n do
IF A[i]>TB then dem:=dem+1;

1

2

3

4


5

6

7

17

20

18

21

19

17

19

2

3

0

1
+1

1

+1

+1

3

4
+1

TB = 18.7


Program vd1;
Uses crt;
Var
Khai báo mảng 1
A: Array[1..366] of integer;
chiều
i,n,dem: integer;
S,TB : real ;
BEGIN
Clrscr;
write(‘ Nhap vao so ngay : ’) ;
readln(n) ;
S := 0 ;
For i := 1 to n do
NhËp m¶ng 1
Begin
write(‘ Nhap nhiet do ngay thu ‘,i,’ :chiỊu
‘) ;

readln(A[i]) ;
S:=S+A[i] ;
TÝnh tæng
End;
TB := S/n ;
dem := 0 ;
For i := 1 to n do
Đếm số phần tử
If A[i]>TB Then dem := dem+1;
Writeln(‘ Nhiet do trung binh ’ ,n,’ ngay = ,TBthoả
: 6 : 2)mÃn
;
điều
Writeln( So ngay co nhiet do cao hon nhiet do TB la: ‘, dem) ;
kiÖn
Readln ;
END.


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

Nhap vao so ngay :

7

Nhap nhiet do ngay thu 1 :
Nhap nhiet do ngay thu 2 :
Nhap nhiet do ngay thu 3 :
Nhap nhiet do ngay thu 4 :


17
20
18
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


* 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
cho 3.

15

20

chia

hÕt

S :=0;
For i :=1 to n do
IF A[i] mod 3 = 0 then S:=S+A[i];


16

25

18

12

19

S = 45

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.


H·y nhí!
15 20 19 25 18 12 16

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

A[5] = 18

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.



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×