1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng HsG tin 11 Thpt mjh khaj

5 265 3

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 44,5 KB

Nội dung

Trờng thpt minh khai đề thi chọn hsg lớp 11 năm học 2010-2011 Môn thi: Tin Học 11 Thời gian: 150 Phút Ngày thi: 25/12/2010 ------------------------------------------------------------------------------------------------------------------- Sử dụng ngôn ngữ lập trình pascal, lập trình giải các bài toán sau đây: Bài 1: Sắp xếp Cho số tự nhiên n (n<=100) và dãy số nguyên a1,a2, ,an (bao gồm cả số nguyên âm cả số nguyên dơng). Hãy đỗi chổ các phần tử của dãy sao cho các phần tử dơng nằm ở đầu dãy, các phần tử âm nằm ở cuối dãy. In dãy sau khi đã sắp xếp. Bài 2: Tìm xâu con dài nhất Nhập vào một xâu bất kỳ từ bàn phím. Hãy cho biết độ dài lớn nhất của xâu con chứa liên tiếp kí tự a. In ra màn hình xâu con dài nhất vừa tìm đợc? Ví dụ: Xâu nhập vào: aabcaaade Độ dài max= 3 Xâu con cần tìm là: aaa Bi 3: Các thao tác trên mảng 2 chiều Tạo mảng 2 chiu A cp nxn gm cỏc s nguyờn v mt s nguyờn x. Vit chng trỡnh thc hin cỏc cụng vic sau: a/ m s ln xut hin ca x trong A v v trớ ca chỳng. b/ Tớnh tng cỏc phn t ln nht ca mi dũng. c./ Sắp xếp lại mảng theo thứ tự tăng dần nh sau: Trêng thpt minh khai §¸p ¸n ®Ò thi HSG líp 11 n¨m häc 2010-2011 M«n tin häc 11 Bµi 1(6®) PROGRAM BAI1; USES CRT; VAR tg,i,j,n:integer; a:array[1 20] of integer; BEGIN Clrscr; write('Nhap n='); Readln(n); For i:=1 to n do Read(a[i]); Readln; i:=1; j:=n; Repeat While a[i]>0 do inc(i); While a[j]<=0 do dec(j); If i<j then Begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; End; Until j<=i; j:=n; Repeat While a[i]>=0 do inc(i); While a[j]<0 do dec(j); If i<j then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; End; Until j<=i; for i:=1 to n do Write(a[i]:4); readln END. Bµi 2(6®) PROGRAM BAI2; USES CRT; var s:string; i,max,t,k,d:byte; begin clrscr; Write('nhap xau'); Readln(s); k:=length(s); max:=0; t:=0; for i:=1 to k do begin if s[i]='a' then begin t:=t+1; if t>max then begin max:=t; d:=i; end; end else t:=0; end; if t>max then max:=t; for i:=d-max+1 to d do write(s[i]); readln end. Bài 3(10đ) - Câu a: 2đ - Câu b: 3đ - Câu c:3đ Program bai3; Uses Crt; Var A: array[1 10,1 10] of integer; B :array[1 100]of integer; tg, k, n,i,j,x,dem,S,max:Integer; Begin Write('Nhap n='); Readln(n); For i:=1 To n do begin For j:=1 To n Do read (a[i,j]); Readln; end; {Câu a: Tìm kiếm phần tử x trong mang A} Write('Nhap x='); Readln(x); dem:=0; Writeln('Vi tri cua x trong mang A: '); For i:=1 To n Do For j:=1 To n Do If a[i,j]=x Then Begin Writeln(i,j); dem:=dem+1; End; Writeln('So lan xuat hien cua x trong mang A la: ',dem); {Câu b: Tính tổng các phần tử lớn nhất của mỗi dòng} S:=0; For i:=1 To n Do Begin Max:=A[i,1]; For j:=2 To n Do If max<A[i,j] Then max:=A[i,j]; S:=S+max; End; Writeln('Tong cac phan tu lon nhat cua moi dong la: ',S); {C©u c: S¾p xÕp m¶ng} {chuyÓn m¶ng 2 chiÒu A thµnh m¶ng 1 chiÒu B} k:=0; For i:=1 to n do For j:=1 to n do If k<n*n then begin k:=k+1; b[k]:=a[i,j]; end; {S¾p xÕp m¶ng 1 chiÒu B theo thø tù t¨ng dÇn} For i:=1 to n*n-1 do For j:=i+1 to n*n do if b[i]>b[j] then begin tg:=b[i]; b[i]:=b[j]; b[j]:=tg; end; {ChuyÓn m¶ng 1 chiÒu A thµnh m¶ng 2 chiÒu B} k:=0; For j:=1 to n do begin If j mod 2 =1 then Begin for i:=1 to n do Begin k:=k+1; a[i,j]:=b[k]; End; End Else Begin for i:=n downto 1 do Begin k:=k+1; a[i,j]:=b[k]; End; End; End; {in m¶ng 2 chiÒu sau khi s¾p xÕp} Writeln('mang sau khi sap xeo la:'); For i:=1 to n do Begin For j:=1 to n do write(a[i,j]); Writeln; End; Readln; End. . Trờng thpt minh khai đề thi chọn hsg lớp 11 năm học 2010-2 011 Môn thi: Tin Học 11 Thời gian: 150 Phút Ngày thi: 25/12/2010. mảng theo thứ tự tăng dần nh sau: Trêng thpt minh khai §¸p ¸n ®Ò thi HSG líp 11 n¨m häc 2010-2 011 M«n tin häc 11 Bµi 1(6®) PROGRAM BAI1; USES CRT; VAR

Ngày đăng: 27/11/2013, 22:11

TỪ KHÓA LIÊN QUAN

w