1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Phương pháp giải bài tập Tin học 11

190 1,1K 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 190
Dung lượng 1,5 MB

Nội dung

Xây dựng ý tưởng giải thuật: − Sử dụng vòng lặp While… Do − Sơ đồ khối của thuật toán: 3.. Xây dựng ý tưởng giải thuật: Dựa vào tính chất của dãy số Fibonacci.. Bài 5.12: Thông tin về tì

Trang 1

Sinh viên: Trương Đức Khiêm

Lớp: Tin 4B

Phương pháp giải bài tập Tin học

 Bài tập 3.34 trang 24 sách Bài tập tin học 11

 Bài tập 5.9 trang 59 sách Bài tập tin học 11

1 Tìm hiểu đề bài:

Dữ liệu vào: Không có.

− Dữ liệu ra: Tệp văn bản FIBO.DAT gồm 45 dòng Mỗi dòng là một số Fibonaccy

2 Xây dựng ý tưởng giải thuật:

Sử dụng vòng lặp While… Do

− Sơ đồ khối của thuật toán:

3 Trình bày lời giải:

Trang 2

4 Mở rộng bài toán: Không có {Do đến chương này học sinh mới chỉ được học những câu lệnh cơ

bản.}

II. Bài tập 5.9:

1 Tìm hiểu đề bài:

− Dữ liệu vào: Số n là số tháng mà đoàn thám hiểm quay lại đảo

− Dữ liệu ra: Số thỏ trên đảo sau n tháng

2 Xây dựng ý tưởng giải thuật: Dựa vào tính chất của dãy số Fibonacci.

Sử dụng vòng lặp While… Do

− Sơ đồ thuật toán:

3 Trình bày lời giải:

Trang 3

4 Nghiên cứu về lời giải và mở rộng bài toán:

4.1 Chương trình chỉ xác định được số thỏ trong vòng 45 tháng

4.2 Về lời giải trong sách bài tập: Thiếu chính xác! Lí do, trong lời giải khai báo kiểu phần tử của số Fibonaccy là Integer, nhưng phần tử thứ 24 của dãy số Fibonaccy có giá trị là 46368 đã vượt quá miền trị của kiểu Integer là 215− =1 32767 Cho nên, nếu nhập vào số tháng lớn hơn 23 thì sẽ cho kết quả 9489

4.3 Mở rộng bài toán: Cho số tự nhiên N và dãy số Fibonaccy: 1, 1, 2, 3, 5, 8, .Hãy viết chương trình kiểm tra xem N có thể biểu diễn thành tổng của của các số Fibonaccy khác nhau hay không?

Cách giải: Ta sẽ tìm số Fibonaccy gần với số N nhất Đây sẽ chính là số hạng đầu tiên nằm

trong dãy kết quả Sau đó, lấy hiệu của số N và số Fibonaccy gần với số N nhất, tiếp tục tìm số Fibonaccy gần với hiệu trên và cứ thế cho đến khi hiệu đó là một số Fibonaccy Kết quả các số Fibonaccy sẽ được liệt kê theo thứ tự từ lớn đến nhỏ

Trang 4

Sinh viên: Lê Thị Châu Long

Lớp: Tin 4B

 Bài tập 3.38 trang 26 sách Bài tập tin học 11

 Bài tập 5.11 trang 57 sách Bài tập tin học 11

i

=

<∑

2 Ý tưởng giải thuật:

3 Trình bày lời giải

4 Mở rộng bài toán:

Trang 5

• Xóa tất cả các dấu cách đầu và cuối xâu.

• Nhiều dấu cách lien tiếp (nếu có) được thay bằng dấu cách duy nhất

1 Tìm hiểu đề bài:

− Input: Tệp LINE.TXT

− Output: Tệp LINE.DAT

2 Ý tưởng giải thuật:

Trang 6

3 Trình bày lời giải:

4 Mở rộng bài toán:

Cho tệp LINE.TXT, mỗi dòng không chứa một xâu không quá 255 kí tự hãy lập trình tạo tệp LINE.DAT chứa các xâu ở tệp LINE.TXT, lưu các thông tin sau:

• Đếm các số các số nguyên có trong xâu

• Tìm các số nguyên là số chẵn có trong xâu

Trang 7

Sinh viên: Nguyễn Thị Thanh Minh

Lớp: Tin 4B

 Bài tập 3.41 trang 26 sách Bài tập tin học 11

 Bài tập 5.14 trang 57 sách Bài tập tin học 11

I Bài 3.41:

1 Tìm hiểu bài toán:

- Input: Nhập thời gian: h giờ m phút s giây

- Output: Trạng thái hiện tại là ngọn đèn hải đăng đang sáng hay tắt

2 Ý tưởng giải thuật:

- Bước 1: Nhập thời gian h giờ m phút s giây.

- Bước 2: Nếu h 24> hoặcm 60> hoặc s 60> thì quay lại bước 1

- Bước 3: Nếu h 6 ≥ và h 18 ≤ thông báo đèn ở trạng thái tắt Đến bước 5

- Bước 4: Nếu (h 360 m 60 s 12 360) mod(t× + × + − × 1+t ) 102 < thông báo đèn ở trạng thái tắt Ngược lại thông báo đang sáng

- Bước 5: Kết thúc

3 Trình bày lời giải

4 Nghiên cứu lời giải và mở rộng bài toán:

4.1 Xây dựng bộ test: Thời gian Trạng thái

Giờ Phút Giây

Trang 8

4.2 Bài toán này còn có thể dùng để kiểm tra trạng thái của đèn với giá trị t1, t2 khác khi

đó ta chia hiệu thời gian đó cho t1+t2

Trang 9

II Bài 5.41:

1 Tìm hiểu đề bài:

- Input: Tệp văn bản DUONGI.TXT.

- Output: Khoảng cách của nhóm so với trại.

2 Ý tưởng giải thuật:

- Do chỉ cần biết được khoảng cách của nhóm so với trại nên ta gắn vào hướng đi của nhóm theo một hệ trục toạ độ: Gốc là trại, chiều dương trục Ox là hướng Đông, chiều dương trục

Trang 10

Sinh viên: Phan Thi Hoa

Lớp: Tin 4B

 Bài tập 3.29 trang 23 sách Bài tập tin học 11

 Bài tập 7.37 trang 74 sách Bài tập tin học 11

I Bài 3.29:

Lập trình giải bài toán sau: Nhập 2 số nguyên a và b từ bàn phím( a<b) Xác định các số nguyên lẻ i thõa điều kiện a<i<b Đưa ra màn hình số lượng tính được và bản thân các số lẻ này theo thứ tự tăng dần (mỗi số trên một dòng)

1 Tìm hiểu đề bài:

- Input: Hai số a và b (a<b).

- Output: Số lượng các số nguyên lẻ i (a<i<b) và các số lẻ này được sắp xếp theo thứ tự tăng dần

2 Ý tưởng giải thuật:

- Bước 1: Nhập a, b (a<b)

- Bước 2: i:=a; d=0;

- Bước 3: Nếu i>b thi qua 5

- Bước 4: Nếu i mod 2 =0 thi d=d+1 và in i tiếp tục tăng i =i +1;

- Bước 5: In d và kết thúc

3 Trình bày lời giải:

Trang 11

- Output : Dãy p theo thứ tự tăng dần.

+ Quay lại bước 4

- Bước 5: Ngược lại

Trang 12

3 Trình

4 Nghiên cứu lời giải và mở rộng bài toán:

Trang 13

Sinh viên: Lê Thị Mai

Lớp: Tin 4B

 Bài tập 3.39 trang 23 sách Bài tập tin học 11

 Bài tập 5.12 trang 74 sách Bài tập tin học 11

I Bài 3.39:

Cho hai hinh chữ nhật có các cạnh song song với trục toạ độ và có toạ độ đỉnh là số nguyên Mỗi hình chữ nhật được xác định bởi toạ độ đỉnh trên trái và toạ độ đỉnh dưới phải Hãy viết chương trình xác định hai hình chữ nhật này có điểm chung hay không?

- Input: Nhập các đỉnh của 2 hình chữ nhật

+ Hình chữ nhật thứ nhất có đỉnh là: A(x, y), B(x, y);

+ Hình chữ nhật thứ hai có đỉnh là: C(x, y), D(x, y);

- Output: Hai hình chữ nhật này có điểm chung hay không?

