Bài 11. Kiểu mảng
Chia sẻ bởi Nguyªn V¨n Tµi |
Ngày 10/05/2019 |
48
Chia sẻ tài liệu: Bài 11. Kiểu mảng thuộc Tin học 11
Nội dung tài liệu:
Chương IV : kiểu dữ liệu có cấu trúc
Bài 11:
mảng một chiều
Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu.
? Mảng được đặt tên và mỗi phần tử của nó có một chỉ số.
? D? mụ t? m?ng 1 chi?u : c?n xỏc d?nh ki?u c?a cỏc ph?n t? v cỏch dỏnh s? cỏc ph?n t? c?a nú.
1. Khái niệm
mảng một chiều
Bài 11 :
* Với mảng 1 chiều, ta quan tâm đến :
Tên kiểu mảng 1 chiều
Số lượng phần tử
Kiểu dữ liệu của phần tử
Cách khai báo biến mảng
Cách tham chiếu đến phần tử.
* Ví dụ : 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 cả tuần và đếm số ngày có nhiệt độ lớn hơn nhiệt độ trung bình này ?
Bài 11 :
mảng một chiều
1. Khái niệm
- Chương trình 1 : Không sử dụng kiểu mảng ( SGK – 53, 54 )
- Chương trình 2 : Sử dụng kiểu mảng 1 chiều ( SGK – 54 )
Type Kmang1 = array [ 1.. Max ] of real ;
Var Nhietdo : Kmang1 ;
Cách 2 :
Var Nhietdo : array [ 1.. Max ] of real ;
2. Khai báo mảng một chiều trong PASCAL
* Cách 2: Khai báo gián tiếp
* Cách 1: Khai báo trực tiếp
VAR: ARRAY [ Kiểu chỉ số] of ;
TYPE= ARRAY [ Kiểu chỉ số] of ;
VAR:;
Bài 11 :
mảng một chiều
1. Khái niệm
Trong đó :
Type : là từ khoá dùng để định nghĩa kiểu dữ liệu
Array : là tên chuẩn để chỉ kiểu mảng.
Kiểu chỉ số : là đoạn số nguyên liên tục có dạng n1..n2 ( n1 < n2 )
Kiểu phần tử : là kiểu dữ liệu của các phần tử mảng.
Tham chiếu tới phần tử của mảng 1 chiều :
Tên biến mảng [ chỉ số ]
Ví dụ : Nhietdo [ 20] -> Tham chiếu đến nhiệt độ của ngày thứ 20 .
3. Các thao tác xử lí trong mảng một chiều
1. NhËp sè phÇn tö cña m¶ng (n).
Write(‘ Nhap gia tri cho n:’);
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(‘nhap phan tu thu’ ,i, ’ : ’);
Readln(A[i]);
end;
Các bước
Thể hiện bằng pascal
a. Nhập mảng một chiều
Ví dụ: Nhập số phần tử cho mảng (N phần tử)
b. In mảng một chiều
Writeln(‘ Mang vua nhap : ’);
For i:=1 to n do Write(A[i]:3);
- Th«ng b¸o
- In gi¸ trÞ cña c¸c phÇn tö
Ví dụ: Thực hiện in mảng vừa nhập.
c. Các thao tác xử lí trong mảng
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ử có trong mảng
Ví dụ 1: Tính tổng các phần tử trong mảng
S := 0;
For i := 1 to n do
S := S + A[i];
S = 130
c. Các thao tác xử lí trong mảng
* Tính tổng các phần tử trong mảng thoả mãn điều kiện cho trước
Ví dụ 2: 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];
S = 45
* Đế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
0
1
1
2
3
3
4
20
21
19
19
+1
+1
+1
+1
- Thuật toán tìm max
3
Người ta đặt 5 quả bóng có kích thước khác nhau trong hộp đã được đậy nắp như hình bên. Chỉ dùng tay hãy tìm ra quả bóng có kích thước lớn nhất .
Quả này lớn nhất
Quả này mới lớn nhất
ồ! Quả này lớn hơn
Tìm ra quả lớn nhất rồi!
Cùng tìm thuật toán
* Tìm phần tử lớn nhất của mảng.
- Thuật toán tìm Max:
Max := A[1];
For i :=1 To N Do
if A[ i ] > Max then
Max := A[i];
Đề bài:
Viết chương trình nhập vào mảng A gồm N phần tử có kiểu số nguyên.
+ Tính tổng các phần tử có giá trị chẵn trong mảng.
4. Bài tập vận dụng.
Câu hỏi trắc nghiệm : Chọn đáp án đúng
Câu 1 : Phát biểu nào dưới đây về kiểu mảng là phù hợp ?
a. Là 1 tập hợp các số nguyên c. Là 1 dãy hữu hạn các phần tử cùng kiểu
b. Độ dài tối đa của mảng là 255 d. Mảng không thể chứa ki tự.
Câu 2 : Thế nào là khai báo biến mảng gián tiếp ?
Khai báo biến mảng của các số nguyên
Khai báo biến mảng của các số thực
Khai báo biến mảng của các kí tự
Khai báo thông qua kiểu mảng đã có
Câu 3 : Cho khai báo mảng như sau :
Var A : array[ 0..10] of integer ;
Phương án nào dưới đây chỉ phần tử thứ 10 của mảng ?
a. A [10] b. A(10) c. A[9] d. A(9)
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
Các em chuẩn bị:
Nghiờn c?u vớ d? 1, 2 ( SGK - 56, 57 )
Lm cỏc bi t?p 3, 4, 5, 6 ( SGK - 79 )
Bài tập về nhà:
Bài 11:
mảng một chiều
Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu.
? Mảng được đặt tên và mỗi phần tử của nó có một chỉ số.
? D? mụ t? m?ng 1 chi?u : c?n xỏc d?nh ki?u c?a cỏc ph?n t? v cỏch dỏnh s? cỏc ph?n t? c?a nú.
1. Khái niệm
mảng một chiều
Bài 11 :
* Với mảng 1 chiều, ta quan tâm đến :
Tên kiểu mảng 1 chiều
Số lượng phần tử
Kiểu dữ liệu của phần tử
Cách khai báo biến mảng
Cách tham chiếu đến phần tử.
* Ví dụ : 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 cả tuần và đếm số ngày có nhiệt độ lớn hơn nhiệt độ trung bình này ?
Bài 11 :
mảng một chiều
1. Khái niệm
- Chương trình 1 : Không sử dụng kiểu mảng ( SGK – 53, 54 )
- Chương trình 2 : Sử dụng kiểu mảng 1 chiều ( SGK – 54 )
Type Kmang1 = array [ 1.. Max ] of real ;
Var Nhietdo : Kmang1 ;
Cách 2 :
Var Nhietdo : array [ 1.. Max ] of real ;
2. Khai báo mảng một chiều trong PASCAL
* Cách 2: Khai báo gián tiếp
* Cách 1: Khai báo trực tiếp
VAR
TYPE
VAR
Bài 11 :
mảng một chiều
1. Khái niệm
Trong đó :
Type : là từ khoá dùng để định nghĩa kiểu dữ liệu
Array : là tên chuẩn để chỉ kiểu mảng.
Kiểu chỉ số : là đoạn số nguyên liên tục có dạng n1..n2 ( n1 < n2 )
Kiểu phần tử : là kiểu dữ liệu của các phần tử mảng.
Tham chiếu tới phần tử của mảng 1 chiều :
Tên biến mảng [ chỉ số ]
Ví dụ : Nhietdo [ 20] -> Tham chiếu đến nhiệt độ của ngày thứ 20 .
3. Các thao tác xử lí trong mảng một chiều
1. NhËp sè phÇn tö cña m¶ng (n).
Write(‘ Nhap gia tri cho n:’);
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(‘nhap phan tu thu’ ,i, ’ : ’);
Readln(A[i]);
end;
Các bước
Thể hiện bằng pascal
a. Nhập mảng một chiều
Ví dụ: Nhập số phần tử cho mảng (N phần tử)
b. In mảng một chiều
Writeln(‘ Mang vua nhap : ’);
For i:=1 to n do Write(A[i]:3);
- Th«ng b¸o
- In gi¸ trÞ cña c¸c phÇn tö
Ví dụ: Thực hiện in mảng vừa nhập.
c. Các thao tác xử lí trong mảng
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ử có trong mảng
Ví dụ 1: Tính tổng các phần tử trong mảng
S := 0;
For i := 1 to n do
S := S + A[i];
S = 130
c. Các thao tác xử lí trong mảng
* Tính tổng các phần tử trong mảng thoả mãn điều kiện cho trước
Ví dụ 2: 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];
S = 45
* Đế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
0
1
1
2
3
3
4
20
21
19
19
+1
+1
+1
+1
- Thuật toán tìm max
3
Người ta đặt 5 quả bóng có kích thước khác nhau trong hộp đã được đậy nắp như hình bên. Chỉ dùng tay hãy tìm ra quả bóng có kích thước lớn nhất .
Quả này lớn nhất
Quả này mới lớn nhất
ồ! Quả này lớn hơn
Tìm ra quả lớn nhất rồi!
Cùng tìm thuật toán
* Tìm phần tử lớn nhất của mảng.
- Thuật toán tìm Max:
Max := A[1];
For i :=1 To N Do
if A[ i ] > Max then
Max := A[i];
Đề bài:
Viết chương trình nhập vào mảng A gồm N phần tử có kiểu số nguyên.
+ Tính tổng các phần tử có giá trị chẵn trong mảng.
4. Bài tập vận dụng.
Câu hỏi trắc nghiệm : Chọn đáp án đúng
Câu 1 : Phát biểu nào dưới đây về kiểu mảng là phù hợp ?
a. Là 1 tập hợp các số nguyên c. Là 1 dãy hữu hạn các phần tử cùng kiểu
b. Độ dài tối đa của mảng là 255 d. Mảng không thể chứa ki tự.
Câu 2 : Thế nào là khai báo biến mảng gián tiếp ?
Khai báo biến mảng của các số nguyên
Khai báo biến mảng của các số thực
Khai báo biến mảng của các kí tự
Khai báo thông qua kiểu mảng đã có
Câu 3 : Cho khai báo mảng như sau :
Var A : array[ 0..10] of integer ;
Phương án nào dưới đây chỉ phần tử thứ 10 của mảng ?
a. A [10] b. A(10) c. A[9] d. A(9)
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
Các em chuẩn bị:
Nghiờn c?u vớ d? 1, 2 ( SGK - 56, 57 )
Lm cỏc bi t?p 3, 4, 5, 6 ( SGK - 79 )
Bài tập 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ẻ: Nguyªn V¨n Tµi
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)