Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит количество элементов массива, больших 100 и при этом не кратных 4, а затем заменяет каждый такой элемент на число, равное найденному количеству. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки.
Например, для исходного массива из шести элементов:
141
256
92
148
511
4
программа должна вывести следующий массив:
2
256
92
148
2
4
Исходные данные объявлены так, как показано ниже на примерах для пяти языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
| Бейсик | Python |
|---|---|
CONST N AS INTEGER = 30 DIM A (1 TO N) AS LONG DIM I AS LONG, J AS LONG, K AS LONG
FOR I = 1 TO N INPUT A(I) NEXT I ... END
| # допускается также # использовать две # целочисленные переменные j и k a = [] n = 30 for i in range(0, n): a.append(int(input())) ...
|
| Паскаль | Алгоритмический язык |
const N = 30; var a: array [1..N] of longint; i, j, k: longint; begin for i := 1 to N do readln(a[i]); ... end.
| алг нач цел N = 30 цел таб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц ...
кон |
| Си++ | |
#include <iostream> using namespace std; const int N = 30; int main() { long a[N]; long i, j, k; for (i = 0; i<N; i++) cin >> a[i]; ... return 0; }
| |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на Алгоритмическом языке).
| Паскаль |
|---|
k := 0; for i := 1 to N do if (a[i] > 100) and (a[i] mod 4 <> 0) then k:=k+1; for i := 1 to N do begin if (a[i] > 100) and (a[i] mod 4 <> 0) then a[i] := k; writeln(a[i]) end |
| Алгоритмический язык |
k := 0 нц для i от 1 до N если a[i] > 100 и mod(a[i], 4) <> 0 то k := k + 1 все кц нц для i от 1 до N если a[i] > 100 и mod(a[i], 4) <> 0 то a[i] := k все вывод a[i], нс кц |
| Бейсик |
K = 0 FOR I = 1 TO N IF A(I) > 100 AND A(I) MOD 4 <> 0 THEN K = K + 1 END IF NEXT I FOR I = 1 TO N I F A(I) > 100 AND A(I) MOD 4 <> 0 THEN A(I) = K END IF PRINT A(I) NEXT I |
| Python |
k = 0 for i in range(0, n): if (a[i] > 100 and a[i] % 4 != 0): k+=1 for i in range(0, n): if (a[i] > 100 and a[i] % 4 != 0): a[i] = k print(a[i]) |
| Си |
k = 0; for (i = 0; i < N; i++) if (a[i] > 100 && a[i]%4 != 0) k++; for (i = 0; i < N; i++) { if (a[i] > 100 && a[i]%4 != 0) a[i] = k; cout << a[i]; } |

