Đề thi olympic tin học cấp huyện lần thứ nhất năm học 2008-2009 Môn : Lập trình pascal (Thời gian : 90 phút) Câu 1(1,5đ):Viết chơng trình tính giá trị của biểu thức sau và in kết quả ra màn hình. S = Với a, x đợc nhập từ bàn phím. Câu 2(2đ): Viết chơng trình nhập số nguyên n có 9 chữ số . Tính xem trong số nguyên đó chữ số a xuất hiện bao nhiêu lần (với a là số nguyên có một chữ số đợc nhập từ bàn phím). Ví dụ: Nhập: N = 13213411 a=1 Kết quả: Số 1 xuất hiện 4 lần. Câu 3(3,5đ): Cho mảng một chiều gồm n phần tử (n nhập từ bàn phím, n <=100) là số nguyên. Hãy viết chơng trình nhập giá trị cho các phần tử của mảng và : a. Tính tổng các phần tử là số nguyên tố của mảng. b. Tìm phần tử lớn nhất của mảng. c. Sắp xếp mảng theo chiều tăng dần. Câu 4(3): Cho trớc một xâu kí tự bất kì. Xâu gồm các phần tử là chữ cái tiếng anh từ 'a' đến 'z' và dấu cách. Viết chơng trình chuẩn hoá xâu(xâu chuẩn hoá là xâu không có dấu cách ở đầu và cuối xâu, giữa các từ cách nhau đúng một dấu cách). Ví dụ: Cho xau= " nguyen tuan anh " Kết quả in ra : "Nguyen Tuan Anh" --------------------------------------------Hết-------------------------------------------- e a + sin 2 (x)-x C©u 1(1,5®): const PI=3.14; var s:real; a,x:integer; begin write('Nhap gia tri cho a=');readln(a); write('Nhap gia tri cho x=');readln(x); s:=exp(a+sin((x*PI)/180)*sin((x*PI)/180)-x); writeln(s:4:2); readln; end. C©u 2(2®): var n:longint; k,a,i,j:byte; begin write('Nhap gia tri cho a=');readln(n); write('Nhap gia tri cho x=');readln(a); j:=0; repeat k:=n mod 10; if k=a then j:=j+1; n:=n div 10; until n=0; writeln('Chu so ',a,'xuat hien ',j,' lan'); readln; end. 0,5® 0,5® 0,5® 0,25® 0,25® 1,25® 0,25® C©u 3(3®): program bt3; var a:array[1 100] of integer; kt,s,n,i,j,max,tg:integer; begin repeat write('Nhap so phan tu cho mang n=');readln(n); until (n>0) and (n<=100); for i:=1 to n do begin write('Nhap gia tri cho phan tu a[',i,']='); readln(a[i]); end; i:=1; kt:=0; for i:=1 to n do begin for j:=2 to a[i] div 2 do if a[i] mod j = 0 then kt:=kt+1; if kt=0 then s:=s+a[i]; kt:=0; end; max:=a[1]; for i:=2 to n do if a[i]>max then max:=a[i]; for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; end; writeln('Tong cac phan tu duong cua mang s=',s); writeln('Phan tu lon nhat cua mang la : ',max); writeln('Mang sau khi sap xep la : '); for i:=1 to n do write(a[i]); readln; 0,25® 0,25® 0,25® 1® 0,5® 1® 0,25® end. C©u 4(3®): var st:string; l,i:integer; begin write('Nhap mot xau can chuan hoa: ');readln(st); while st[1]=' 'do delete(st,1,1); l:=length(st); while st[l]=' 'do begin delete(st,l,1); l:=length(st); end; l:=length(st); i:=1; repeat if( st[i]=' ') and (st[i+1]=' ') then begin delete(st,i,1); i:=i-1; l:=length(st); end; inc(i); until i=l; st[1]:=upcase(st[1]); for i:=1 to l-1 do 0,25® 0,25® 0,5® 0,5® 0,75® 0,5® if (st[i]=' ') and (st[i+1]<>' ') then st[i+1]:=upcase(st[i+1]); writeln('xau sau khi da chuan hoa : ', st); readln; end. 0,25® . Đề thi olympic tin học cấp huyện lần thứ nhất năm học 2008-2009 Môn : Lập trình pascal. ');readln(st); while st[1]=' 'do delete(st,1,1); l:=length(st); while st[l]=' 'do begin delete(st,l,1); l:=length(st); end; l:=length(st);