Tổng hợp các đề thi Tin học trẻ các cấp

L

lamdetien36

Mã:
var 
     A: array [1..100] of integer;
     T: array [1..100] of boolean;	
     f: text;
     N: integer;
procedure InKQ;
 var i: integer;
 begin
	for i := 1 to N do write(f, A[i]);
	writeln(f);
 end;
procedure Attemp(i: integer);
 var j: integer;
 begin
	for j := 1 to N do if T[j] = false then
 	begin
		A[i] := j;
		T[j] := true;
		if i = N then InKQ
		else Attemp(i + 1);
		T[j] := false;
	end;
 end;
begin
	assign(f, 'HOANVI.INP');
	reset(f);
	readln(f, N);
	close(f);

	assign(f, 'HOANVI.OUT');
	rewrite(f);
	FillChar(T, sizeof(T), false);
	Attemp(1);
	close(f);
end.
Đề của bạn còn đỡ, tìm Google thì vẫn có, còn bài xếp lịch của mình hoàn toàn không tồn tại.:|
 
Last edited by a moderator:
M

megamanxza

Mọi người có biết ngày giờ, địa điểm thi không?
Tui chỉ biết là thi THT quốc gia tại Thừa Thiên Huế thôi!
 
M

megamanxza

Sặc! Sao kì thế?
Ngay tại lễ trao giải tui có nghe là tổ chức tại Thừa Thiên Huế mà! THỪA THIÊN HUẾ! KHÔNG NHẦM ĐÂU!
 
M

megamanxza

Kì thế! Năm ngoái Nghệ An đăng cai tổ chức rồi mà! Trong công văn sở GD-ĐT An Giang gửi cho trường mình có nói rõ là tổ chức tại Huế đó!
 
M

megamanxza

Haizz.........cuối cùng cũng có bằng chứng: http://www.trt.vn/tabid/58/itemid/17531/categoryId/0/type/1/Default.aspx
Buồn quá! Không được ra Huế rồi! Ú hu hu hu!
images

Thôi kệ! Coi như có một vé đi thăm làng Sen quê Bác!
Cảm ơn mọi người ở trên và xin lỗi vì đã không tin các bạn!
 
L

lamdetien36

Haizz.........cuối cùng cũng có bằng chứng: http://www.trt.vn/tabid/58/itemid/17531/categoryId/0/type/1/Default.aspx
Buồn quá! Không được ra Huế rồi! Ú hu hu hu!
Thôi kệ! Coi như có một vé đi thăm làng Sen quê Bác!
Cảm ơn mọi người ở trên và xin lỗi vì đã không tin các bạn!
Ở Huế có gì đâu, ra làm gì.:))

Hơi lại đề rồi nhá ;))
Anh up thêm vài đề nữa đi để có cái mà chém, khỏi lạc đề ;))
 
L

lamdetien36

Ai rảnh thì xem hộ mình code này rồi giải thích thuật toán của code với, mình đọc mãi không hiểu :( Đây là code của bài 1 đề THT toàn quốc 2010 bảng B
PHP:
const
     fi = '';
     fo = '';
var
   stn, sumst: string;
   code, i: integer;
   f:  text;
procedure plus(var st1: string; st2: string);
 var
    tmp: char;
    code, cs, i, j: integer;
    sub: string;
 begin
       while length(st1) < length(st2) do st1 := '0' + st1;
       while length(st1) > length(st2) do st2 := '0' + st2;
       for i := length(st1) downto 1 do
       begin
            val(st2[i], cs, code);
            tmp := chr(ord(st1[i]) + cs);
            if ord(tmp)<= 57 then st1[i] := tmp else
            begin
                 tmp := chr((ord(st1[i]) + cs)mod 57 + 47);
                 st1[i] := tmp;
                 sub :=  '1';
                 for j := 1 to length(st1) - i + 1 do sub := sub + '0';
                 plus(st1, sub);
            end;
       end;
end;

function div10(st: string): string;
 begin
      delete(st, length(st), 1);
      if st <> '' then
      div10 := st else div10 := '0';
 end;

function mod10(st: string): integer;
 var cs: integer;
 begin
      val(st[length(st)], cs, code);
      mod10 := cs;
 end;

function dec1(st: string): String;
 var
    s, s2: string;
    tam: longint;
    cs, code, time: integer;
    ch: char;
 begin
      s := st;
      if st = '0' then
      begin
           dec1 := '0';
           exit;
      end;
      ch := '9';
      tam := length(s);
      time := 0;
      val(s[tam], cs, code);
      while cs - 1 < 0 do
      begin
           inc(time);
           s[tam] := ch;
           dec(tam);
           val(st[tam], cs, code);
      end;
      if cs - 1>= 0 then
      begin
           str(cs - 1, s2);
           s[tam] := s2[1];
      end;
      while (s[1] = '0') and (length(s) > 1) do delete(s, 1, 1);
      dec1 := s;
  end;

function productof(st1, st2: string): string;
 var
    tmpr, st3, kq: string;
    i, j, ts1, ts2, tich, code, t, l: integer;
 begin
      kq := ''; l := 0;
      for j := length(st2) downto 1 do
      begin
           val(st2[j], ts2, code);
           tmpr := '';
           for t := 1 to length(st1) + 1 do tmpr := tmpr + '0';
           for i := length(st1) downto 1 do
           begin
                val(st1[i], ts1, code);
                tich := ts1 * ts2;
                str(tich, st3);
                for t := 1 to length(st1) - i do st3 := st3 + '0';
                plus(tmpr, st3);
           end;
           for t := 1 to length(st2) - j do tmpr := tmpr + '0';
           plus(kq, tmpr);
           inc(l);
      end;
      while (KQ[1]  =  '0') and (length(KQ) > 1) do delete(kq, 1, 1);
      productof := kq;
 end;

function sumof(st1, st2: string): string;
 begin
      plus(st1, st2);
      sumof := st1;
 end;

function tgcs(st: string): string;
 var
    sum, i, cs, code:  integer;
    sumst:  string;
 begin
      sum := 0;
      for i := 1 to length(st) do
      begin
           val(st[i], cs, code);
           sum := sum + cs;
      end;
      str(sum, sumst);
      tgcs := sumst;
 end;

function tgtu1den(y: integer): string;
 var
    tong: integer;
    st: string;
 begin
      tong := 0;
      for i := 1 to y do inc(tong, i);
      str(tong, st);
      tgtu1den := st;
 end;

function tgcstu1den(y: string): string;
 var tam, a, b, c, d, e: string;
 begin
      if (y = '0') or (y = '1') then
      begin
           if y = '0' then tgcstu1den := '0';
           if y = '1' then tgcstu1den := '1';
      end
      else
      begin
           tam := tgcstu1den(dec1(div10(y)));
           a := tgtu1den(mod10(y));
           b := productof(y[length(y)], tgcs(div10(y)));
           c := productof('9', tam);
           d := sumof(tam, tgcs(div10(y)));
           e := productof('45', div10(y));
           tgcstu1den := sumof(a, sumof(b, sumof(c, sumof(d, e))));
      end;
 end;
begin
     assign(f, fi);
     reset(f);
     readln(f, stn);
     close(f);

     assign(f, fo);
     rewrite(f);
     sumst := tgcstu1den(stn);
     writeln(f, sumst);
     close(f);
end.
 
Top Bottom