Tải bản đầy đủ (.pptx) (24 trang)

Tin học 8 - Tiết 46, 47 - Bài 9. Làm việc với dãy số

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 (820.99 KB, 24 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1></div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<b>KiĨm tra bµi cị</b>



<i> </i>

<i>Dữ liệu mảng và biến của mảng gọi là gì ?</i>


- Dữ liệu kiểu mảng: là một tập hợp các phần tử có thứ tự, và mọi
phần tử đều có cùng một kiểu dữ liệu


- Biến mảng: khi khai báo một biến có kiểu dữ
liệu là kiểu mảng, biến đó được gọi là biến


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<b>2. Ví dụ về biến mảng</b>


a.Cách khai báo mảng trong Pascal:


9


Tuoi

7 6 8 ….


1 2 3 4 …. 40


10


Var Tuoi :


Chieuca



o

<sub> 2</sub> <sub> 3 4 5 …. 20</sub>
Var chieucao: array[2..20] of Real;
Chỉ số


array[1..40] of Integer;



Chỉ số


Var Tên mảng : array [<chỉ số đầu> .. <chỉ số cuối>] of <kiểu dữ liệu>;


1.7


1.5 1.65 1.75 …. 1.8


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<b>2. Ví dụ về biến mảng</b>


a. Khai báo mảng một chiều trong Pascal:


Var Tên mảng : array[<chỉ số đầu> .. <chỉ số cuối>] of <kiểu dữ liệu>;


<i>Trong đó: </i>


- <sub>Tên mảng</sub><sub>: Do người lập trình đặt</sub>


<i>-<b> array, of: Là từ khóa</b></i> của chương trình


- Chỉ số đầu, chỉ số cuối: Là 2 số nguyên, thỏa mãn:


<b>chỉ số đầu ≤ chỉ số cuối </b>giữa hai chỉ số là dấu <b>..</b>


- Kiểu dữ liệu: Là kiểu của các phần tử, là Integer hoặc Real


- Số phần tử = chỉ số cuối – chỉ số đầu + 1


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

<b>2. Ví dụ về biến mảng</b>



a) Cách khai báo mảng trong Pascal:


Ví dụ: Cách khai báo đơn giản một biến mảng trong


ngôn ngữ Pascal như sau:



<b>var Tuoi: array[21..80] of integer;</b>



Tên biến Số lượng phần tử Kiểu dữ liệu chung


Chỉ số đầu Chỉ số cuối


<b>var Chieucao: array[1..50] of real;</b>



</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

<b>Var Tênmảng: array [<chỉ số đầu>..<chỉ số cuối>] of <kiểu dữ liệu>;</b>


<b>Var Tênmảng: array [<chỉ số đầu>..<chỉ số cuối>] of <kiểu dữ liệu>;</b>
<b>2. Ví dụ về biến mảng</b>


<b>a) Cách khai báo mảng trong Pascal:</b>


Var diem : array[1..40] of real;


Var diem : array[1..40] of real;


Var A: array[1..10] of integer;
B: array[1..10] of integer;


Var A: array[1..10] of integer;
B: array[1..10] of integer;



Ví dụ:


Var A ,B: array[1..10] of integer;


Var A ,B: array[1..10] of integer;


<b>2/ Mảng A, B gồm 10 phần tử thuộc kiểu dữ liệu số nguyên?</b>
Hãy khai báo các mảng sau:


<b>1/ Mảng Diem gồm 40 phần tử thuộc kiểu dữ liệu số thực?</b>


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

Câu lệnh khai báo biến mảng sau đây máy tính có thực


hiện được khơng?



Var N : integer;



A : array[1..N] of real;



<b>Khơng xác định</b>


<b>2. Ví dụ về biến mảng</b>



KHƠNG


<i><b>Lưu ý:</b></i>


- Kích thước của mảng phải được khai báo bằng một con số


cụ thể


a) Cách khai báo mảng trong Pascal:


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

<b>Lưu ý:</b>



Kích thước của mảng phải
được khai báo bằng một con


số cụ thể


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

<b>2. Ví dụ về biến mảng</b>


a) Cách khai báo mảng trong Pascal:


b) Truy cập đến giá trị phần tử trong mảng:


Tên mảng [Chỉ số]



Tên mảng [Chỉ số]



Cú pháp:


<b>Tênmảng: array [<chỉ số đầu>..<chỉ số cuối>] of <kiểu dữ liệu>;</b>


<b>Tênmảng: array [<chỉ số đầu>..<chỉ số cuối>] of <kiểu dữ liệu>;</b>


VD: DiemTin[1]


 Tham chiếu tới phần tử thứ nhất của mảng DiemTin



</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

<b>2. Ví dụ về biến mảng</b>


b) Truy cập đến giá trị phần tử trong mảng:


Tên mảng [Chỉ số]


Tên mảng [Chỉ số]


Cú pháp:


2 5 7 1 10


