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

Chia sẻ bởi Lê Thị Kim Cương | Ngày 24/10/2018 | 27

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Ô ĐẾN DỰ GIỜ THĂM LỚP
BÀI 9
LÀM VIỆC VỚI DÃY SỐ
GV: Lê Thị Kim Cương
NỘI DUNG BÀI HỌC
3. Tìm giá trị lớn nhất và nhỏ nhất của dãy số
2. Ví dụ về biến mảng
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. In ra màn hình các hs loại giỏi nếu đạt điểm từ 8 trở lên.
Giả sử: Lớp có 1 học sinh
Giả sử: Lớp có 2 học sinh
Làm việc với dãy số (tiết 2)
Bài 9:
Khai báo biến?
Nhập điểm?
Var diem_1: real;
Readln(diem_1);
Khai báo biến?
Nhập điểm?
Var diem_1, diem_2: real;
Readln(diem_1);
Readln(diem_2);
In ra màn hình hs loại giỏi nếu đạt điểm từ 8 trở lên.
If diem_1>=8 then writeln(‘Hs thu 1 dat loai gioi’);
In ra màn hình hs loại giỏi nếu đạt điểm từ 8.0 trở lên.
If diem_1>=8 then writeln(‘Hs thu 1 dat loai gioi’);
If diem_2>=8 then writeln(‘Hs thu 2 dat loai gioi’);
Lớp có 40 học sinh thì sao?
Khai báo 40 biến:
Var Diem_1, Diem_2, Diem_3, …, Diem_40: Real;
Sử dụng 40 câu lệnh nhập điểm:
Readln(Diem_1); Readln(Diem_2); Readln(Diem_3); ….; Readln(Diem_40);
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
Dễ nhầm lẫn giữa các biến khi viết chương trình
Làm việc với dãy số (Tiết 2)
Bài 9:
Khi viết chương trình với bài toán cần nhập với lượng dữ liệu lớn thì có những hạn chế gì?

Sử dụng 40 câu lệnh điều kiện if … then để in những học sinh đạt loại giỏi
If diem_1>=8 then writeln(‘ Hs thu 1 dat loai gioi’);
If diem_2>=8 then writeln(‘ Hs thu 2 dat loai gioi’);
….
If diem_40>=8 then writeln(‘ Hs thu 40 dat loai gioi’);
,
var
Diem_
1
Diem_
2
Diem_
,
,
3
,
Diem_
40
:
Real
;
........
……
Diem
Chỉ số
- Với i chạy từ 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
Readln(Diem_1); Readln(Diem_2); Readln(Diem_3); ….;Readln(Diem_40);
Làm việc với dãy số (Tiết 2)
Bài 9:
-Với i chạy từ 1 đến 40: nếu Diem_i >=8.0 thì in ra thứ tự học sinh đó.
If diem_1>=8 then writeln(‘ Hs thu 1 dat loai gioi’);
If diem_2>=8 then writeln(‘ Hs thu 2 dat loai gioi’);
….
If diem_40>=8 then writeln(‘ Hs thu 40 dat loai gioi’);
2. Ví dụ về biến mảng
a.Cách khai báo biến mảng trong Pascal:
9
Tuoi
7
6
8
….
1 2 3 4 …. 40
10
Var Tuoi :
Chieucao
1 2 3 4 …. 20
Var chieucao: array[1..20] of real;
Chỉ số
array
[1..40]
of integer;
Chỉ số
Var
:
of ;
array
[ .. ]
1.7
1.5
1.65
1.75
….
1.8
Bài 9:
Làm việc với dãy số (Tiết 2)
Khai báo mảng cần chỉ rõ:
+ Tên biến mảng.
+ Số lượng phần tử.
+ Kiểu dữ liệu chung của các phần tử.
Tên mảng?
Số lượng?
Kiểu dữ liệu?
2. Ví dụ về biến mảng
Var : array[ .. ] of ;
Trong đó:
Tên mảng: Do người lập trình đặt
- array, of: Là từ khóa của chương trình
Chỉ số đầu, chỉ số cuối: Là 2 số nguyên, thỏa mãn: chỉ số đầu ≤ chỉ số cuối giữa hai chỉ số là dấu ..
- Kiểu dữ liệu: Là kiểu của các phần tử, là Integer hoặc Real
- Số phần tử = chỉ số cuối – chỉ số đầu + 1
Bài 9:
Làm việc với dãy số (Tiết 2)
a.Cách khai báo biến mảng trong Pascal:
Var : array [..] of ;
2. Ví dụ về biến mảng
a) Cách khai báo biến mảng trong Pascal:
Ví dụ:
Hãy khai báo các mảng sau:
Bài 9:
Làm việc với dãy số (Tiết 2)
1/ Khai báo mảng sĩ số gồm 30 phần tử?
Var siso:array[1..30] of integer;
? Tên biến mảng
? Chỉ số đầu
? Chỉ số cuối
? Kiểu dữ liệu
 siso
 1
