Bài 11. Kiểu mảng

Chia sẻ bởi Vũ Thị Hà | Ngày 10/05/2019 | 59

Chia sẻ tài liệu: Bài 11. Kiểu mảng thuộc Tin học 11

Nội dung tài liệu:

CHÀO MỪNG CÁC THẦY CÔ VỀ DỰ GIỜ
Chương IV
KIỂU DỮ LIỆU CÓ CẤU TRÚC
GV: Vũ Thị Thanh
Trường: THPT Nguyễn Bỉnh Khiêm

§11. KIỂU MẢNG
Tiết 25
1) Mảng một chiều
Xét bài toán đặt vấn đề:
Nhập vào nhiệt độ của mỗi ngày trong tuần. Tính và đưa ra màn hình nhiệt độ TB của tuần và số lượng ngày có nhiệt độ cao hơn nhiệt độ TB trong tuần?
Hãy xác định Input, Output cho bài toán trên ?
* Dữ liệu nhập vào (INPUT): t1,t2,t3,t4,t5,t6,t7.
* Dữ liệu cần tính và in ra (OUTPUT): tb, dem.
Kiểu thực: Real
Kiểu nguyên: integer
Kiểu thực: Real
Program vd1;
Uses crt;
Var
t1,t2,t3,t4,t5,t6,t7,tb : real;
dem : integer;
BEGIN
Clrscr;
write(` Nhap vao nhiet do 7 ngay : `);
readln(t1,t2,t3,t4,t5,t6,t7);
tb : = (t1+t2+t3+t4+t5+t6+t7)/7;
dem : = 0 ;
if (t1>tb) then dem := dem + 1;
if (t2>tb) then dem := dem + 1;
if (t3>tb) then dem := dem + 1;
if (t4>tb) then dem := dem + 1;
if (t5>tb) then dem := dem + 1;
if (t6>tb) then dem := dem + 1;
if (t7>tb) then dem : = dem + 1;
Writeln(` Nhiet do trung binh trong tuan = `,tb : 6 : 2);
Writeln(` so ngay co nhiet do cao hon nhiet do tb `, dem);
Readln;
END.
Phần khai báo biến
Nhập nhiệt độ các ngày và tính TB
Kiểm tra nhiệt độ các ngày và đếm số ngày có nhiệt độ >TB
Nếu muốn tính và kiểm tra nhiệt độ trung bình của một năm thì cần sử dụng bao nhiêu biến?
Khai báo quá lớn (t1,t2,t3,...,t365) và chương trình quá dài (với 365 lệnh IF) !!!!!

? Để khắc phục khó khăn đó ta sử dụng kiểu dữ liệu mảng một chiều.
1) Mảng một chiều
Khái niệm mảng một chiều
- Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu dữ liệu.
- Mảng được đặt tên và mỗi phần tử của mảng có một chỉ số.
Ví dụ : Cho dãy các số sau:
A
phần tử
chỉ số
Em hiểu thế nào là mảng một chiều?
Số lượng phần tử hữu hạn là 5
Các phần tử đều là số nguyên
 Dãy A là một mảng một chiều.
