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

7-4r

Для последовательности целых чисел  a1 , a2 , … известно, что а1  > 0 и что среди а2 , a3 , … есть хотя бы одно отрицательное число. Пусть а1,…,аn  – члены данной последовательности, предшествующие первому отрицательному члену (n заранее неизвестно). Получить:
   1. 
максимальный  элемент среди  а1,…,аn;
   2. y=a1a2 + a2a3 + … + an-1an + ana1

Постарайтесь понять. Пояснения скоро будут.


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

Program A7_04;

Var

 f:text;

 a,b,s,a1,maxa:integer;

 BEGIN

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

  if IoResult<>0 then

   begin writeln('Net faila'); exit; end;

   readln(f,a);

   s:=0; a1:=a; maxa:=a;

   while(not EOF(f)) do

     begin

       readln(f,b);

       if (b<0) then break;

       s:=s+a*b;

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

       a:=b;

     end;

   close(f);

   s:=s+a*a1;

   writeln('s=',s,'  maxa=',maxa);

   readln;

 END.

// Program A7_04;

#include <iostream>

#include <fstream>

 

using namespace std;

 

int main()

{  ifstream f;

int a,b,s=0,a1,maxa;

    f.open("in7_04.txt");

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

   f>>a;

   a1=maxa=a;

    while(f>>b)

    {

        if(b<0) break;

        s=s+a*b;

        if(b>maxa)  maxa=b;

        a=b;

     }

        f.close();

        s=s+a*a1;

cout<<"s="<<s<<"   max="<<maxa<<endl;

    return 0;

}