08.02.2023

Массивы в языке Паскаль. Решение задач. 8 класс (сумма, произведение, среднее арифметическое, минимум/максимум с условием)

Список задач для решения

Задача 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.

В решении задач с использованием массивов можно выделить следующие этапы:

  • формирование массива (ввод с клавиатуры или случайно)
  • вывод массива на экран
  • обработка массива
Каждый этап требует своего цикла для обращения к каждому элементу массива.

Комментариев нет:

Отправить комментарий