Bài giải đề thi Tin học trẻ phần THPT Gia Lai 2019-Pascal

LẬP TRÌNH PASCAL

Bài 1:

Program phantichso;
Uses crt;
Var n:longint;
{--------Xu ly----}
Procedure xuly(n:longint);
var i,dem:longint;
begin
for i:=2 to n do
begin
dem:=0;
while (n mod i=0) do
begin
dem:=dem+1;
n:=n div i;
end;
if dem<>0 then
begin
write(i);
if dem>1 then
write('^',dem);
if n>i then
write('.');
end;
end;
end;
{-------Main------}
Begin
clrscr;
write('Nhap n=');
readln(n);
if n>1 then
xuly(n)
else write('Ban hay nhap lai');
readln;
End.

Bài 2:

Program bai2;
Uses crt;
Var a:array[1..100] of longint;
n,i,max,ldau,dau,dai:longint;
Begin
write('Nhap n=');
readln(n);
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
writeln;
for i:=1 to n do
write(a[i],' ');
i:=0;
max:=1;
dau:=1;
dai:=1;
ldau:=1;
while i<=n do
begin
i:=i+1;
if a[i+1]*a[i]>0 then
dai:=dai+1
else
if dai>max then
begin
max:=dai;
ldau:=dau;
dai:=0;
end
else
begin
dau:=i+1;
dai:=1;
end;
end;
write('Xau con dai:',max,' bat dau tu:',ldau);
writeln;
for i:=0 to max-1 do
write(a[ldau+i],' ');
readln;
end.

Bài 3:

Program bai3;
Uses crt;
Var N,K:longint;
a:array[1..200] of longint;
L:array[0..200,0..200] of longint;
fi:text;
{---------Doc dl-------}
procedure docdl;
var i:longint;
begin
assign(fi,'div.inp');
reset(fi);
readln(fi,N,K);
writeln(N,' ',K);
for i:=1 to N do
begin
read(fi,a[i]);
write(a[i],' ');
end;
close(fi);
end;
{---------QHD------------}
procedure qhd;
var i,j:longint;
begin
for i:=1 to n do a[i]:=a[i] mod k;
for j:=0 to k-1 do L[1,j]:=0;
L[1,a[1]]:=1;
for i:=2 to n do
for j:=0 to k-1 do
begin
L[i,j]:=0;
if (L[i-1,(k+j-a[i]) mod k]=1)or(L[i-1,(j+a[i]) mod k]=1)then
L[i,j]:=1;
end;
write('Ket qua:',L[n,0]);
end;
{---------Main-----------}
Begin
clrscr;
docdl;
writeln;
qhd;
readln;
End.

Bài 4:

Program bai4;
Uses crt;
Var n,dem,i,dem1,h1:longint;
Begin
clrscr;
write('Nhap n=');
readln(n);
if n>0 then
begin
if n mod 2=0 then
begin
writeln('So buoc di:',n,' Do cao:',n div 2);
dem:=0;
for i:=1 to n div 2 do
begin
dem:=dem+1;
writeln('Vi tri:',dem,' ',i);
end;
for i:=(n div 2)-1 downto 0 do
begin
dem:=dem+1;
writeln('Vi tri:',dem,' ',i);
end;
end
else
begin
writeln('So buoc di:',n,' Do cao:',(n-1) div 2);
dem1:=0;
for i:=1 to (n-1) div 2 do
begin
dem1:=dem1+1;
writeln('Vi tri:',dem1,' ',i);
end;
h1:=(n-1) div 2;
while (dem1<>n)and(h1<>0)do
begin
h1:=h1-1;
dem1:=dem1+1;
writeln('Vi tri:',dem1,' ',h1);
end;
writeln('Vi tri:',dem1+1,' ',h1);
end;
end
else
write('Khong hop le');
readln;
End.

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *