Tải bản đầy đủ
DỮ LIỆU KIỂU MẢNG HAI CHIỀU

DỮ LIỆU KIỂU MẢNG HAI CHIỀU

Tải bản đầy đủ

Tài liệu bồi dưỡng HSG Pascal

Trường THCS Thái Hòa

Writeln;
End;
End;
Bài 1: Nhập vào mảng 2 chiều từ sau đó thực hiện các yêu cầu sau:
a/ tìm số lớn nhất trên từng dòng
b/ sắp xếp từng dòng theo chiều tăng dần
c/ tìm phần tử yên ngựa.( phần tử yên ngựa là phần tử lớn nhất trên dòng đồng thời cũng là
phần tử nhỏ nhất trên cột.)
Dữ liệu vào Dữ liệu ra phần a/ Dữ liệu ra phần b/ Dữ liệu ra phần c/
44
Dong 1: 5
3345
5
5433
Dong 2: 8
1268
6821
Dong 3: 9
1689
9618
Dong 4: 7
2457
7542
Program Mang2c;
Var A:Array[1..100,1..100]Of Integer;
n,m:Integer;
F,G:Text;
Procedure NhapDl;
Var i,j:Integer;
Begin
Assign(F,’tenmang.inp’);Reset(F);
Readln(F,n,m);
For i:=1 to n do
Begin
For j:=1 to m do
Read(F,A[i,j]);
Writeln;
End;
Close(F);
End;
Procedure InDL;
Var i,j:Integer;
Begin
Writeln('-------------------');
For i:=1 to n do
Begin
For j:=1 to m do
Giáo viên: Nguyễn Quang Hiệu

Trang 29

Tài liệu bồi dưỡng HSG Pascal

Trường THCS Thái Hòa

Write(A[i,j]:4);
Writeln;
End;
End;
Procedure TT;
Var Tg,i,j:Integer;
Begin
Tg:=0;
For i:=1 to n do
For j:=1 to m do
Tg:=Tg+A[i,j];
Writeln('Tong cac so trong mang la:',Tg);
ENd;
Procedure TMax;
Var Max,i,j:Integer;
Begin
For i:=1 to n do
Begin
Max:=A[i,1];
For j:=1 to m do
If MaxWriteln('Max cua dong ',i,' la:',Max);
End;
End;
Procedure MaxCot;
Var Max,i,j:Integer;
Begin
For j:=1 to m do
Begin
Max:=A[1,j];
For i:=1 to n do
If MaxWriteln('Max cua cot thu ',j,' la:',Max);
End;
End;
Procedure SXDong;
Var i,j,k,Tg:Integer;
Begin
For i:=1 to n do
Begin
For j:=1 to m-1 do
Giáo viên: Nguyễn Quang Hiệu

Trang 30

Tài liệu bồi dưỡng HSG Pascal

Trường THCS Thái Hòa

For k:=j+1 to m do
If A[i,j]>A[i,k] Then
Begin
Tg:=A[i,j];
A[i,j]:=A[i,k];
A[i,k]:=Tg;
End;
End;
For i:=1 to n do
Begin
For j:=1 to m do
Write(A[i,j]:4);
Writeln;
End;
End;
Procedure PTYN;
Var i,j,Vtcot,vtdong,t,Max,Min:Integer;
Begin
For i:=1 to n do
Begin
Max:=A[i,1];
For j:=1 to m do
If MaxBegin
Max:=A[i,j];
Vtcot:=j;
End;
Min:=A[1,Vtcot];
For t:=1 to n do
If A[t,Vtcot]Min:=A[t,Vtcot];
Vtdong:=t;
End;
If Max=Min Then Writeln('Pt YN la gia tri:',Max,' nam o vi tri
(',vtdong,',',vtcot,')');
End;
End;
BEGIN
NhapDL;
{ Assign(G,’tenmang.out’);Rewrite(G);}
InDL;
Giáo viên: Nguyễn Quang Hiệu

Trang 31

Tài liệu bồi dưỡng HSG Pascal

Trường THCS Thái Hòa

TT;
TMax;
MaxCot;
SXDong;
PTYN;
{ Close(G);}
Readln;
END.

Giáo viên: Nguyễn Quang Hiệu

Trang 32

Tài liệu bồi dưỡng HSG Pascal

Trường THCS Thái Hòa

CÁC THUẬT TOÁN VỀ SỐ
1/ Thuật toán kiểm tra số nguyên tố
FUNCTION SNT(X:integer):boolean;
Var i:integer;
Begin
KT:=true;
If n<2 then KT:=false
Else
Begin
For i:=2 to trunc(sqrt(x)) do
If x mod i=0 then
Kt:=false;
End;
End;
2/ Thuật toán tìm UCLN của hai số
FUNCTION UCLN (a,b:integer):integer;
Var r:integer;
Begin
While a<>b do
Begin
If a>b then
a:=a-b
Else
b:=b-a;
End;
UCLN:=a;
End;
3/ Thuật toán tính tổng các chữ số của một số nguyên
FUNCTION TONGCS(n:integer):integer;
Var s:integer;
Begin
S:=0;
While n<>0 do
Begin
S:=s+ n mod 10;
Giáo viên: Nguyễn Quang Hiệu

Trang 33

Tài liệu bồi dưỡng HSG Pascal

Trường THCS Thái Hòa
N:=n div 10;

End;
TONGCS:=s;
End;
4/ Thuật toán kiểm tra số hoàn thiện
FUNCTION SOHT(n:integer):boolean;
Var I,s:integer;
Begin
SOHT:=false;
S:=0;
For i:=1 to n div 2 do
If n mod i=0 then
S:=s+I;
If s=n then
SOHT:=true;
End;
5/ Thuật toán kiểm tra một số có thuộc dãy Fibonaci không
FUNCTION FIBO(n:integer):boolean;
Var f1, f2, f:integer;
Begin
F1:=0;
F2:=1;
F:=f1+f2;
While fBegin
F1:=f2;
F2:=f;
F:=f1+f2;
End;
If f=n then FIBO:=true
Else
FIBO:=false;
End;
(dưới đây là bài tập dùng hàm để in các số fibonaci với n nhập vào từ bàn phím)

Giáo viên: Nguyễn Quang Hiệu

Trang 34