Cho một mảng a có n số nguyên. Một đoạn con của a là một dãy các phần tử tăng liên tiếp (dãy con >= 2 phần tử). Hãy đểm số dãy con tăng liên tiếp của mảng a. (Với mảng a nhập từ bàn phím và viết chương trình bằng ngôn ngữ pascal)
Ví Dụ: Mảng A là: 1 2 3 4 4 1 4
—> Trong mảng có 2 dãy con tăng (1,2,3,4 ) và (1,4)
uses crt;
var a:array[1..1000] of longint;
i,n,j,dem:word;
begin
clrscr;
repeat
write(‘n=’);readln(n);
until n>=2;
for i:=1 to n do read(a[i]);
readln;
i:=1;
while i<=n do
begin
j:=i+1;
while a[j]>a[j-1] do inc(j);
if j-1>i then inc(dem);
i:=j;
end;
writeln(dem);
readln;
end.
*Chỉ in kết quả đếm:
program day_tang;
uses crt;
var A:array[1..10000] of integer;
n,i,j,d:integer;
begin
clrscr;
write(‘Nhap n: ‘); readln(n);
for i:=1 to n do
begin
write(‘A[‘,i,’]= ‘); readln(A[i]);
end;
d:=0; i:=2;
while i<=n do
begin
j:=i;
while A[i]>A[i-1] do inc(i);
if i<>j then d:=d+1;
i:=i+1;
end;
write(d);
readln;
end.
*In luôn dãy con
program day_tang;
uses crt;
var A:array[1..10000] of integer;
n,i,j,d,k:integer;
begin
clrscr;
write(‘Nhap n: ‘); readln(n);
for i:=1 to n do
begin
write(‘A[‘,i,’]= ‘); readln(A[i]);
end;
d:=0; i:=2;
while i<=n do
begin
j:=i;
while A[i]>A[i-1] do inc(i);
if i<>j then
begin
d:=d+1;
for k:=j-1 to i-1 do write(A[k],’ ‘);
writeln;
end;
i:=i+1;
end;
write(d);
readln;
end.