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.
uses crt;
const fi='bt.inp';
var a:array[1..100]of real;
i,dem:integer;
f1:text;
begin
clrscr;
assign(f1,fi); reset(f1);
dem:=0;
while not eof(f1) do
begin
inc(dem);
read(f1,a[dem]);
if dem mod 2=0 then readln(f1);
end;
for i:=1 to dem do
write(a[i]:4:1,' ':4);
close(f1);
readln;
end.
uses crt;
const finp='Bai1.inp';
fout='Bai1.out';
type mangc=array[1..10000] of char;
mangl=array[1..10000] of longint;
var f:text;
ch:mangc; a:mangl;
n:longint;
procedure doc;
var i:longint;
begin
assign(f,finp);
reset(f);
readln(f,n);
for i:=1 to n do read(f,ch[i]);
close(f);
end;
procedure ghi;
begin
assign(f,fout);
rewrite(f);
end;
procedure tim;
var i,j,d,k,l:longint;
begin
for i:=n-2 downto 1 do
begin
a[i]:=1;
d:=0;
for j:=i+1 to n do
begin
l:=a[j];
if ch[i]=ch[j] then a[j]:=d+2
else if a[j-1]>a[j] then a[j]:=a[j-1];
d:=l;
end;
end;
end;
procedure xuly;
var i:longint;
begin
fillchar(a,sizeof(a),0);
if n=1 then a[n]:=1
else begin
a[n-1]:=1;
a[n]:=ord(ch[n]=ch[n-1])+1;
end;
if n>2 then tim;
write(f,n-a[n]);
end;
begin
doc;
ghi;
xuly;
close(f);
end.
ai có thể giải thích cho mình bài này đc không
nhất là cái "procedure tim" và mục đích của mảng số nguyên a
mk cảm ơn nhiều
Câu 15
Cho biết màn hình xuất hiện như thế nào với đoạn chương trình sau:
d:=0;
For i:=1 to 10 do
Begin
i:= i+1;
Write(d,' ');
End;
|
A. 10 |
|
B. 11 |
|
C. 1 2 3 4 5 6 7 8 9 10 |
|
D. 0 0 0 0 0 |
Không có đáp án đúng : đáp án đúng 0 0 0 0 0 0 0 0 0 0 0
Câu 24
Cho sâu s1 = ‘123’; s2 = ‘abc’ sau khi thực hiện thủ tục Insert(s1, s2, 2) thì:
|
A. s1 = ‘123’; s2 = ‘12abc’ |
|
B. s1 = ‘ab123; s2 = ‘abc’ |
|
C. s1 = ‘1abc23’; s2 = ‘abc’ |
|
D. s1 = ‘123’; s2 = ‘a123bc’ |
Câu 31
Vòng lặp nào có biến đếm tự động tăng lên một đơn vị sau một lần thực hiện câu lệnh?
|
A. For …to…do… |
|
B. For …downto…do… |
|
C. While…do… |
|
D. Repeat…Until… |
Câu 32
xâu kí tự không chứa kí tự nào gọi là:
|
A. Xâu không; |
|
B. Xâu trắng; |
|
C. Không phải là xâu kí tự |
|
D. Xâu rỗng; |
Câu 33
Cho str là một xâu kí tự, đoạn chương trình sau thực hiện công việc gì ?
for i := length(str) downto 1 do write(str[i]) ;
|
A. In từng kí tự ra màn hình theo thứ tự ngược |
|
B. In từng kí tự ra màn hình theo thứ tự ngược, trừ kí tự đầu tiên. |
|
C. In từng kí tự xâu ra màn hình |
|
D. In xâu ra màn hình |
Câu 34
hàm Upcase(ch); cho kết quả là:
|
A. Xâu ch toàn chữ thương; |
|
B. Biến ch thành chữ thường; |
|
C. Chữ cái in hoa tương ứng với ch; |
|
D. Xâu ch toàn chữ hoa; |
Câu 35
Với khai báo như sau:
Type mang=array[1..100] of integer;
Var a,b:mang;
c:array[1..50] of integer;
Câu lệnh nào dưới đây đúng nhất?
|
A. b:=c; |
|
B. a:=c; |
|
C. a:=b; |
|
D. c:=b; |
Câu 36
Cho đoạn chương trình sau
If(a< >0) then x:=9 div a
Else x:=-1;
Write(‘ x= ‘, x + 1);
Khi cho a=0 thị đoạn chương trình trên sẽ in ra màn hình giá trị x=?
|
A. x=0; |
|
B. x là không xác định |
|
C. x=1 |
|
D. x= -1 |
Câu 37
Cho St là biến chuỗi, sau khi thực hiện hai lệnh :
St:= Copy( 'PASCAL VERSION 5.5' , 8, 7) ;
Write(St);
- Kết qủa in lên màn hình là:
|
A. VERSION |
|
B. PASCAL |
|
C. 5.5 |
|
D. VERSION 5.5 |
Câu 38
với xâu kí tự ta có thể:
|
A. So sánh hai xâu kí tự, gán biến xâu cho biến xâu và gán một kí tự cho biến xâu; |
|
B. Gán biến xâu cho biến xâu và gán một kí tự cho biến xâu; |
|
C. So sánh và gán một biến xâu cho biến xâu. |
|
D. So sánh hai xâu kí tự; |
Câu 39
Var A; string[20]; Xâu A có thể chứa?
|
A. 256 kí tự |
|
B. 20 kí tự |
|
C. Báo lỗi |
|
D. 255 kí tự |
Câu 40
Đoạn chương trình sau đưa ra màn hình kết quả gì?
For i:=1 to 10 do write(I,’’);
|
A. Đưa ra 10 dấu cách |
|
B. 12345678910 |
|
C. 10 9 8 7 6 5 4 3 2 1 |
|
D. Không đưa ra kết quả gì |
Câu 41
Đoạn chương trình sau đây dùng để thực hiện công việc gì?
For i:=1 to n do
If i mod 2 = 0 then Writeln(A[i],’ ‘);
|
A. In ra màn hình giá trị của các phần tử có chỉ số chẵn trong mảng |
|
B. In ra màn hình giá trị của các phần tử có giá trị chẵn trong mảng |
|
C. In ra màn hình tất cả các phần tử trong mảng |
|
D. Tất cả đều đúng |
Câu 42
Cho đoạn chương trình sau
If (a<>0) then x:=9 div a Else x:=-1;
Write(‘ x= ‘, x + 1);
Khi cho a=0 thị đoạn chương trình trên sẽ in ra màn hình giá trị x=?
|
A. x=0; |
|
B. x= -1 |
|
C. x là không xác định |
|
D. x=1 |
Câu 43
thủ tục Insert(S1,S2,n) thực hiện công việc gì?
|
A. Chèn thêm xâu S1 vào xâu S2 bắt đầu từ vị trí n của S1; |
|
B. Chèn thêm xâu S1 vào xâu S2 bắt đầu từ vị trí n của S2; |
|
C. Chèn thêm xâu S2 vào xâu S1 bắt đầu từ vị trí n của S1; |
|
D. Chèn thêm xâu S2 vào xâu S2 bắt đầu từ vị trí n của S1; |
Câu 44
Cho khai báo biến:
Var A : array[1..5] of Integer;
Chọn lệnh đúng :
|
A. A := 10 ; |
|
B. A[2] := -6 ; |
|
C. A(3) := 6 ; |
|
D. A[1] := 4/3 ; |
Câu 45
Hai xâu kí tự được so sánh dựa trên:
|
A. Mã của từng kí tự trong các xâu lần lượt từ trái sang phải; |
|
B. Độ dài tối đa của hai xâu; |
|
C. Số lượng các kí tự khác nhau trong 2 xâu; |
|
D. Độ dài thực sự của hai xâu; |
Câu 46
Để tìm vị trí xuất hiện đầu tiên của xâu ‘hoa’ trong xâu s ta có thể viết?
|
A. S1:=’hoa’; I:=pos(s1,’hoa’); |
|
B. I:=pos(s,’hoa’); |
|
C. I:=pos(‘hoa’,’hoa’); |
|
D. I:=pos(’hoa’,s); |
Câu 47
phần tử đầu tiên của xâu kí tự mang chỉ số là:
|
A. Không có chỉ số |
|
B. 0 |
|
C. Do người lập trình khai báo |
|
D. 1 |
Câu 48
Var A: array[1..10] of integer;
Chọn câu lệnh sai trong các câu lệnh sau:
|
A. A[1]:= 2.5; |
|
B. A[4]:=0; |
|
C. A[2]:= 30; |
|
D. A[3]:=-5; |
Câu 49
Sau khi thực hiện đoạn chương trình sau, thì biến X có giá trị là bao nhiêu?
A:= 4 ; B: = 1; X:= 2 ;
IF A + B > 5 THEN X := X + A + B; WRITE (X);
|
A. 7 |
var f:text;
s:string;
i,dem,max,dau,cuoi:byte;
begin
assign(f,'xau1.txt'); reset(f);
readln(f,s);
close(f);
assign(f,'xau2.txt'); rewrite(f);
dem:=1; max:=1; dau:=1; cuoi:=1;
for i:=1 to length(s)-1 do
begin
if s[i]=s[i+1] then inc(dem) else dem:=1;
if dem>max then
begin
max:=dem;
cuoi:=i+2;
dau:=cuoi-dem;
end;
end;
write(f,dau,':',cuoi);
close(f);
readln;
end.
Program hotrotinhoc;
const fi='xau1.txt';
fo='xau2.txt';
var
f:text;
s:string;
i,d,c,j:byte;
procedure ip;
begin
assign(f,fi);
reset(f);
read(f,s);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
j:=0;
for i:= 1 to length(s) do
begin
if j=0 then j:=i;
if s[i] <> s[i+1] then
begin
if ((i-j)+1)>((c-d)+1) then
begin
d:=j;
c:=i;
end;
j:=0;
end;
end;
write(f,d,':',c);
close(f);
end;
BEGIN
ip;
out;
END.
16 là đến chữ a không phải chữ c mà. Nếu bạn muốn in ra 16 thì chỉ cần write(f,d,':',c+1);
const fi='xau1.txt';
fo='xau2.txt';
var
f:text;
s:string;
i,d,c,j:byte;
procedure ip;
begin
assign(f,fi);
reset(f);
read(f,s);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
j:=0;
for i:= 1 to length(s) do
begin
if j=0 then j:=i;
if s[i] <> s[i+1] then
begin
if ((i-j)+1)>((c-d)+1) then
begin
d:=j;
c:=i;
end;
j:=0;
end;
end;
write(f,d,':',c);
close(f);
end;
BEGIN
ip;
out;
END.
Bài bạn lỗi rồi.
bài trên cũng sai khi trường hợp là abcaaaaddccccccaaad
không chỉ sai một trường hợp mà còn nhiều trường hợp khác nữa
lỗi ở chỗ nào ạ? xin chỉ giáo
cho mình xin thử vài bộ test và đáp án để mình thử ạ?
ban đầu mình viết chương trình ra kết quả 10:15, nhưng vì test là 10:16 nên mình nghĩ là 16 là chỉ số kết thúc đoạn liên tiếp đó, tức là từ 16 trở đi không còn liên tiếp nữa, nên chương trình như vậy.
Mình test nó ra màn hình đen.
bài này test trên máy rồi ạ, chạy bình thường ạ
cho xin bộ test ạ