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


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

Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 1000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести максимальное значение среди двузначных элементов массива, не делящихся на цифру старшего разряда. Если в исходном массиве нет элемента, значение которого является двузначным числом и при этом не кратно цифре старшего разряда данного числа, то выведите сообщение «Не найдено».

Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

 

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

N = 20

DIM A(N) AS INTEGER

DIM I, J, MAX AS INTEGER

FOR I = 1 TO N

INPUT A(I)

END

const

N = 20;

var

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

i, j, max: integer;

begin

for i := 1 to N do

readln(a[i]);

end.

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

#include <iostream>

using namespace std;

#define N 20

int main()

{

int a[N];

int i, j, max;

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

cin >> a[i];

}

алг

нач

цел N = 20

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

цел i, j, max

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

ввод a[i]

КЦ

КОН

Python

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

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

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

a = []

n = 20

for i in range(0, n):

a.append(int(input()))

...

 

Решение.

Пройдёмся циклом по массиву. Для каждого элемента будем проверять, удовлетворяет ли он заданным условием. Если да, то сравним с лучшим из найденных ответов. Изначально max проинициализируем -1, и тогда если и после выполнения цикла в этой переменной будет -1, то в массиве нет чисел, удовлетворяющих условию.

 

Решение на Паскале:

 

max := -1;

for i := 1 to N do

if ( (a[i] >=10) and (a[i] <= 99) and (a[i] > max) and (a[i] mod (a[i] div 10) <> 0) ) then

max := a[i];

if max = -1 then

writeLn('Не найдено')

else

writeLn(max);

 

Решение на Cи:

 

#include <stdio.h>

#define N 20

void main()

{

max = -1;

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

if (a[i] >= 10 && a[i] <= 99 && a[i] > max && (a[i] % (a[i] / 10) != 0)){

max = a[i];

}

}

if (max == -1){

cout << "Не найдено";

}

else{

cout << max << endl;

}

Источник: РЕШУ ЕГЭ — Пред­эк­за­ме­на­ци­он­ная ра­бо­та 2014 по информатике.