Список задач для решения
Задача 1. Дан целочисленный массив из N элементов. Элементы массива могут принимать целые значения от 0 до 100. Найти и вывести произведение элементов массива, которые имеют чётное значение и не оканчиваются на 0. Гарантируется, что в исходном массиве есть хотя бы один элемент, значение которого чётно и не оканчиваются на 0.
Задача 2. Дан массив, содержащий N неотрицательных целых чисел, не превышающих 10 000. Найти и вывести сумму всех содержащихся в массиве трёхзначных чисел, которые оканчиваются на 9, но не на 99.
Задача 3. Дан целочисленный массив из N элементов. Элементы массива могут принимать значения от –1000 до 1000. Найти среднее арифметическое всех элементов массива, оканчивающихся цифрой 5. Гарантируется, что хотя бы один такое элемент в массиве есть.
Задача 4. Дан целочисленный массив из N элементов, все элементы которого – целые числа в интервале от -1000 до 1000. Найти минимальное значение из всех нечетных элементов массива, которые делятся на 5. Гарантируется, что хотя бы один такой элемент существует.
Задача 5. Дан целочисленный массив из N элементов, все элементы которого – неотрицательные числа, не превосходящие 10 000. Найти минимальное трехзначное число, записанное в этом массиве, если таких чисел нет, нужно вывести сообщение "Таких чисел нет".
Программы решений
Задача 1. Дан целочисленный массив из N элементов. Элементы массива могут принимать целые значения от 0 до 100. Найти и вывести произведение элементов массива, которые имеют чётное значение и не оканчиваются на 0. Гарантируется, что в исходном массиве есть хотя бы один элемент, значение которого чётно и не оканчиваются на 0.
Сформируем массив случайным образом так, чтобы значения элементов были равны числам от 0 до 100 и выведем массив на экран.
for k:=1 to N do
begin
a[k]:=random(0,100);
print(a[k]);
end;
Произведение элементов примем за 1. Пройдем циклом по массиву и проверим: не оканчивается ли элемент на 0, и является ли он четным.
p:=1;
for k:=1 to N do
begin
if (a[k] mod 10 <> 0) and (a[k] mod 2=0) then p:=p*a[k];
end;
print(p);
Программа решения задачи на языке Паскаль
var a:array[1..100] of integer; N,k,p:integer;
begin
readln(N);
for k:=1 to N do
begin
a[k]:=random(0,100):
print(a[k]);
end;
p:=1;
for k:=1 to N do
begin
if (a[k] mod 10 <> 0) and (a[k] mod 2=0) then p:=p*a[k];
end;
print('Произведение четных элементов, не оканчивающихся на 0',p);
end.
Задача 2. Дан массив, содержащий N неотрицательных целых чисел, не превышающих 10 000. Найти и вывести сумму всех содержащихся в массиве трёхзначных чисел, которые оканчиваются на 9, но не на 99.
Сформируем массив случайным образом так, чтобы значения элементов были равны числам от 0 до 10000 и выведем массив на экран.
for k:=1 to N do
begin
a[k]:=random(0,10000);
print(a[k]);
end;
Сумму элементов примем за 0. Пройдем циклом по массиву и проверим: является ли элемент трехзначным числом, оканчивающимся на 9, но не на 99.
s:=0;
for k:=1 to N do
begin
if (a[k]>=100) and (a[k]<=999) and (a[k] mod 10=9) and (a[k] mod 100<>99) then s:=s+a[k];
end;
Программа решения задачи на языке Паскаль
var a:array[1..100] of integer; N,k,s:integer;
begin
readln(N);
for k:=1 to N do
begin
a[k]:=random(0,10000):
print(a[k]);
end;
s:=0;
for k:=1 to N do
begin
if (a[k]>=100) and (a[k]<=999) and (a[k] mod 10=9) and (a[k] mod 100<>99) then s:=s+a[k];
end;
print('Сумма элементов',s);
end.
Задача 3. Дан целочисленный массив из N элементов. Элементы массива могут принимать значения от –1000 до 1000. Найти среднее арифметическое всех элементов массива, оканчивающихся цифрой 5. Гарантируется, что хотя бы один такое элемент в массиве есть.
Для вычисления среднего арифметического значения элементов, оканчивающихся цифрой 5, необходимо найти сумму таких элементов и их количество. Поскольку числа могут быть отрицательными, следует взять модуль числа при проверке abs(a[k]).
Программа решения задачи на языке Паскаль
var a:array[1..100] of integer; N,k,s,t:integer;
Sr:real;
begin
readln(N);
for k:=1 to N do
begin
a[k]:=random(-1000,1000):
print(a[k]);
end;
s:=0; t:=0;
for k:=1 to N do
begin
if abs(a[k]) mod 10 = 5 then
begin
s:=s+a[k];
t:=t+1;
end;
end;
sr:=s/t;
print('Среднее арифметическое элементов, оканчивающихся на 5',Sr);
end.
Задача 4. Дан целочисленный массив из N элементов, все элементы которого – целые числа в интервале от -1000 до 1000. Найти минимальное значение из всех нечетных элементов массива, которые делятся на 5. Гарантируется, что хотя бы один такой элемент существует.
Поскольку есть гарантия, что такой элемент в массиве есть, то за искомый минимум возьмем самое большое возможное число 1000.
Программа решения задачи на языке Паскаль
var a:array[1..100] of integer; N,k,m:integer;
begin
readln(N);
for k:=1 to N do
begin
a[k]:=random(-1000,1000):
print(a[k]);
end;
m:=1000;
for k:=1 to N do
begin
if (a[k] mod 2<>0) and (a[k] mod 5 = 0) and (a[k]<m) then m:=a[k];
end;
print('Минимальный нечетный элемент, кратный 5',m);
end.
Задача 5. Дан целочисленный массив из N элементов, все элементы которого – неотрицательные числа, не превосходящие 10 000. Найти минимальное трехзначное число, записанное в этом массиве, если таких чисел нет, нужно вывести сообщение "Таких чисел нет".
За начальное значение минимума возьмем число -1 (число, которое не может присутствовать в массиве). Поскольку гарантии того, что трехзначное число присутствует в массиве, нет, то для дальнейшего поиска такого минимума, за его значение возьмем любое трехзначное число в массиве.
Если после поиска значение минимума осталось равно -1, значит трехзначных чисел в массиве нет.
var a:array[1..100] of integer; N,k,m:integer;
begin
readln(N);
for k:=1 to N do
begin
a[k]:=random(0,10000):
print(a[k]);
end;
m:=-1;//число -1 выступает признаком того, что трехзначных чисел в массиве нет
for k:=1 to N do
begin
if (a[k]>99) and (a[k]<1000) then m:=a[k];
end;
for k:=1 to N do
begin
if (a[k]>99) and (a[k]<1000) and (a[k]<m) then m:=a[k];
end;
if m=-1 then print('Таких чисел нет') else print('Минимальное трехзначное число',m);
end.
В решении задач с использованием массивов можно выделить следующие этапы:
- формирование массива (ввод с клавиатуры или случайно)
- вывод массива на экран
- обработка массива
Каждый этап требует своего цикла для обращения к каждому элементу массива.