Bài tập turbo pascal


Bài tập 8.2: Cho dãy số gồm n số. Tìm dãy con lớn nhất các phần tử có cùng dấu, (đan dấu). Giải thuật



tải về 0.6 Mb.
trang35/42
Chuyển đổi dữ liệu27.02.2022
Kích0.6 Mb.
#51050
1   ...   31   32   33   34   35   36   37   38   ...   42
100 bài tập pascal
13234
Bài tập 8.2: Cho dãy số gồm n số. Tìm dãy con lớn nhất các phần tử có cùng dấu, (đan dấu).

Giải thuật:

Thực hiện giống nhu bài 1, chỉ thay điều kiện là M[i+1]*M[i] >0



Cài đặt:

Program Day_con2;

Var M: array[1..100] of integer;

i,n, dau,ldau, dai,Max: integer;

Begin


Write('Nhap so nc: '); Readln(n);

For i:=1 to n do Begin Write('[',i,']='); Readln(M[i]); End;

i:=0;

Max:=1;


dau:=1;

dai:=1;


ldau:=1;

While i<=n do

Begin

i:=i+1;


if M[i+1]*M[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);

Readln


End.


Nhận xét: Hãy thực hiện bài tập trên bằng kỹ thuật vét cạn dãy con.
Bài tập 8.3: Cho dãy gồm n số. Tìm dãy con lớn nhất đơn điệu (liên tục tăng, giảm hoặc giảm, tăng).

Giải thuật:

- Dãy đang dấu nếu M[i]*M[i+1] < 0.



Cài đặt:

Giống bài tập 2



tải về 0.6 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   31   32   33   34   35   36   37   38   ...   42




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương