Thông tin tài liệu
Câu 1: (3 điểm) DAYSO.PAS Cho số nguyên dơng N (N1) thuộc dãy số nguyên tố ớc số từ a1 đến ai-1 -Số lợng phần tử dãy tìm đợc phải lớn Dữ liệu vào: Cho file văn DAYSO.INP có cấu trúc nh sau: Dòng 1: Ghi số N Dữ liệu ra: Ghi file DAYSO.OUT theo cấu trúc nh sau: Dòng 1: Ghi số K số lợng phần tử dãy tìm đợc Dòng 2: Ghi K số nguyên dơng phần tử dãy tìm đợc Các số ghi cách dấu cách Ví dụ: DAYSO.INP DAYSO.OUT 6 Câu 2: (3 điểm) BIEUTHUC.PAS Trong biểu thức gồm có biến, phép toán nhân lũy thừa, số mũ Trong đó: Biến chữ la tinh in thờng a z, phép nhân đợc ký hiệu dấu *, phép lũy thừa đợc ký hiệu dấu mũ ^, số mũ chữ số chữ số từ Hãy rút gọn biểu thức có dạng nh cho để đợc biểu thức thỏa mãn đồng thời điều kiện sau: -Các biến xuất biểu thức không lần -Các biến phải đợc đa theo thứ tự từ điển Dữ liệu vào: Cho file văn BIEUTHUC.INP có cấu trúc nh sau: Dòng 1: Ghi xâu ký tự S biểu thức cần rút gọn (số lợng ký tự S bé 256) Dữ liệu ra: Ghi file BIEUTHUC.OUT theo cấu trúc nh sau: Dòng 1: Ghi xâu X xâu ký tự sau rút gọn Chú ý: Sau rút gọn, giá trị số mũ m biến nằm đoạn [1 1000] Ví dụ: BIEUTHUC.INP a*a^9*x*x*x*b*b^3 Câu 3: (4 điểm) BIEUTHUC.OUT a^10*b^4*x^3 XEPTRANH Tranh vẽ hình chữ nhật Cho N tranh, tranh thứ i đợc cho độ dài hai cạnh a i bi Hãy tìm cách xếp tranh chồng lên thỏa mãn đồng thời điều kiện sau: -Bức tranh phải nằm tranh dới (mọi điểm tranh không đợc chìa so với tranh dới) -Các cạnh tranh phải đợc đặt song song với cạnh tranh dới -Số lợng tranh đợc xếp lớn Dữ liệu vào: Cho file văn XEPTRANH.INP có cấu trúc nh sau: Dòng 1: Ghi số N số lợng tranh cho (N nguyên dơng, n1 then begin str(a[c],s2);s1:=s1+c+'^'+s2+'*'; else s1:=s1+c+'*'; end; delete(s1,length(s1),1); writeln(f,s1); close(f); end; begin doc; xl; xuat; end end XEPTRANH.PAS const fi='xeptranh.inp'; fo='xeptranh.out'; type mmc=array[0 100] of longint; var f:text; n:word; a,b,qh,tr,cs:mmc; procedure doc; var i:word;t:longint; begin assign(f,fi);reset(f); readln(f,n); a[0]:=0;b[0]:=0; for i:=1 to n begin readln(f,a[i],b[i]); if a[i]> b[i] then begin t:=a[i];a[i]:=b[i];b[i]:=t; end; end; close(f); for i:=1 to n cs[i]:=i; end; procedure sx; var i,j:word; t:longint; begin for i:=1 to n-1 for j:=i+1 to n if a[i]*b[i]>a[j]*b[j] then begin t:=a[i];a[i]:=a[j];a[j]:=t; t:=b[i];b[i]:=b[j];b[j]:=t; t:=cs[i];cs[i]:=cs[j];cs[j]:=t; end; end; procedure xl; var i,j:word; begin sx; fillchar(qh,sizeof(qh),0); for i:=1 to n for j:=0 to i-1 if (a[i]>=a[j]) and (b[i]>=b[j]) then if qh[i]
Ngày đăng: 17/08/2017, 14:13
Xem thêm: Đề thi học sinh giỏi tin lớp 11