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


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

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

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

 

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

const

N = 40;

var

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

i, j, k: integer;

begin

for i:=1 to N do

readln(a[i]);

...

end.

N = 40

DIM A (N) AS INTEGER

DIM I, J, К AS INTEGER

FOR I = 1 TO N

INPUT A (I)

NEXT I

...

END

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

#include <iostream>

using namespace std;

#define N 40

int main(void)

{int a [N] ;

int i, j, k;

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

cin >> a[i];

...

}

алг

нач

цел N = 40

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

цел i, j, k

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

ввод a[i]

кц

...

кон

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

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

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

...

Python

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

// вание целочисленных

// переменных j, k

a = []

N = 40 // менять значение N

нельзя

for i in range(0, n):

a.append(int(input()))

 

 

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

Решение.

ПАСКАЛЬБЕЙСИК
k : = 0;

for i : = 1 to N do

if a[i] > 0 then

begin

k := k + 1;

if k = 3 then

j=a[i];

end;

if k < 3 then

writeln('нет такого')

else

writeln(j);

К = 0

FOR I = 1 ТО N

IF А (I) > 0 THEN

К = К + 1

IF К = 3 THEN

J = A (I)

ENDIF

ENDIF

NEXT I

IF К < 3 THEN

PRINT "нет такого"

ELSE

PRINT J

ENDIF

СИАлгоритмический язык
k = 0;

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

if (a[i] > 0)

{

k++;

if(k == 3)

j = a[i];

}

if(k < 3)

cout << "нет такого";

else

printf("%d", j) ;

k := 0

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

если а[i] > 0

то

k := k + 1

если k = 3

то

j := a[i]

все

все

кц

если к < 3

то

вывод "нет такого"

иначе

вывод J

все

Естественный язык
Записываем в переменную К начальное значение, равное нулю. В цикле перебираем все элементы с 1-го до 40-го. Если значение текущего элемента массива оказывается больше нуля, то: увеличиваем значение переменной К на 1; если значение переменной К стало равно 3, в переменную J записываем значение элемента a[I].

После окончания цикла: если значение переменной К оказалось меньше 3, то выводим сообщение, что искомого элемента в массиве нет. Иначе, выводим значение переменной J.