+ ((Ax<=Cx) and (Cx<=Bx)) and ((By<=Dy) and (Dy<=Ay))

+ ((Ax<=Dx) and (Dx<=Bx)) and ((By<=Dy) and (Dy<=Ay))

- Nếu một trong 4 trường hợp đúng thì hai hình chữ nhật đó sẽ cắt nhau.

2.2 Các bước thực hiện:

- Bước 1: Nhập các đỉnh của 2 hcn: A, B, C, D

- Bước 2: Kiểm tra điều kiện

+ Nếu (( (Ax<=Cx) and (Cx<=Bx)) and ( (By<=Cy) and (Cy<=Ay))) or (( (Ax<=Dx) and (Dx<=Bx)) and ((By<=Cy) and (Cy<=Ay)))or (((Ax<=Cx) and (Cx<=Bx)) and ((By<=Dy) and (Dy<=Ay))) or (((Ax<=Dx) and (Dx<=Bx) ) and ((By<=Dy) and (Dy<=Ay)))

thì In thông báo “Hai hcn đó cắt nhau”

+ Ngược lại thì in thông báo “Hai hcn không cắt nhau”

- Bước 3: Kết thúc thuật toán.

Trang 14

3 Trình

4 Mở rộng bài toán: Xác định tâm và bán của hình tròn nhỏ nhất chứa 2 hình chữ

nhật trên

II Bài 5.12:

Thông tin về tình hình xuất khẩu gạo cả năm của công ty A được ghi trong tệp văn bản RICE.DAT, Mỗi loại gạo xuất khẩu ứng với một dòng 3 gía trị: Số lượng xuất, đơn giá và loại gạo, mỗi loại gạo có một tên riêng Các gía trị được ghi cách nhau một dấu cách Tệp chứa không quá một trăm dòng thông tin

Hãy lập trình đọc tệp RICE.DAT, tính và Đưa ra màn hình các thông tin sau:

- Tổng số tiền thu được từ xuất khẩu gạo

- Tên các loại gạo thu nhập cao nhất.

1 Tìm hiểu đề bài:

- Input: Cho tệp RICE.DAT có Số lượng xuất, đơn giá, loại gạo Tệp chứa không quá 100

dòng thông tin

- Output:Tổng số tiền thu được và tên các loại gạo thu nhập cao nhất.

2 Ý tưởng thuật toán:

Trang 15

- So sánh sl*dg của các loại gạo và đưa ra kết quả.

 Tăng biến i:=i+1;

+ Ngược lại thì Qua B5

- Bước 4: Gán max:=a[1].sl*a[1].dg;

+ Nếu i<=n thì

 Tăng i:=i+1

 So sánh a[i].sl*a[i].dg > max thì hoán đổi

+ Ngược lại Qua B5;

- Bước 5:

+ In thông báo “tổng số tiền thu được”;

+ So sánh nếu max = a[i].sl*a[i].dg thì in thông báo “Các loại gạo có thu nhập cao nhất”;

- Bước 6: Kết thúc thuật toán.

3 Trình bày lời giải:

Trang 16

4 Mở rộng bài toán:Hãy đưa ra tên các loại gạo cho thu nhập thấp nhất (Đơn giá*số lượng xuất

là thấp nhất) Viết chương trình nhập thêm dữ liệu (Số lượng, đơn giá, loại gạo) vào trong tập tin

“RICE.DAT”

Trang 17

Họ và tên: Trương Thị Khánh Hà

Lớp: Tin 4B

I Bài 3.27:

1 Tìm hiểu đề bài:

- Input: Nhập m, n, k

- Output: Kiểm tra p là số có hơn 2 số có nghĩa và số hàng đơn vị bằng 0 không?

2 Xây dựng ý tưởng giải thuật

Trang 18

3 Trình bày lời giải

Var m, n, k: interger;

p: interger;

Begin

RepeatWrite(‘ Nhập m, n, k:’);

Writeln(p, ’là số có hơn 2 chữ số có nghĩa và số hàng đơn vị khác 0’); Else

Writeln(p, ’ là số không có hơn hai chữ số có nghĩa’);

Readln;

End

4 Nghiên cứu về lời giải

4 5 6 120 p là số có hơn hai chữ số có nghĩa và hàng đơn vị bằng 0

2 3 1 6 p là số không có hơn hai chữ số có nghĩa

4 3 2 24 p là số không có hơn hai chữ số có nghĩa

4 7 4 112 p là số có hơn hai chữ số có nghĩa và hàng đơn vị khác 0

II Bài 4.47:

Mảng các bản ghi luôn có thể thay thế bằng 1 số mảng có kiểu phần tử chuẩn khác bản ghi.Với bảng Lop : array[ 1 60] of Hocsinh;

Ta có thể thay thế như sau:

- Điểm số thay thế bằng 7 mảng 1 chiều

Var Điểm: array [0 10]of Real;

Tin, toan, li, hoa, van, su, đia: Real;

- Các trường khác mỗi trường ứng với 1 mảng

Var Hoten: array[1 30] of String;

Var Ngaysinh: aray[1 10] of String;

Var Gioitinh: array[1 2] of Boolean;

Trang 19

Sinh viên Lê Đức Chinh

until( q<>0) and( p<>0)and (r<>0);

if q/p=r/q then writeln(p, ' ', q, ' ', r, ': la cap so nhan')

else writeln(p, ' ', q, ' ', r, ': khong phai cap so nhan');

readln;

end.

Bước 4

Mở rộng cho hs giải các bài toán tương tự như kiểm tra cấp số cộng không, trong trường hợp lớn hơn 3

số làm thế nào? Xác định số hạng tiếp theo nếu đây là cấp số nhân (số cộng)

Bài 440(sbt trang 45):Hãy lập trình

Trang 20

-đưa kết quả đã chuẩn hóa ra màn hình.

B2 xóa trong xâu s đi 1 kí tự nếu có hai kí tự trắng liền nhau

B3 kiểm tra kí tự đầu và cuối nếu chúng là kí tự trắng thì xóa

B4.đưa lần lươt s[i] ra màn hình đến hết

if s[length(s)]=' ' then delete(s, length(s), 1);

writeln('xau sau khi duoc chuan hoa la ');

for i:=1 to length(s) do

Trang 21

HỌ VÀ TÊN : NGUYỄN VĂN TRUNG

LỚP : TIN 4B

BÀI TẬP MÔN : PHƯƠNG PHÁP GIẢI BÀI TẬP TIN HỌC PHỔ THÔNG TRUNG HỌC

Bài 4.30

Bước 1 Xác định bài toán:

- Input : Nhập các tọa độ của các đỉnh của các ô cửa số hiện trên màn hình của máy tính: A(X1, Y1), B(X2, Y2), C(X3, Y3), D(X4, Y4);

- Output : Xác định số lượng K điểm ảnh bị che trên cửa sổ

Bước 2 Xây dựng ý tưởng giải thuật:

- Xây dựng mảng để lưu các điểm ảnh được xác định tọa độ cột x và tọa độ hàng y

- Xây dựng các câu lệnh For –Do để đánh dấu các giao điểm của các cửa sổ

Bước 3 Giải thuật của bài toán:

For i:= x1 to x2 do For j:= y1 to y2 Do M[I, j]:=1;

For i:= x3 to x4 Do For j:=y3 to y4 Do

If M[I, j]=1 then inc(s);

Writeln(‘Số điểm bị che là:’, s);

End

Bài 7.17

Trang 22

Bước 2 Xây dựng ý tưởng giải thuật:

- Xây dựng hàm tính khoảng cách giữa hai điểm bất kỳ nào đó

- Lấy tọa độ trung điểm của hai điểm A(Xa, Ya) và G(Xg, Yg) và tọa độ này cũng chính là tọa độ tâm của hình tròn nhỏ nhất chứa hai hình chữ nhật trên

- Kiểu dữ liệu cần xây dựng là kiểu: Real;

Bước 3 Giải thuật của bài toán:

Program Hinh_tron

Var Xa, Xe, Ya, Ye, Xg, Yg, X0, Y0, X1, Y1, X2, Y2, Xc, Yc: Real;

Function Khoang_cach(X1, X2, Y1, Y2:Real); Real;

Writeln(‘Đường tròn tâm’, X0, Y0);