3 4 5 6 7


Cho mảng A chứa các giá trị sau:
Ví dụ1:


- Xác định các giá trị của: A[1], A[3], A[5], A[10] ?



A[1], A[10]: khơng xác định


A[3]=2; A[5]=4



</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

<b>2. Ví dụ về biến mảng</b>



b) Truy cập đến giá trị phần tử trong mảng:


<b>Tên mảng [Chỉ số]</b>


<b>Tên mảng [Chỉ số]</b>


Cú pháp:



A[3]:=2;
A[4]:=5;


A[6]:=A[3]+A[4];


Ví dụ 2:

Cho các câu lệnh sau:



Giá trị của các phần A[3], A[4], A[6] sẽ là bao nhiêu?



A[3]=2
A[4]=5
A[6]=7


- Có thể gán giá trị, đọc giá trị và thực hiện tính tốn với các


phần tử trong mảng



<b>Có thể thực hiện các </b>
<b>thao tác nào với các </b>
<b>phần tử trong mảng?</b>


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

<b>2. Ví dụ về biến mảng</b>


For i:=1 to 40 do Readln(DiemTin[i]);


Ví dụ: Gán giá trị cho 40 phần tử của mảng DiemTin


For i := … to … do Readln(Tenmang[i]);


DiemTin[1]:=5;


DiemTin[2]:=7;


……… DiemTin[40]:=10;


Hoặc Readln(DiemTin[1]);
Readln(DiemTin[2]);


……… Readln(DiemTin([40]);


Viết chương trình khá dài


<b>Bài 9:</b>

<b>Làm việc với dãy số </b>


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

<b>A</b>



<b>n</b>



<i><b>1. Nhập số phần </b></i>
<i><b>tử của mảng.</b></i>


<b>Write(‘ Nhap vao so HS:’);</b>
<b>Readln(n);</b>


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


<b>For i:=1 to n do </b>
<b> Begin</b>



<b> write(‘Diem cho HS thu ’ ,i, ’ : ’);</b>
<b> readln(A[i]);</b>


<b> end; </b>


...



<i><b>Các bước</b></i> <b>Thể hiện bằng pascal</b>

<b>với n = 7</b>



9


10


9


6


8


5


7



<b>Sử dụng cấu trúc </b>
<b>lặp để nhập dữ liệu</b>


- Sử dụng lệnh Read (Readln) kết hợp với For ... do.



<b>2. Ví dụ về biến mảng</b>
c. Nhập giá trị cho mảng


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

<b>2. Ví dụ về biến mảng</b>


d. In giá trị các phần tử của mảng:



For i:= … to … do Writeln(Tenmang[i]);


For i:=1 to 40 do Writeln(DiemTin[i]);


<b>8</b>

<b>6</b>

<b>7</b>

<b>6 …. …. …. ….</b>



<b>1</b> <b>2</b> <b>3</b> <b>4</b> <b>….</b> <b>i</b> <b>….</b> <b>40</b>


DiemTin


<i>Chỉ số</i>


DiemTin[1] = 8


8



Ví dụ: In giá trị của 40 phần tử trong mảng DiemTin


DiemTin[4] = 6


6



</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

<b>Writeln(‘ Điểm của lớp : ’);</b>
<b>For i:=1 to n do </b>


<b> Write(A[i]:7); </b>


<b>Điểm của lớp:</b>


<i><b>- Thông báo </b></i>


<i><b> - In giá trị của </b></i>
<i><b>từng phần tử</b></i>


<b> 7 5 8 6 9 10 9</b>


<b>Kết quả trên màn hình:</b>


<i><b>- Sử dụng cấu trúc lặp để in dữ liệu</b></i>


Sử dụng lệnh Write (Writeln) kết hợp với For ... do.



<b>2. Ví dụ về biến mảng</b>


d. In giá trị các phần tử của mảng:


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

<b>Bài 9:</b>

<b>Làm việc với dãy số </b>


<b>3.</b> <b>Tìm giá trị lớn nhất và giá trị nhỏ nhất của dãy số:</b>


<b> Bài tốn: Viết chương trình nhập N số ngun </b>


<b>từ bàn phím và in ra màn hình số nhỏ nhất </b>
<b>và số lớn nhất.</b>


<i>Em hãy nêu </i>
<i>thuật tốn để tìm </i>


<i>số nhỏ nhất và </i>
<i>số lớn nhất trong </i>



<i>dãy số?</i>


<b>THUẬT TỐN</b>


• <b><sub>B1: max:=a; min:=a; i:=1;</sub></b>
• <b><sub>B2: i:= i+1;</sub></b>


• <b><sub>B3: Nếu i > n, chuyển đến </sub></b>


<b>bước 5.</b>


• <b>B4: Nếu a<sub>i </sub>> max thì max:=a<sub>i</sub>; </b>


<b>a<sub>i </sub>< min thì </b>


<b>min :=a<sub>i</sub>.Quay lai bước 2.</b>


</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

<b>Program vd1;</b>


<b>Uses crt;</b>


<b>Var</b>


<b>i, n, Max, Min:</b> <b> integer ;</b>
<b>A: Array[1..100] of Integer ;</b>


<b>BEGIN</b>


<b>Clrscr;</b>



<b>write(‘ Nhap so phan tu cua day so: n= ’) ; readln(n) ;</b>


<b>For i := 1 to n do </b>
<b>Begin</b>


<b> write(‘ Nhap so thu ‘,i,’ : ‘) ;</b>
<b> readln(A[i]) ;</b>


<b>End;</b>


<b>Max:=A[1];</b>


<b> For i := 2 to n do </b>


<b>If A[i]>Max Then Max := A[i];</b>


<b> Writeln(‘ So lon nhat la max = ', Max) ;</b>
<b> Min:=A[1];</b>


<b> For i := 2 to n do </b>


<b>If A[i]<Min Then Min := A[i];</b>


<b> Writeln(‘ So nho nhat la Min = ', Min) ;</b>
<b> Readln ;</b>


<b>END.</b>


<i><b>Khai báo biến mảng</b></i>



<i><b>Nhập giá trị cho mảng</b></i>


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

<b>Nhap so phan tu cua day so: n= </b> <b>7</b>


<b>Nhap so thu 1 : </b> <b>7</b>


<b>Nhap so thu 2 : </b> <b>9</b>


<b>Nhap so thu 3 : </b> <b>4</b>


<b>Nhap so thu 4 : </b> <b>6</b>


<b>Nhap so thu 5 : </b> <b>9</b>


<b>Nhap so thu 6 : </b> <b>8</b>


<b>Nhap so thu 7 : </b> <b>5</b>


<b>So lon nhat la Max = 9</b>
<b>So nho nhat la Min = 4</b>


</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

<b>Củng cố</b>



</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

<b>Bài tập củng cố</b>



<i><b>Bài 1: </b></i><b>Em hãy chọn đáp án đúng: </b>


A. Dữ liệu kiểu mảng là tập hợp các phần tử
khơng có thứ tự và mọi phần tử có cùng một
kiểu dữ liệu.



B. Dữ liệu kiểu mảng là tập hợp các phần tử có
thứ tự và mỗi một phần tử trong mảng có thể
có các kiểu dữ liệu khác nhau .


C. Dữ liệu kiểu mảng là tập hợp các phần tử có
thứ tự và mọi phần tử có cùng một kiểu dữ


liệu.


</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>

b) Var X: Array[3.. 4.8] of Integer;
c) Var X: Array[10 .. 1] of Integer;
d) Var X: Array[4 .. 10] of Real;


