Дан целочисленный массив из 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. |

