You are on page 1of 6

PHNG GD&T TP NHA TRANG

THI HC SINH GII THCS MN TIN HC


NM HC 2014 -2015
Bi 1
Vit chng trnh tm cc s t nhin c ba ch s. Ba ch s ny theo th t vit t tri qua phi to thnh mt
cp s nhn.
Cp s nhn l mt dy s m trong k t s hng th hai, mi s hng u bng tch ca s hng ng ngay
trc n vi mt s q khng i.
* Gii thut
S cn tm l abc trong b = a*q; c =b*q hay c = a*q*q
Vy s cn tm vit di dng phn tch h thp phn l: a*100 + a*q*10 + a*q*q; iu kin l 1<=a<=9;
0<=a*q*q<=9; 1<=q<=9
S dng phng php duyt tng s (dng vng lp qut):
Cho a chy t 1 n 9
Cho q chy t 1 n 9
Nu a*q*q<10 th
Gn gi tr a*100 + a*q*10 + a*q*q vo bin mng S[n]
Tng ch s n mt n v
Xut gi tr ca mng S[n] chnh l s cc s cn tm.
* Li gii tham kho
Program Capsonhan;
Uses Crt;
Var S:Array[1..100] of Integer;
n:Integer;
{C th dng hm hoc th tc gii quyt v tm s theo dng cp s nhn. Quan trng l phi gi li gi tr n
xut gi tr ca mng}
Function TIM:Integer;
Var a,q:Integer;
Begin
n:=0;
For a:=1to 9 do
For q:=1 to 9 do
If a*q*q<10 then
Begin
n:=n+1;
S[n]:=a*100 + a*q*10 + a*q*q;
End;
TIM:=n;
End;
{Xut mng cha cc s cn tm}
Procedure XUAT (n:Integer);
Var i:Integer;
Begin
For i:=1 to n do
Writeln(S[i]);
End;
{Chng trnh chnh}
Begin
Clrscr;
n:=TIM;
XUAT(n);
Writeln('Tong cong co ',n,'so');
Readln;
End.

Bi 2
Vit chng trnh sinh ngu nhin cc s nguyn v ghi vo mt mng hai chiu A[1..n,1..n] sao cho cc phn t
i xng nhau qua ng cho chnh, ngha l A[i,j] = A[j,i]. (n nhp vo t bn phm v n>=3)
* Gii thut
V d di y l mt mng hai chiu c phn t i xng nhau qua ng cho chnh
1
2

N
1
3
6
23
61
2
6
5
45
7

23
45
8
18
N
61
7
18
9
ng cho chnh
c c mt mng i xng nhau qua ng cho chnh, ta ch cn cho pht sinh s ngu nhin ng cho
v mt na phn ca mng (trn hoc di). Na mng cn li ch vic ly i xng A[j,i] = A[i,j]

1
2

3 A[1,1]
A[2,1] = A[1,2]
A[,1] = A[1,]
A[N,1]=A[1,N]

6 A[1,2]
5 A[2,2]
A[,2]=A[2,]
A[N,2]=A[2,N]

23 A[1,..]
45 A[2,]
8 A[,]
A[N,]=A[,N]

N
61 A[1,N]
7 A[2,N]
18 A[,N]
9 A[N,N]

Nhp s ngu nhin cho ng cho chnh:


Cho i chy t 1 n n
A[i,i] = S ngu nhin;
Nhp s ngu nhin cho na ng cho trn (hoc di) ng thi nhp phn t i xng bn di
Cho i chy t 1 n n
Cho j chy t i+1 n n
A[i,j]=S ngu nhin
A[j,i]=A[i,j]
Xut mng cn tm.
* Li gii
Program Doixungduongcheo;
Uses Crt;
Var A: Array[1..100,1..100] of Integer;
n:integer;
Procedure NHAPMANG(n:integer);
Var i, j: Integer;
Begin
Randomize;
For i:=1 to n do
A[i,i]:=Random(n);
For i:=1 to n do
For j:=i+1 to n do
Begin
A[i,j]:=Random(n);
A[j,i]:=A[i,j];
End;
End;
Procedure XUATMANG(n:Integer);
Var i,j:Integer;
Begin
For i:=1 to n do
Begin
For j:=1 to n do
Write(a[i,j]:5);
Writeln;

End;
End;
Begin
Clrscr;
Writeln('Nhap kich thuoc cua mang');
Readln(n);
NHAPMANG(n);
XUATMANG(n);
Readln;
End.
Bi 3:
Bnh l mt hc sinh lp 1 rt nghch. Em ly ko ct mt t giy hnh ch nht ra thnh cc mnh nh. Bnh ct
theo chiu song song vi cc cnh ca hnh ch nht (t tri qua phi hoc t trn xung di)
Yu cu bi ton:
Cho s ln ct ca Bnh l N, tnh s mnh hnh ch nht c to ra nhiu nht c th sau N ln ct.
Hy vit chng trnh nhp vo s N (0<N<=100) l s ln ct ca Bnh. In ra mn hnh s lng giy nhiu nht c
th.
* Gii thut
Vi N = 2

3 mnh

3 mnh

4 mnh (Max)

4 mnh

4 mnh

6 mnh (Max)

Vi N = 3

6 mnh (Max)
Vi N 4

5 mnh

