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

kiểu mảng một chiều

13 2,5K 29
Tài liệu đã được kiểm tra trùng lặp

Đ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 13
Dung lượng 1,14 MB

Nội dung

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ệ

Trang 1

Bµi 12

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

Trang 2

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

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 đề:

Trang 3

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

Trang 4

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, ,t365) 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.

Trang 5

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

A

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

Trang 6

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;

Trang 7

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;

pascal

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

với n = 7

19 17

19 21

18 20

17

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

Trang 8

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.

Trang 9

* Đế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

7 6

5 4

3 2

1 i

19 17

19 21

18 20

17

A[i]

Trang 10

Program vd1;

Uses crt;

Var

A: Array[1 366] of integer;

i,n,dem: integer;

S,TB : real ;

BEGIN

Clrscr;

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

Trang 11

Nhap vao so ngay : 7

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:

Trang 12

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];

19 12

18 25

16 20

15

S = 45

Trang 13

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

Ngày đăng: 30/07/2013, 01:25

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w