Bài 11. Kiểu mảng

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Trần Thị Nhung
Ngày gửi: 21h:15' 01-11-2020
Dung lượng: 1.2 MB
Số lượt tải: 498
Nguồn:
Người gửi: Trần Thị Nhung
Ngày gửi: 21h:15' 01-11-2020
Dung lượng: 1.2 MB
Số lượt tải: 498
Số lượt thích:
0 người
KIỂU MẢNG
Bài 11:
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
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
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
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.
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
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;
Khai báo gián tiếp:
Type ksn = array [1..5] of integer;
var B: ksn;
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
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;
Trực tiếp:
var T: array[1..365] of real;
Gián tiếp:
Type kst= array[1..365] 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
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
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;
Để hiển thị mảng A trên ta sử dụng lệnh sau:
For i:=1 to 10 do write(a[i], ‘ ‘);
Để nhập cho mảng A trên ta sử dụng lệnh sau:
For i:=1 to 10 do
begin
write(‘Nhap so thu ‘,i, ‘: ‘); readln(a[i]);
end;
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.
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.
LUYỆN TẬP
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.
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
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(‘so luong so chan trong day’, dem);
End.
Program Vi_du_ap_dung;
var A: array[1..100] of integer;
i,dem: byte;
 







Các ý kiến mới nhất