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

Chia sẻ bởi Bùi Thị Bình | Ngày 24/10/2018 | 20

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:

Chào mừng quý thầy cô giáo
về dự giờ!
Làm việc với dãy số
Tiết 55:
1. Dãy số và biến mảng
Xét VD: Viết chương trình nhập điểm kiểm tra môn Tin của các học sinh trong một lớp
Nhập và lưu điểm cho 1 học sinh
Var Diem1: real;
Readln(Diem1);
Nhập và lưu điểm cho 2 học sinh
Var Diem1, Diem2: real;
Read(Diem1); Read(Diem2);
Vậy nhập và lưu điểm cho 40 học sinh thì sao?
Làm việc với dãy số
Tiết 55:
1. Dãy số và biến mảng
Vậy nhập và lưu điểm cho 40 học sinh thì sao?
Khai báo 40 biến:
Var Diem1, Diem2, Diem3, …, Diem40: Real;
Sử dụng 40 câu lệnh nhập điểm:
Read(Diem1); Read(Diem2); Read(Diem3); ….;Readln(Diem40);
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ố
Tiết 55:
1. Dãy số và biến mảng
,
var
Diem
1
Diem
2
Diem
,
,
3
,
Diem
40
:
Real
;
........
……
Diem
Chỉ số
- Với i=1 đến 40: hãy nhập Diem_i;
Khắc phục hạn chế:
- Lưu các biến có liên quan thành một dãy và đặt một tên chung
- Đánh số thứ tự (chỉ số) cho các biến đó
- Sử dụng câu lệnh lặp để xử lí dữ liệu
7
9
5
10
Dữ liệu kiểu mảng
Read(Diem1); Read(Diem2); Read(Diem3); ….;Readln(Diem40);
Làm việc với dãy số
Tiết 55:
1. Dãy số và biến mảng
* Dữ liệu kiểu mảng:
- Là dãy hữu hạn các phần tử có cùng kiểu dữ liệu, được sắp xếp thứ tự bằng cách gán cho mỗi phần tử một chỉ số.
Trong đó: - Tên mảng: A
- Số phần tử của mảng: 5
- Các phần tử trong mảng có cùng kiểu dữ liệu là số nguyên
- Tham chiếu tới các phần tử: Tenmang[chỉ số]
VD: A[2] := 13
Làm việc với dãy số
Tiết 55:
1. Dãy số và biến mảng
* Biến mảng:
- Là biến có kiểu dữ liệu là kiểu mảng
- Giá trị của biến mảng là một mảng, tức là một dãy số (số nguyên hoặc số thực)
- Mỗi số là giá trị của các phần tử tương ứng
Giá trị của mảng
Biến mảng
Làm việc với dãy số
Tiết 55:
1. Dãy số và biến mảng
Củng cố
Câu 1: “Có thể xem biến mảng là một biến được tạo ra từ nhiều biến có cùng kiểu, nhưng dưới một tên duy nhất”. Phát biểu đó đúng hay sai?
9.3
Tuoi
7.5
6
8
….
1 2 3 4 …. 40
10
Câu 2: Dãy số sau có thể tạo thành mảng nguyên được không? Vì sao?
Chỉ số
Chào mừng quý thầy cô giáo
về dự giờ!
Kiểm tra bài cũ
Nêu khái niệm dữ liệu kiểu mảng, biến mảng?
Giá trị của biến mảng là gì?
* Dữ liệu kiểu mảng: Là dãy hữu hạn các phần tử có cùng kiểu dữ liệu, được sắp xếp thứ tự bằng cách gán cho mỗi phần tử một chỉ số.
?
* Biến mảng: Là biến được khai báo kiểu dữ liệu là kiểu mảng
* Giá trị của biến mảng: là một mảng, tức là một dãy số (số nguyên hoặc số thực). Mỗi số là giá trị của các phần tử tương ứng
Tiết 56:
2. Ví dụ về biến mảng
Làm việc với dãy số
a. Khai báo mảng một chiều trong Pascal:
9
Tuoi
7
6
8
….
1 2 3 4 …. 40
10
Var Tuoi :
Chieucao
2 3 4 5 …. 20
Var chieucao: array[2..20] of Real;
Chỉ số
array
[1..40]
of Integer;
Chỉ số
Var
Tên mảng :
of ;
array
[ .. ]
1.7
1.5
1.65
1.75
….
1.8
Tiết 56:
2. Ví dụ về biến mảng
Làm việc với dãy số
a. Khai báo mảng một chiều trong Pascal:
Var Tên mảng : array[ .. ] of ;
Trong đó:
- Chỉ số đầu, chỉ số cuối là 2 số nguyên, thỏa mãn: chỉ số đầu<=chỉ số cuối
- Kiểu dữ liệu là kiểu của các phần tử, chỉ có thể là Integer hoặc Real
- Số phần tử = chỉ số cuối – chỉ số đầu + 1
Tiết 56:
2. Ví dụ về biến mảng
Làm việc với dãy số
a. Khai báo mảng một chiều trong Pascal:
Var : array[ .. ] of ;
Var DiemToan: array[1..40] of Real;
Var DiemLy: array[1..40] of Real;
Hoặc Var DiemTin, DiemToan, DiemLy
: array[1..40] of Real;
Tiết 56:
2. Ví dụ về biến mảng
Làm việc với dãy số
a. Khai báo mảng một chiều trong Pascal:
Var : array[ .. ] of ;
* Lưu ý:
- Tham chiếu tới các phần tử của mảng: Tenmang[chỉ số]
VD: DiemTin[1]
 Tham chiếu tới phần tử thứ nhất của mảng DiemTin
