| Nơi trao đổi thông tin Văn Lang Nơi trao đổi thông tin, tăng cường hợp tác, giải đáp những vướng mắc khi học lập trình Pascal |
|
| Đề thi tỉnh bình định | |
| | Tác giả | Thông điệp |
---|
pqtoan Admin
Posts : 76 Danh tiếng : 3 Join date : 10/11/2014
| Tiêu đề: Đề thi tỉnh bình định 1/2/2015, 14:33 | |
| SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH LỚP 9 THCS BÌNH ĐỊNH KHÓA NGÀY 18-03-2014
ĐỀ CHÍNH THỨC Môn thi: TIN HỌC Thời gian: 150 phút (Không kể thời gian phát đề) Ngày thi: 18/03/2014 ………………………………………..
Chú ý: - Các file dữ liệu *.INP, *.OUT lưu trong thư mục \TINHOC9\ - Bài làm của thí sinh lưu trong thư mục \TINHOC9\<SBD>\. Ví dụ: D:\TINHOC9\SBD01\ Bài 1. (6.0 điểm) :Tách số: Ten file chương trình: Tachso.Pas Viết chương trình tách số nguyên dương A (A<200) thành tổng của hai số nguyên dương x và y sao cho ước chung lớn nhất d của x và y là lớn nhất trong các cách phân tích có được. Yêu cầu: ● Dữ liệu vào: File text Tachso.INP chỉ có 1 dòng chứa số nguyên dương A. ● Dữ liệu ra: File text Tachso.OUT gồm 2 dòng: - Dòng 1: Ghi số nguyên dương A. - Dòng 2: Ghi ba số nguyên dương x, y, d; Các số cách nhau ít nhất một khoảng trắng. Ví dụ:
Tachso.INP 95 Tachso.OUT 95 19 76 1 9
Bài 2. (7.0 điểm) Khai triển Cantor Tên file chương trình: Cantor.PAS Khai triển Cantor của số tự nhiên N là biểu diễn số N dưới dạng: N= ak.k! + ak-1.(k-1)! + … + a2.2! + a1.1! Trong đó: 0 ≤ ak ≤ k và k!= 1.2.3…(k-1).k Viết chương trình liệt kê các hệ số ak, ak-1,…, a3, a2, a1 trong khai triển Cantor của số tự nhiên N (N<50000) . Các hệ số cách nhau ít nhất một khoảng trắng. Yêu cầu: ● Dữ liệu vào: File text Cantor.INP chỉ có 1 dòng chứa số nguyên dương N. ● Dữ liệu ra: File text Cantor.OUT gồm 2 dòng: - Dòng 1: Ghi số nguyên dương N. - Dòng 2: Liệt kê các hệ số ak, ak-1,…, a3, a2, a1 trong khai triển Cantor của số tự nhiên N. Các hệ số cách nhau ít nhất một khoảng trắng. Ví dụ: Cantor.INP 2014 Cantor.OUT 2014 2 4 3 3 2 0
Bài 3. (7.0 điểm) Bi đổi màu: Tên file chương trình: bidoimau.PAS Trên bàn có ba loại bi màu đỏ, xanh, vàng với số lượng lần lượt là: x, y, z (x, y, z < 400). Mỗi khi cho hai viên bi khác màu chạm vào nhau thì chúng sẽ đổi sang màu còn lại. Viết chương trình trình bày quy trình chạm bi sao cho sau khi thực hiện thì trên bàn chỉ còn một màu bi nào đó. Nếu không xử lý được thì xuất ra thông báo “Khong thuc hien duoc”. Yêu cầu: ● Dữ liệu vào: File text Bidoimau.INP chỉ có 1 dòng chứa 3 số nguyên dương x, y, z lần lượt là số bi đỏ, xanh, vàng có trên bàn. Các số cách nhau ít nhất một khoảng trắng ● Dữ liệu ra: File text Bidoimau.OUT gồm một trông hai trường hợp: Trường hợp 1 (Nếu bài toán giải được): Gồm nhiều dòng, mỗi dòng gồm 3 số tự nhiên là số lượng của từng loại bi sau một bước va chạm . Trường hợp 2 (Nếu bài toán không giải được): Đưa ra câu không báo “Khong thuc hien duoc” Ví dụ 1: Bidoimau.INP 2 3 4 Bidoimau.OUT Khong thuc hien duoc
Ví du 2: Bidoimau.INP 3 4 1 Bidoimau.OUT 3 4 1 5 3 0 4 2 2 6 1 1 8 0 0
| |
| | | nhathuyvanlang
Posts : 49 Danh tiếng : 9 Join date : 26/03/2016
| Tiêu đề: Re: Đề thi tỉnh bình định 8/2/2017, 08:56 | |
| Bài 1: - Code:
-
uses crt; var ucln,pt:array[1..100] of integer; n,i,j,k,t,a,max:integer; f:text; function uoc(a,b:integer):integer; var i,max:integer; begin max:=0; for i:=1 to a or b do if (a mod i=0) and (b mod i=0) and (i>max) then max:=i; uoc:=max; end; {_} begin clrscr; write(uoc(3,6)); assign(f,'tachso.txt'); rewrite(f); write('nhap so A:');readln(a); writeln(f,'so A la:',a); for i:=1 to a do for j:=a downto 1 do if (i+j=a) and (uoc(i,j)>max) then max:=uoc(i,j); for i:=1 to a do for j:=a downto 1 do if (uoc(i,j)=max) and (i+j=a) then begin writeln(f,'so x la:',i); writeln(f,'so y la:',j); writeln(f,'ucln la:',max); close(f); readln; exit; end; readln; end. | |
| | | nhathuyvanlang
Posts : 49 Danh tiếng : 9 Join date : 26/03/2016
| Tiêu đề: Re: Đề thi tỉnh bình định 8/2/2017, 09:40 | |
| Bài 2: - Code:
-
uses crt; var a:array[1..100] of integer; n,k,i,t:longint; f:text; function gt(a:integer):longint; var i,tich:longint; begin tich:=1; for i:=1 to a do tich:=tich*i; gt:=tich; end; begin clrscr; assign(f,'bai2.txt'); rewrite(f); write('nhap so :');readln(n); for i :=1 to 8 do if n>=gt(i) then k:=i; repeat write(f,n div gt(k):3); n:=n-(n div gt(k))*gt(k); k:=k-1; if n=0 then for i:=k downto 1 do write(f,' 0'); until n=0; close(f); readln; end. | |
| | | pqtoan Admin
Posts : 76 Danh tiếng : 3 Join date : 10/11/2014
| Tiêu đề: Re: Đề thi tỉnh bình định 8/2/2017, 10:24 | |
| - Code:
-
uses crt; var x,y,z:integer; a,b,c:integer; f:text; {-} function w(var x,y,z:integer):boolean; begin repeat while (y<>0) and (z<>0) do begin x:=x+2;y:=y-1;z:=z-1; end; if (y=0) and (z>1) then begin x:=x-1;y:=y+2;z:=z-1; end; if (y>1) and (z=0) then begin x:=x-1;y:=y-1;z:=z+2; end; until ((y=0)and(z=0))or((y=0)and(z=1))or((y=1)and(z=0)); if (y=0)and(z=0) then w:=true; if (y=0)and(z=1) then w:=false; if (y=1)and(z=0) then w:=false; end; {-} begin clrscr; assign(f,'B3'); rewrite(f); write('Nhap so luong bi ba mau:');readln(a,b,c); writeln(f,'So luong bi 3 mau:',a,' ; ',b,' ; ',c,''); x:=a;y:=b;z:=c; if w(a,b,c)=false then begin write('Ko thuc hien duoc'); write(f,'ko thuc hien duoc'); end; if w(a,b,c)=true then begin writeln('',x,' ',y,' ',z,''); writeln(f,'',x,' ',y,' ',z,''); repeat while (y<>0) and (z<>0) do begin x:=x+2;y:=y-1;z:=z-1; writeln('',x,' ',y,' ',z,''); writeln(f,'',x,' ',y,' ',z,''); end; if (y=0) and (z>1) then begin x:=x-1;y:=y+2;z:=z-1; writeln('',x,' ',y,' ',z,''); writeln(f,'',x,' ',y,' ',z,''); end; if (y>1) and (z=0) then begin x:=x-1;y:=y-1;z:=z+2; writeln('',x,' ',y,' ',z,''); writeln(f,'',x,' ',y,' ',z,''); end; until (y=0)and(z=0); end; close(f); readln; end. | |
| | | thuynganhb
Posts : 10 Danh tiếng : 1 Join date : 09/01/2017
| Tiêu đề: Re: Đề thi tỉnh bình định 13/2/2017, 11:21 | |
| Mọi người giải nốt câu còn lại đi ạ | |
| | | nhathuyvanlang
Posts : 49 Danh tiếng : 9 Join date : 26/03/2016
| Tiêu đề: Re: Đề thi tỉnh bình định 19/2/2017, 09:24 | |
| - thuynganhb đã viết:
- Mọi người giải nốt câu còn lại đi ạ
Bài 3: Thuật toán: Chuyển hai số lớn nhất cho cái nhỏ nhất.Nếu có hai loại bằng nhau thì chuyển cho cái còn lại. Nếu trong vòng lặp lặp lại quá nhiều lần thì thoát - Code:
-
uses crt; var a,b,c,dem:integer; begin clrscr; write('nhap cac so bi:');readln(a,b,c); writeln(a:3,b:3,c:3); repeat if (a>b) and (c>b) then begin a:=a-1;b:=b-1;c:=c+2; end; if (b>a) and (c>a) then begin a:=a+2;b:=b-1;c:=c-1; end; if (a>c) and (b>c) then begin a:=a-1;b:=b-1;c:=c+2; end; if b=c then begin a:=a+2;b:=b-1;c:=c-1;end; if A=c then begin b:=a+2;a:=a-1;c:=c-1;end; if b=a then begin c:=a+2;b:=b-1;a:=c-1;end; write(a:3,b:3,c:3); writeln; if ((a<>0) and (b<>0)) or ((b<>0) and (c<>0)) or ((a<>0) and (c<>0)) then dem:=dem+1; if dem=15 then begin writeln('khong duoc');readln;exit;end; until ((a=0) and (b=0)) or ((b=0) and (c=0)) or ((a=0) and (c=0)); readln; end. | |
| | | Sponsored content
| Tiêu đề: Re: Đề thi tỉnh bình định | |
| |
| | | | Đề thi tỉnh bình định | |
|
Trang 1 trong tổng số 1 trang | |
Similar topics | |
|
| Permissions in this forum: | Bạn không có quyền trả lời bài viết
| |
| |
| |
|