Writeln(‘Bán kính’, Khoang_cach(X1, Y1, X2, Y2);’

Readln;

End

Trang 23

PHƯƠNG PHÁP GIẢI BÀI TẬP

Người soạn: Nguyễn Kính Doanh

Lớp: Tin4B

I.Đề bài: (Bài 3.23/Trang 22(SBTTH11))

Cho cấp số cộng a 0, a 1 , a 2, ……, a k , … Trong đó a k =a k-1 +d, k=1, 2… Hãy viết chương

trình :

Nhập ba số nguyên a 0 , d, và b;

Tìm và đưa ra màn hình số n nguyên không âm nhỏ nhất thoả mãn điều kiện a n ≥b.

II.Phương pháp giải bài tập:

Bước 1: + Input: a0, d, b

a 0, a 1 , a 2, ……, a k , ….( a k =a k-1 +d, k=1, 2….)

+ Output: giá trị n (n≥0 và an≥b)

Bước 2: - Ý tưởng giải thuật:

• Kiểm tra giá trị b≤a[0] thì in ra màn hình giá trị n là 0

• Kiểm tra nếu d≤0 và b>a[0] thì in ra màn hình không có giá trị của n

• Sử dụng vòng lặp WHILE-DO để tìm phần tử a[i] có giá trị lớn hơn hoặc bằng b với a[i]=a[i-1]+d

• Kết thúc vòng lặp khi nào có giá trị a[i] ≥b và in ra màn hình giá trị n là giá trị của i

Trang 25

I.Đề bài: (Bài tập 4.43/trang 46(SBTTH11))

Hãy lập trình :

• Nhập từ bàn phím số nguyên dương N (1≤N≤20) và N số nguyên A1, A2, , AN

• Đưa ra màn hình số lượng số Ai lẻ và bản thân các số Ai lẻ theo trình tự xuất hiện của chúng trong dãy đã nhập Nếu trong dãy đã nhập không có số lẻ nào thì đưa ra màn hình kết quả là một số 0

II.Phương pháp giải bài tập:

Trang 27

Hoàng Thị Cẩm Tú

Lớp: Tin 4b

PHƯƠNG PHÁP GIẢI BÀI TẬP TIN HỌC

Bài 4.31/42 ( sách bài tập tin học 11)

Cho dãy số nguyên N (1<N<=50) và N số nguyên A1, A2, …A , trong đó có ít nhất 2 số 0 Hãy lập trình:

• Nhập từ bàn phím số nguyên N và dãy A1, A2, …, A

• Tính tổng các số Ai nằm giữa số 0 đầu tiên và số 0 cuối cùng và đưa kết quả ra màn hình Nếu 2 số 0 này nằm cạnh nhau thì kết quả đưa ra sẽ là 0

Bước1: Tim hiểu đề bài

Input: Nhập số nguyên N và dãy A1, A2, …, A (có ít nhất 2 số 0)

Output: Tính tổng các số nằm giữa số 0 đầu tiên và số 0 cuối cùng

Bước 2: Xây dựng ý tưởng giải thuật

Tìm số 0 đầu tiên từ trái sang phải, số 0 thứ 2 từ phải sang trái, sau đó tính tổng

Trang 28

Bước 3: Trình bày lời giải

Trang 30

Đáp án: bảng chữ cái La tinh có 26 chữ cái hoa (A…Z), 26 chữ cái thường (a…z)a) 52

b) 52 × 52= 2704

Trang 31

Sinh viên: Đặng Thị Hà Thanh

= 6+2+1 = 9

Trang 32

Procedure POLAR(x, y:real; var r, ϕ:real);

Begin

r:= sqrt(x*x+y*y);

if x>0 then ϕ:= arctan(y/x);

if x=0 and y>0 then ϕ:= π/2;

if x=0 and y=0 then ϕ:= 0;

Trang 33

Bài tập môn: PP giải bài tập tin học

Sinh viên : Hồ Đức Thuận

Lớp : Tin 4B

Bài 3.25

1 Xác định bài toán

Input: xâu s

Output: thông báo xâu hợp lệ hay không

2 Ý tưởng thuật toán.

