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

Chia sẻ bởi lê thị mãi em | Ngày 24/10/2018 | 31

Chia sẻ tài liệu: Bài 9. Làm việc với dãy số thuộc Tin học 8

Nội dung tài liệu:

Viết chương trình nhập vào điểm môn tin của n học sinh. In ra màn hình điểm số cao nhất.
Input: Điểm của N hs.
Output: Điểm số cao nhất.
Var diem1, diem2, diem 3,…, diemN: real;
…..
Read(diem1);
Read(diem2);
…..
Read(diemN);
Vậy có cách nào để thay thế n biến ở trên bởi một biến duy nhất hay không?
Và thay thế n lần câu lệnh nhập ở trên bởi một câu lệnh duy nhất hay không?
BÀI 9: LÀM VIỆC VỚI DÃY SỐ
Dãy số và biến mảng
Ví dụ về biến mảng
Tìm giá trị lớn nhất và nhỏ nhất của dãy số
Var diem1, diem2, diem 3,…, diemN: real;
…..
Read(diem1);
Read(diem2);
…..
Read(diemN);
1. Dãy số và biến mảng
Chương trình trở nên càng dài.
Việc quản lí các biến càng khó
khăn
Nhằm lẫn và sai sót
1. Dãy số và biến mảng
Diem2
Diem1
Diem3
Diem4
Diem N
Chỉ số
Diem
1 2 3 4 N
Mảng
Dữ liệu kiểu mảng
Phần tử của mảng
1. 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, gọi là kiểu của phần tử.
Mỗi phần tử được xác định bởi chỉ số
Một biến được khai báo có kiểu dữ liệu là kiểu mảng được gọi là biến mảng.
Giá trị của biến mảng là một mảng, tức là một dãy số.
Mỗi số là giá trị của từng phần tử trong mảng.
Diem
1 2 3 4 N
Chỉ số
Trong pascal mảng được khai báo như sau:
tên mảng: array[..]of ;
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, chỉ số cuối: là các giá trị số nguyên.
Chỉ số đầu phải <= chỉ số cuối.
Kiểu dữ liệu có thể là Real hoặc Integer.
a. Khai báo biến mảng:
2. Ví dụ về biến mảng

Var Diem : array [ 1 .. 40 ] of real ;
Từ khóa
Tên mảng
Chỉ số đầu
Chỉ số cuối
Kiểu dữ liệu
2. Ví dụ về biến mảng
Ví dụ 1: Khai báo biến mảng Diem gồm 40 phần tử.
a. Khai báo biến mảng:
tên mảng: array[..]of ;
2. Ví dụ về biến mảng
Var a: array [1..100] of integer;
Lợi ích của việc sử dụng biến mảng:
Có thể thay rất nhiều câu lệnh nhập và in dữ liệu ra màn hình bằng một câu lệnh lặp.
Có thể sử dụng biến mảng một cách rất hiệu quả trong xử lí dữ liệu..

a. Khai báo biến mảng:
Vd2: khai báo biến mảng a gồm 100 phần tử, mỗi phần tử là biến có kiểu số nguyên
2. Ví dụ về biến mảng
a. Khai báo biến mảng:
Lợi ích
Có thể thay rất nhiều câu lệnh nhập và in dữ liệu ra màn hình bằng một câu lệnh lặp.
Lợi ích
Có thể sử dụng biến mảng một cách rất hiệu quả trong xử lí dữ liệu..
2. Ví dụ về biến mảng
a. Khai báo biến mảng:
b. Tham chiếu đến phần tử của mảng:
a. Khai báo biến mảng:
2. Ví dụ về biến mảng
Tên mảng[chỉ số phần tử]
Vd: Var Diem: array [1..40] of real;
Diem[1] =17
Diem[4] =10
1 2 3 4 …. 40
Diem
Chỉ số
c. Nhập giá trị cho biến mảng:
b. Tham chiếu đến phần tử của mảng:
a. Khai báo biến mảng:
2. Ví dụ về biến mảng
Gán trực tiếp bằng lệnh gán
vd: Diem[1]:=8;
Gán giá trị bằng cách nhập từ bàn phím, sử dụng lệnh read( ) hoặc readln( )
In giá trị của các phần tử của mảng, sử dụng lệnh write( ) hoặc writeln( )
Vd: For i:=1 to 40 do writeln(diem[i]);
a. Khai báo biến mảng:
b. Tham chiếu đến phần tử của mảng:
c. Nhập giá trị cho biến mảng:
2. Ví dụ về biến mảng
Input: Dãy A các số a1,a2,…,an(n>=1).
Output: Giá trị max, min =max, min{a1,a2,…,an}.

