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
* 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)