-Kiểm tra xem trong xâu có ký tự đóng “)” nào nằm trước kí tự mở “(“ không Nếu có thì thông báo

là xâu không hợp lệ Còn nếu không thì kiểm tra tiếp xem số lượng kí tự đóng có bằng số lượng kí tự

mở không

- Thuật toán

Bc1: Nhập xâu s, i:=1, m:=0, d:=0

Bc2: Nếu i<=length(s) và m>=d thi

-Kiểm tra nếu s[i]= “(“ đúng inc(m);

+Ngược lại inc(d);

+ inc(i);

- quay lại bc2

Bc3: Nếu i<= length(s) thì thông báo s không hợp lệ, kết thúc thuật toán

Nếu i>length(s) thì kiểm tra:

- Nếu m=d thì thông báo xâu hợp lệngược lại là xâu không hợp lệ

if i<=length(s) then writeln(' Xau khong hop le')

else if m=d then write(' Xau hop le')

else write('Xau khong hop le');

Readln;

End

Bài 6.23: Mô tả hàm posk(x, y, k) trả về giái trị nguyên j là vị trí xuất hiện lần thứ k của xâu x trong

Trang 34

- Output: Vị trí xuất hiện lần thứ k của xâu x trong trong y.

2.Ý tưởng giải thuật :

J:=1

Begin

Trang 35

write(' Nhap xau s1 : '); readln(s1);

write(' Nhap xau s2 : '); readln(s2);

write(' Nhap so k : '); readln(k);

write(' Chi so xuat hien lan thu k cua xau s2 trong s1 la ', posk(s2, s1, k)); readln

END

Trang 36

Nguyễn Thị Lan Hương

Bài 3.34:Tuổi cha hiện nay là B và tuổi con là C (0<C<B, B, C là số nguyên và theo luật hôn nhân và gia đình B-C>=19) Viết chương trình kiểm tra xem tuổi cha có gấp đôi tuổi con hay không, nếu đúng thì đưa ra màn hình câu thông báo ‘HIEN NAY TUOI CHA GAP ĐOI TUOI CON’, trong trường hợp ngược lại, hãy tính số năm N mà trước đó hoặc sau đó tuổi cha gấp đôi tuổi con và đưa câu thông báo dạng ‘N NĂM TRƯỚC ĐÂY TUỔI CHA GẤP ĐÔI TUỔI CON’ hoặc ‘SAU N NĂM TUỔI CHA SẼ GẤP ĐÔI TUỔI CON’

VÍ DU, với B=59, C=29 thì in ra câu thông báo sẻ là:

SAU 1 NĂM NỮA TUÔI CHA SE GẤP ĐÔI TUỔI CON

B>C>0 B- C>19

N=2*C-B

Tr ư ớc đ ó N N ĂM TU ỔI CHA G ẤP ĐÔI TU ỔI CON

END

Trang 37

writeln('nhap tuoi cha');readln(b);

writeln('nhap tuoi con');readln(c);

if(b-c<19) or(c<0) or (b<c) then

writeln('ban phai nhap lai');

until(c>0) and (c<b) and (b-c>=19);

if b=2*c then writeln('hien tuoi cha gap doi tuoi con')

Kết qủa kiểm tra sức khoẻ học sinh được ghi tren phiếu co dạng :

Phiếu kiểm tra sức khoẻ

a)xác định kiểu dử liệu về khai biến thích hợp

b)Viết đoạn ch ương trình tính và đưa ra màn hình các thông tin sau:

-chiều cao trung bình của tất cả học sinh, chiều cao trung bình của nam va chiều cao trung bình của

Trang 38

B2: Ý tưởng: nhập từ bàn phím tên lớp và số hocsinh trong lớp , sau đó nhập các Trường Dùng

bản ghi để lưu các đối tượng cùng các thuộc tính , sau đó dung vòng lặp for duyệt tù đầu dảy đến cuối dảy để đưa ra các yêu cầu như bài đã cho

writeln(' PHIEU KIEM TRA SUC KHOE');

writeln(' lop:', hs[i].lop) ;

writeln;

for i:=1 to n do

begin

writeln(' hovaten:', hs[i].hovaten:0, '');

writeln(' nam/nu:', hs[i].gt:0);

writeln(' chieucao:', hs[i].chieucao:2:2, 'cm', '');

writeln(' cannang:', hs[i].cannang:0:0, 'kg', '') ;

Ngày đăng: 10/05/2017, 22:07

TỪ KHÓA LIÊN QUAN

w