Bài 9. Làm việc với dãy số
Chia sẻ bởi Du Thi Yen |
Ngày 24/10/2018 |
28
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:
Giáo viên: DƯ THỊ YẾN
Bài 9: LÀM VIỆC VỚI DÃY SỐ
PHÒNG GIÁO DỤC & ĐÀO TẠO TIÊN PHƯỚC
TRƯỜNG TH &THCS TRẦN QuỐC ToẢN
- - - - - - - - - - - - - -
Làm việc với dãy số
Ví dụ:
Viết chương trình nhập điểm kiểm tra của các học sinh trong lớp.
- Nhập và lưu điểm
cho một học sinh
Write (‘Nhap diem= ‘); Readln(diem_1);
Khai báo 1 biến như sau:
Var diem_1: real;
- Nhập và lưu điểm cho 2
học sinh
Khai báo 2 biến như sau:
Var diem_1, diem_2: real;
Write (‘Diem hs 1= ‘); Readln(diem_1);
Write (‘Diem hs 2= ‘); Readln(diem_2);
Ví dụ:
Viết chương trình nhập điểm kiểm tra của các học sinh trong lớp.
- Nhập và lưu điểm
cho một học sinh
- Nhập và lưu điểm cho 2
học sinh
Khai báo n biến như sau:
Var diem_1, diem_2, diem_3, diem_4, .. , diem_50: real;
Write (‘Diem hs 1= ‘); Readln(diem_1);
Write (‘Diem hs 2= ‘); Readln(diem_2);
Write (‘Diem hs 3= ‘); Readln(diem_3);
Write (‘Diem hs 4= ‘); Readln(diem_4);
……
……
Write (‘Diem hs n= ‘); Readln(diem_50);
Những hạn chế:
Phải khai báo quá nhiều biến.
Chương trình phải viết khá dài.
Làm việc với dãy số
Làm việc với dãy số
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 kiểu dữ liệu (số nguyên hoặc số thực). Việc sắp thứ tự thực hiện bằng cách gán cho mỗi phần tử một chỉ số. (số nguyên).
Biến mảng: khi khai báo một biến có kiểu dữ liệu là kiểu mảng, biến đó được gọi là biến mảng.
Giá trị của biến mảng là một mảng, tức một dãy số (số nguyên, hoặc số thực).
Vậy:
Khắc phục những hạn chế:
- Ghép chung các biến trên thành một dãy.
- Đặt chung một tên và đặt cho mỗi phần tử một chỉ số.
Làm việc với dãy số
Ví dụ:
A
i
1
2
3
4
5
6
Trong đó:
Tên mảng:
Chỉ số:
Số phần tử của mảng:
Kiểu dữ liệu của các phần tử:
Khi tham chiếu đến phần tử thứ i, ta viết A[i]
Ví dụ: A[5]=
A
i
6
Kiểu số nguyên
17
Làm việc với dãy số
a) Cách khai báo mảng trong Pascal:
Ví dụ1: Cách khai báo đơn giản một biến mảng trong ngôn ngữ Pascal như sau:
Tên biến
Số lượng pt
Kiểu dữ liệu chung
Chỉ số đầu
Chỉ số cuối
var Chieucao: array[1..50] of real;
Số phần tử của mảng = chỉ số cuối – chỉ số đầu + 1.
var Tuoi: array[21..80] of integer;
Làm việc với dãy số
Var: array[..] of ;
Cách khai báo mảng trong pascal?
Trong đó:
Array, of là từ khóa của chương trình.
Tên biến mảng do người dùng đặt.
Chỉ số đầu phải <= chỉ số cuối. (Số nguyên)
Giữa hai chỉ số là dấu ..
Kiểu dữ liệu có thể là số nguyên hoặc số thực.
a) Cách khai báo mảng trong Pascal:
Làm việc với dãy số
a) Cách khai báo mảng trong Pascal:
Hãy khai báo các mảng sau:
Var diem : array[1..40] of real;
Var A: array[1..10] of integer;
B: array[1..10] of integer;
Var A ,B: array[1..10] of integer;
2/ Mảng A, B gồm 10 phần tử thuộc kiểu dữ liệu số nguyên?
1/ Mảng Diem gồm 40 phần tử thuộc kiểu dữ liệu số thực?
Làm việc với dãy số
a) Cách khai báo mảng trong Pascal:
BT2/79: Các khai báo biến mảng sau trong Pascal đúng hay sai?
A. Var X : Array[10,13] of Integer;
B. Var X : Array[5..10.5] of Real;
BT 4 /79: Câu lệnh khai báo biến mảng sau đây máy tính có thực hiện được không?
Var N : integer;
A : array[1..N] of real;
Không xác định
KHÔNG
Lưu ý:
- Số phần tử của mảng = chỉ số cuối – chỉ số đầu + 1
- Kích thước của mảng phải được khai báo bằng một con số cụ thể
Làm việc với dãy số
b) Truy cập đến giá trị phần tử trong mảng:
Tên mảng [Chỉ số]
Cú pháp:
Ví dụ1:
3 4 5 6 7
Cho mảng A chứa các giá trị sau:
Hãy xác định: A[1], A[3], A[5], A[10] ?
A[1], A[10]: không xác định
A[3]=2; A[5]=7
Làm việc với dãy số
b) Truy cập đến giá trị phần tử trong mảng:
Tên mảng [Chỉ số]
Cú pháp:
Ví dụ2:
A[3]:=2;
A[4]:=5;
A[6]:=A[3]+A[4];
Cho các câu lệnh sau:
A[3]=2;
A[4]=5;
A[6]=7
Giá trị của các phần A[3], A[4], A[6] sẽ là bao nhiêu?
- Có thể gán giá trị, đọc giá trị và thực hiện tính toán với các phần tử trong mảng
Có thể thực hiện các thao tác nào với các phần tử trong mảng?
Làm việc với dãy số
c) Lệnh nhập giá trị cho biến mảng:
- Sử dụng lệnh Read (Readln) kết hợp với For ... do.
Tiếp ví dụ 1 SGK/75. Viết chương trình nhập điểm kiểm tra của các học sinh trong 1 lớp và in ra điểm cao nhất?
- Yêu cầu 1: Thực hiện việc khai báo các biến diem_1, diem_2,…,diem_50 bằng biến mảng?
Var diem : array[1..50] of real;
Làm việc với dãy số
c) Lệnh nhập giá trị cho biến mảng:
- Yêu cầu 2: Viết chương trình nhập điểm cho 50 học sinh ?
Write (‘Diem hs 1= ‘); Readln(diem_1);
Write (‘Diem hs 2= ‘); Readln(diem_2);
Write (‘Diem hs 3= ‘); Readln(diem_3);
Write (‘Diem hs 4= ‘); Readln(diem_4);
……
……
Write (‘Diem hs n= ‘); Readln(diem_50);
For i:=1 to 50 do
Begin
write(‘nhap diem hs’,i,’:’);
readln(diem[i]);
End;
- Sử dụng lệnh Read (Readln) kết hợp với For ... do.
Vậy cách khai báo và sử dụng biến mảng có lợi ích gì?
Làm việc với dãy số
d. Xuất giá trị của mảng ra màn hình:
Sử dụng lệnh Write (Writeln) kết hợp với For ... do.
Max:=diem_1;
If diem_1If diem_2 ……….
If diem_49Writeln(‘diem cao nhat la:`,max:2:1);
Max:=diem[1];
For i:=2 to 7 do
if diem [i]>Max then Max:=diem[i];
Writeln(diem cao nhat la:‘ , max:2:1);
- Yêu cầu 3: So sánh điểm của học sinh và in ra màn hình điểm cao nhất?
Làm việc với dãy số
Bài toán: Viết chương trình nhập điểm thi học kì môn Tin học của một lớp gồm N học sinh. In ra màn hình điểm thi cao nhất và thấp nhất.
Input:
Output:
Hãy nêu ý tưởng tìm số lớn nhất và nhỏ nhất của dãy số
Dãy số A gồm điểm của N học sinh
Max, Min của dãy số
Số này lớn nhất
Số này mới lớn nhất
ồ! Số này lớn hơn
Tìm ra số lớn nhất rồi!
THUẬT TOÁN TÌM MAX
4.5
6.0
7.0
8.0
9.5
* Đoạn chương trình
Max:=A[1];
For i:=2 to N do IF A[i] > Max Then Max:=A[i];
Ý TƯỞNG TÌM MAX:
- Đặt giá trị của max=A[1].
- Lần lượt cho i chạy từ 2 đến n, so sánh giá trị A[2] với giá trị của max, nếu A[2]>max thì max nhận giá trị mới là A[2].
Tương tự ta tìm min bằng cách:
- Đặt giá trị của min=A[1].
- Lần lượt cho i chạy từ 2 đến n, so sánh giá trị A[2] với giá trị của min, nếu A[2]Làm việc với dãy số
Program vd1;
Uses crt;
Var
A: Array[1..100] of real;
i,n: integer;
Max,min: real;
BEGIN
Clrscr;
write(‘ Nhap vao so học 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] Writeln(‘ Diem nho nhat la `, Min:5:1) ;
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
Nhap vao so hoc sinh :
7
Nhap diem hs thu 1 :
7.0
Nhap diem hs thu 2 :
9.0
Nhap diem hs thu 3 :
4.5
Nhap diem hs thu 4 :
6.0
Nhap diem hs thu 5 :
9.5
Nhap diem hs thu 6 :
8.0
Nhap diem hs thu 7 :
5.5
Diem lon nhat la 9.5
Diem nho nhat la 4.5
Chương trình chạy và cho kết quả như sau:
Kết thúc
Bài 9: LÀM VIỆC VỚI DÃY SỐ
PHÒNG GIÁO DỤC & ĐÀO TẠO TIÊN PHƯỚC
TRƯỜNG TH &THCS TRẦN QuỐC ToẢN
- - - - - - - - - - - - - -
Làm việc với dãy số
Ví dụ:
Viết chương trình nhập điểm kiểm tra của các học sinh trong lớp.
- Nhập và lưu điểm
cho một học sinh
Write (‘Nhap diem= ‘); Readln(diem_1);
Khai báo 1 biến như sau:
Var diem_1: real;
- Nhập và lưu điểm cho 2
học sinh
Khai báo 2 biến như sau:
Var diem_1, diem_2: real;
Write (‘Diem hs 1= ‘); Readln(diem_1);
Write (‘Diem hs 2= ‘); Readln(diem_2);
Ví dụ:
Viết chương trình nhập điểm kiểm tra của các học sinh trong lớp.
- Nhập và lưu điểm
cho một học sinh
- Nhập và lưu điểm cho 2
học sinh
Khai báo n biến như sau:
Var diem_1, diem_2, diem_3, diem_4, .. , diem_50: real;
Write (‘Diem hs 1= ‘); Readln(diem_1);
Write (‘Diem hs 2= ‘); Readln(diem_2);
Write (‘Diem hs 3= ‘); Readln(diem_3);
Write (‘Diem hs 4= ‘); Readln(diem_4);
……
……
Write (‘Diem hs n= ‘); Readln(diem_50);
Những hạn chế:
Phải khai báo quá nhiều biến.
Chương trình phải viết khá dài.
Làm việc với dãy số
Làm việc với dãy số
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 kiểu dữ liệu (số nguyên hoặc số thực). Việc sắp thứ tự thực hiện bằng cách gán cho mỗi phần tử một chỉ số. (số nguyên).
Biến mảng: khi khai báo một biến có kiểu dữ liệu là kiểu mảng, biến đó được gọi là biến mảng.
Giá trị của biến mảng là một mảng, tức một dãy số (số nguyên, hoặc số thực).
Vậy:
Khắc phục những hạn chế:
- Ghép chung các biến trên thành một dãy.
- Đặt chung một tên và đặt cho mỗi phần tử một chỉ số.
Làm việc với dãy số
Ví dụ:
A
i
1
2
3
4
5
6
Trong đó:
Tên mảng:
Chỉ số:
Số phần tử của mảng:
Kiểu dữ liệu của các phần tử:
Khi tham chiếu đến phần tử thứ i, ta viết A[i]
Ví dụ: A[5]=
A
i
6
Kiểu số nguyên
17
Làm việc với dãy số
a) Cách khai báo mảng trong Pascal:
Ví dụ1: Cách khai báo đơn giản một biến mảng trong ngôn ngữ Pascal như sau:
Tên biến
Số lượng pt
Kiểu dữ liệu chung
Chỉ số đầu
Chỉ số cuối
var Chieucao: array[1..50] of real;
Số phần tử của mảng = chỉ số cuối – chỉ số đầu + 1.
var Tuoi: array[21..80] of integer;
Làm việc với dãy số
Var
Cách khai báo mảng trong pascal?
Trong đó:
Array, of là từ khóa của chương trình.
Tên biến mảng do người dùng đặt.
Chỉ số đầu phải <= chỉ số cuối. (Số nguyên)
Giữa hai chỉ số là dấu ..
Kiểu dữ liệu có thể là số nguyên hoặc số thực.
a) Cách khai báo mảng trong Pascal:
Làm việc với dãy số
a) Cách khai báo mảng trong Pascal:
Hãy khai báo các mảng sau:
Var diem : array[1..40] of real;
Var A: array[1..10] of integer;
B: array[1..10] of integer;
Var A ,B: array[1..10] of integer;
2/ Mảng A, B gồm 10 phần tử thuộc kiểu dữ liệu số nguyên?
1/ Mảng Diem gồm 40 phần tử thuộc kiểu dữ liệu số thực?
Làm việc với dãy số
a) Cách khai báo mảng trong Pascal:
BT2/79: Các khai báo biến mảng sau trong Pascal đúng hay sai?
A. Var X : Array[10,13] of Integer;
B. Var X : Array[5..10.5] of Real;
BT 4 /79: Câu lệnh khai báo biến mảng sau đây máy tính có thực hiện được không?
Var N : integer;
A : array[1..N] of real;
Không xác định
KHÔNG
Lưu ý:
- Số phần tử của mảng = chỉ số cuối – chỉ số đầu + 1
- Kích thước của mảng phải được khai báo bằng một con số cụ thể
Làm việc với dãy số
b) Truy cập đến giá trị phần tử trong mảng:
Tên mảng [Chỉ số]
Cú pháp:
Ví dụ1:
3 4 5 6 7
Cho mảng A chứa các giá trị sau:
Hãy xác định: A[1], A[3], A[5], A[10] ?
A[1], A[10]: không xác định
A[3]=2; A[5]=7
Làm việc với dãy số
b) Truy cập đến giá trị phần tử trong mảng:
Tên mảng [Chỉ số]
Cú pháp:
Ví dụ2:
A[3]:=2;
A[4]:=5;
A[6]:=A[3]+A[4];
Cho các câu lệnh sau:
A[3]=2;
A[4]=5;
A[6]=7
Giá trị của các phần A[3], A[4], A[6] sẽ là bao nhiêu?
- Có thể gán giá trị, đọc giá trị và thực hiện tính toán với các phần tử trong mảng
Có thể thực hiện các thao tác nào với các phần tử trong mảng?
Làm việc với dãy số
c) Lệnh nhập giá trị cho biến mảng:
- Sử dụng lệnh Read (Readln) kết hợp với For ... do.
Tiếp ví dụ 1 SGK/75. Viết chương trình nhập điểm kiểm tra của các học sinh trong 1 lớp và in ra điểm cao nhất?
- Yêu cầu 1: Thực hiện việc khai báo các biến diem_1, diem_2,…,diem_50 bằng biến mảng?
Var diem : array[1..50] of real;
Làm việc với dãy số
c) Lệnh nhập giá trị cho biến mảng:
- Yêu cầu 2: Viết chương trình nhập điểm cho 50 học sinh ?
Write (‘Diem hs 1= ‘); Readln(diem_1);
Write (‘Diem hs 2= ‘); Readln(diem_2);
Write (‘Diem hs 3= ‘); Readln(diem_3);
Write (‘Diem hs 4= ‘); Readln(diem_4);
……
……
Write (‘Diem hs n= ‘); Readln(diem_50);
For i:=1 to 50 do
Begin
write(‘nhap diem hs’,i,’:’);
readln(diem[i]);
End;
- Sử dụng lệnh Read (Readln) kết hợp với For ... do.
Vậy cách khai báo và sử dụng biến mảng có lợi ích gì?
Làm việc với dãy số
d. Xuất giá trị của mảng ra màn hình:
Sử dụng lệnh Write (Writeln) kết hợp với For ... do.
Max:=diem_1;
If diem_1
If diem_49
Max:=diem[1];
For i:=2 to 7 do
if diem [i]>Max then Max:=diem[i];
Writeln(diem cao nhat la:‘ , max:2:1);
- Yêu cầu 3: So sánh điểm của học sinh và in ra màn hình điểm cao nhất?
Làm việc với dãy số
Bài toán: Viết chương trình nhập điểm thi học kì môn Tin học của một lớp gồm N học sinh. In ra màn hình điểm thi cao nhất và thấp nhất.
Input:
Output:
Hãy nêu ý tưởng tìm số lớn nhất và nhỏ nhất của dãy số
Dãy số A gồm điểm của N học sinh
Max, Min của dãy số
Số này lớn nhất
Số này mới lớn nhất
ồ! Số này lớn hơn
Tìm ra số lớn nhất rồi!
THUẬT TOÁN TÌM MAX
4.5
6.0
7.0
8.0
9.5
* Đoạn chương trình
Max:=A[1];
For i:=2 to N do IF A[i] > Max Then Max:=A[i];
Ý TƯỞNG TÌM MAX:
- Đặt giá trị của max=A[1].
- Lần lượt cho i chạy từ 2 đến n, so sánh giá trị A[2] với giá trị của max, nếu A[2]>max thì max nhận giá trị mới là A[2].
Tương tự ta tìm min bằng cách:
- Đặt giá trị của min=A[1].
- Lần lượt cho i chạy từ 2 đến n, so sánh giá trị A[2] với giá trị của min, nếu A[2]
Program vd1;
Uses crt;
Var
A: Array[1..100] of real;
i,n: integer;
Max,min: real;
BEGIN
Clrscr;
write(‘ Nhap vao so học 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]
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
Nhap vao so hoc sinh :
7
Nhap diem hs thu 1 :
7.0
Nhap diem hs thu 2 :
9.0
Nhap diem hs thu 3 :
4.5
Nhap diem hs thu 4 :
6.0
Nhap diem hs thu 5 :
9.5
Nhap diem hs thu 6 :
8.0
Nhap diem hs thu 7 :
5.5
Diem lon nhat la 9.5
Diem nho nhat la 4.5
Chương trình chạy và cho kết quả như sau:
Kết thúc
* 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ẻ: Du Thi Yen
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)