Tải bản đầy đủ (.docx) (7 trang)

Giáo án hay kế hoạch bài dạy môn tin học lớp 11 bộ kết nối tri thức và cuộc sống, chân trời sáng tạo và cánh diều. Theo công văn 5512 có chọn lọc hay

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (152.38 KB, 7 trang )

Tiết CT: 17
Ngày soạn: 25/10/2021
Ngày dạy: 1/11- 6/11/2021

BÀI TẬP

I. MỤC ĐÍCH – YÊU CẦU
1. Kiến thức
Củng cố kiến thức đã học ở chương III: cấu trúc rẽ nhánh và cấu trúc lặp
2. Kĩ năng
Rèn luyện kĩ năng sử dụng cấu trúc rẽ nhánh trong việc lập trình giải bài tốn cụ thể.
3. Thái độ
Tự giác, tích cực, chủ động trong việc làm bài tập.
II. PHƯƠNG PHÁP
Nêu vấn đề giải quyết vấn đề
III. PHƯƠNG TIỆN DẠY HỌC
Bảng phụ, giáo án…
IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1. Ổn định lớp (kiểm tra sĩ số)
2. Kiểm tra bài cũ:
Câu 1: viết cấu trúc lặp trong pascal: dạng lặp tiến hoặc lặp lùi? Cho ví dụ?
Câu 2: hãy điền câu lệnh vào đoạn chương trình sau: Program Tong_2;
Uses crt;
Var A, N: integer;
……………….
Begin
Write((hay nhap gia trị a vào!’);
Readln(a);
S:=1/a; N:= 0;
While not(1/(a+N) < 0.0001) do
Begin


N:=N+ 1;
………………….
End;
Writeln(‘ Tong S la: ‘, S: 8: 3);
Readln
End.
3. Nội dung
HOẠT ĐỘNG CỦA HS
HOẠT ĐỘNG CỦA GV
Yêu cầu HS thảo luận trong 3 phút lên bảng viết câu lệnh
Thảo luận và trình bày trên bảng

Bài 4: Viết câu lệnh rẽ nhánh tính

22

a)

