SỞ GD&ĐT VĨNHPHÚCTRƯỜNGTHPTNGUYỄNDUYTHÌ KÌ THI CHỌN HSG LỚP 12, NĂMHỌC2016 - 2017 MÔN: TINHỌC – LẦN Thời gian làm bài: 180 phút, không kể thời gian giao đề Tổng quan: Đềthi gồm 02 trang TT File chương trình Tên File liệu File kết Điểm Bài Số hoàn hảo HOANHAO.PAS BAI1.INP BAI1.OUT Bài Dãy số DAYSO.PAS BAI2.INP BAI2.OUT Bài Đếm từ xâu XAU.PAS BAI3.INP BAI3.OUT Bài Số hoàn hảo Một số tự nhiên N có tổng ước nhỏ nó gọi số hoàn hảo Ví dụ: Số số hoàn hảo vì: Các ước 1, 2, = + + * Dữ liệu: Vào từ tệp văn HOANHAO.INP, gồm dòng ghi số N (2 < N < 1000) * Kết quả: Ghi tệp văn HOANHAO.OUT: số hoàn hảo có giá trị < N, số viết dòng * Ví dụ: BAI1.INP BAI1.OUT BAI1.INP 30 BAI1.OUT 28 Bài Dãy số * Dữ liệu: Vào từ tệp văn SUM.INP, gồm dòng: - Dòng 1: Số N - Dòng 2: Dãy số a1, a2 .,an số cách dấu cách (0 ≤ ≤ 104 ; i = 1, 2, , N) * Kết quả: Ghi tệp văn SUM.OUT, gồm dòng: - Dòng 1: Giá trị vị trí phần tử lớn dãy số (mỗi số cách dấu cách) Trang - Dòng 2: ghi giá trị trung bình cộng số có giá trị lẻ vị trí chẵn dãy * Ví dụ: BAI2.INP 7 23 25 40 BAI2.OUT 40 16 BÀI 3: Đếm từ xâu Chuẩn hóa xâu có nghĩa loại bỏ dấu cách dư thừa xâu * Dữ liệu: Vào từ tệp văn XAU.INP, gồm dòng: xâu S có độ dài không 255 kí tự * Kết quả: Ghi tệp văn XAU.OUT, gồm dòng: - Dòng 1: ghi xâu sau chuyển hết ký tự in hoa - Dòng 2: ghi độ dài xâu sau chuẩn hóa - Dòng 3: ghi số từ có xâu * Ví dụ: BAI3.INP thptnguyenthi BAI3.OUT THPTNGUYENDUYTHI 19 - HẾT Cán coi thi không giải thích thêm Họ tên thí sinh: .SBD: Trang ĐÁP ÁN Bài Program hoanhao; Uses crt; Var i, n: interger; f, g: text; {Xay dung ham tinh tong cac uoc cua so nguyen duong} function tongus(n : integer): integer; var i,s : integer; begin s := 0; for i := to n div if n mod i = then s := s + i; tongus := s; end; Begin Assign(f, ‘bai1.inp’); Reset (f); Assign( g, ‘bai1.out’); Rewrite(g); Read(f, n); {kiem tra va in so hoan hao} For i:=1 to n If i = tongus(i) then write(g, i); Close(f); Close(g); Readln End Trang Bài Program dayso; Uses crt; Var i, n, , tong, dem, tb, max: interger; A: array[1 10000] of longint; F, g: text; Begin Assign(f, ‘bai2.inp’); Reset (f); Assign( g, ‘bai2.out’); Rewrite(g); Read(f, n); For i:=1 to n Begin Readln(f, a[i]); End; {Tim gia tri va vi tri cua phan tu lon nhat} Max:=a[1]; For i:=1 to n If max < a[i] then begin max:=a[i]; Write(g, a[i]); Write(g, i); end; {Ghi gia tri trung binh cong cua cac so le o vi tri chan day} Dem: =0; Tong:=0; For i: to n If (a[i] mod 2 0) and (i mod = 0) then Tong: = tong +a[i]; Inc(dem); Tbc:= tong/dem; Trang Writeln(g, tbc); Close(f); Close(g); Readln End Bài Program xau; Uses crt; Var s: string; F, g: text; X, i, dem: integer; {Ham dem so tu xau s} Function sotu(s : string) : integer; Var i, dem : integer; Begin { cong them dau cach dau xau de dem tu dau tien} S: = ‘’ + s; Dem: = ; For i:= to x If (s[i-1]=’’) and (s[i]’’) then inc(dem); Sotu:= dem; End; Begin Assign(f, ‘bai3.inp’); Reset (f); Assign( g, ‘bai3.out’); Rewrite(g); Read(f, s); x:= length(s); Trang {chuyen het xau ve ki tu in hoa} For i:=1 to x upcase(s[i]); Write(g, i); {chuan hoa xau} while s[1]=' ' delete(s,1,1); while s[x]=' ' delete(s,x,1); for i:= x downto if (s[i]=’’) and (s[i-1]=’’) then delete (s, i, 1); writeln(g, s); {ghi so tu co xau} Writeln(g, Sotu(s)); Close(f); Close(g); Readln End Trang ... - Dòng 3: ghi số từ có xâu * Ví dụ: BAI3.INP thpt nguyen thi BAI3.OUT THPT NGUYEN DUY THI 19 - HẾT Cán coi thi không giải thích thêm Họ tên thí sinh: .SBD: Trang ĐÁP ÁN Bài Program... i); {chuan hoa xau} while s[1]=' ' delete(s,1 ,1); while s[x]=' ' delete(s,x ,1); for i:= x downto if (s[i]=’’) and (s[i-1]=’’) then delete (s, i, 1); writeln(g, s); {ghi so tu co xau} Writeln(g,... .SBD: Trang ĐÁP ÁN Bài Program hoanhao; Uses crt; Var i, n: interger; f, g: text; {Xay dung ham tinh tong cac uoc cua so nguyen duong} function tongus(n : integer): integer; var i,s : integer;