30
số nguyên (integer)
Var : array [..] of ;
2. Ví dụ về biến mảng
a) Cách khai báo biến mảng trong Pascal:
Var diem : array[1..40] of real;
Var A: array[1..10] of integer;
B: array[1..10] of integer;
Ví dụ:
Var A ,B: array[1..10] of integer;
3/ Khai báo hai mảng A, B gồm 10 phần tử thuộc kiểu dữ liệu số nguyên?
Hãy khai báo các mảng sau:

Bài 9:
Làm việc với dãy số (Tiết 2)
2/ 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. In ra màn hình các hs loại giỏi nếu đạt điểm từ 8 trở lên.
? Tên biến mảng
? Chỉ số đầu
? Chỉ số cuối
? Kiểu dữ liệu
 diem
 1
40
số thực (real)
Làm việc với dãy số (Tiết 2)
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ách khai báo biến mảng sau đây đúng hay sai? Nếu sai giải thích tại sao?
a) Sửa dấu , thành dấu ..
b) Chỉ số cuối phải là số nguyên
c) Chỉ số cuối phải >= chỉ số đầu
d) Đúng
Bài 9:
BÀI TẬP
2. Ví dụ về biến mảng
a) Cách khai báo biến mảng trong Pascal:
b) Truy cập đến giá trị phần tử trong mảng:
Tên mảng [Chỉ số]
Cú pháp:
Var : array [..] of ;
VD: Diem[1]
 Truy cập tới phần tử thứ nhất của mảng Diem
Bài 9:
Làm việc với dãy số (Tiết 2)
2. Ví dụ về biến mảng
b) Truy cập đến giá trị phần tử trong mảng:
Tên mảng [Chỉ số]
Cú pháp:
1 2 3 4 5
Cho mảng A chứa các giá trị sau:
Ví dụ1:
- Xác định các giá trị của: A[1], A[3], A[5], A[8] ?
A[8]: không xác định (0)
A[1]=2; A[3]=2; A[5]=7
Bài 9:
Làm việc với dãy số (Tiết 2)
2. Ví dụ về biến mảng
b) Truy cập đến giá trị phần tử trong mảng:
Tên mảng [Chỉ số]
Cú pháp:
A[3]:=2;
A[4]:=5;
A[6]:=A[3]+A[4];
Ví dụ 2:
Cho các câu lệnh sau:
Giá trị của các phần A[3], A[4], A[6] sẽ là bao nhiêu?
A[3]=2
A[4]=5
A[6]=7
- 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?
Bài 9:
Làm việc với dãy số (Tiết 2)
2. Ví dụ về biến mảng
For i:=1 to 40 do Readln(Diem [i]);
Ví dụ: Gán giá trị cho 40 phần tử của mảng Diem
For i := … to … do Readln(Tenmang[i]);
Diem [1]:=5;
Diem [2]:=7;
……… Diem [40]:=10;
Hoặc Readln(Diem [1]);
Readln(Diem [2]);
……… Readln(Diem [40]);
Viết chương trình khá dài
Bài 9:
Làm việc với dãy số (Tiết 2)
b) Truy cập đến giá trị phần tử trong mảng:
Diem
n
1. Nhập số phần tử của mảng.
Write(‘ Nhap vao so luong hs:’);Readln(n);
2. Nhập vào giá trị từng phần tử của mảng
For i:=1 to n do readln(diem[i]);
với n = 7
9.5
10
9
6
8
5.5
7
- Sử dụng lệnh Read (Readln) kết hợp với For ... do.
2. Ví dụ về biến mảng
c. Nhập giá trị cho mảng
Bài 9:
Làm việc với dãy số (Tiết 2)
i=1
i=2
i=3
i=4
i=5
i=6
i=7
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. In ra màn hình các hs loại giỏi nếu đạt điểm từ 8 trở lên.
2. Ví dụ về biến mảng
c. Nhập giá trị cho mảng:
Bài 9:
Làm việc với dãy số (Tiết 2)
For i:= … to … do readln(Tenmang[i]);
- Sử dụng lệnh Read (Readln) kết hợp với For ... do.
2. Ví dụ về biến mảng
d. In giá trị các phần tử của mảng:
Diem
Chỉ số
7.0
7
6.0
6
Bài 9:
Làm việc với dãy số (Tiết 2)
Write(diem[1]:4:1);
Write(diem[4]:4:1);
? In ra màn hình tất cả các phần tử trong dãy số vừa nhập
For i:=1 to n do write(diem[i]:4:1,’ ‘);
Kết quả in ra màn hình:
7.0 5.5 8.0 6.0 9.0 10.0 9.5
với n = 7
Sử dụng lệnh Write (Writeln) kết hợp với For ... do.
2. Ví dụ về biến mảng
d. In giá trị các phần tử của mảng:
Bài 9:
Làm việc với dãy số (Tiết 2)
For i:= … to … do Writeln(Tenmang[i]);
2. Ví dụ về biến mảng
e. Xử lí dữ liệu (tính toán, so sánh, tìm giá trị lớn nhất, nhỏ nhất …)
For i := 1 to n do if Diem[i] >= 8.0 then writeln(‘ Hs thu ‘, i, ‘dat loai gioi’);
Bài 9:
Làm việc với dãy số (Tiết 2)
Diem
Chỉ số
3
5
9
Hs thu 3 dat loai gioi
Hs thu 5 dat loai gioi
8
9.5
6
7
Hs thu 6 dat loai gioi
Hs thu 7 dat loai gioi
1
2
4
10
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. In ra màn hình các hs loại giỏi nếu đạt điểm từ 8 trở lên.

























Khai báo biến mảng diem
Var diem:array[1..40] of real;
i,n:integer;
Nhập số lượng hs
Nhập điểm từng hs trong lớp
Write(‘ Nhap so luong hs =‘);
Begin
For i:=1 to n do
Readln(diem[i]);
Write(‘ Nhap diem cua hoc sinh thu ‘,i ,’=‘);
Begin
End;
In ra những học sinh đạt điểm giỏi trong dãy
Writeln(‘ Nhung hoc sinh dat diem gioi :’);
For i:=1 to n do
If diem[i] >=8.0 then writeln(‘Hs thu ‘,i,’ dat loai gioi’);
Readln
end.
Readln(n);
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. In ra những học sinh đạt điểm giỏi.
Bài 1: 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 ? Tại sao ? Nếu sai thì sửa lại cho đúng ?
Var
N : Integer ;
A: array [ 1 .. N ] of real ;
Câu lệnh trên không thể thực hiện được vì chỉ số cuối phải là 1 số xác định
Var
N : Integer ;
A: array [ 1 .. 100] of real ;
Củng cố
Const N =100 ;
Var A: array [ 1 .. N] of real ;
Củng cố
Bài 2: Cho dãy số nguyên có tối đa 100 phần tử. Hãy:
Khai báo biến mảng của dãy số đó?
In ra các phần tử có giá trị chẵn trong dãy?
? Tên biến mảng
? Chỉ số đầu
? Chỉ số cuối
? Kiểu dữ liệu
A
1
100
integer
Điều kiện để kiểm tra 1 số n là số chẵn:
N mod 2=0
Điều kiện để kiểm tra 1 phần tử trong mảng A là số chẵn
A[i] mod 2 =0
Tên mảng [Chỉ số]
Var : array[ .. ] of ;
Truy cập đến giá trị phần tử trong mảng:
GHI NHỚ
Tên mảng [Chỉ số]
Nhập giá trị cho mảng
For i := … to … do Readln(Tenmang[i]);
In giá trị các phần tử của mảng:
For i:= … to … do Writeln(Tenmang[i]);
Cú pháp khai báo biến mảng
- Học bài cũ
- Tìm hiểu thuật toán tìm giá trị lớn nhất, nhỏ nhất của dãy số (xem lại ví dụ 6 trang 43 SGK)
- Về nhà làm các bài tập 2, 4, 5 trang 79 SGK
HƯỚNG DẪN VỀ NHÀ
Xin chân thành cảm ơn sự chú ý theo dõi của các thầy cô và 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ẻ: Lê Thị Kim Cương
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)