Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит сумму элементов массива, меньших 200 и при этом кратных 5, а затем заменяет каждый такой элемент на число, равное найденной сумме. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки. Например, для исходного массива из шести элементов:
204
115
27
20
305
4
программа должна вывести следующий массив:
204
135
27
135
305
4
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
| Бейсик | Python |
|---|---|
CONST N AS INTEGER = 30 DIM A (1 TO N) AS LONG DIM I, J, 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 целтаб а[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц ... кон |
| Си++ | |
#include <iostream> using namespace std; const int n = 30; int main() { int a[n]; int i, j, k; for (i = 0; i < n; i++) std::cin >> a[i]; ... return 0; }
| |
качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на Алгоритмическом языке).
| Паскаль |
|---|
k := 0; for i:=1 to n do if (a[i]<200) AND (a[i] mod 5 = 0) then k := k + a[i]; for i:=1 to n do begin if (a[i]<200) AND (a[i] mod 5 = 0) then a[i] := k; writeln(a[i]); end; |
Общие указания
1. В алгоритме, записанном на языке программирования, допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы.
2. Эффективность алгоритма не имеет значения и не оценивается.
3. Допускается запись алгоритма на языке программирования, отличном от языков, перечисленных в условии. В этом случае должны использоваться переменные, аналогичные описанным в условии. Если язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на естественном языке. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования; при этом количество переменных и их идентификаторы должны соответствовать условию задачи

