Опубликован: 04.06.2007 | Уровень: для всех | Доступ: свободно | ВУЗ: Кабардино-Балкарский государственный университет
Дополнительный материал 1:

Выполнение аналога демоЕГЭ-2007

С2. Для заданного числового массива (ряда чисел) составить алгоритм нахождения m - максимума среди элементов массива, находящихся на нечетных местах (то есть среди x1, x3, x5 и т. д.) и k - минимума среди элементов массива, находящихся на четных местах (то есть среди x2, x4, x6 и т. д.).

Решение. Алгоритм запишем на языках ШАЯ, Паскаль, Бейсик.

ШАЯ:

алг С2(арг цел n, таб х[1:n], рез цел m,k)
   нач
      цел i
      ввод(n)
      нц для i от 1 до n
         ввод(x[i])
      кц
      i:=1
      k:=x[2]
      m:=x[1]
      нц пока (i<n)
         если (m<x[i])
            то m:=x[i]
         все
         если (k>x[i+1])
            то k:=x[i+1]
         все
         i:=i+2
      кц
      если (mod(n,2)=1)
         то если (m<x[n])
               то m:=x[n]
            все
      все
      вывод(" k=",k," m=",m)
   кон

Паскаль:

var
       n, k, m: integer;
             x: array[1..100] of integer;
   begin
      readln(n);
      for i:=1 to n do
          read(x[i]);
      i:=1;
      k:=x[2];
      m:=x[1];
      while (i<n) do
         begin
            if (m<x[i])
               then m:=x[i];
            if (k>x[i+1])
               then k:=x[i+1];
            i:=i+2
         end;
      if (n mod 2=1)
         then if (m<x[n])
                 then m:=x[n];
      writeln(' k=',k,' m=',m);
   end.

Бейсик:

dim
      k, n, i, x(100) as integer
      input n
      for i = 1 to n
         input x(i)
      next i
      i = 1
      k = x(2)
      m = x(1)
      while (i < n)
          if (m < x(i))
             then m = x[i]
          end if
          if (k > x(i+1))
            then k = x(i+1)
          end if
          i = i + 2
      wend
      if (n MOD 2 = 1)
         then if (m < x(n))
                 then m = x(n)
              end if
      end if
      print " k=",m, " m=",m
   end.