100 đề Toán Tin Tin học & Nhà trường



tải về 1.1 Mb.
trang14/22
Chuyển đổi dữ liệu26.07.2016
Kích1.1 Mb.
#6336
1   ...   10   11   12   13   14   15   16   17   ...   22

(Dành cho học sinh THPT)


Chương trình của bạn Nguyễn Tiến Dũng lớp 8A2 trường PTTH chuyên Bến Tre, tỉnh Bến Tre.

Program Ban_co;

Uses Crt;

        Var      a: array [1..8, 1..8] of 0..1;

                                    b, c, d, p: array [0..8,0..8] of integer;

                                  max:integer;

Procedure  Input;

            Var      f: text;   i, j: integer;               

                                   st: string[8];

Begin


          Assign (f, 'banco2.txt');

Reset (f);

          For i:=1 to 8 do

           begin

                     Readln(f,st);

                      For j:=1 to 8 do If st[j]= 0 then  a[i,j]:=0 else a[i,j]:=1;

           end;

Close(f);

End;

Procedure Init;



Begin

           Input;

          Fillchar(b,sizeof(b),0);

           c:=b;  d:=b;  p:=b;

End;

Function Get_max(x, y, z, t: integer): integer;



            Var     k: integer;

           Begin

                        k:=x;

                        If k < y then k:=y;                                                      

                       If k < z then k:=z;

                       If k < t then k:=t;

                       Get_max:=k;

           End;

Procedure   Find_max;

         Var

                       i, j, k: integer;

           Begin

                     max:=0;

                     For i:=1 to 8 do                      

                       For j:=1 to 8 do

      If   a[i, j]= 1 then

                             begin

                                       b[i, j]:=b[i-1,j]+1;

                                       c[i, j]:=c[i,j-1]+1;

                                       d[i,j]:=d[i-1,j-1]+1;

                                       p[i,j]:=p[i-1,j+1]+1;

                                     k:=get_max(b[i,j], c[i,j], d[i,j], p[i,j]);

                                       If   max < k then max:=k;

                                end;

                     Writeln (max);

                     Readln;

           End;

BEGIN


            Clrscr;

            Init;

          Find_max;

END.


Bài 28/2000 - Đổi tiền


(Dành cho học sinh Tiểu học)

Có 10 cách đổi tờ 10 ngàn đồng bằng các đồng tiền 1, 2 và 5 ngàn đồng.




Số tờ 1 ngàn

Số tờ 2 ngàn

Số tờ 5 ngàn

0

0

2

1

2

1

3

1

1

5

0

1

0

5

0

2

4

0

4

3

0

6

2

0

8

1

0

10

0

0

Bài 29/2000 - Chọn bạn


(Dành cho học sinh THCS)

Gọi một bạn học sinh nào đó trong 6 bạn là A. Chia 5 bạn còn lại thành 2 nhóm: Nhóm 1 gồm những bạn quen A, nhóm 2 gồm những bạn không quen A (dĩ nhiên A không nằm trong 2 nhóm đó). Vì tổng số các bạn trong 2 nhóm bằng 5 nên chắc chắn có 1 nhóm có từ 3 bạn trở lên. Có thể xảy ra hai khả năng:



Khả năng 1. Nhóm 1 có từ 3 bạn trở lên: Khi đó nếu các bạn trong nhóm đó không ai quen ai thì bản thân nhóm đó chứa 3 bạn không quen nhau cần tìm. Ngược lại nếu có 2 bạn trong nhóm đó quen nhau thì hai bạn đó cùng với A chính là 3 bạn quen nhau cần tìm.

Khả năng 2. Nhóm 2 có từ 3 bạn trở lên: Khi đó nếu các bạn trong nhóm 2 đã quen nhau đôi một thì nhóm đó chứa 3 bạn quen nhau đôi một cần tìm; ngược lại nếu có 2 bạn trong nhóm không quen nhau thì 2 bạn đó cùng với A chính là 3 bạn không quen nhau cần tìm.

Bài 30/2000 - Phần tử yên ngựa


(Dành cho học sinh THCS)

const


Inp = 'Bai30.INP';

Out = 'Bai30.OUT';

MaxLongInt = 2147483647;

var


Min, Max: array[1..5000] of LongInt;

m, n: Integer;

procedure ReadInput;

var


i, j, k: Integer;

hf: Text;

begin

Assign(hf, Inp);



Reset(hf);

Readln(hf, m, n);

for i := 1 to m do Min[i] := MaxLongInt;

for j := 1 to n do Max[j] := -MaxLongInt;

for i := 1 to m do

begin


for j := 1 to n do

begin


Read(hf, k);

if Min[i] > k then Min[i] := k;

if Max[j] < k then Max[j] := k;

end;


Readln(hf);

end;


Close(hf);

end;


procedure WriteOutput;

var


i, j: Integer;

Result: Boolean;

hf: Text;

begin


Result := False;

Assign(hf, Out);

Rewrite(hf);

Writeln(hf, 'Cac phan tu yen ngua la: ');

for i := 1 to m do

for j := 1 to n do

if Min[i] = Max[j] then

begin


Result := True;

Write(hf, '(', i, ',', j, '); ');

end;

if not Result then



begin

Rewrite(hf);

Write(hf, 'Khong co phan tu yen ngua');

end;


Close(hf);

end;


begin

ReadInput;

WriteOutput;

end.


3 3

15 3 9


55 4 6

76 1 2



tải về 1.1 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   10   11   12   13   14   15   16   17   ...   22




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương