K
Khách

Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.

6 tháng 4 2017

giả sử ta có mảng a gồm n=5 phần tử:

a1, a2, a3, a4 và a5

for i:=1 to n-1 do nghĩa là vòng lặp chỉ chạy tới vị trí 4 (n-1=5-1=4)

còn for i:=1 to n do nghĩa là vòng lặp chạy tới vị trí 5 (n=5)

11 tháng 5 2020

Mình kiểm tra thấy nó có sai về lỗi gì đâu. Ý bạn là sai về cách chạy đúng không, bạn gửi đề để mình xem nhé

Đoạn chương trình này làm công việc đổi chỗ hai phần tử m[i] và m[j] nếu m[i]>m[j]

*p/s: Đoạn chương trình này thường xuất hiện trong bài sắp xếp tăng dần của dãy số

16 tháng 1 2019

D

13 tháng 10 2019

A mới đúng nhé bạn

in ra thì phải write(a[i]:5) mới đúng

D là nhập rồi nhé bạn

Đúng rồi đó bạn

11 tháng 4 2020

đúng ko ạ

2 tháng 6 2020

Cho đoạn chương trình

s:=1;

for i:=1 to 3 do

for j:=1 to 3 do s:=s*2;

kết thúc đoạn chương trình trên biến s có giá trị

A. 512 B.128 C. 64 D.1024

ĐÁP ÁN VÒNG 1 CUỘC THI TIN HỌC LẦN 2 Câu 1: const fi='ptyn.inp'; fo='ptyn.out'; var a:array[1..100,1..100]of integer; i,j,n,m,snn,sln,vtc,vth,x,z,kt,k,dem:integer; f1,f2:text; begin assign(f1,fi); reset(f1); assign(f2,fo); rewrite(f2); readln(f1,n,m); for i:=1 to n do for j:=1 to m do read(f1,a[i,j]); {----------nho nhat hang----------} dem:=0; for i:=1 to n do begin snn:=a[i,1]; for j:=1 to m do if snn>=a[i,j] then ...
Đọc tiếp

ĐÁP ÁN VÒNG 1 CUỘC THI TIN HỌC LẦN 2

Câu 1:

const fi='ptyn.inp';
fo='ptyn.out';
var a:array[1..100,1..100]of integer;
i,j,n,m,snn,sln,vtc,vth,x,z,kt,k,dem:integer;
f1,f2:text;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n,m);
for i:=1 to n do
for j:=1 to m do
read(f1,a[i,j]);
{----------nho nhat hang----------}
dem:=0;
for i:=1 to n do
begin
snn:=a[i,1];
for j:=1 to m do
if snn>=a[i,j] then
begin
snn:=a[i,j];
vth:=i;
vtc:=j;
end;
kt:=0;
sln:=a[vth,vtc];
for k:=1 to n do
if sln<a[k,vtc] then kt:=1;
if kt=0 then
begin
writeln(f2,vth,' ',vtc);
dem:=dem+1;
end;
end;
if dem=0 then writeln(f2,'Khong co phan tu yen ngua');
close(f1);
close(f2);
end.

Câu 2: Bài làm của bạn @Tran Nguyễn Đăng Dương

Program connect;
uses crt;
const fi='connect.inp';
fo='connect.out';
type num=record
number,top:integer;
end;
var a:array[0..1000] of num;
t:num;
i,n,j:integer;
f1,f2:text;
Function timtop(a:integer):integer;
begin
if a<10 then exit(a);
exit(timtop(a div 10));
end;
Begin
clrscr;
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
read(f1,n);
for i:=1 to n do
begin
read(f1,a[i].number);
a[i].top:=timtop(a[i].number);
end;
for i:=1 to n-1 do
for j:=i+1 to n do
begin
if a[i].top=a[j].top then
begin
if a[i].number>a[j].number then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
end
else if a[i].top<a[j].top then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
end;
for i:=1 to n do write(f2,a[i].number);
Close(f1);
Close(f2);
End.

Câu 3:

const fi='quediem.inp';
fo='quediem.out';
var f1,f2:text;
i,m,n,d,x,j,csc:longint;
a,b:array[1..100]of integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
{---------------------------tim-so-lon-nhat----------------------------}
m:=n;
if m mod 2=0 then
begin
for i:=1 to n div 2 do
write(f2,'1');
end
else begin
write(f2,'7');
for i:=2 to n div 2 do
write(f2,'1');
end;
{---------------------------tim-so-nho-nhat----------------------------}
write(f2,'-');
a[1]:=2; b[1]:=1;
a[2]:=5; b[2]:=2;
a[3]:=4; b[3]:=4;
a[4]:=6; b[4]:=6;
a[5]:=3; b[5]:=7;
a[6]:=7; b[6]:=8;
d:=(n div 7)+1;
if n mod 7=0 then d:=d-1;
if d=1 then
begin
case n of
2: write(f2,'1');
3: write(f2,'7');
4: write(f2,'4');
5: write(f2,'2');
6: write(f2,'0');
7: write(f2,'8');
end;
end;
if d>1 then
begin
for i:=1 to d do
if i=1 then
begin
b[4]:=6;
for j:=1 to 6 do
begin
x:=n;
x:=x-a[j];
csc:=(x div 7)+1;
if x mod 7=0 then dec(csc);
if csc=d-i then
begin
write(f2,b[j]);
n:=x;
break;
end;
end;
end
else begin
a[1]:=6; b[1]:=0;
a[2]:=2; b[2]:=1;
a[3]:=5; b[3]:=2;
a[4]:=4; b[4]:=4;
a[5]:=3; b[5]:=7;
a[6]:=7; b[6]:=8;
for j:=1 to 6 do
begin
x:=n;
x:=x-a[j];
csc:=(x div 7)+1;
if x mod 7=0 then csc:=csc-1;
if csc=d-i then
begin
write(f2,b[j]);
n:=x;
break;
end;
end;
end;
end;
close(f1);
close(f2);
end.

Câu 4:

const fi='tvh.inp';
fo='tvh.out';
var n,d,dem,sl,s2cs,s3cs,s4cs,s5cs,s6cs,s7cs,s8cs,k,i,d1:longint;
st,st1,stk:string;
f1,f2:text;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n,k);
str(n,st);
d:=length(st);
case d of
1: write(9);
2: begin
sl:=n-9;
dem:=9+sl*2;
end;
3: begin
s2cs:=(99-10)+1;
s3cs:=n-99;
dem:=9+s2cs*2+s3cs*3;
end;
4: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=n-999;
dem:=9+s2cs*2+s3cs*3+s4cs*4;
end;
5: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=(9999-1000)+1;
s5cs:=n-9999;
dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5;
end;
6: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=(9999-1000)+1;
s5cs:=(99999-10000)+1;
s6cs:=n-99999;
dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5+s6cs*6;
end;
7: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=(9999-1000)+1;
s5cs:=(99999-10000)+1;
s6cs:=(999999-100000)+1;
s7cs:=n-999999;
dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5+s6cs*6+s7cs*7;
end;
8: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=(9999-1000)+1;
s5cs:=(99999-10000)+1;
s6cs:=(999999-100000)+1;
s7cs:=(9999999-1000000)+1;
s8cs:=n-9999999;
dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5+s6cs*6+s7cs*7+s8cs*8;
end;
end;
if k<=dem then
begin
i:=1;
d1:=0;
repeat
str(i,st1);
d1:=d1+length(st1);
inc(i);
until d1>=k;
stk:=st1[length(st1)-(d1-k)];
writeln(f2,stk);
end;
close(f1);
close(f2);
end.

Câu 5: Bài làm của bạn @Tran Nguyễn Đăng Dương

Program robot;
uses crt;
const fi='robot.inp';
fo='robot.out';
type path=record
num,npath:integer;
end;
var a:array[0..1000,0..1000] of path;
i,j,n:integer;
b,c:array[1..2] of Integer;
st,st1:string;
f1,f2:text;
check:boolean;
min:real;
Function he2sanghe10(st1:string):real;
var d,x,tg:integer;
stt:string;
begin
he2sanghe10:=0;
d:=Length(st1);
for i:=1 to d do
begin
stt:=st1[i];
Val(stt,x,tg);
he2sanghe10:=he2sanghe10*2+x;
end;
end;
Procedure robotpath(x,y:integer; st1:string);
var k:integer;
t:string;
S:real;
begin
if (x=n) and (y=n) then
begin
S:=0;
S:=he2sanghe10(st1);
if (min>S) then
begin
min:=S;
st:=st1;
end;
end
else
for k:=1 to 2 do
begin
if (x+b[k]>=1) and (y+c[k]>=1) and (x+b[k]<=n) and (y+c[k]<=n) then
begin
str(a[x+b[k],y+c[k]].num,t);
st1:=st1+t;
a[x+b[k],y+c[k]].npath:=a[x,y].npath+1;
robotpath(x+b[k],y+c[k],st1);
Delete(st1,Length(st1),1);
if (a[x+b[k],y+c[k]].npath=0) then break;
end;
end;
end;
Begin
clrscr;
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
b[1]:=1; c[2]:=1;
min:=99999999999999999999999999999999999999;
read(f1,n);
for i:=1 to n do
for j:=1 to n do
begin
read(f1,a[i,j].num);
a[i,j].npath:=n*n;
end;
a[1,1].npath:=1;
Str(a[1,1].num,st1);
robotpath(1,1,st1);
writeln(f2,st);
Close(f1);
Close(f2);
End.

7

Bài làm của bạn @lê chí hiếu(bạn được 2,1 điểm)

bài 1

program PTYN;
uses crt;
var a:array[1..100,1..100]of integer;
i,j,m,n:integer;
f1,f2:text;
Max, Min:Integer;
Kt:boolean;
Procedure XuatMang;
begin
For i:=1 to n do
begin
for j:=1 to m do
Write(a[i,j]:4);
Writeln;
end;
end;
Procedure MaxCot(l:Integer);
var p:Integer;
begin
Max:=A[1,l];
For p:=2 to n do
if A[p,l]>Max then Max:=A[p,l];
end;
Procedure MinHang(k:Integer);
var o:integer;
begin
Min:=A[k,1];
For o:=2 to n do
if A[k,o]<Min then Min:=A[k,o];
end;
begin
clrscr;
assign(f1,'ptyn.inp');
assign(f2,'ptyn.out');
reset(f1);rewrite(f2);
while not EOF(f1) do
begin
kt:=false;
readln(f1,n,m);
for i:=1 to n do
begin
for j:=1 to m do
Read(f1,a[i,j]);
readln(f1);
end;

for i:=1 to n do
begin
for j:=1 to n do
begin
MaxCot(j);
MinHang(i);
if Max=Min then
begin
Writeln(f2,'(',i,',',j,')');
kt:=true;
end;
end;
end;
If kt=false then Writeln(f2,'Khong co ptu yen ngua.');
end;
Close(f1); Close(f2);
Readln
End.

Bài 4

const fi='tvh.inp';

fo='tvh.out';

var n,d,dem,sl,s2cs,s3cs,s4cs,s5cs,s6cs,s7cs,k,i,d1:longint;

st,st1,stk:string;

f1,f2:text;

begin

assign(f1,fi); reset(f1);

assign(f2,fo); rewrite(f2);

readln(f1,n,k);

str(n,st);

d:=length(st);

case d of

1: write(9);

2: begin

sl:=n-9;

dem:=9+sl*2;

end;

3: begin

s2cs:=(99-10)+1;

s3cs:=n-99;

dem:=9+s2cs*2+s3cs*3;

end;

4: begin

s2cs:=(99-10)+1;

s3cs:=(999-100)+1;

s4cs:=n-999;

dem:=9+s2cs*2+s3cs*3+s4cs*4;

end;

5: begin

s2cs:=(99-10)+1;

s3cs:=(999-100)+1;

s4cs:=(9999-1000)+1;

s5cs:=n-9999;

dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5;

end;

6: begin

s2cs:=(99-10)+1;

s3cs:=(999-100)+1;

s4cs:=(9999-1000)+1;

s5cs:=(99999-10000)+1;

s6cs:=n-99999;

dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5+s6cs*6;

end;

7: begin

s2cs:=(99-10)+1;

s3cs:=(999-100)+1;

s4cs:=(9999-1000)+1;

s5cs:=(99999-10000)+1;

s6cs:=(999999-1000000)+1;

s7cs:=n-999999;

dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5+s6cs*6+s7cs*7;

end;

end;

if k<=dem then

begin

i:=1;

d1:=0;

repeat

str(i,st1);



d1:=d1+length(st1);

i:=i+1;

until d1>=k;

stk:=st1[length(st1)-(d1-k)];

writeln(f2,stk);

end;

close(f1);

close(f2);

end.

Bài 5

PROGRAM robot;

VAR A:ARRAY[0..30,0..30] OF BYTE;

F:ARRAY[0..30,0..30] OF LONGINT;

m,n:INTEGER;

PROCEDURE Enter;

VAR i,j:INTEGER;

BEGIN

readln(m,n);

FOR i:=1 TO m DO

BEGIN

FOR j:=1 TO n DO read(A[i,j]);

readln;

END;

FOR i:=0 TO m DO A[i,0]:=-1;

FOR j:=0 TO n DO A[0,j]:=-1;

END;

FUNCTION Max(a,b:LONGINT):LONGINT;

BEGINIF (a>b) THEN Max:=a ELSE Max:=b;

END;

PROCEDURE Optimize;

VAR i,j:INTEGER;

BEGIN

FOR i:=0 TO m DO F[i,0]:=-1;

FOR j:=0 TO n DO F[0,j]:=-1;

F[0,1]:=0;

FOR i:=1 TO m DO

FOR j:=1 TO n DO

F[i,j]:=2*Max(F[i,j-1],F[i-1,j])+A[i,j];

END;

PROCEDURE Trace(i,j:INTEGER);

BEGINIF (i=1) AND (j=1) THEN

writeln(F[m,n])

ELSE

BEGIN

IF F[i,j-1]>F[i-1,j] THEN

Trace(i,j-1)

ELSE

Trace(i-1,j);

writeln(i,' ',j);

END;

END;

BEGIN

Assign(Input,'Robot.inp'); Reset(Input);

Assign(Output,'Robot.out');Rewrite(Output);

Enter;

Optimize;

Trace(m,n);

close(Input);

close(Output);

END.

14 tháng 8 2020

Em hiểu,nhưng cách anh chỉ đến 8 chữ số là cùng.

Cách em thì chỉ cần lấy int64(em dùng luôn mấy biến real vì bự hơn) thì chấp 10^30

Câu 1: Sau mỗi lần thực hiện câu lệnh thì giá trị biến đếm như thế nào? A. không thay đổi B. sẽ giảm xuống C. sẽ tăng lên D. điều chỉnh tự động Câu 10: Cho câu lệnh for i := 10 downto 1 do write(i); Cho biết câu lệnh Write(i) thực hiện bao nhiêu lần? A. nhiều lần B. 2 C. 11 D. 10 Câu 2: Trong câu lệnh for i := 10 downto 1 do write(i); Cho biết 10 là gì? A. Biến đếm B. giá trị đầu C. giá...
Đọc tiếp

Câu 1: Sau mỗi lần thực hiện câu lệnh thì giá trị biến đếm như thế nào?

A. không thay đổi B. sẽ giảm xuống C. sẽ tăng lên D. điều chỉnh tự động

Câu 10: Cho câu lệnh for i := 10 downto 1 do write(i); Cho biết câu lệnh Write(i) thực hiện bao nhiêu lần?

A. nhiều lần B. 2 C. 11 D. 10

Câu 2: Trong câu lệnh for i := 10 downto 1 do write(i); Cho biết 10 là gì?

A. Biến đếm B. giá trị đầu C. giá trị cuối D. câu lệnh

Câu 3: Trong câu lệnh for i := 10 downto 1 do write(i); Cho biết i là gì?

A. Biến đếm B. giá trị đầu C. giá trị cuối D. câu lệnh

Câu 4: Trong câu lệnh for i := 10 downto 1 do write(i); Cho biết write(i) là gì?

A. Biến đếm B. giá trị đầu C. giá trị cuối D. câu lệnh

Câu 5. Cho câu lệnh for i := 1 to 4 do write(i:2); Kết quả là :

A. 4 3 2 1 B. 1 2 3 4 C. 1 D. 4

Câu 6: Chọn câu lệnh lặp để tính T = \(\Sigma^{50}_{n=1}n+a\)

A. T:=0 ; For i := 1 to n do T := T+i+a;

B.T:=0 ; For i := n downto 1 do T := T+i+a;

C. T:=0 ; For n := 1 to 50 do T := T+n+a;

D.T:=0 ; For n := 1 downto 50 do T := T+n+a;

Câu 7: Biến đếm có kiểu số nguyên thì giá trị đầu và giá trị cuối phải có kiểu gì?

A. Số thực B. Số nguyên C. Logic D. kiểu gì cũng được

1d-2d-3c-4d-5b-6c-7b trong đáp án này có 1 câu sai, đó là câu nào ?

1
13 tháng 4 2020

Lúc nãy mình nhập nhầm đáp án, nhờ mn tìm ra đáp án sai giúp mình

1d-10d-2c-3a-4d-5b-6c-7b

11 tháng 10 2019

Đáp án đúng : B