Đề thi tin học trẻ tỉnh Sóc Trăng năm 2011 khối: THCS - Phần lập trình

Bài 2: (4 điểm)

Program CHUAN_HOA;

uses crt;

var i,n:integer;

s:string;

Function chuan_hoa1(ch:string):string;

{Xóa bỏ các ký tự trắng dư thừa trong câu văn}

var j:integer;

 c1:string;

Begin

 

doc5 trang | Chia sẻ: dung89st | Lượt xem: 1331 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Đề thi tin học trẻ tỉnh Sóc Trăng năm 2011 khối: THCS - Phần lập trình, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
HỘI THI TIN HỌC TRẺ TỈNH SÓC TRĂNG NĂM 2011
KHỐI: THCS - PHẦN LẬP TRÌNH
THỜI GIAN LÀM BÀI: 90 phút
Bài 1: (3 điểm)
Người ta gọi với a,b Z, b khác 0 là một phân số, hãy mô tả kiểu dữ liệu đối với phân số và viết chương trình cho phép nhập vào hai phân số, thực hiện các phép tính liên quan đến phân số như: Nhân, chia, nghịch đảo phân số. 
Bài 2: (4 điểm)
Trong soạn thảo văn bản, qui định khoảng cách giữa các từ là một ký tự trắng, các dấu chấm, dấu phẩy, dấu chấm phẩy phải đi liền với chữ trước nó, sau dấu chấm, dấu phẩy, dấu chấm phẩy thì có một ký tự trắng.
Trong một đoạn văn nếu không tính tới các lỗi sai về chính tả mà chỉ tính các lỗi sai nêu trên. Hãy viết chương nhập từ bàn phím một đoạn văn có lỗi với độ dài không quá 255 ký tự và sữa lỗi đó.
Ví dụ: 	Nhập vào: ma hoa x , y ,z . Mat thu .
	Xuất ra: ma hoa x, y, z. Mat thu.
-------------HẾT-----------
HỘI THI TIN HỌC TRẺ TỈNH SÓC TRĂNG NĂM 2011
KHỐI: THCS – ĐÁP ÁN PHẦN LẬP TRÌNH
Bài 1: (3 điểm)
Program 	NhanchiaPhanso;
Uses	Crt;
	Type
	Phanso=record
	Tu:integer;
	Mau:integer;
	end;
Var
	Fanso1,Fanso2,kq:phanso;
{}	Function Uscln(a,b:integer):integer;
	Begin
	If b=0 then
	Uscln:=a
	Else
	Uscln:=Uscln(b,a mod b);
	End;
{}	Procedure Nhan(p1,p2:phanso;var p:phanso);
	Var
	x:Integer;
	Begin
	With p do
	Begin
	tu:=p1.tu*p2.tu;
	mau:=p1.mau*p2.mau;
	X :=Uscln(tu,mau);	{gian luoc phan so}
	Tu:=tu div x;
	Mau:=mau div x;
	End;
	End;
{}	Procedure Chia(p1,p2:phanso;var p:phanso);
	Var
	x:Integer;
	Begin
	With p do
	Begin
	tu:=p1.tu*p2.mau;	{Nhan nghich dao phan so thu hai}
	mau:=p1.mau*p2.tu;
	X :=Uscln(tu,mau);
	Tu:=tu div x;
	Mau:=mau div x;
	End;
	End;
{}	Procedure	NgDao(var p:phanso);
	Var
	tam:integer;
	 Begin
	tam:=p.tu;
	p.tu:=p.mau;
	p.mau:=tam;
	 End;
{Main program}
Begin
	WriteLn(' CHUONG TRINH XU LI PHAN SO');
	Write('Nhap vao phan so thu nhat :');
	Readln(Fanso1.tu,Fanso1.mau);
	Write('Nhap vao phan so thu hai :');
	Readln(Fanso2.tu,Fanso2.mau);
	Writeln('Ket qua la: ');
	Nhan(fanso1,fanso2,kq);
	Writeln('ket qua nhan hai phan so: ',kq.tu,'/',kq.mau);
	Chia(fanso1,fanso2,kq);
	Writeln('ket qua chia hai phan so: ',kq.tu,'/',kq.mau);
	Ngdao(fanso1);
	Writeln('ket qua nghich dao cua phan so 1 : ',fanso1.tu,'/',fanso1.mau);
End. {of main program}
	-Test: (3 điểm)
	Nhập vào: 1/2, 4/5
	Xuất ra:
	+Nhân:4/10 hoặc 2/5 (1 điểm)
	+Chia: 5/8 (1 điểm)
	+Nghịch đảo: 2/1 hoặc 5/4 (1 điểm)
Bài 2: (4 điểm)
Program CHUAN_HOA;
uses crt;
var i,n:integer;
s:string;
Function chuan_hoa1(ch:string):string; 
{Xóa bỏ các ký tự trắng dư thừa trong câu văn}
var j:integer;
 c1:string;
Begin
 j:=1;
 c1:='';
 while j<=length(ch) do
 begin
 if (ch[j]' ') or (ch[j+1]' ') then
 c1:=c1+ch[j];
 j:=j+1;
 end;
 if c1[1]=' ' then delete(c1,1,1);
 if c1[length(c1)]=' ' then delete(c1,length(c1),1);
 chuan_hoa1:=c1;
End;
Function chuan_hoa2(ch:string):string;
{Sửa lại vị trí của các dấu phẩy, chấm, chấm phẩy trong câu văn}
var i:integer;
Begin
 i:=1;
 while i<= length(ch) do
 Begin
 if (ch[i]='.') or (ch[i]=',') or (ch[i]=';') then
 Begin
 while ch[i-1]=' ' do
 begin
 i:=i-1;
 delete(ch,i,1);
 end;
 while ch[i+1]' ' do
 insert(' ',ch,i+1);
 end;
 i:=i+1;
 end;
 chuan_hoa2:=ch;
End;
BEGIN {Chuong trinh chinh}
 clrscr;
 write('Hay nhap doan van (nho hon 256) ky tu:');
 readln(s);
 writeln('Ket qua sau khi chuan hoa:',chuan_hoa2(chuan_hoa1(s)));
 readln;
END.
-Test1:(3 điểm)
Nhập vào: ma hoa x , y ,z . Mat thu .
Xuất ra: ma hoa x, y, z. Mat thu.
	-Test2: (1 điểm)
	Nhập vào: ma hoa x, y, z. Mat thu.
	Xuất ra: ma hoa x, y, z. Mat thu.
---HẾT---

File đính kèm:

  • docDE_LAP_TRINH_THCS+day+du+dap+an.doc