Tải bản đầy đủ (.docx) (5 trang)

Đề 4 ôn thi học sinh giỏi môn Tin học 9 cấp tỉnh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (60.78 KB, 5 trang )

ĐỀ THI THỬ SỐ 4
Bài 1. (7 điểm) PHẦN TỬ YÊN NGỰA
Cho mảng 2 chiều A có kích thước MxN số nguyên. Phần tử A[i,j] được gọi
là phần tử yên ngựa nếu nó là phần tử nhỏ nhất trong hàng i đồng thời là phần
tử lớn nhất trong cột j.
Em hãy lập chương trình tìm phần tử yên ngựa của mảng A.
Dư liêu vào: Nhập từ bàn phím gồm:
Dòng đầu tiên gồm 2 số M, N (0 ≤ M,N ≤100)
M dòng tiếp theo, mỗi dòng gồm có N số nguyên của mảng A
(các giá trị cách nhau ít nhất 1 khoảng cách).
Dư liêu ra: Xuất ra màn hình vị trí của các phần tử yên ngựa (nếu có) hoăc
dòng thông báo “Khơng có phần tử n ngựa”.
Ví dụ:
Nhập từ bàn phím
Xuất ra màn hình
33
(2,2)
15
3
9
55
4
6
76
1
2
Hoăc :
Nhập từ bàn phím
Xuất ra nàm hình
33
Khong co phan tu yen ngua


15
10
5
55
4
6
76
1
2
Bài 2. (5 điểm) Viết chương trình tạo một hình chư nhật rỡng bằng dấu ‘*’ với
chiều dài và chiều rộng được nhập từ bàn phím. Lưu bài với tên cau1
Ví dụ:
Dư liệu nhập
Kết quả
- Chiều dài 5
* * * * *
- Chiều rộng 3
*
*
* * * * *
Bài 3 (8 điểm) Viết chương trình thao tác trên ma trận vuông với các yêu cầu:
+ Nhập xuất ma trận vng.
+ Tính tổng các phần tử trên đường chéo chính.
+ Kiểm tra tính đới xứng của ma trận vng qua dường chéo chính.
Hướng dẫn:
+ Ma trận vng là mảng 2 chiều nhưng có kích thước dòng bằng kích
thước cột. Tức là, M=N, khi dó kích thước của ma trận là NxN.
+ Đường chéo chính là các phần tử A[i, j] có i = j ( hay A[i, i] ).



HƯỚNG DẪN ĐỀ THI THỬ SỐ 4

Bài 1.
program yenngua;
uses crt;
var A: array[1..100,1..100] of integer;
i,j,n,m,min,dem,k: integer;
yn:boolean;
begin clrscr; Write('nhap n:'); readln(n);
Write('nhap m:'); readln(m);
For i:= 1 to n do For j:= 1 to m do
begin
Write('A[',i,',',j,']:'); readln(A[i,j]);
end;
For i:= 1 to n do
begin
For j:= 1 to m do
Write(A[i,j],' '); Writeln;
End;
For i:= 1 to n do
Begin
k:=1; min:=A[i,1];
for j:= 1 to m do
If min >A[i,j] then
begin


Min:=A[i,j]; k:=j;
end;
yn:=true;

For j:= 1 to m do
If A[i,k]If yn then begin inc(dem); Write('A[',i,',',k,']', ' ');
end;
end;
If dem = 0 then Write('khong co phan tu yen ngua');
readln
end.
Bài 2.
program in_hcn_rong;
var d,r,i,j:byte;
begin
write ('D= '); readln (d);
write ('R= '); readln (r);
for i:=1 to d do write('*');
writeln;
for i:=1 to r-2 do
begin
write ('*');
for j:=1 to d-2 do
write (' ');
write('*');
writeln; end;
for i:=1 to d do


write ('*');
readln
end.
Bài 3

{ 1. Thu tục nhap mang 2 chieu }
Procedure NhapMtran( Var A : Mang2C; Var N : Integer);
Var

i, j: Integer;

Begin
Repeat
Write(‘Nhap kich thuoc N: ‘);
Readln( N );
Until ( N>0 ) and ( N<11 );
For i:=1 to N do
For j:=1 to N do
Begin
Write(‘Nhập Ptu[‘, i, ‘,’, j , ‘]: ‘);
Readln(A[i,j]);
End;
End;
{ 2. Thu tục xuat mang 2 chieu }
Procedure XuatMtran( A : Mang2C; N : Integer);
Var

i, j: Integer;

Begin
For i:=1 to N do
Begin
For j:=1 to N do
Write(A[i, j],’ ‘);
Writeln;

End;
End;
{ 3. Ham tinh tong tren duong cheo chinh cua ma tran vuong }
Function TongDgCheoChinh( A : Mang2C; N : Integer) : Real;
Var

i, j: Integer;
S : Real;

Begin


S := 0;
For i:=1 to N do
S := S + A[i, i];
TongDgCheoChinh := S;
End;
{ 3. Ham kiem tra tinh doi xung cua ma tran vuong qua duong cheo chinh }
Procedure KiemtraDoixung( A : Mang2C; N : Integer);
Var

i, j: Integer;
Ktra : Boolean;

Begin
Ktra:= True;
For i:=1 to N do
For j:=1 to N do
If (A[i, j] <> A[j, i]) then
Ktra:=False;

If (Kiemtra = True) then
Writeln(‘Mang doi xung‘)
Else
Writeln(‘Mang khong doi xung’);
End;
{ 4. Than chuong trinh chinh

}

BEGIN
{ Nhung ham nhap xuat da de cap o Bai so 4.1, xem chi tiet o tren
Writeln( ‘Nhap ma tran :’);

NhapMtran (A, N );

Writeln( ‘Ma tran da nhap la:’);

XuatMang2C (A, N, N );

Writeln( ‘Tong ptu duong cheo chinh:’, TongDgCheoChinh(A, N) );
KiemtraDoixung ( A , N );
Readln;

END.

}




×