Ý tưởng
Khai báo biến N để nhập các số nguyên sẽ được nhập vào từ bàn phím.
Sau đó khai báo N biến lưu các số được nhập vào như là phần tử của một biến mảng A
Khai báo biến i làm biến đếm cho các lệnh lặp và biến max để lưu số lớn nhất, Min để lưu số nhỏ nhất.
3.Tìm giá trị lớn nhất và nhỏ nhất của dãy số
THUẬT TOÁN
B1: max <- a1; min<- i<- 1;
B2: i<- i+1;
B3: Nếu i > n, chuyển đến bước 5.
B4: Nếu ai > max thì max<- ai; ai < min thì
min <- ai.quay lai bước 2.
B5: Kết thúc thuật toán.
3.Tìm giá trị lớn nhất và nhỏ nhất của dãy số
Program vd1;
Uses crt;
Var
i, n, Max, Min: integer ;
A: array[1..100] of Integer ;
BEGIN
Clrscr;
write(` Hay nhap do dai cua day so, N = `) ; readln(n) ;
writeln (` Nhap cac phan tu cua day so: `) ;
For i := 1 to n do
Begin
write(` a[`,i,`]=`) ; readln(a[i]) ;
End;
Max:=A[1]; Min:=A[1];
For i := 2 to n do
begin
If Max If Min>a[i] Then Min := A[i];
End;
Writeln(` So lon nhat la max = `, Max) ;
Writeln(` So nho nhat la Min = `, Min) ;
Readln ;
END.
Khai báo biến mảng
Nh?p v�o bi?n m?ng
Tỡm s? l?n nh?t v� s? nh? nh?t
Program vd1;
Uses crt;
Var i, n, Max, Min: integer ;
A: Array[1..100] of Integer ;
BEGIN
Clrscr;
write(` Nhap so phan tu cua day so: n= `) ; readln(n) ;
writeln (` Nhap cac phan tu cua day so: `) ;
For i := 1 to n do
Begin
write(` Nhap so thu `,i,` : `) ;
readln(A[i]) ;
End;
Max:=A[1]; Min:=A[1]; {cho max,min b?ng ph?n t? d?u tiờn}
For i := 2 to n do {so max,min v?i cỏc ph?n t? khỏc c?a dóy}
begin
If Max {n?u cũn ph?n t? n�o l?n hon max thỡ thay max b?ng ph?n t? dú}
If Min>a[i] Then Min := A[i];
{n?u cũn ph?n t? n�o nh? hon min thỡ thay min b?ng ph?n t? dú}
End;
Writeln(` So lon nhat la max = `, Max) ;
Writeln(` So nho nhat la Min = `, Min) ;
Readln ;
END.










h
Chuong trỡnh ch?y v� cho k?t qu? nhu sau:
Nhap so phan tu cua day so: n= 7
Nhap cac phan tu cua day so :
a[2]= 1
a[3]= 2
a[4]= 9
a[5]= 4
a[6]= 66
a[7]= 8
So lon nhat la Max = 9
So nho nhat la Min = 1
a[1]= 5
* 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ẻ: lê thị mãi em
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)