iİnformatikanın məktəbdə tədrisi

7-11r

Вычислить максимальное расстояние между соседними локальными минимумами в последовательности целых чисел. За расстояние между двумя элементами примем абсолютную величину разности их номеров. Например, расстояние между 7-ым и 2-ым элементом равно 5.


Если сами не разберетесь - ждите пояснения.


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

Program A7_11;

Var

 f:text;

 a,b,c,maxl,p,r:integer;

 BEGIN

  assign(f,'in7_10.txt'); reset(f);

  if IoResult<>0 then

   begin writeln('Net faila');

 readln; exit; end;

   if (EOF(f)) then

   begin writeln('malo dannix');

   readln; exit; end;

   readln(f,a);

   if (EOF(f)) then

   begin writeln('malo dannix');

   readln; exit; end;

   readln(f,b);

   p:=0;

   while(not EOF(f)) do

     begin

       r:=1;

       readln(f,c);

       if (b<a) and (b<c) then

        begin

          if (p=0) then

             begin maxl:=b; p:=1; end

                   else

          if (b>maxl) then maxl:=b;

        end;

       a:=b; b:=c;

     end;

   close(f);

   if (r=0) then

   begin writeln('malo dannix');

  readln; exit; end;

   if (p<>0) then

     writeln('maxl=',maxl)

             else

     writeln('Net lokalnogo max.');

   readln;

 END.

// Program A7_11;

#include <iostream>

#include <fstream>

 

using namespace std;

 

int main()

{  ifstream f;

int a, b,c,maxl=0,p=0,r=0,i,i1;

    f.open("in7_11.txt");

 if (!f) { cout<<"net faila\n"; return -1;}

 if((f>>a)==0){cout<<"malo dannix\n";

 return -1;};

 if((f>>b)==0){cout<<"malo dannix\n";

 return -1;};

    i=2;

    while(f>>c)

    {   r=1;

     if(b<a  &&  b<c)

     {

       if(p==0){i1=i; p=1;}

       else if(i-i1>maxl) {maxl=i-i1;  i1=i;}

     }

          a=b;  b=c; i++;

     }

     f.close();

 if(r==0){cout<<"malo dannix\n";

 return -1;};

 if(p!=0) cout<<"maxl="<<maxl

<<endl;

 else cout<<"Net lokalnogo max\n";

    return 0;

}