Bài 9. Làm việc với dãy số

Chia sẻ bởi Ngô Trọng Nguyên | Ngày 24/10/2018 | 28

Chia sẻ tài liệu: Bài 9. Làm việc với dãy số thuộc Tin học 8

Nội dung tài liệu:

Em thường nhìn thấy việc xếp hàng tập thể dục, xếp hàng để mua vé, xếp hàng vào lớp…
Vào lớp học
Tập thể dục
Sắp xếp công việc làm cho mọi hoạt động diễn ra một cách trật tự và nhanh chóng…
Trong lập trình cũng vậy nếu biết bố trí dữ liệu theo dãy, việc khai báo và xử lý dữ liệu trở nên đơn giản rất nhiều. Thay vì phải viết nhiều câu lệnh giống nhau, ta có thể dùng vài câu lệnh lặp và nhường lại phần lớn công việc cho máy tính thực hiện
Ví dụ 1: Để khảo sát mức độ phân hoá giàu của 1 địa phương, người ta đã tiến hành thu thập thông tin về thu nhập của từng hộ gia đình trong địa phương đó.
Thu nhap_TB := 0;
for i := 1 to 50 do
begin
write(‘Thu nhạp cua gia dinh thu ‘ , i); readln(a);
Thu nhap_TB := Thunhap_TB + a
end.
Thunhap_TB := Thunhap_TB/50;
for i := 1 to 50 do
begin
write(‘Thu nhạp cua gia dinh thu ‘ , i); readln(a);
write(‘Do lech so voi thu nhap TB cua ho ‘ ,i, ‘ la: ‘,a – Thunhap_TB)
end;

Nhập mức thu nhập cho 1 gia đình
Var Thunhap_1: real;
Readln(Thunhap_1);

Nhập mức thu nhập cho 2 gia đình

Var Thunhap_1, Thunhap_2: real;
Readln(Thunhap_1); Readln(Thunhap_2);
Vậy nhập và lưu thu nhập cho 50 gia đình thì sao?
Khai báo 50 biến:
Var Thunhap_1, Thunhap_2, Thunhap_3, …, Thunhap_50: Real;
Sử dụng 50 câu lệnh nhập:
Read(Thunhap_1); Read(Thunhap_2); Read(Thunhap_3); ….;Read(Thunhap_50);
Những hạn chế:
- Phải khai báo quá nhiều biến
Chương trình phải viết khá dài
Dễ nhầm lẫn giữa các biến khi viết chương trình
,
var
Thunhap_
1
Thunhap_
2
Thunhap_
,
,
3
,
Thunhap_
50
:
Real
;
........
……
Thunhap
Chỉ số
Với i chạy từ 1 đến 50: hãy nhập Thunhap_i;
Với i chạy từ 1 đến 50: hãy so sánh Thunhap_TB với Thunhap_i.
Khắc phục hạn chế:
- Lưu các biến có liên quan thành một dãy và đặt một tên chung.
- Đánh số thứ tự (chỉ số) cho các biến đó.
- Sử dụng câu lệnh lặp để xử lí dữ liệu.
8
9
7
10
Kiểu mảng
Read(Thunhap_1); Read(Thunhap_2); Read(Thunhap_3); ….;Readln(Thunhap_50);
A
i
1
2
3
4
5
6
Trong đó:
Tên mảng: A
Chỉ số: i
Số phần tử của mảng: 6
Kiểu dữ liệu của các phần tử: Kiểu số nguyên
Khi tham chiếu đến phần tử thứ i, ta viết A[i]
Ví dụ: A[5]=17
17
- Biến mảng:
+ Là biến có kiểu dữ liệu là kiểu mảng.
+ Giá trị của biến mảng là một mảng, tức là một dãy số (số nguyên hoặc số thực).
+ Mỗi số là giá trị của biến thành phần tương ứng.
Giá trị của mảng
Biến mảng
Để làm việc với các dãy số nguyên hay số thực, chúng ta phải khai báo biến mảng có kiểu tương ứng trong phần khai báo của chương trình.

Cách khai báo biến mảng trong ngôn ngữ lập trình như thế nào?
Chieucao
2 3 4 5 …. 50
Ta khai báo như sau:
Var chieucao: array[2..50] of Real;
Chỉ số
1.7
1.5
1.65
1.75
….
1.8
Ví dụ:
Var Diem: array[1..40] of integer;
? Em hãy khai báo mảng Diem gồm 40 phần tử thuộc kiểu dữ liệu số nguyên?
? Em hãy khai báo mảng Thunhap gồm 50 phần tử thuộc kiểu dữ liệu số thực?
Var Thunhap: array[1..50] of real;
Tên biến
Số lượng phần tử
Kiểu dữ liệu
Chỉ số đầu
Chỉ số cuối
Ví dụ 2: Thay vì khai báo các biến Thunhap_1, Thunhap_2, Thunhap_3… Cách khai báo đơn giản một biến mảng Thunhap trong ngôn ngữ Pascal như sau:

Var Thunhap: array[1..50] of real;
Câu lệnh trên có thể thay thế rất nhiều câu lệnh nhập và in ra màn hình bằng một lệnh lặp như sau:
For i: = 1 to 50 do readln(thunhap[i]);
để nhập mức thu nhập của các hộ gia đình
Để so sánh mức thu nhập của các hộ gia đình với 1 giá trị nào đó ta viết lệnh lặp:
For i: = 1 to 50 do
If Thunhap[i] > Thunhap_TB then
Writeln(‘ ho dan’,i,’ thu nhap tren trung binh’);
Sử dụng biến mảng và câu lệnh lặp giúp cho việc viết chương trình dễ dàng và ngắn gọn hơn.
Vậy việc sử dụng biến mảng và câu lệnh lặp có lợi ích gì?
Ví dụ 3:
Var DiemToan: array[1..50] of real;
Var DiemVan: array[1..50] of real;
Var DiemLi: array[1..50] of real;
hay
Var DiemToan, DiemVan, DiemLi: array[1..50] of real;
Hình 41
Khi một mảng được khai báo ta có thể làm việc với các phần tử của nó. Chẳng hạn, ta có thể gán giá trị cho các phần tử của mảng A bằng câu lệnh gán:
A[1] := 5; A[3] := 7;
A[4] := 5; A[5] := 8+m;
Hoặc nhập dữ liệu từ bàn phím bằng câu lệnh lặp:
for i:= 1 to 50 do readln(A[i]);
Việc gán giá trị, nhập giá trị và tính toán với các giá trị của một phần tử trong biến mảng được thực hiện thông qua chỉ số tương ứng của phần tử đó.
Lưu ý:
Kích thước của mảng phải được khai báo bằng một con số cụ thể
Var Thunhap: array[1..40] of real;
3 4 5 6 7
Cho mảng A chứa các giá trị sau:
Bài tập1:
- Xác định các giá trị của: A[1], A[3], A[5], A[10] ?
A[1]: không xác định
A[3]=2
A[5]=7
A[10]: không xác định
i
A
A[3]:=2;
A[4]:=5;
A[6]:=A[3]+A[4];
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ị, nhập giá trị và tính toán với các giá trị của một phần tử trong biến mảng và được thực hiện thông qua chỉ số tương ứng của phần tử đó.
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;
Cách khai báo biến mảng sau đây đúng hay sai? Khoanh tròn vào chỗ sai (nếu có).
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
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? Tại sao? Nếu sai thì sửa lại cho đúng?
Var N : Integer;
A: array [ 1 .. N ] of real ;
Câu lệnh trên không thể thực hiện được vì chỉ số cuối phải là 1 số xác định
Var N : Integer;
A: array [ 1 .. 100] of real ;
? Sử dụng biến mảng và câu lệnh lặp trong chương trình nhằm mục đích gì?
Sử dụng biến mảng và câu lệnh lặp giúp cho việc viết chương trình dễ dàng và ngắn gọn hơn.
? Dữ liệu kiểu mảng là gì?
- Dữ liệu kiểu mảng: Là một tập hợp hữu hạn các phần tử có thứ tự, mọi phần tử đều có cùng một kiểu dữ liệu.
Dữ liệu kiểu mảng là một tập hợp hữu hạn các phần tử có thứ tự mọi phần tử đều có cùng một kiểu dữ liệu.
Việc gán giá trị, nhập giá trị và tính toán với các giá trị của một phần tử trong biến mảng được thực hiện thông qua chỉ số tương ứng của phần tử đó.
Sử dụng biến mảng và câu lệnh lặp giúp cho việc viết chương trình dễ dàng và ngắn gọn hơn.
Ghi nhớ
- Học bài cũ.
- Tìm hiểu thuật toán tìm giá trị lớn nhất, nhỏ nhất của dãy số (xem lại ví dụ 6 trang 43 SGK)
- Về nhà làm các bài tập 2, 4, 5 trang 79 SGK
- Làm các bài tập 9.1, 9.2, 9.3, 9.7 ở sách bài tập.
HƯỚNG DẪN VỀ NHÀ
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Ngô Trọng Nguyên
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)