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. Опишите на языке программирования алгоритм подсчета максимального количества подряд идущих элементов, каждый из которых больше предыдущего, в целочисленном массиве длины 30.
Пояснение.
Решение на Паскале.
const N = 30;
var a: array [1..N] of integer;
MaxIncr, NumIncr, i: integer;
begin
MaxIncr: =1;
NumIncr: =1;
for i: =1 to N-1 do
if (a[i] < a [i+1]) then
NumIncr: =NumIncr+1
else begin
if (NumIncr> MaxIncr) then
MaxIncr: =NumIncr;
NumIncr: =1;
end;
if (NumIncr> MaxIncr) then
MaxIncr:=NumIncr;
writeln (MaxIncr);
end.
4. Опишите на русском языке или на одном из языков программирования алгоритм получения из заданного целочисленного массива размером 30 элементов другого массива, который будет содержать модули значений элементов первого массива.
Пояснение.
Const N=30;
var a, b:array[1..N] of integer;
i: integer;
begin
for i:=1 to N do { ввод всех элементов массива с клавиатуры }
read(a[i]);
for i:=1 to N do { формирование массива B }
b[i]:= abs(a[i])
end.
5. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от -20 до 20 − сведения о температуре за каждый день ноября. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит максимальную температуру среди дней, когда были заморозки (то есть температура опускалась ниже нуля). Гарантируется, что хотя бы в один день ноября была отрицательная температура.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать части из них.
Const
N=30;
var
a: array [1..N] of integer;
i, j, max: integer;
begin
for i:=1 to N do readln (a[i]);
…
Пояснение.
max:= -20;
for i:=1 to N do
if (a[i]<0) and (a[i]>=max) then
max:=a[i];
writeln(max);
end.
6. Опишите на русском языке или одном из языков программирования алгоритм подсчета максимального количества подряд идущих четных элементов в целочисленном массиве длины 30.
Пояснение.
const N=30;
var a: array[1..N] of integer;
MaxEven, NumEven, i: integer;
begin
MaxEven:=0;
NumEven:=0;
for i:=1 to N do
if a[i] mod 2 = 0 then
NumEven:=NumEven+1
else begin
if NumEven>=MaxEven then
MaxEven:=NumEven;
NumEven:=0;
end;
if NumEven>=MaxEven then
MaxEven:=NumEven;
Writeln(MaxEven);
end.


Алгоритмы обработки массивов (33 КB)