Tiết 56:
2. Ví dụ về biến mảng
Làm việc với dãy số
b. Gán giá trị cho các phần tử trong mảng:
For i:=1 to 40 do Readln(DiemTin[i]);
Ví dụ: Gán giá trị cho 40 phần tử của mảng DiemTin
For i := … to … do Readln( DiemTin[1]:=5;
DiemTin[2]:=7;
……… DiemTin[40]:=10;
Hoặc Readln(DiemTin[1]);
Readln(DiemTin[2]);
……… Readln(DiemTin([40]);
Viết chương trình khá dài
Tiết 56:
2. Ví dụ về biến mảng
Làm việc với dãy số
c. In giá trị các phần tử của mảng:
For j := … to … do Writeln(For j:=1 to 40 do Writeln(DiemTin[j]);
DiemTin
Chỉ số
DiemTin[1]
= 8
8
Ví dụ: In giá trị của 40 phần tử trong mảng DiemTin
DiemTin[4]
= 6
6
Tiết 56:
2. Ví dụ về biến mảng
Làm việc với dãy số
 Sử dụng biến mảng và câu lệnh lặp (thường là For…do) giúp cho việc viết chương trình được ngắn ngọn và dễ dàng hơn
d. Xử lí dữ liệu (tính toán, so sánh, tìm giá trị lớn nhất, nhỏ nhất …)
For t := 1 to 40 do if DiemTin[t] > 8.0 then writeln(‘Loai Gioi’);
Ví dụ: Tìm những học sinh có điểm tin đạt loại giỏi
Tiết 56:
2. Ví dụ về biến mảng
Làm việc với dãy số
Quy trình làm việc với biến mảng
1. Khai báo biến mảng
2. Gán giá trị cho các phần tử của mảng
3. In, xử lí dữ liệu
Củng cố
Tiết 56:
2. Ví dụ về biến mảng
Làm việc với dãy số
b) Var X: Array[3.. 4.8] of Integer;
c) Var X: Array[10 .. 1] of Integer;
d) Var X: Array[4 .. 10] of Real;
a) Var X: Array[10 , 13] of Real;
Câu 1: Cách khai báo biến mảng sau đây đúng hay sai? Khoanh tròn vào chỗ sai (nếu có).
a) Sửa dấu , thành dấu ..
b) Sửa 4.8 thành số nguyên
c) Chỉ số cuối phải >= chỉ số đầu
Củng cố
d) Đúng
Tiết 56:
2. Ví dụ về biến mảng
Làm việc với dãy số
Củng cố
Câu 2: Cho mảng A gồm 10 phần tử có kiểu số thực. Hãy viết câu lệnh tính tổng các phần tử của mảng A.
Đáp án:
S:=0;
For i:=1 to 10 do S:=S+ A[i];
Ghi nhớ
Dặn dò
- Xem trước nội dung phần 3, các bài tập trang 79
 Cú pháp khai báo mảng trong Pascal:

 Sử dụng biến mảng và câu lệnh lặp (thường là For…do) giúp cho việc viết chương trình được ngắn ngọn và dễ dàng hơn