z =¿{x +y ¿{x +y¿ ¿

nếu x2 + y2 ≤ 1

nếu x2 + y2 > 1 và y ≥ x

nếu x2 + y2 > 1 và y < x


HOẠT ĐỘNG CỦA HS

HOẠT ĐỘNG CỦA GV

if (sqr(x) + sqr(y)) <= 1 then
z :=sqr(x) + sqr(y)
else
if ((sqr(x) + sqr(y)) > 1) and (y>=x) then z := x+ y else z :=
0.5;
b.

z=¿ {|x|+|y|¿ ¿¿¿

Nếu điểm (x, y) thuộc hình trịn
bán kính r (r > 0), tâm (a,b)
Trường hợp còn lại

Điều kiện để M thuộc đường tròn
Yêu cầu HS lên biểu diễn trong Pascal
tâm O
Hướng dẫn giải bài 5
? n có giá trị như thế nào?
? Vậy ta phải dùng cấu trúc lặp nào tốt nhất?
Tương tự như chương trình tính tổng VD1
Yêu cầu HS viết chương trình

OM ≤ R



2

2


( x−a ) +( y−b )
Hay
Lên bảng trình bày

≤R

if sqrt(sqr(x − a) +sqr(y − b))<= R then z:=abs(x) + abs(y) else
z := x + y;
N sẽ có giá trị từ 1 đến 50
Cấu trúc lặp với số lần biểt trước For
− do

Bài 5. Lập trình tính:
50
n
y= ∑
n=1 n+1
a)

Viết chương trình

Program bai_5a;
Uses crt;
Var y : real;
n: byte;
Begin
clrscr;
y := 0; {khởi tạo giá trị của y}
for n:= 1 to 50 do
y:= y + n/(n+1);



HOẠT ĐỘNG CỦA HS

HOẠT ĐỘNG CỦA GV
write('y= ', y:9:3);
readln
end.

e (n)=1+

1 1
1
1
+ +. ..+ +.. .
<2×10−6
1! 2!
n!
cho đến khi n!
đưa

b.
ra giá trị ra màn hình
program bai_5b;
uses crt;
var n: longint;
e, gt: real;
begin
gt := 1/2; {khởi tạo gt}
n := 2;

e := 2 + gt;
while gt > 2*E−6 do
begin
inc(n); {tăng n lên 1 đơn vị}
gt := gt*(1/n);
e := e + gt;
end;
write('gia tri e(n) la: ', e: 9:4);
readln
end.

Bài 6: lập trình giải bài tốn cổ
program btoan_co;
uses crt;
var cho, ga: byte;
begin
for cho := 1 to 24 do
begin
ga := 36 − cho;
if ga + 2*cho = 50 then
write('ga: ', ga, ' cho: ',cho);
end;
readln
end.
V. CỦNG CỐ - DẶN DÒ
1. Củng cố:
Nhắc lại câu lệnh lặp với số lần biết trước và số lần chưa biết trước


Tiết CT: 18

Ngày soạn: 27/10/2021
Ngày dạy: 04/11–06/11/2021

CHƯƠNG IV: KIỂU DỮ LIỆU CĨ CẤU TRÚC
§ 11. KIỂU MẢNG (Tiết 1)

I. MỤC ĐÍCH – YÊU CẦU
1. Kiến thức
− Kiểu mảng là kiểu dữ liệu có cấu trúc, cần thiết và hữu ích trong chương trình
− Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu
− NNLT thông dụng cho phép mô tả kiểu dữ liệu mảng một chiều
− Để mô tả mảng một chiều cần khai báo kiểu các phần tử và cách đánh số các phần tử
− Có thể tham chiếu phần tử của mảng bằng tên của mảng và chỉ só tương ứng của phần tử
này
2. Kĩ năng:
− Nhận biết các thành phần trong khai báo kiểu mảng một chiều
− Nhận biết định danh của phần tử kiểu mảng một chiều xuất hiện trong một chương trình
− Biết cách khai báo mảng đơn giản với chỉ sô kiểu miền con của kiểu nguyên.
II. PHƯƠNG PHÁP
Nêu vấn đề, diễn giảng.
III. PHƯƠNG TIỆN DẠY HỌC
Máy chiếu Projector.
IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1. Ổn định lớp (kiểm tra sĩ số)
2. Kiểm tra bài cũ: (nếu có)
3. Nội dung
HOẠT ĐỘNG CỦA HS
Chú ý lắng nghe

NỘI DUNG

§ 11. KIỂU MẢNG

Chiếu đề bài và chương trình ví dụ
Giải thích: ta dùng 7 biến để lưu trữ nhiệt độ các ngày trong tuần.
Và để xét nhiệt độ nào lớn hơn nhiệt độ trung bình ta dùng 7 câu
lệnh if − then
? Khi ta cần xét nhiệt độ cho cả năm thì sau?
cần dùng nhiều biến viết Để khắc phục những hạn chế trên người ta thường ghép chung 7
nhiều câu lệnh if − then
biến trên thành một dãy và đặt cho nó chung một tên và đánh cho
mỗi phần tử một chỉ số.
? Thế nào là mảng một chiều?
Ví dụ: a1, a2, …, an
? Để mô tả mảng một chiều ta cần chú ý đến yếu tố nào?
Đứng dậy phát biểu


HOẠT ĐỘNG CỦA HS

NỘI DUNG

Kiểu phần tử và cách đánh
số các phần tử của nó.
1. Kiểu 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. Mảng
được đặt tên và mỗi phần tử của nó có một chỉ số.
Hầu hết các NNLT đều có qui tắc cho phép xác định
− Tên kiểu mảng một chiều
− Số lượng phần tử
− Kiểu dữ liệu của phần tử

− Cách khai báo biến mảng
− Cách tham chiếu đến ptử

Dòng 3 và 4

a. Khai báo
− Khai báo trực tiếp:
Var <tên biến mảng>:array [kiểu chỉ số] of <kiểu phần tử>;
Ví dụ: var A : array[1..10] of integer;
− Khai báo gián tiếp
Type <tên kiểu mảng> = array [kiểu chỉ số] of <kiểu phần tử>;
var <tên biến mảng>:< tên kiểu mảng>;
ví dụ: type mang = array[1..10] of integer;
var A : mang;
trong đó:
− Kiểu chỉ số: thường là đoạn số nguyên liên tục
− Kiểu phần tử là kiểu của các phần tử mảng.
* Tham chiếu phần tử của mảng: thông qua tên mảng và chỉ số
Cú pháp: tên_mảng[chỉ số]
Ví dụ: A[2] {tham chiếu đến phần tử thứ hai của mảng A.
Để tham chiếu đến phần tử thứ 10 của mảng ta viết nhietdo[10]
chỉ số phần
1 2 ... 10 11 ...
tử
Mảng
23 24 ... 22 28 ...
Nhietdo

b. Một số ví dụ
ví dụ 1: viết chương trình tìm và đưa ra màn hình phần tử lớn nhất

của dãy dố nguyên
Input: số nguyên N và dãy
N số nguyên a1, a2, …,aN
* Chương trình:
Output: chỉ số và giá trị lớn
Program TimMax;
nhất của dãy.
Uses crt;
Type Dayso = array[1..250] of integer;
thảo luận lên viết chương
Var N, i, Max, csMax: integer;


HOẠT ĐỘNG CỦA HS
trình

Input: Số nguyên dương N,
và dãy A gồm N số nguyên
dương A1, A2, …,AN.
Output: Dãy số A đã được
sắp xếp thành dãy không
giảm.

NỘI DUNG
A: Dayso;
Begin
Clrscr;
Write(‘nhap so phan tu: ‘); readln(N);
For i := 1 to N do
Begin

Write(‘nhap phan tu thu ‘,i, ‘:’);
Readln(A[i]);
End;
Max:= A[1]; csMax := 1;
For i:= 2 to N do
If A[i] > Max then
Begin
Max := A[i];
Csmax := i;
End;
Write(‘gia tri cua phan tu max: ‘,max);
Write(‘chi so cua phan tu Max: ‘, csmax);
Readln
End.
Ví dụ 2: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi
Program sapxep;
Uses crt;
Type Dayso = array[1..250] of integer;
Var N,i, j,t: integer;
Begin
Clrscr;
Write(‘nhap so phan tu day: ‘);
readln(N);
for i:=1 to N do
begin
write(‘nhap vao phan tu thu ‘,i,’: ‘);
readln(A[i]);
end;
for j := N downto N do
for i := 1 to j – 1 do

if A[i] > A[i + 1] then
begin {trao doi A[i] va A[i + 1]}
t := A[i];
A[i]:= A[i + 1];
A[i + 1] := t;
end;
writeln(‘day so duoc sap xep la:’);
for i := 1 to N do write(A[i]:4);


HOẠT ĐỘNG CỦA HS

NỘI DUNG
readln;
End.
Ví dụ 3: tìm kiếm nhị phân

Input: Số nguyên dương N,
và dãy A gồm N số nguyên
dương A1, A2, …, AN và số
nguyên k.
Output: chỉ số i mà Ai = k
hoặc thơng báo “khơng tìm
thấy số hạng nào bằng k

Chương trình:
Program TK_nhiphan;
Uses crt;
Type Dayso = array[1..250] of integer;
Var N, i, k: integer;

Dau, Cuoi, Giua: integer;
A: Dayso;
Tim_thay: boolean;
Begin
clrscr;
write(‘nhap so phan tu cua day, N = ‘);
readln(N);
writeln(‘nhap cac phan tu cua day so tang: ‘);
For i := 1 to N do
begin
write(‘phan tu thu’,i,’ = ‘);
readln(A[i]);
end;
write(‘nhap gia tri k = ‘);
readln(k);
Dau:= 1; cuoi := N; Tim_thay:= false;
while (dau<=cuoi) and not (Tim_thay) do
begin
Giua:= (Dau + Cuoi) div 2;
if A[Giua] = k then
Tim_thay := True
else if A[Giua] > k then
Cuoi := Giua − 1
else Dau:= Giua + 1;
end;
if Tim_thay then
writeln(‘chi so tim duoc la: ‘,Giua)
else write(‘khong tim thay’);
readln
end.


V. CỦNG CỐ - DẶN DÒ
1. Củng cố:
Các cách khai báo mảng, tham chiếu đến phần tử của mảng.



×