Xác định mảng một chiều trong các trường hợp sau
Dãy A: B C C D A
Cấp số cộng: 1 3 5 7 9 …..
Dãy B: 0.1 3.0 2.5 6.0 4.6 7.0
Dãy C: 4 7 2 -9 12 9 11
Dãy các số tự nhiên: 1 2 3 4 5…..
Dãy D: 1 2 A C True False
1) Mảng một chiều
Khái niệm mảng một chiều
Ví dụ : Cho dãy các số sau:
A
phần tử
chỉ số
Tên mảng: A
Số lượng phần tử: 5
Kiểu dữ liệu của các phần tử: Số nguyên
Cách khai báo biến mảng
Cách tham chiếu đến phần tử mảng
a. Khai báo mảng một chiều
- Cách 1: Khai báo trực tiếp biến mảng một chiều:
var : array[kiểu chỉ số] of ;
Trong đó:
• Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 dùng để xác định chỉ số đầu và chỉ số cuối (n1  n2);
• Var, array, of là các từ khóa.
• Tên biến mảng tuân theo quy tắc đặt tên của NNLT.
Ví dụ : Có mảng số nguyên 5 phần tử sau:
A
[n1
. .
n2]
[1
. .
5]
A
a. Khai báo mảng một chiều
- Cách 1: Khai báo trực tiếp biến mảng một chiều:
var : array[kiểu chỉ số] of ;
Trong đó:
• Var, array, of là các từ khóa.
• Kiểu phần tử là kiểu dữ liệu của các phần tử của mảng.
• Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 dùng để xác định chỉ số đầu và chỉ số cuối (n1  n2);
• Tên biến mảng tuân theo quy tắc đặt tên của NNLT.
Ví dụ : Có mảng 5 phần tử sau:
A
Kiểu dữ liệu của các phần tử là kiểu số nguyên
a. Khai báo mảng một chiều
- Cách 1: Khai báo trực tiếp biến mảng một chiều:
var : array[kiểu chỉ số] of ;
Trong đó:
• Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 dùng để xác định chỉ số đầu và chỉ số cuối (n1  n2);
• Var, array, of là các từ khóa.
• Kiểu phần tử là kiểu dữ liệu của các phần tử của mảng.
Ví dụ 1: Có mảng 5 phần tử sau:
A
Ví dụ 2: Khai báo một biến mảng chứa tối đa 10 phần tử, có các phần tử là số thực:
Var B: array [1..10] of real;
• Tên biến mảng tuân theo quy tắc đặt tên của NNLT.
a. Khai báo mảng một chiều
- Cách 2: Khai báo gián tiếp biến mảng một chiều:
type = array[kiểu chỉ số] of ;
var : ;
Ví dụ 1: Có mảng 5 phần tử sau:
A
Khai báo trực tiếp:
Var A: array [1..5] of integer;
a. Khai báo mảng một chiều
- Cách 2: Khai báo gián tiếp biến mảng một chiều:
type = array[kiểu chỉ số] of ;
var : ;
Trực tiếp:
Var B: array [1..10] of real;
Ví dụ 2: Khai báo một biến mảng chứa tối đa 10 phần tử, có các phần tử là số thực:
Gián tiếp:
Type kst: array [1..10] of real;
var B: kst;
Ví dụ 3: Khai báo biến mảng nhận giá trị nhiệt độ của các ngày trong tuần bằng 2 cách.
Trực tiếp:
var T: array[1..7] of real;
Ví dụ 4: Khai báo biến mảng nhận giá trị nhiệt độ của các ngày trong một năm.
Gián tiếp:
Type kst= array[1..7] of real;
var T: kst;
Ví dụ 3: Khai báo biến mảng nhận giá trị nhiệt độ các ngày trong tuần.
Trực tiếp:
var T: array[-2..4] of real;
Gián tiếp:
type Kst= array[-2..4] of real;
var T: Kst;
T
Ví dụ 3: Khai báo biến mảng nhận giá trị nhiệt độ các ngày trong tuần.
Trực tiếp:
var T: array[‘a’..’g’] of real;
Gián tiếp:
type Kst= array[’a’..’g’] of real;
var T: Kst;
T
A[7]
Tham chiếu các phần tử của mảng
Để tham chiếu tới phần tử của mảng ta viết:
tên biến mảng [Chỉ số phần tử]
Ví dụ : Có mảng sau:
var A: array[1..10] of integer;
A
Để tham chiếu tới phần tử thứ 7 của mảng trong khai báo trên, ta phải viết là:
Để tham chiếu tới phần tử thứ 3 của mảng trong khai
báo trên, ta phải viết là
7
3
A[3]
=45
=8
Program Tinh_nhiet_do_TB_cac_ngay_trong_nam;
Uses crt;
Var tb,tong : real;
T : array [1..365] of real;
dem : integer;
BEGIN
Clrscr;
write( ` Nhap so ngay`); readln(N);
For i:= 1 to N do
begin
write(`Nhap phan tu thu `,i);
readln(T[i]);
end;
tong:=0;
For i:= 1 to 365 do tb:= (tong+T[i])/365;
dem : = 0 ;
For i:= 1 to 365 do
if T[i] > tb then dem:=dem+1
Writeln(` Nhiet do trung binh trong tuan = `,tb : 6 : 2);
Writeln(` so ngay co nhiet do cao hon nhiet do tb `, dem);
Readln;
END.
Cho các bài toán sau: Xác định bài toán nên sử dụng kiểu mảng một chiều.
Bài 1: Cho dãy số nguyên A gồm 100 phần tử. Đếm số lượng số chẵn trong dãy.
Bài 2: Nhập số nguyên N và kiểm tra tính nguyên tố của N
Bài 3: Cho số nguyên N (N<=200), dãy số nguyên A1..AN. Đưa ra màn hình giá trị lớn nhất của dãy.
Bài 4: Nhập 3 số nguyên N, N1, N2 từ bàn phím. Đưa ra màn hình ước chung lớn nhất của 3 số.
Hãy nhớ!
 Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu.
 Khai báo: tên mảng, chỉ số đầu, chỉ số cuối, kiểu phần tử.
Tham chiếu phần tử mảng:
Tên biến mảng[chỉ số phần tử]
15 20 19 25 18 12 16
Var A: array[1..100] OF integer;
A[5] = 18
GIÁO ÁN ĐIỆN TỬ
Tiết học đến đây là kết thúc xin chân thành cảm ơn quý thầy cô.
THAO GIẢNG
Bài toán: Nhập vào 100 số nguyên dương từ bàn phím. In ra màn hình các số vừa nhập và đếm số lượng các số chẵn.
Ví dụ áp dụng
 Khai báo: var A: array[1..100] of integer;
A
Bài toán: Nhập vào 100 số nguyên dương từ bàn phím. In ra màn hình các số vừa nhập và đếm số lượng các số chẵn.
Ví dụ áp dụng
A
for i:=1 to 100 do
begin
write(‘Nhap so nguyen duong thu:’, i);
readln(A[i]);
end;
var A: array[1..100] of integer;
 Nhập các phần tử mảng
Ví dụ áp dụng
var A: array[1..100] of integer;
A
for i:=1 to 100 do
write(A[i]);
 In các phần tử mảng lên màn hình
Ví dụ áp dụng
var A: array[1..100] of integer;
A
dem:= 0;
for i:=1 to 100 do
if (A[i] mod 2 = 0) then
dem:= dem + 1;
 Đếm số lượng số chẵn trong dãy
Chương trình hoàn thiện
Begin
for i:=1 to 100 do
begin
write(‘Nhap so nguyen duong thu:’, i);
readln(A[i]);
end;
for i:=1 to 100 do write(A[i]);
dem:= 0;
for i:=1 to 100 do
if (A[i] mod 2 = 0) then dem:= dem + 1;
writeln(‘soluong so chan trong day’, dem);
End.
Program Vi_du_ap_dung;
var A: array[1..100] of integer;
i,dem: byte;
* 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ẻ: Vũ Thị Hà
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)