5 mnh

8 mnh

9 mnh (Max)

8 mnh

- Qua cc v d trn, ta thy s lng mnh giy nhiu nht th phi chia s ln ct ra lm hai (nu s ln ct l
l th ly phn nguyn trong php chia cho 2). Mt na s ln ct theo chiu dc, s ln cn li ct theo chiu
ngang (hoc ngc li).

V d: N= 2
N div 2 c kt qu l 1: ct 1 ngang, 1 dc
N=3
N div 2 c kt qu l 1: ct 1 ngang, 2 dc (hoc ngc li)
N=4
N div 2 c kt qu l 2: ct 2 ngang, 2 dc
N=5
N div 2 c kt qu l 2: ct 2 ngang, 3 dc hoc ngc li.
- Gi Ngang,Doc l s ln ct theo chiu ngang, chiu dc. Khi s chia chiu dc ca hnh ch nht thnh Ngang
+ 1 on; chia chiu ngang ca hnh ch nht thnh Doc + 1 on. Khi s mnh giy nhiu nht chnh l
(Ngang+1)*(Doc+1)
Ngang:=N div 2;
Doc: = N Ngang;
So manh lon nhat la (Ngang+1)*(Doc+1);
* Li gii:
Program manhgiay;
uses crt;
Var n,ngang, doc:Integer;
Begin
Clrscr;
Write('Nhap so nhat cat');
Readln(n);
ngang:=N div 2;
doc:=N - ngang;
Writeln('So manh giay lon nhat la ',(ngang+1)*(doc+1),' manh');
Readln;
End.
Bi 4
An li xe ti trn mt con ng di, trn ng c nhiu n giao thng. Mi n giao thng An bit trc thi
gian n sng cng nh thi gian n xanh sng (chu k ny c lp i lp li). Khi bt u chuyn i tt c
cc n bt l n . Mi giy An i c 1 n v khong cch. Trong qu trnh di chuyn nu gp n An
dng li v ch cho ti khi n xanh c bt.
Vit chng trnh xc nh gip An cn bao nhiu thi gian n c ch (cui con ng). Cho con
ng c chiu di l L n v khong cch. An ng v tr xut pht l u con ng c khong cch bng 0.
D liu vo: T tp tin vn bn DGTHONG.INP c cu trc:
- Dng u tin cha 2 s nguyn N v L vit cch nhau mt khong trng (1<=N<=100, 1<=L<=1000) l s
n giao thng v chiu di con ng.
- N dng tip theo, mi dng cha 3 s nguyn D, R, G (1<=D<L, 1<=R<=100, 1<=G<=100) vit cch nhau
mt khong cch trng, trong :
+ D l v tr khong cch t v tr bt u ti n giao thng.
+ R l thi gian n sng (n v l giy)
+ G l thi gian n xanh sng (n v l giy)
Nhng n giao thng c sp xp theo th t tng dn ca D.
D liu ra: Ghi ra tp tin vn bn DGTHONG.OUT mt s nguyn dng l thi gian An ti cui con ng.
* Gii thut
V d
DGTHONG.INP DGTHONG.OUT
2 10
12
355
522

R=5(s)
G=5(s)

R=2(s)
G=2(s)

D=3

C
D=5

L= 10
Gi t l thi gian xe i, x l qung ng xe i c.
t:=0;
x:=0;
Thi gian xe i c ti ct n th nht:
t:=t+D;
Qung ng xe i c ti ct n th nht:
x:=x+D;
* X l khi xe gp n giao thng: n sng u tin ri ti n xanh nn ht mt chu trnh ca mt lt s
mt (thi gian n (R) + thi gian n xanh(G)) giy.
xc nh sau mt khong mt thi gian t, xe gp n xanh hay n ta ly
t mod (R + G)
Trong khi t mod (R + G) < R (c ngha l xe gp n th phi dng li)
t:=t+1; (tng thi gian t ln 1 giy chnh l thi gian xe ng ch n )
Sau khi s dng vng lp gii quyt xe i t ct n 1 n ct n th 2 xong, th thi gian i qung ng cn
li chnh L x (L l chiu di c qung ng; x l qung ng i c khi ti ct n th 2)
Khi tng thi gian xe i ti ch l t:=t + (L-x); (t l thi gian i c khi ti ct n th 2).
* Li gii:
Program giaothong;
uses crt;
Var N,L:Integer;
D,R,G:Integer;
i,x,t:Integer;
f,f1:Text;
Begin
Assign(f,'DGTHONG.INP');
Reset(f);
Readln(f,N,L);{ c gi tr 2 vo bin N, gi tr 10 vo bin L}
x:=0;
t:=0;
{Xu ly du lieu xe di den cot den thu 1 den cot den thu N}
For i:=1 to N do
Begin
Readln(f,D,R,G); {c ln lt b gi tr (3, 5, 5) v (5, 2, 2) vo bin (D,R,G)}
t:=t+D;
x:=x+D;
While t mod (R+G) < R do
t:=t+1; {Cng thm thi gian khi xe ng ch n }
End;
{Tinh tong thoi gian khi xe den dich}
t:=t+L-x;
Assign(f1,'DGTHONG.OUT');
Rewrite(f1);
Writeln(f1,t);
Close(f);
Close(f1);
End.

You might also like