Làm việc với dãy số

Download Report

Transcript Làm việc với dãy số

Diem1 Diem2
8
6
Diem3
Diem4
7
5
Diemk
…..
10
Diem1 Diem2 Diem3 Diem4
Điểm
Chỉ số
8
1
6
2
7
3
Diemk
………
5
4
…….
Mảng
10
k
I. Dãy số và biến
mảng:
- Dữ liệu kiểu mảng là một tập hợp hữu
hạn các phần tử có thứ tự, mọi phần tử
đều có cùng một kiểu dữ liệu (kiểu số
nguyên và kiểu số thực).
- Biến mảng là biến có dữ liệu kiểu mảng
- Mảng là giá trị của biến mảng.
Các phần tử trong mảng
Diem1 Diem2 Diem3 Diem4
Điểm
Chỉ số
8
1
6
2
7
3
Diemk
………
5
4
…….
Mảng
Dữ liệu kiểu mảng
10
k
I. Dãy số và biến
mảng:
II. Ví dụ về biến
mảng:
a. Khai báo biến
mảng:
- Cú pháp khai báo biến mảng:
<Tên mảng> : array[<chỉ số đầu> .. <chỉ
số cuối>] of <kiểu dữ liệu>
-Trong đó:
+ Tên mảng do người dùng đặt.
+ Array, of là từ khóa của chương trình.
+ Chỉ số đầu phải <= chỉ số cuối, chỉ số
đầu và chỉ số cuối phải là số nguyên
+ Giữa hai chỉ số là ..
+ Kiểu dữ liệu có thể là số nguyên hoặc
số thực.
I. Dãy số và biến
mảng:
Tên biến
mảng
Chỉ số
đầu
Chỉ số
cuối
Kiểu dữ
liệu của
mảng
II. Ví dụ về biến
mảng:
Ví dụ:
a. Khai báo biến
mảng:
Var Chieucao: array [1..50] of real;
Var Tuoi: array [21..80] of integer;
Ví dụ:
Khai báo một mảng gồm 100 phần tử
M,N có kiểu số thực
Var M, N: array [1..100] of real;
I. Dãy số và biến
mảng:
II. Ví dụ về biến
mảng:
a. Khai báo biến
mảng:
b. Truy cập mảng:
- Để gọi tên từng phần tử sử dụng:
Tên biến mảng [chỉ số phần tử]
VD: Diem[1]phần tử thứ 1
Diem[5] phần tử thứ 5
Ví dụ:
Var DToan: array[1..50] of real;
Xác định mảng có bao nhiêu phần tử,
các phần tử có tên như thế nào?
• Mảng gồm 50 phần tử.
• Các phần tử có tên từ DToan[1],
DToan[2], DToan[3],..,DToan[50]
I. Dãy số và biến
mảng:
II. Ví dụ về biến
mảng:
a. Khai báo biến
mảng:
b. Truy cập mảng:
c. Nhập giá trị cho
biến mảng:
Có hai cách gán giá trị:
+ Gán trực tiếp: Diem[1]:=8, Diem[2]:=5
+ Gán bằng cách nhập từ bàn phím: sử
dụng lệnh readln.
VD:
For i:=1 to 50 do
Begin
Write(‘So thu nhat: ’);
Readln(Diem[i]);
End;
I. Dãy số và biến
mảng:
II. Ví dụ về biến
mảng:
a. Khai báo biến
mảng:
b. Truy cập mảng:
c. Nhập giá trị cho
biến mảng:
Write(‘Nhap vo diem
HS thu 1: ‘);
Readln(diem1);
Write(‘Nhap vo diem
HS thu 2: ‘);
Readln(diem2);
Write(‘Nhap vo diem
HS thu 3: ‘);
Readln(diem3);
…
Write(‘Nhap vo diem
HS thu k: ‘);
Readln(diemk);
For i:=1 to k do
begin
write(‘Nhap vao
diem HS thu ‘, i ,’ : ‘);
readln( diem[i] );
end;
Cùng tìm thuật toán
Tìm ra
lớn
Ồquả
! Quả
nhất
này
lớnrồi
Quả này
hơn bé hơn, bỏ
Quả này
Quả này
lớn nhất
Quả này bé mới lớn
hơn, bỏ qua nhất ?
qua
MAX
7.0
8.0
4.5
9.5
6.0
I. Dãy số và biến
mảng:
II. Ví dụ về biến
mảng:
a. Khai báo biến
mảng:
b. Truy cập mảng:
c. Nhập giá trị cho
biến mảng:
III. Tìm giá trị
lớn nhất và nhỏ
nhất của dãy số:
Input:
Số nguyên N
N số nguyên a1, a2, …, an (n ≥ 1).
Output:
Giá trị lớn nhất và nhỏ nhất
trong dãy a1, a2, …, an.
I. Dãy số và biến
mảng:
II. Ví dụ về biến
mảng:
Thuật toán:
Bước 1: Nhập N và dãy a1, a2, …,
a. Khai báo biến
mảng:
an.
b. Truy cập mảng:
Bước 2: MAX ← a1, i ← 2.
c. Nhập giá trị cho
biến mảng:
Bước 3: Nếu i > N thì đưa ra giá trị
III. Tìm giá trị
lớn nhất và nhỏ
nhất của dãy số:
MAX rồi kết thúc thuật toán.
Bước 4: Nếu ai > MAX, MAX ← ai.
Bước 5: i ← i + 1. Quay lại bước 3.
Program vd1;
Var
A: Array[1..100] of real;
i,n: integer;
Max,min: real;
Khai báo biến mảng
BEGIN
write(‘ Nhap vao so hoc sinh : ’) ;
readln(n) ;
For i := 1 to n do
Begin
write(‘ Nhap diem Hs thu ‘,i,’ : ‘) ;
readln(A[i]) ;
End;
Max:=A[1];
For i := 2 to n do
If A[i]>Max Then Max := A[i];
Writeln(‘ Diem lon nhat la ', Max:5:1) ;
Min:=A[1];
For i := 2 to n do
If A[i]<Min Then Min := A[i];
Writeln(‘ Diem nho nhat la ', Min:5:1) ;
Readln ;
END.
Nhập vào biến mảng
Tìm số lớn nhất và
số nhỏ nhất
Nhap vao so hoc sinh : 7
Nhap diem hs thu 1 : 7
Nhap diem hs thu 2 : 9
Nhap diem hs thu 3 : 4.5
Nhap diem hs thu 4 : 6
Nhap diem hs thu 5 :
9.5
Nhap diem hs thu 6 :
8
Nhap diem hs thu 7 :
5.5
Diem lon nhat la 9.5
Diem nho nhat la 4.5
Câu 1: Các khai báo biến mảng sau đây trong Pascal
đúng hay sai
a) Var X: Array[10, 13] of integer;
Sai
b) Var X: Array[5..10.5] of real;
Sai
c) Var X: Array[3.4..4.8] of integer;
Sai
d) Var X: Array[10.. 1] of integer;
Sai
e) Var X: Array[4..10] of real;
Đúng