ĐỀ THI HỌC SINH GIỎI TIN HỌC 9– VỊNG 3 THỜI GIAN: 150 PHÚT NGÀY THI: 13/10/2008 1. Viết chương trình tìm các vị trí xuất hiện chuổi S1 trong chuổi S? (6 đ) Dữ liệu vào: Chuổi s và chuổi s1. Kết quả ra: Các v ị trí tìm thấy s1 trong s. Ví dụ: Input Output Test 1 ‘aaahocjhochoc’ ‘hoc’ 4 8 11 Test 2 ‘adddddee’ ‘dd’ 2 3 4 5 Tên tập tin:D:\thi\vong3\timchuoi.pas 2. Nhập vào một chuổi sau đó xuất ra (các)từ dài nhất trong chuổi? (6Đ) Dữ liệu vào: Một chuổi. Kết quả ra: Các từ dài nhất trong chuổi. Ví dụ: Input Output Test 1 Tran Nguyen dao Nguyen Test 2 Tran quang dao bgggg quang bgggg Tên tập tin:D:\thi\vong3\Tu-max.pas 3. Bờm và cuội là 2 học sinh rất giỏi tin học và thường liên lạc với nhau bằng thư điện tử (Email). Nhưng những bức thư mà hai bạn gởi cho nhau chỉ toàn là dãy những chữ số liền nhau. Cả hai bạn đều có chương trình mã hoá các con số thành những ký tự và ngược lại giải mã các con số thành ký tự, theo qui đònh hai bạn sẽ chuyển những ký tự mình đònh gởi thành các con số là thứ tự của ký tự đó trong bảng mã ASCII (ví dụ : A:65; B:66) từ chữ thường máy chuyển thành chữ hoa rồi mã hoá thành các con số.(ví dụ: aA65, bB66). Sau khi mã hoá sẽ chuyển thư đi. Người nhận có chương trình để giải mã các con số thành những ký tự in hoa (vdụ: 6566326768AB CD). Em hãy viết a. Chương trình 1 (d:\thi\vong3\MAHOA.pas) để mã hoá 1 xâu ký tự thành các chữ số. (4Đ) Ví dụ: Input Output Di an che? 68733265783267726963 b. Chương trình 2 (d:\thi\vong3\GIAIMA.PAS) để giải mã 1 chuổi số thành các ký tự. (4Đ) Ví dụ: Input Output 79326865853286658963 O dau vay? ĐỀTHI CÓ 1 TRANG - HẾT ÑAÙP AÙN VOØNG 3 -NGÀY THI: 13/10/2008 1. Timchuoi.pas var s,s1:string; begin readln(s); readln(s1); while pos(s1,s)>0 then begin write(pos(s1,s):4); s[pos(s1,s)]:=chr(1); end; readln; end. 2. Tu-max.pas var s,s1:string; a:array[1 128]of string; i,j,max:integer; begin readln(s); while s[1]=#32 do delete(s,1,1); while s[length(s)]=#32 do delete(s,length(s),1); while pos(#32#32,s)>0 do delete(s,pos(#32#32,s),1); j:=1; for i:=1 to length(s) do begin if s[i]<>#32 then a[j]:=a[j]+s[i] else inc(j); end; max:=length(a[1]); for i:=1 to j do if length(a[i])>max then max:=length(a[i]); writeln('(cac) tu dai nhat: (co ',max,' ky tu:)'); for i:=1 to j do if length(a[i])=max then writeln(a[i]); readln; end. 3. 2 chuong trinh a. Mahoa.pas uses crt; var s:string; i:integer; begin clrscr; writeln('Nhap chuoi can ma hoa:'); readln(s); writeln('Ma hoa thanh cac con so la:'); for i:=1 to length(s) do begin s[i]:=upcase(s[i]); write(ord(s[i])); end; readln; end. b. Giaima.pas uses crt; var s,s2:string; ch:char; i,x,d:integer; begin clrscr; writeln('Nhap chuoi so mat ma:'); readln(s); writeln('Giai ma chuoi so tren la:'); while length(s)>0 do begin s2:=copy(s,1,2); {lay moi lan 2 ky tu dau tien} delete(s,1,2); {xoa 2 ky tu da lay di} val(s2,x,i); {chuyen thanh so x} write(chr(x)); {chuyen thanh ma asscii} end; readln; end. . Test 1 Tran Nguyen dao Nguyen Test 2 Tran quang dao bgggg quang bgggg Tên tập tin: D: hi vong3Tu-max.pas 3. Bờm và cuội là 2 học sinh rất giỏi tin học. ĐỀ THI HỌC SINH GIỎI TIN HỌC 9 VỊNG 3 THỜI GIAN: 150 PHÚT NGÀY THI: 13/10/2008 1. Viết chương trình tìm các