Tiết 56:
Var Tên mảng : array[ .. ] of ;
Làm việc với dãy số
Chào mừng quý thầy cô giáo
về dự giờ!
Kiểm tra bài cũ
Hãy cho ví dụ về khai báo mảng?
Chỉ rõ tên mảng, số phần tử của mảng, kiểu dữ liệu chung của các phần tử trong ví dụ đó.
?
Tiết 57:
3. Tìm giá trị lớn nhất và nhỏ nhất của dãy số
Làm việc với dãy số
3
5
1
7
9
Số này lớn nhất
Số này mới lớn hơn
Số này mới lớn hơn
Đã tìm ra số lớn nhất là 9
Thuật
toán
tìm
Max
Bước 1: Max  A[1]; i  1;
Bước 2: i  i + 1;
Bước 3: Nếu i > N, thì chuyển đến bước 5
Bước 4: Nếu A[i]>Max, Max  A[i]. Quay lại bước 2
Bước 5: In giá trị Max ra màn hình, Kết thúc thuật toán
i  1
i  2
i  3
i  4
i  5
Bước 1: Max  A[1]; i  1;
Bước 2: i  i + 1;
Bước 3: Nếu i > N, thì chuyển đến bước 5
Bước 4: Nếu A[i]>Max, Max  A[i]. Quay lại bước 2
Bước 5: In giá trị Max ra màn hình, Kết thúc thuật toán
Tiết 57:
3. Tìm giá trị lớn nhất và nhỏ nhất của dãy số
Làm việc với dãy số
- Duyệt mảng: Với i = 2 đến N: sánh các phần tử A[i] với Max
Nếu A[i] > Max thì Max nhận giá trị mới là A[i]
Min
Thuật toán tìm Max
Min  A [1]
Nếu A[i] < Min, Min  A[i]
Tiết 57:
3. Tìm giá trị lớn nhất và nhỏ nhất của dãy số
Làm việc với dãy số
Ví dụ 3:
Viết chương trình nhập N số nguyên từ bàn phím và in ra màn hình số lớn nhất. N cũng được nhập từ bàn phím
INPUT: Dãy N số nguyên được nhập từ bàn phím
OUTPUT: Max (số lớn nhất) của dãy số
Tiết 57:
3. Tìm giá trị lớn nhất và nhỏ nhất của dãy số
Làm việc với dãy số
Khai báo:
- Khai báo biến N (số lượng số nguyên)
- Khai báo một mảng A để lưu N số nguyên
- Khai báo biến đếm i, biến Max để lưu số lớn nhất
Phần thân:
- Nhập N từ bàn phím
- Nhập giá trị cho N phần tử của mảng A từ bàn phím
- Tìm Max:
+ Gán Max  A[1]
+ Duyệt mảng: Với i  2 đến N làm: Nếu A[i] > Max thì Max A[i]
- In giá trị Max ra màn hình
Tiết 57:
3. Tìm giá trị lớn nhất và nhỏ nhất của dãy số
Làm việc với dãy số
Program tim_Max;
Uses crt;
Var N, i, Max: integer;
A : array[1..100] of integer;
Begin
clrscr;
writeln(‘Nhap do dai mang:’); Readln(N);
for i:=1 to N do Readln(A[i]);
Max:=A[1];
for i:=2 to n do
if A[i] > Max then Max := A[i];
Writeln(‘So lon nhat cua day so = ‘, Max);
Readln
End.
Khai báo mảng
Nhập giá trị cho pt mảng
Tìm số lớn nhất
Tiết 57:
3. Tìm giá trị lớn nhất và nhỏ nhất của dãy số
Làm việc với dãy số
Program tim_Max;
Uses crt;
Var N, i, Max : integer;
A : array[1..100] of integer;
Begin
clrscr;
writeln(‘Nhap do dai mang:’); Readln(N);
for i:=1 to n do Readln(A[i]);
Max:=A[1];
for i:=2 to n do
if A[i] > Max then Max := A[i];
Writeln(‘So lon nhat cua day so = ‘, Max)
Readln
End.
tim_Min;
Min
If A[i] < Min then Min:=A[i];
Min:=A[1];
Writeln(‘So nho nhat cua day so = ‘, Min)
Ghi nhớ
Dặn dò
- Xem lại toàn bộ nội dung bài 9, xem trước bài tập tr79
 Cú pháp khai báo mảng trong Pascal:

 Sử dụng biến mảng và câu lệnh lặp (thường là For…do) giúp cho việc viết chương trình được ngắn ngọn và dễ dàng hơn
 Thuật toán và chương trình tìm số lớn nhất (hoặc nhỏ nhất) trong mảng
Tiết 57:
Var Tên mảng : array[ .. ] of ;
Làm việc với dãy số
Cám ơn quí thầy cô
Các em học sinh
&
* 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ẻ: Bùi Thị Bì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)