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

Một phần của tài liệu phương pháp giải bài tập tin học lớp 11 (Trang 28 - 35)

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

Học Pascal online, bài tập Pascal cơ bản nâng cao: Codepascal.blogspot.com

Bước 3: Trình bày lời giải Program tinhtong: Uses crt; Var s, i, j, k, n: integer; A: array[0..100] of integer; Begin Clrscr; Write(‘nhap so nguyen n’); Readln(n); for i:=1 to n do begin

write(‘nhap mang A[‘, i, ’]=’); readln(A[i]);

Học Pascal online, bài tập Pascal cơ bản nâng cao: Codepascal.blogspot.com

end; i:= 1; j:= n;

while A[i]<> 0 do i:= i+ 1; while A[j]<> 0 do j:= j- 1; S:= 0; for k:= i to j do begin S:= S+ A[k]; k:= k+ 1; end; writeln(‘tong la:’, s); readln; End.

Bước 4: Nghiên cứu về lời giải Xây dựng bộ test Cho dãy: 1 0 2 3 0 4 i:= 1 j:= 6 A[1] <>0 ; i:= 2 A[2] = 0 A[6]<>0; j:= 5 S:= 0; k:=2 S:= S + 0 = 0; k:=3<5 S:= S + 2 = 2; k:= 4<5 S:= S + 3= 5; k:= 5 S:= S + 0= 5: k: =6 sai Dừng

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

Học Pascal online, bài tập Pascal cơ bản nâng cao: Codepascal.blogspot.com

a) Chỉ dùng các chữ cái La tinh, có thể đặt bao nhiêu tên khác nhau độ dài bằng 1? b) Chỉ dùng các chữ cái La tinh, có thể đặt bao nhiêu tên khác nhau độ dài bằng 2? Đá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

Học Pascal online, bài tập Pascal cơ bản nâng cao: Codepascal.blogspot.com

Sinh viên: Đặng Thị Hà Thanh 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.

+ 4.17. Bước 1. Input: Bước 1. Input: Output: p1, p4000 Bước 2. B1. p[1]:= random(6); i:= 2;

B2. Nếu i<= 4000 thì thực hiện: p[i]:= p[i-1]+random(6)+1; Quay lại B2.

B3. In kết quả, kết thúc giải thuật. Bước 3. Chương trình

Var p: array[1..4000] of integer; i : integer; Begin p[1]:= random(6); For i:=2 to 4000 do p[i]:=p[i-1]+random(6)+1; Writeln('p[1]=', p[1]); Writeln('p[4000]=', p[4000]); Readln; End. Bước 4. p[1]= 2 i=2 p[2]= p[1]+random(6)+1 = 2+3+1 = 6 i=3 p[3]= p[2]+random(6)+1 = 6+2+1 = 9 .... + 6.19.

Bước 1. Input: tọa độ Đề các(x, y) Output: tọa độ cực (r, ϕ) Bước 2. B1. Tính + r := sqrt(x2+y2); + Nếu x>0 thìϕ= arctan(y/x) ; + Nếu ( x=0) và (y>0) thìϕ= π /2 ; + Nếu (x=0) và (y=0) thìϕ= 0;

Học Pascal online, bài tập Pascal cơ bản nâng cao: Codepascal.blogspot.com

B2. Kết thúc giải thuật.

Bước 3. Chương trình:

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;

end;

Bước 4.

Gọi thủ tục POLAR(3, 4, r, ϕ) r= sqrt(3*3+4*4)= 5

Học Pascal online, bài tập Pascal cơ bản nâng cao: Codepascal.blogspot.com

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ệ. Kết thúc thuật toán 3. Cài đặt Program xau; var s:string; i, m, d:integer; Begin

write('Nhap xau s= '); readln(s); i:=1; m:=0; d:=0;

While (i<=length(s)) and (m>=d) do begin

if s[i]='(' then inc(m) else inc(d);

inc(i); end;

if i<=length(s) then writeln(' Xau khong hop lé) else if m=d then write(' Xau hop lé)

else write('Xau khong hop lé); 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 xâu i, j=0 nếu số lần xuất hiện xâu x trong xâu y ít hơn k lần.

Học Pascal online, bài tập Pascal cơ bản nâng cao: Codepascal.blogspot.com

Một phần của tài liệu phương pháp giải bài tập tin học lớp 11 (Trang 28 - 35)

Tải bản đầy đủ (DOC)

(197 trang)
w