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

BÀI 11: KIỂU MẢNG 1 CHIỀU

17 743 1

Đ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 17
Dung lượng 3,86 MB

Nội dung

Câu lệnh : Là một câu lệnh của Pascal.. Trong đó: Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện.. Điều kiện Đúng Câu lệnh Sai... Nhập vào nhiệt độ trung bình của mỗi ngày

Trang 1

Bµi 11

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

Trang 2

Kiểm tra bài cũ:

Caõu 1: Em haừy trỡnh caỏu truực vaứ caựch

thửùc hieọn cuỷa voứng laởp While?

WHILE <Điều kiện> DO <Câu

lệnh>;

Điều kiện : Là biểu thức

quan hệ hoặc lôgic.

Câu lệnh : Là một câu lệnh của

Pascal.

Trong đó:

Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện.

Điều kiện

Đúng

Câu lệnh

Sai

Trang 3

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?

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 4

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.

{KHAI BAO BIEN}

{NHAP VAO NHIET DO CUA 7 NGAY}

{ TINH NHIET DO TRUNG BINH CUA TUAN} {KHOI DONG BIEN DEM}

{ DEM SO NGAY CO NHIET DO CAO HON NHIET DO TB}

Trang 5

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 6

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

Ví dụ: A[5] = 19

Ví dụ:

19

1 Kiểu mảng 1 chiều

Trang 7

6.7

90 45

25 10

20

B

1 2 3 4 5 6 7 8

F B[6] =

 Tªn m¶ng:

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

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

90





Trang 8

a) Khai báo

* 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ểu phần tử>;

Var <Tên 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 <tên 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 9

Arrayr1 = array[1 200] of real;

Arrayr2 = array[byte] of real;

Arrayb = array [0 100] of Boolean;

* Khai baựo maỷng 1 chieàu coự 200 phaàn tửỷ kieồu real , chieỏm 800 byte

* Maỷng 1 chieàu coự 100 phaàn tửỷ kieồu Boolean, chieỏm 100 byte

trong boọ nhụự.

Tỡm xem khai baựo naứo ủuựng, yự nghúa cuỷa caực leọnh, chieỏm dung lửụùng boọ nhụự laứ

bao nhieõu?

Bài toán đặt vấn đề:

Trang 10

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

ỉ 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 11

Ø 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 12

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

Προγραµ ϖδ1;

Υσεσ χρτ;

ςαρ

Α: Αρραψ[1 366] οφ ιντεγερ;

ι,ν,δεµ: ιντεγερ;

Σ,ΤΒ : ρεαλ ;

ΒΕΓΙΝ

Χλρσχρ;

ωριτε( Νηαπ ϖαο σο νγαψ : ) ; ‘ ’

ρεαδλν(ν) ;

Σ := 0 ;

Φορ ι := 1 το ν δο

Βεγιν

ωριτε( Νηαπ νηιετ δο νγαψ τηυ ,ι, : ) ; ‘ ‘ ’ ‘

ρεαδλν(Α[ι]) ;

Σ:=Σ+Α[ι] ;

Ενδ;

ΤΒ := Σ/ν ; δεµ := 0 ;

Φορ ι := 1 το ν δο

Ιφ Α[ι]>ΤΒ Τηεν δεµ := δεµ+1;

Ωριτελν( Νηιετ δο τρυνγ βινη ,ν, νγαψ = ,ΤΒ : 6 : 2) ; ‘ ’ ’ ‘

Ωριτελν( Σο νγαψ χο νηιετ δο χαο ηον νηιετ δο ΤΒ λα: , δεµ) ; ‘ ‘

Ρεαδλν ;

ΕΝ∆.

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 14

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:

Trang 15

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 16

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

Trang 17

Tiết học hôm nay đến đây là hết rồi!

Ngày đăng: 06/01/2015, 14:58

TỪ KHÓA LIÊN QUAN

w