a) Var X: Array[10 , 13] of Real;


<i><b>Bài 2:</b></i><b> Cách khai báo biến mảng sau đây đúng hay sai? </b>
<b>Khoanh tròn vào chỗ sai (nếu có). </b>


a) Sửa dấu , thành dấu ..
b) Sửa 4.8 thành số nguyên


c) Chỉ số cuối phải >= chỉ số đầu
d) Đúng


<b>Bài 9:</b>



<b>Củng cố</b>



</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

<b>V</b>

<b>A</b>

<b>R</b>




<b>R</b>

<b>E A D</b>



<b>R</b>

<b>E A L</b>



<b>M</b>

<b>A</b>

<b>X</b>



<b>N G U</b>

<b>Y</b>

<b>Ê N</b>



<b>1</b>
<b>2</b>
<b>3</b>
<b>4</b>
<b>5</b>


<i><b>Có 3 chữ cái: Là từ khóa để khai báo biến </b></i>
<i><b>trong chương trình Pascal?</b></i>


<i><b>Có 4 chữ cái: Là câu lệnh trong chương trình Pascal </b></i>
<i><b>dùng để dừng chương trình chờ ta nhập giá trị cho biến?</b></i>


<i><b>Có 4 chữ cái: Là từ khóa trong chương trình Pascal </b></i>
<i><b>dùng để thể hiện những biến kiểu thực?</b></i>


<i><b>Có 3 chữ cái: Là tên của hàm tìm giá trị lớn nhất?</b></i>


<i><b>Có 6 chữ cái: Chỉ số đầu, chỉ số cuối trong khai báo mảng</b></i>
<i><b>Thường là những số……….?</b></i>


</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

<i>- Học bài cũ</i>




<i>- Tìm hiểu thuật tốn tìm giá trị lớn nhất, </i>


<i>nhỏ nhất của dãy số (xem lại ví dụ 6 trang </i>


<i>43 SGK)</i>



<i>- Về nhà làm các bài tập 2, 4, 5 trang 79 </i>


<i>SGK</i>



<b>Bài 9:</b>



HƯỚNG DẪN VỀ NHÀ



</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

Tiết học kết thúc



</div>

<!--links-->

×