Bài 11. Kiểu mảng
Chia sẻ bởi Vũ Mạnh Huy |
Ngày 10/05/2019 |
68
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:
GIÁO ÁN ĐIỆN TỬ
Chào mừng quý thầy cô về dự giờ
THAO GIẢNG
Giáo viên: Nguyễn Thanh Toàn
Tổ: Toán - Tin
Câu 1: Mảng một chiều là gì?
Kiểm tra bài cũ
Câu 2: Hãy viết khai báo trực tiếp biến mảng một chiều và tham chiếu đến từng phần tử trong pascal.
Câu 1: M¶ng mét chiÒu lµ mét d·y h÷u h¹n c¸c phÇn tö cïng kiÓu.
ĐÁP ÁN
Var : array[..] of ;
Câu 2: Khai báo trực tiếp biến mảng một chiều:
Mảng một chiều là một kiểu dữ liệu có cấu trúc, cần thiết và tiện dụng trong lập trình và các ngôn ngữ lập trình đều cho phép người lập trình có thể dễ dàng khai báo kiểu mảng một chiều.
Tham chiếu đến từng phần tử trong mảng:
Tên biến mảng[chỉ số phần tử]
Chính vì vậy, người lập trình có thể vận dụng linh hoạt kiểu dữ liệu mảng một chiều vào giải một số bài toán trong thực tế. Hôm nay chúng ta sẽ tìm hiểu cách sử dụng kiểu mảng một chiều để giải bài toán tìm phần tử lớn nhất trong dãy số nguyên.
Ti?t 19: KI?U M?NG (tt)
1. M?ng m?t chi?u
Cho số nguyên dương N (N≤300) và dãy số nguyên a1, a2, …. , aN. Hãy chỉ ra số nguyên lớn nhất và vị trí của số đó trong dãy (nếu trong dãy có nhiều phần tử lớn nhất thì hãy chỉ ra chỉ số của phần tử đầu tiên).
Input?
Output?
b. Ví d?:
Hãy cho biết các bước giải bài toán trên máy tính điện tử.
Ti?t 19: KI?U M?NG (tt)
Input: Nhập số nguyên dương N và dãy số nguyên a1, a2, …. , aN
Output: Phần tử lớn nhất đầu tiên và chỉ số của phần tử đó.
Xác định input và output?
Minh họa
1. M?ng m?t chi?u
Cho số nguyên dương N (N≤300) và dãy số nguyên a1, a2, …. , aN. Hãy chỉ ra số nguyên lớn nhất và vị trí của số đó trong dãy (nếu trong dãy có nhiều phần tử lớn nhất thì hãy chỉ ra chỉ số của phần tử đầu tiên).
b. Ví d?:
Ti?t 19: KI?U M?NG (tt)
Thuật toán ?
?
1. M?ng m?t chi?u
Cho số nguyên dương N (N≤300) và dãy số nguyên a1, a2, …. , aN. Hãy chỉ ra số nguyên lớn nhất và vị trí của số đó trong dãy (nếu trong dãy có nhiều phần tử lớn nhất thì hãy chỉ ra chỉ số của phần tử đầu tiên).
b. Ví d?:
Các nhóm tiến hành
thảo luận
Tgian: 4’
Tổ 1
Tổ 2
Tổ 3
Tổ 4
Hãy điền
thông tin
thích hợp
vào các
khối của
sơ đồ
thuật toán
bên
Ti?t 19: KI?U M?NG (tt)
Thuật toán ?
?
1. M?ng m?t chi?u
Cho số nguyên dương N (N≤300) và dãy số nguyên a1, a2, …. , aN. Hãy chỉ ra số nguyên lớn nhất và vị trí của số đó trong dãy (nếu trong dãy có nhiều phần tử lớn nhất thì hãy chỉ ra chỉ số của phần tử đầu tiên).
b. Ví d?:
Các nhóm tiến hành
thảo luận
Tgian: 5’
Tổ 1
Tổ 2
Tổ 3
Tổ 4
Hãy điền
thông tin
thích hợp
vào các
khối của
sơ đồ
thuật toán
bên
Ti?t 19: KI?U M?NG (tt)
Thuật toán
Cho số nguyên dương N
và dãy số nguyên a1, a2, …. , aN
Max a1; i 2; csmax 1;
i>N
In giá trị Max và csmax
và kết thúc
MaxMax ai
csmax i;
i i+1
Đ
S
1. M?ng m?t chi?u
Cho số nguyên dương N (N≤300) và dãy số nguyên a1, a2, …. , aN. Hãy chỉ ra số nguyên lớn nhất và vị trí của số đó trong dãy (nếu trong dãy có nhiều phần tử lớn nhất thì hãy chỉ ra chỉ số của phần tử đầu tiên).
b. Ví d?:
Đ
S
Đ
S
Nhập N và dãy a1,.,aN
Max ? a1 ; i ? 2; Csmax ?1;
I > N ?
ai> Max ?
Max ai; CsMax i;
i i+1
Đưa ra Max, Csmax rồi kết thúc
Max
i
A
7
7
5
5
5
5
4
3
2
6
7
4
1
5
N=5 ; A [ 5 1 4 7 6 ]
Max ? 5 ; i ? 2; Csmax ? 1;
2 > 5 ?
1> 5 ?
i 2+1
3 > 5 ?
4> 5 ?
i 3+1
4 > 5 ?
7 > 5 ?
Max 7;Csmax 4
4
i 4+1
5 > 5 ?
7 > 7 ?
i 5+1
6 > 5 ?
Số lớn nhất của dãy là 7;
CsMax là 4.
4
4
1
1
1
CsMax
Mô phỏng
thuật toán
Ti?t 19: KI?U M?NG (tt)
Thuật toán
Nhập nguyên dương N(N<300)
và dãy số nguyên a1, a2, …. , aN
Max a1; i 2; csmax 1;
i>N
In giá trị Max và csmax
và kết thúc
MaxMax ai
csmax i;
i i+1
Đ
S
Chương trình
Hãy khai báo biến cho thuật toán trên.
Dùng mảng một chiều mô tả dãy số nguyên a1, a2, …. , aN
Dùng kiểu dữ liệu nào mô tả dữ liệu vào cho bài toán trên?
Ti?t 19: KI?U M?NG (tt)
Thuật toán
Nhập nguyên dương N (N≤300)
và dãy số nguyên a1, a2, …. , aN
Max a1; i 2; csmax 1;
i>N
In giá trị Max và csmax
và kết thúc
MaxMax ai
csmax i;
i i+1
Đ
S
Chương trình
Var a:array[1..300] of integer;
i,N,Max,csmax: integer;
Nhập dữ liệu vào;
Xử lí tìm max và Csmax;
Xuất kết quả;
Tổ 1+ 2: Viết đoạn chương trình nhâp/xuất
Tổ 3+ 4: Viết đoạn chương trình tìm max và csmax
Ti?t 19: KI?U M?NG (tt)
Thuật toán
Nhập nguyên dương N(N≤300)
và dãy số nguyên a1, a2, …. , aN
Max a1; i 2; csmax 1;
i>N
In giá trị Max và csmax
và kết thúc
MaxMax ai
csmax i;
i i+1
Đ
S
Chương trình
Var a:array[1..300] of integer;
i,N,Max,csmax: integer;
Nhập dữ liệu vào;
Xử lí tìm max và Csmax;
Xuất kết quả;
Các nhóm tiến hành
thảo luận
Tgian: 5’
Tổ 1
Tổ 2
Tổ 3
Tổ 4
Ti?t 19: KI?U M?NG (tt)
Thuật toán
Nhập nguyên dương N(N≤300)
và dãy số nguyên a1, a2, …. , aN
Max a1; i 2; csmax 1;
i>N
In giá trị Max và csmax
và kết thúc
MaxMax ai
csmax i;
i i+1
Đ
S
Chương trình
Var a:array[1..300] of integer;
i,n,max,csmax: integer;
Begin
{Nhap du lieu}
Writeln(‘Nhap so phan tu cua day:’);readln(n);
For i:=1 to n do
begin
Write(‘Nhap phan tu thu ‘,i,’ : ’);
Readln(a[i]);
End;
{Tim max va csmax}
Max:=a[1]; csmax:=1;
For i:=2 to n do
If a[i]>max then
begin
Max:=a[i];
Csmax:=i;
end;
{Xuat ket qua ra man hin}
Writeln(‘Gia tri cua phan tu lon nhat: ’, max);
Writeln(‘Chi so cua phan tu lon nhat: ’,csmax);
Readln;
End.
Minh họa
Ti?t 19: KI?U M?NG (tt)
Củng cố kiến thức
Bài tập về nhà
Cho số nguyên dương N (N≤300) và dãy số nguyên a1, a2, …. , aN. Hãy chỉ ra số nguyên lớn nhì trong dãy số trên.
Củng cố
Hãy nhớ
TYPE = array[..] of ;
Var : ;
Var : array[..] of ;
Cách khai báo gián tiếp
Cách khai báo trực tiếp
Var : array[..] of ;
Cách tham chiếu: Tên biến mảng [chỉ số ]
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
Chào mừng quý thầy cô về dự giờ
THAO GIẢNG
Giáo viên: Nguyễn Thanh Toàn
Tổ: Toán - Tin
Câu 1: Mảng một chiều là gì?
Kiểm tra bài cũ
Câu 2: Hãy viết khai báo trực tiếp biến mảng một chiều và tham chiếu đến từng phần tử trong pascal.
Câu 1: M¶ng mét chiÒu lµ mét d·y h÷u h¹n c¸c phÇn tö cïng kiÓu.
ĐÁP ÁN
Var
Câu 2: Khai báo trực tiếp biến mảng một chiều:
Mảng một chiều là một kiểu dữ liệu có cấu trúc, cần thiết và tiện dụng trong lập trình và các ngôn ngữ lập trình đều cho phép người lập trình có thể dễ dàng khai báo kiểu mảng một chiều.
Tham chiếu đến từng phần tử trong mảng:
Tên biến mảng[chỉ số phần tử]
Chính vì vậy, người lập trình có thể vận dụng linh hoạt kiểu dữ liệu mảng một chiều vào giải một số bài toán trong thực tế. Hôm nay chúng ta sẽ tìm hiểu cách sử dụng kiểu mảng một chiều để giải bài toán tìm phần tử lớn nhất trong dãy số nguyên.
Ti?t 19: KI?U M?NG (tt)
1. M?ng m?t chi?u
Cho số nguyên dương N (N≤300) và dãy số nguyên a1, a2, …. , aN. Hãy chỉ ra số nguyên lớn nhất và vị trí của số đó trong dãy (nếu trong dãy có nhiều phần tử lớn nhất thì hãy chỉ ra chỉ số của phần tử đầu tiên).
Input?
Output?
b. Ví d?:
Hãy cho biết các bước giải bài toán trên máy tính điện tử.
Ti?t 19: KI?U M?NG (tt)
Input: Nhập số nguyên dương N và dãy số nguyên a1, a2, …. , aN
Output: Phần tử lớn nhất đầu tiên và chỉ số của phần tử đó.
Xác định input và output?
Minh họa
1. M?ng m?t chi?u
Cho số nguyên dương N (N≤300) và dãy số nguyên a1, a2, …. , aN. Hãy chỉ ra số nguyên lớn nhất và vị trí của số đó trong dãy (nếu trong dãy có nhiều phần tử lớn nhất thì hãy chỉ ra chỉ số của phần tử đầu tiên).
b. Ví d?:
Ti?t 19: KI?U M?NG (tt)
Thuật toán ?
?
1. M?ng m?t chi?u
Cho số nguyên dương N (N≤300) và dãy số nguyên a1, a2, …. , aN. Hãy chỉ ra số nguyên lớn nhất và vị trí của số đó trong dãy (nếu trong dãy có nhiều phần tử lớn nhất thì hãy chỉ ra chỉ số của phần tử đầu tiên).
b. Ví d?:
Các nhóm tiến hành
thảo luận
Tgian: 4’
Tổ 1
Tổ 2
Tổ 3
Tổ 4
Hãy điền
thông tin
thích hợp
vào các
khối của
sơ đồ
thuật toán
bên
Ti?t 19: KI?U M?NG (tt)
Thuật toán ?
?
1. M?ng m?t chi?u
Cho số nguyên dương N (N≤300) và dãy số nguyên a1, a2, …. , aN. Hãy chỉ ra số nguyên lớn nhất và vị trí của số đó trong dãy (nếu trong dãy có nhiều phần tử lớn nhất thì hãy chỉ ra chỉ số của phần tử đầu tiên).
b. Ví d?:
Các nhóm tiến hành
thảo luận
Tgian: 5’
Tổ 1
Tổ 2
Tổ 3
Tổ 4
Hãy điền
thông tin
thích hợp
vào các
khối của
sơ đồ
thuật toán
bên
Ti?t 19: KI?U M?NG (tt)
Thuật toán
Cho số nguyên dương N
và dãy số nguyên a1, a2, …. , aN
Max a1; i 2; csmax 1;
i>N
In giá trị Max và csmax
và kết thúc
Max
csmax i;
i i+1
Đ
S
1. M?ng m?t chi?u
Cho số nguyên dương N (N≤300) và dãy số nguyên a1, a2, …. , aN. Hãy chỉ ra số nguyên lớn nhất và vị trí của số đó trong dãy (nếu trong dãy có nhiều phần tử lớn nhất thì hãy chỉ ra chỉ số của phần tử đầu tiên).
b. Ví d?:
Đ
S
Đ
S
Nhập N và dãy a1,.,aN
Max ? a1 ; i ? 2; Csmax ?1;
I > N ?
ai> Max ?
Max ai; CsMax i;
i i+1
Đưa ra Max, Csmax rồi kết thúc
Max
i
A
7
7
5
5
5
5
4
3
2
6
7
4
1
5
N=5 ; A [ 5 1 4 7 6 ]
Max ? 5 ; i ? 2; Csmax ? 1;
2 > 5 ?
1> 5 ?
i 2+1
3 > 5 ?
4> 5 ?
i 3+1
4 > 5 ?
7 > 5 ?
Max 7;Csmax 4
4
i 4+1
5 > 5 ?
7 > 7 ?
i 5+1
6 > 5 ?
Số lớn nhất của dãy là 7;
CsMax là 4.
4
4
1
1
1
CsMax
Mô phỏng
thuật toán
Ti?t 19: KI?U M?NG (tt)
Thuật toán
Nhập nguyên dương N(N<300)
và dãy số nguyên a1, a2, …. , aN
Max a1; i 2; csmax 1;
i>N
In giá trị Max và csmax
và kết thúc
Max
csmax i;
i i+1
Đ
S
Chương trình
Hãy khai báo biến cho thuật toán trên.
Dùng mảng một chiều mô tả dãy số nguyên a1, a2, …. , aN
Dùng kiểu dữ liệu nào mô tả dữ liệu vào cho bài toán trên?
Ti?t 19: KI?U M?NG (tt)
Thuật toán
Nhập nguyên dương N (N≤300)
và dãy số nguyên a1, a2, …. , aN
Max a1; i 2; csmax 1;
i>N
In giá trị Max và csmax
và kết thúc
Max
csmax i;
i i+1
Đ
S
Chương trình
Var a:array[1..300] of integer;
i,N,Max,csmax: integer;
Nhập dữ liệu vào;
Xử lí tìm max và Csmax;
Xuất kết quả;
Tổ 1+ 2: Viết đoạn chương trình nhâp/xuất
Tổ 3+ 4: Viết đoạn chương trình tìm max và csmax
Ti?t 19: KI?U M?NG (tt)
Thuật toán
Nhập nguyên dương N(N≤300)
và dãy số nguyên a1, a2, …. , aN
Max a1; i 2; csmax 1;
i>N
In giá trị Max và csmax
và kết thúc
Max
csmax i;
i i+1
Đ
S
Chương trình
Var a:array[1..300] of integer;
i,N,Max,csmax: integer;
Nhập dữ liệu vào;
Xử lí tìm max và Csmax;
Xuất kết quả;
Các nhóm tiến hành
thảo luận
Tgian: 5’
Tổ 1
Tổ 2
Tổ 3
Tổ 4
Ti?t 19: KI?U M?NG (tt)
Thuật toán
Nhập nguyên dương N(N≤300)
và dãy số nguyên a1, a2, …. , aN
Max a1; i 2; csmax 1;
i>N
In giá trị Max và csmax
và kết thúc
Max
csmax i;
i i+1
Đ
S
Chương trình
Var a:array[1..300] of integer;
i,n,max,csmax: integer;
Begin
{Nhap du lieu}
Writeln(‘Nhap so phan tu cua day:’);readln(n);
For i:=1 to n do
begin
Write(‘Nhap phan tu thu ‘,i,’ : ’);
Readln(a[i]);
End;
{Tim max va csmax}
Max:=a[1]; csmax:=1;
For i:=2 to n do
If a[i]>max then
begin
Max:=a[i];
Csmax:=i;
end;
{Xuat ket qua ra man hin}
Writeln(‘Gia tri cua phan tu lon nhat: ’, max);
Writeln(‘Chi so cua phan tu lon nhat: ’,csmax);
Readln;
End.
Minh họa
Ti?t 19: KI?U M?NG (tt)
Củng cố kiến thức
Bài tập về nhà
Cho số nguyên dương N (N≤300) và dãy số nguyên a1, a2, …. , aN. Hãy chỉ ra số nguyên lớn nhì trong dãy số trên.
Củng cố
Hãy nhớ
TYPE
Var
Var
Cách khai báo gián tiếp
Cách khai báo trực tiếp
Var
Cách tham chiếu: Tên biến mảng [chỉ số ]
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
* 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ũ Mạnh Huy
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)