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



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

Дан вещественный массив из 40 элементов. Элементы массива могут принимать произвольные значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит минимальный положительный элемент массива или сообщение, что такого элемента нет.

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

 

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

const

N = 40;

var

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

i, j: integer;

min: real;

begin

for i := 1 to N do

readln(a[i]);

...

end.

N = 40

DIM A(N) AS REAL

DIM I, J AS INTEGER

DIM MIN AS REAL

FOR I = 1 TO N

INPUT A(I)

NEXT I

...

END

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

#include <iostream>

using namespace std;

#define N 40

int main(void)

{float a[N];

int i, j;

float min;

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

cin >> a[i];

}

алг

нач

цел N = 40

вещтаб а[1:N]

цел i / j

вещ MIN

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

ввод a[i]

кц

...

кон

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

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

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

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

...

Python

// допускается также использовать

// целочисленную переменную j

//и вещественную переменную min

a = []

n = 40

for i in range(0, n):

    a.append(real(input()))

 

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

Решение.

ПАСКАЛЬБЕЙСИК
j := 1;

while (j < N) and (a[j] <= 0)

do

j := j + 1;

if a[j] <=0 then

writeln('нет таких')

else

begin

for i : = j to N do

if (a[i] > 0) and

(afi] < a[j])

then j : = i;

writeln(a[j])

end;

Другой способ:

j := 0;

for i : = 1 to N do

if a [i ] > 0 then

if (j = 0) or

(a[i] < a[j]) then

j := i;

if j = 0 then

writeln('нет таких')

else

writeln(a[j]) ;

J = 1

WHILE J < N AND A(J) <= 0

J = J + 1

ENDW

IF A(J) <= 0 THEN

PRINT "нет таких"

ELSE

FOR I = J TO N

IF A(I) > 0 AND A(I) < A{J)

THEN

J = I

ENDIF

NEXT I

PRINT A (J )

ENDIF

СИАлгоритмический язык
for (j =0; j < N && a [ j ] <=0; j++) ;

if (a[j] <= 0)

printf(м нет таких");

else

{

ford = j; i < N; i++)

if (a[i] > 0 &&c a [ i ] < a[j])

j = i;

printf("%f", a[j]);

}

j := 1

нц пока j < N и a [ j ] <=0

j := j + 1

КЦ

если a[j] <= 0

TO

вывод "нет таких"

иначе

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

если а [ i ] > 0 и

a[i] <а [j]

то

j := i

все

кц

вывод a[j]

все

Естественный язык
Записываем в переменную J начальное значение, равное 1. В цикле пока J меньше 40 и пока J-й элемент неположительный, увеличиваем переменную J на единицу (ищем номер первого положительного элемента). Если после окончания цикла элемент массива с номером J неположительный — выводим сообщение, что положительных элементов в массиве нет и заканчиваем работу. Иначе, от J-ro элемента до 40-го сравниваем значение текущего элемента с 0 (нулём) и со значением J-ro элемента. Если значение текущего элемента больше 0 и меньше, чем значение J-ro элемента, то в переменную J записываем номер текущего элемента. После окончания цикла выводим значение J-ro элемента.