Погода
Календарь
Март 2019
Пн Вт Ср Чт Пт Сб Вс
« Сен    
 123
45678910
11121314151617
18192021222324
25262728293031
Страницы сайта

Алгоритмы обработки массивов.

Для решения задания требуется вспомнить темы:
Одномерные массивы.
Двумерные массивы.

Решение заданий

1. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, который позволяет подсчитать и вывести среднее арифметическое элементов массива, имеющих нечетное значение. Гарантируется, что в исходном массиве хотя бы один элемент имеет нечетное значение.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
const  N=30;
var  a: array [1..N] of integer;
i, x, y: integer;
s: real;
begin
for i:=1 to N do readln(a[i]);

end.

Пояснение.
x:=0;
y:=0;
for i:=1 to N do
if (a[i] mod 2=1) then begin
x:=x+a[i];
y:=y+1;
end;
s:=x/y;
writeln(s); 

2.  Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 100 – баллы учащихся выпускного класса за итоговый тест по информатике. Для получения положительной оценки за тест требовалось набрать не менее 20 баллов. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит минимальный балл среди учащихся, получивших за тест положительную оценку. Известно, что в классе хотя бы один учащийся получил за тест положительную оценку. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
const  N=30;
var  a: array [1..N] of integer;
i, j, min: integer;
begin
for i:=1 to N do readln(a[i]);

end.

Пояснение.
min:=100;
for i:=1 to N do
if (a[i]>=20) and (a[i]<=min) then
min:=a[i];
writeln(min);

3. Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых сумма элементов делится на 3, но не делится на 9. В данной задаче под парой подразумеваются два соседних элемента массива.

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

 Const N = 20;

Var a: array [1..N] of

integer;

i, j, k: integer;

begin

for i := 1 to N do

    readln(a[i]);

end.

В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия.

Пояснение.

k := 0;

for i := 1 to N-1 do

if ((a[i]+a[i+1]) mod 3=0) and ((a[i]+a[i+1]) mod 9<>0)

then inc(k);

writeln(k);

4. Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от 0 до 100 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, сумма которых не кратна 6, а произведение меньше 1000. Под парой подразумевается два подряд идущих элемента массива. Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

 const

N = 40;

var

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

i, j, k: longint;

begin

for i := 1 to N do

readln(a[i]);

end.

В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия.

Пояснение

k := 0;
for i := 1 to N — 1 do
if ((a[i] + a[i + 1]) mod 6 <> 0) and (a[i] * a[i + 1] < 1000) then
inc(k);
writeln(k);

5. (Демонстрационный вариант ЕГЭ 2018 г.). Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит количество элементов массива, больших 100 и при этом кратных 5, а затем заменяет каждый такой элемент на число, равное найденному количеству.
Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести измененный массив, каждый элемент массива выводится с новой строчки.
Например, для массива из шести элементов: 4 115 7 195 25 106
программа должна вывести числа 4 2 7 2 25 106
Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

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.

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

k := 0;
for i := 1 to N do
if (a[i] > 100) and (a[i] mod 5 = 0) then
k:=k+1;
for i := 1 to N do begin
if (a[i] > 100) and (a[i] mod 5 = 0) then
a[i] := k;
writeln(a[i])
end

Top