Tin 11 Mang mot chieu

(Bài giảng chưa được thẩm định)
Nguồn:
Người gửi: Lê Đình Dũng
Ngày gửi: 15h:41' 13-09-2012
Dung lượng: 2.6 MB
Số lượt tải: 431
Số lượt thích: 0 người

Các thầy cô giáo và các em!
Chương IV kiểu dữ liệu có cấu trúc
Bài 11 (Tiết 2)
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.
Cách tham chiếu đến phần tử của mảng:

? Mảng được đặt tên và mỗi phần tử của nó có một chỉ số:
? Số phần tử của mảng:
? Kiểu dữ liệu của các phần tử:
1. Khái niệm
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 :;
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.
Program Tinh_Tong_Mang;
Uses crt;
Var
A: Array[1..100] of integer;
i, n, S: integer;

BEGIN
Clrscr;
write(` Nhap so phan tu cho mang : `) ;Readln(n) ;
For i := 1 to n do
Begin
write(` Nhap phan tu thu `,i,` : `) ;
Readln(A[i]) ;
End;
S := 0 ;
For i := 1 to n do
If A[i] mod 2 = 0 Then
S := S + A[i];

Writeln(` Tong cac so chan co trong mang la:`, S) ;
Readln ;
END.
Khai b¸o m¶ng 1 chiÒu
Nhập mảng 1 chiều
Tính tổng
Tổng các phần tử thoả mãn điều kiện
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ị:
Làm bài tập sô 3, 4, 5, 6 SGK trang 79
Chuẩn bị bài thực hành số 3 SGK trang 63
Bài tập về nhà:
Chúc các em học sinh chăm ngoan, học giỏi !