СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости




Задания
Версия для печати и копирования в MS Word
Задание 25 № 7351

Дан массив, содержащий 2014 положительных целых чисел. Напишите на одном из языков программирования программу, которая находит сумму локальных максимумов этого массива, значение которых не кратно 5.

Локальным максимумом называется элемент массива, который больше всех своих соседей. Например, в массиве из 6 элементов, содержащем числа 4, 6, 12, 7, 3, 8, есть два локальных максимума: это элементы, равные 12 и 8. Программа должна вывести сумму подходящих элементов, значения элементов выводить не нужно. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

 

БейсикПаскаль

N=2014

DIM A(N) AS INTEGER

DIM I, J, K AS INTEGER

FOR I = 1 TO N

INPUT A(I)

NEXT I

END

const

N=2014;

var

a: array [1..N] of integer;

i, j, k: integer;

begin

for i:=1 to N do

readln(a[i]);

end.

Си++Алгоритмический язык

#include <iostream>

using namespace std;

#define N 2014

int main(){

int a[N];

int i, j, k;

for (i=0; i < N; i++)

cin >> a[i];

}

алг

нач

цел N=2014

целтаб a[1:N]

цел i, j, k

нц для i от 1 до N

ввод a[i]

кц

кон

Python

# допускается также

# использовать

# целочисленные переменные j, k

a = []

n = 2014

for i in range(0, n):

a.append(int(input()))

...

 

В качестве ответа вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.

Решение.

Программа просматривает все элементы массива, сравнивает все элементы с соседями, проверяет делимость на 5 и подсчитывает количество подходящих значений.

Пример программы на Паскале

k:=0;

if (a[1]>a[2]) and (a[1] mod 5 <> 0) then k:=k+a[1];

for i:=2 to N-1 do begin

if (a[i]>a[i-1]) and (a[i]>a[i+1]) and (a[i] mod 5<>0) then k:=k+a[i];

end;

if (a[N]>a[N-1]) and (a[N] mod 5 <> 0) then k:=k+a[N];

writeln(k);