Bài 9. Làm việc với dãy số
Chia sẻ bởi Nguyễn Văn Trị |
Ngày 24/10/2018 |
47
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:
Khi kiểm tra 5 học sinh. Kết quả kiểm tra được ghi lại như sau:
Dãy số
Với dãy số này, Gv có thể thực hiện những phép toán nào ?
Viết chương trình tính Điểm trung bình cộng của 5 điểm trên ?
Với dãy số ta có thể :
+ Tính tổng
+ Tính Trung bình cộng
+ Tìm số lớn nhất
+ Tìm số nhỏ nhất
+ Sắp xếp tăng dần hoặc giảm dần.....
Chương trình tính điểm TB.
Ta cần khai báo mấy biến ?
Kiểu dữ liệu là gì ?
Viết chương trình tính TBC của 30 con điểm ?
Em có nhận xét gì về
+ Lệnh khai báo biến ?
+ Lệnh nhập biến ?
+ Lệnh tính TB cộng ?
Lệnh khai báo biến dài => Chương trình dài
Lệnh nhập dữ liệu dài => Chương trình dài
Lệnh tính TB cũng dài => Dễ nhầm lẫn, sai sót khi viết
Để giúp giải quyết các vấn đề trên, mọi NNLT đều có
Một kiểu dữ liệu được gọi là Kiểu mảng
+ Cho phép khai báo ngắn gọn hơn chỉ bằng 1 lệnh:
Var Diem : Array[1..30] of Real;
Cho phép viết lệnh nhập Dãy số nhanh hơn chỉ bằng 1 lệnh:
For i:=1 to 30 do Readln(Diem[i]);
Cho phép viết lệnh xử lý Dãy số gọn, nhanh hơn:
For i:=1 to 30 do S:=S+Diem[i];
Kiểu mảng ?
0
- Biến là ô nhớ đã được đặt tên, khi được khai báo bằng lệnh Var, máy sẽ cung cấp cho ta các ô nhớ để lưu giữ giá trị
Var i : integer;
i
Var Diem1, Diem2, Diem3 : Real;
0.0
0.0
0.0
Diem1
Diem2
Diem3
Để lưu giữ một dãy số, ta cần có một mảng các ô nhớ. Ví dụ dưới đây là một mảng 11 ô nhớ (11 biến) có cùng 1 tên: Diem
Biến i
Mảng
Diem
Diem
Diem
Diem
Diem
Diem
Chỉ số
1 2 3 4 5 6 7 ....... ....... k
Dữ liệu kiểu Mảng là một tập hợp hữu hạn các ô nhớ
có cùng tên, có cùng kiểu dữ liệu, có thứ tự,. Các ô nhớ được
đánh số thứ tự (chỉ số) để phân biệt. Mỗi ô nhớ được gọi là 1
phần tử của mảng.
- Khi khai báo 1 biến có kiểu Mảng, biến đó gọi là biến mảng.
Biến mảng có thể lưu giữ được 1 dãy số, mỗi số được lưu
trong 1 ô nhớ.
2. Ví dụ về biến Mảng
a) Khai báo biến mảng.
Trong đó:
+ Chỉ số đầu và chỉ số cuối là 2 số nguyên thoả mãn: chỉ số đầu <= chỉ số cuối
+ Kiểu dữ liệu: Integer hoặc Real
Ví dụ: Để lưu trữ 30 con điểm ta khai báo Var Diem : array[1..30] of Real;
- Khi đó:
+Tên biến mảng là : Diem
+ Biến Diem có kiểu dữ liệu là: 1 mảng 30 số thực (array[1…30] of Real)
+Mảng có 30 phần tử: Diem[1]…Diem[30]
+Mỗi phần tử có kiểu Real
+Giá trị của biến Diem là 1 dãy 30 số thực
Diem
Diem[1]
Diem[2]
Diem[3]
Diem[4]
Diem[29]
Diem[30]
Chỉ số
1 2 3 4 5 6 7 ....... ....... 29 30
Tên các phần tử
- Khai báo các biến mảng để lưu giữ:
a) chiều cao của 50 học sinh
b) Cân nặng của 30 học sinh;
c) Tuổi của 30 học sinh;
Hãy cho biết
+ Tên biến mảng ?
+ Kiểu dữ liệu của biến mảng
+ Số phần tử
+ Kiểu của mỗi phần tử
+ Giá trị của biến mảng trong mỗi ví dụ trên.
Var Chieucao : array[1..50] of Real;
Var Chieucao : array[1..30] of Real;
Var Chieucao : array[1..30] of integer
b) Nhập dữ liệu cho biến mảng
- Ta dùng 1 vòng lặp để nhập dữ liệu cho tất cả các phần tử của mảng.
For i:= to Do Read();
Ví dụ: For i := 1 to 30 do Read(Diem[i]);
- Thường dùng 1 vòng For để xuất dữ liệu của tất cả phần tử mảng
For i:= to Do Write();
Ví dụ: For i := 1 to 30 do Write(Diem[i]);
- Ta cũng có thể thay đổi giá trị cho 1 vài phần tử đơn lẻ bằng lệnh gán: Diem[1]:= 7; Diem[2]:=9;…..
c) Xuất dữ liệu từ biến mảng.
c) Xử lý:
Ta có thể nhập, xuất, gán giá trị, tính toán trên các phần tử của mảng như những biến thông thường.
For i:=1 to 30 do if diem[i]>max then max :=Diem[i];
Nhập:
Xuất:
Xử lí:
For i:=1 to 30 Do Readln( Diem[i] );
For i:=1 to 30 Do Write( Diem[i] );
For i:=1 to 30 do if diem[i]>=8 then Write( diem[i] );
For i:=1 to 30 do diem[i] :=1;
For i:=1 to 30 do S :=S+diem[i];
In giá trị 30 phần tử ra màn hình
Chỉ in phần tử có giá trị >=8
Gán 1 cho 30 phần tử
Tính tổng các phần tử
Dãy số
Với dãy số này, Gv có thể thực hiện những phép toán nào ?
Viết chương trình tính Điểm trung bình cộng của 5 điểm trên ?
Với dãy số ta có thể :
+ Tính tổng
+ Tính Trung bình cộng
+ Tìm số lớn nhất
+ Tìm số nhỏ nhất
+ Sắp xếp tăng dần hoặc giảm dần.....
Chương trình tính điểm TB.
Ta cần khai báo mấy biến ?
Kiểu dữ liệu là gì ?
Viết chương trình tính TBC của 30 con điểm ?
Em có nhận xét gì về
+ Lệnh khai báo biến ?
+ Lệnh nhập biến ?
+ Lệnh tính TB cộng ?
Lệnh khai báo biến dài => Chương trình dài
Lệnh nhập dữ liệu dài => Chương trình dài
Lệnh tính TB cũng dài => Dễ nhầm lẫn, sai sót khi viết
Để giúp giải quyết các vấn đề trên, mọi NNLT đều có
Một kiểu dữ liệu được gọi là Kiểu mảng
+ Cho phép khai báo ngắn gọn hơn chỉ bằng 1 lệnh:
Var Diem : Array[1..30] of Real;
Cho phép viết lệnh nhập Dãy số nhanh hơn chỉ bằng 1 lệnh:
For i:=1 to 30 do Readln(Diem[i]);
Cho phép viết lệnh xử lý Dãy số gọn, nhanh hơn:
For i:=1 to 30 do S:=S+Diem[i];
Kiểu mảng ?
0
- Biến là ô nhớ đã được đặt tên, khi được khai báo bằng lệnh Var, máy sẽ cung cấp cho ta các ô nhớ để lưu giữ giá trị
Var i : integer;
i
Var Diem1, Diem2, Diem3 : Real;
0.0
0.0
0.0
Diem1
Diem2
Diem3
Để lưu giữ một dãy số, ta cần có một mảng các ô nhớ. Ví dụ dưới đây là một mảng 11 ô nhớ (11 biến) có cùng 1 tên: Diem
Biến i
Mảng
Diem
Diem
Diem
Diem
Diem
Diem
Chỉ số
1 2 3 4 5 6 7 ....... ....... k
Dữ liệu kiểu Mảng là một tập hợp hữu hạn các ô nhớ
có cùng tên, có cùng kiểu dữ liệu, có thứ tự,. Các ô nhớ được
đánh số thứ tự (chỉ số) để phân biệt. Mỗi ô nhớ được gọi là 1
phần tử của mảng.
- Khi khai báo 1 biến có kiểu Mảng, biến đó gọi là biến mảng.
Biến mảng có thể lưu giữ được 1 dãy số, mỗi số được lưu
trong 1 ô nhớ.
2. Ví dụ về biến Mảng
a) Khai báo biến mảng.
Trong đó:
+ Chỉ số đầu và chỉ số cuối là 2 số nguyên thoả mãn: chỉ số đầu <= chỉ số cuối
+ Kiểu dữ liệu: Integer hoặc Real
Ví dụ: Để lưu trữ 30 con điểm ta khai báo Var Diem : array[1..30] of Real;
- Khi đó:
+Tên biến mảng là : Diem
+ Biến Diem có kiểu dữ liệu là: 1 mảng 30 số thực (array[1…30] of Real)
+Mảng có 30 phần tử: Diem[1]…Diem[30]
+Mỗi phần tử có kiểu Real
+Giá trị của biến Diem là 1 dãy 30 số thực
Diem
Diem[1]
Diem[2]
Diem[3]
Diem[4]
Diem[29]
Diem[30]
Chỉ số
1 2 3 4 5 6 7 ....... ....... 29 30
Tên các phần tử
- Khai báo các biến mảng để lưu giữ:
a) chiều cao của 50 học sinh
b) Cân nặng của 30 học sinh;
c) Tuổi của 30 học sinh;
Hãy cho biết
+ Tên biến mảng ?
+ Kiểu dữ liệu của biến mảng
+ Số phần tử
+ Kiểu của mỗi phần tử
+ Giá trị của biến mảng trong mỗi ví dụ trên.
Var Chieucao : array[1..50] of Real;
Var Chieucao : array[1..30] of Real;
Var Chieucao : array[1..30] of integer
b) Nhập dữ liệu cho biến mảng
- Ta dùng 1 vòng lặp để nhập dữ liệu cho tất cả các phần tử của mảng.
For i:=
Ví dụ: For i := 1 to 30 do Read(Diem[i]);
- Thường dùng 1 vòng For để xuất dữ liệu của tất cả phần tử mảng
For i:=
Ví dụ: For i := 1 to 30 do Write(Diem[i]);
- Ta cũng có thể thay đổi giá trị cho 1 vài phần tử đơn lẻ bằng lệnh gán: Diem[1]:= 7; Diem[2]:=9;…..
c) Xuất dữ liệu từ biến mảng.
c) Xử lý:
Ta có thể nhập, xuất, gán giá trị, tính toán trên các phần tử của mảng như những biến thông thường.
For i:=1 to 30 do if diem[i]>max then max :=Diem[i];
Nhập:
Xuất:
Xử lí:
For i:=1 to 30 Do Readln( Diem[i] );
For i:=1 to 30 Do Write( Diem[i] );
For i:=1 to 30 do if diem[i]>=8 then Write( diem[i] );
For i:=1 to 30 do diem[i] :=1;
For i:=1 to 30 do S :=S+diem[i];
In giá trị 30 phần tử ra màn hình
Chỉ in phần tử có giá trị >=8
Gán 1 cho 30 phần tử
Tính tổng các phần tử
* 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ẻ: Nguyễn Văn Trị
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)