Bài 11. Kiểu mảng
Chia sẻ bởi Nguyễn Thị Hạnh |
Ngày 10/05/2019 |
63
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:
Để nhập dãy số có 7 chữ số:
17 20 18 25 19 12 19 phải khai báo bao nhiêu biến?
Với dãy số có n số (n = 100) phải khai báo bao nhiêu biến?
Bài 11: Mảng một chiều
CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC
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
1 2 3 4 5 6 7
Trong đó:
Tên mảng : A.
Số phần tử của mảng: 7.
Ví dụ:
Kiểu dữ liệu của các phần tử: Kiểu nguyên.
1. Khái niệm
2. Khai báo mảng một chiều
* Cách 1: Khai báo gián tiếp
TYPE=array[ .. ] of ;
Var : ;
Ví dụ: TYPE Kmang = array[1..100] of integer;
Var A: Kmang;
Trong đó :
Type là từ khóa để định nghĩa một kiểu dữ liệu.
Chỉ số đầu, chỉ số cuối là các hằng hoặc các biểu thức nguyên
Chỉ số đầu Chỉ số cuối
Kiểu phần tử là kiểu dữ liệu của các phần tử trong mảng.
* Cỏch 2: Khai bỏo tr?c ti?p
Var : array[ .. ] of ;
Var A,B : array[1..1000] of real;
Vớ d?1:
Var t : array[1..100] of integer;
Cách 3: Const Nmax = 100;
Type MyArray = Array [1..Nmax] Of Integer;
Var a:MyArray;
Type MyArray = Array [1..Nmax] Of Integer;
Var a:MyArray;
Ví dụ 2: Khai báo mảng tối đa 100 số nguyên (chỉ số đầu là 1) Ta có các cách sau:
Cách 1: Var a: Array[1..100] Of Integer;
b: Array[1..100] Of real;
Cách 2: Const Nmax = 100;
Var a: Array[1..Nmax] Of integer;
b: Array[1..Nmax] Of real;
Trong ba cách khai báo ở ví dụ 2, thì cách nào tốt hơn?
Cách 2 và 3, giúp ta dễ dàng điều chỉnh kích thước của mảng
Vớ d?:
3. Cỏc thao tỏc x? lý trong m?ng m?t chi?u
a. Truy xuất đến một phần tử của mảng
[Chỉ số]
A[5] = 19
A
1 2 3 4 5 6 7
19
A
n
1. Nhập số phần tử của mảng (n).
Write(‘ Nhap so phan tu 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 so thu’ ,i, ’ : ’);
readln(A[i]);
end;
Các bước
Thể hiện trong pascal
b. Nhập mảng một chiều:
với n = 7
19
17
19
21
18
20
17
Ví dụ: Nhập dãy số A.
c. 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:
Các bước
Thể hiện trong pascal
* Đếm các phần tử trong mảng theo một điều kiện cho trước
dem :=0;
For i :=1 to n do
IF A[i] = 19 then dem:=dem+1;
D. Các thao tác xử lý khác
Ví dụ: Đếm số phần tử có giá trị là 19 trong dãy
Dem=0
7
6
5
4
3
2
1
i
0
0
0
0
1
1
2
19
19
+1
+1
Khai báo mảng một chiều
Nh?p m?ng m?t chi?u
D?m s? ph?n t? theo m?t di?u ki?n
Nhap vao so phan tu của day:
7
Nhap vào phan tu thu 1 :
17
Nhap vào phan tu thu 2 :
20
Nhap vào phan tu thu 3 :
18
Nhap vào phan tu thu 4 :
21
Nhap vào phan tu thu 5 :
19
Nhap vao phan tu thu 6 :
17
Nhap vao phan tu thu 7 :
19
So phan tu co gia tri 19 trong mang la: 2
Chuong trỡnh ch?y v cho k?t qu? nhu sau sau:
dem :=0;
For i :=1 to n do
IF A[i] = k then dem:=dem+1;
Ví dụ: Đếm số phần tử có khóa là k trong dãy
Các bước
Thể hiện trong pascal
1. Nhập vào khóa k
Write(‘Nhap vao khoa k: ‘)
Readln(k);
2. Đếm số phần tử có
khóa là k
* Tính tổng các phần tử trong mảng theo một đ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];
S=0
7
6
5
4
3
2
1
i
0
15
15
33
33
45
15 mod 3 = 0
18
+12
+18
12
15
+15
15
18 mod 3 = 0
12 mod 3 = 0
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 bi?n m?ng, ch? s? d?u, ch? s? cu?i, ki?u ph?n t?.
Tham chi?u d?n m?t ph?n t? c?a m?ng: Tờn bi?n m?ng[ch? s? ph?n t?]
? Nhi?u thao tỏc x? lý m?ng s? d?ng c?u trỳc FOR ..TO.. DO.
15 20 19 25 18 12 16
Var A:ARRAY[1..100] OF integer;
A[5] = 18
17 20 18 25 19 12 19 phải khai báo bao nhiêu biến?
Với dãy số có n số (n = 100) phải khai báo bao nhiêu biến?
Bài 11: Mảng một chiều
CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC
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
1 2 3 4 5 6 7
Trong đó:
Tên mảng : A.
Số phần tử của mảng: 7.
Ví dụ:
Kiểu dữ liệu của các phần tử: Kiểu nguyên.
1. Khái niệm
2. Khai báo mảng một chiều
* Cách 1: Khai báo gián tiếp
TYPE
Var
Ví dụ: TYPE Kmang = array[1..100] of integer;
Var A: Kmang;
Trong đó :
Type là từ khóa để định nghĩa một kiểu dữ liệu.
Chỉ số đầu, chỉ số cuối là các hằng hoặc các biểu thức nguyên
Chỉ số đầu Chỉ số cuối
Kiểu phần tử là kiểu dữ liệu của các phần tử trong mảng.
* Cỏch 2: Khai bỏo tr?c ti?p
Var
Var A,B : array[1..1000] of real;
Vớ d?1:
Var t : array[1..100] of integer;
Cách 3: Const Nmax = 100;
Type MyArray = Array [1..Nmax] Of Integer;
Var a:MyArray;
Type MyArray = Array [1..Nmax] Of Integer;
Var a:MyArray;
Ví dụ 2: Khai báo mảng tối đa 100 số nguyên (chỉ số đầu là 1) Ta có các cách sau:
Cách 1: Var a: Array[1..100] Of Integer;
b: Array[1..100] Of real;
Cách 2: Const Nmax = 100;
Var a: Array[1..Nmax] Of integer;
b: Array[1..Nmax] Of real;
Trong ba cách khai báo ở ví dụ 2, thì cách nào tốt hơn?
Cách 2 và 3, giúp ta dễ dàng điều chỉnh kích thước của mảng
Vớ d?:
3. Cỏc thao tỏc x? lý trong m?ng m?t chi?u
a. Truy xuất đến một phần tử của mảng
A[5] = 19
A
1 2 3 4 5 6 7
19
A
n
1. Nhập số phần tử của mảng (n).
Write(‘ Nhap so phan tu 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 so thu’ ,i, ’ : ’);
readln(A[i]);
end;
Các bước
Thể hiện trong pascal
b. Nhập mảng một chiều:
với n = 7
19
17
19
21
18
20
17
Ví dụ: Nhập dãy số A.
c. 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:
Các bước
Thể hiện trong pascal
* Đếm các phần tử trong mảng theo một điều kiện cho trước
dem :=0;
For i :=1 to n do
IF A[i] = 19 then dem:=dem+1;
D. Các thao tác xử lý khác
Ví dụ: Đếm số phần tử có giá trị là 19 trong dãy
Dem=0
7
6
5
4
3
2
1
i
0
0
0
0
1
1
2
19
19
+1
+1
Khai báo mảng một chiều
Nh?p m?ng m?t chi?u
D?m s? ph?n t? theo m?t di?u ki?n
Nhap vao so phan tu của day:
7
Nhap vào phan tu thu 1 :
17
Nhap vào phan tu thu 2 :
20
Nhap vào phan tu thu 3 :
18
Nhap vào phan tu thu 4 :
21
Nhap vào phan tu thu 5 :
19
Nhap vao phan tu thu 6 :
17
Nhap vao phan tu thu 7 :
19
So phan tu co gia tri 19 trong mang la: 2
Chuong trỡnh ch?y v cho k?t qu? nhu sau sau:
dem :=0;
For i :=1 to n do
IF A[i] = k then dem:=dem+1;
Ví dụ: Đếm số phần tử có khóa là k trong dãy
Các bước
Thể hiện trong pascal
1. Nhập vào khóa k
Write(‘Nhap vao khoa k: ‘)
Readln(k);
2. Đếm số phần tử có
khóa là k
* Tính tổng các phần tử trong mảng theo một đ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];
S=0
7
6
5
4
3
2
1
i
0
15
15
33
33
45
15 mod 3 = 0
18
+12
+18
12
15
+15
15
18 mod 3 = 0
12 mod 3 = 0
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 bi?n m?ng, ch? s? d?u, ch? s? cu?i, ki?u ph?n t?.
Tham chi?u d?n m?t ph?n t? c?a m?ng: Tờn bi?n m?ng[ch? s? ph?n t?]
? Nhi?u thao tỏc x? lý m?ng s? d?ng c?u trỳc FOR ..TO.. DO.
15 20 19 25 18 12 16
Var A:ARRAY[1..100] OF integer;
A[5] = 18
* 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 Thị Hạnh
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)