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


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

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

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

 

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

N = 30

DIM A(N) AS INTEGER

DIM I, J, MIN AS INTEGER

FOR I = 1 TO N

   INPUT A(I)

NEXT I

...

END

const

  N = 30;

var

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

  i, j, min: integer;

begin

  for i := 1 to N do

    readln(a[i]);

  ...

end.

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

#include <iostream>

using namespace std;

#define N 30

int main() {

  int a[N];

  int i, j, min;

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

    cin >> a[i];

...

}

алг

нач

  цел N = 30

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

  цел i, j, min

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

    ввод a[i]

  кц

...

кон

Естественный язык

Объявляем массив A из 30 элементов.

Объявляем целочисленные переменные I, J, MIN.

В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.

Python

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

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

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

a = []

n = 30

for i in range(0, n):

a.append(int(input()))

...

 

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

Решение.

Содержание верного ответа:

 

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

MIN = 1000

FOR I = 1 TO N

   IF A(I)>=100 AND A(I)<=994 AND A(I) MOD 7=0 AND A(I)     MIN = A(I)

  END IF

NEXT I

IF MIN < 1000 THEN

  PRINT MIN

ELSE

  PRINT "Не найдено"

END IF

min := 1000;

for i := 1 to N do

  if (a[i]>=100) and (a[i]<=999) and (a[i] mod 7 = 0) and (a[i]<

min) then

  min := a[i];

if min < 1000 then writeln(min) else writeln('Не найдено');

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

min = 1000;

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

  if (a[i]>99 && a[i]<=994 && a[i]%7==0 && a[i]    min = a[i];

if (min<1000)

  cout « min « endl;

else

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

min := 1000

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

  если a[i]>=100 и a[i]<=999 и mod(a[i],7)=0 и a[i]  то

    min := a[i]

  все

кц

если min < 1000

то

  вывод min

иначе

  вывод "Не найдено"

все

Естественный язык

Записываем в переменную MIN начальное значение, равное 1000. В цикле от первого элемента до тридцатого находим остаток от деления элемента исходного массива на 7. Если значение данного остатка равно 0 и значение текущего элемента массива больше 99 и меньше 1000, то сравниваем значение текущего элемента массива со значением переменной MIN. Если текущий элемент массива меньше MIN, то записываем в MIN значение этого элемента массива. Переходим к следующему элементу. После завершения цикла проверяем значение переменной MIN. Если оно

меньше 1000, то выводим его, иначе выводим сообщение «Не найдено».

 

Спрятать решение · · Видеокурс ·
Иван Силкин 03.04.2019 17:49

Ошибка в строке

if (a[i]>99 && a[i]<=994 && a[i]%7==0 && a[i]

 

Вместо 994 должно быть 999

Сергей Никифоров

Ни одно из целочисленных значений в промежутке [995; 999] не делится на 7, поэтому можно использовать как условие <= 994, так и <=999, так и, например, <=995.