Задача 1. Количество и сумма элементов массива, принадлежащих интервалу
Найдите сумму и количество элементов массива, попавших в интервал [a; b]. Границы интервала вводятся с клавиатуры.
Решение
Пусть переменная qty содержит количество элементов, попавших в заданный интервал, а переменная sum сумму этих элементов. В цикле будем проверять каждый элемент на то, что его значение одновременно больше либо равно нижней границе диапазона и меньше или равно верхней. Если это так, то элемент принадлежит заданному интервалу и его значение следует добавить к переменной sum, а qty увеличить на 1.
В программе можно предусмотреть обмен значениями переменных a и b на случай, если сначала может быть указана верхняя граница интервала.
const N = 20;
var
arr: array[1..N] of integer;
i, qty: byte;
a, b, c, sum: integer;
begin
randomize;
for i:=1 to N do begin
arr[i] := random(100)-50;
write(arr[i]:4);
end;
writeln;
write('Интервал: ');
readln(a, b);
if a > b then begin
c := a;
a := b;
b := c;
end;
qty := 0;
sum := 0;
for i:=1 to N do
if (arr[i] >= a) and (arr[i] <= b) then begin
qty := qty + 1;
sum := sum + arr[i];
end;
writeln('Количество: ', qty);
writeln('Сумма: ', sum);
end.
Пример выполнения кода:
-25 -28 41 35 28 33 -46 35 2 -35 -49 49 -31 5 34 -46 -32 -40 -14 5 Интервал: 5 -10 Количество: 3 Сумма: 12
Задача 2. Удалить из массива четные элементы
В одномерном массиве удалить все четные элементы и оставить только нечетные.
Решение
Данную задачу можно решить несколькими способами.
Способ 1. Скопировать в другой массив только нечетные элементы.
const
N = 20;
var
a, b: array[1..N] of integer;
i, m: byte;
begin
randomize;
for i:=1 to N do begin
a[i] := random(40)+10;
write(a[i]:3);
end;
writeln;
m := 0;
for i:=1 to N do
if a[i] mod 2 <> 0 then begin
m := m + 1;
b[m] := a[i];
end;
for i:=1 to m do begin
write(b[i]:3);
end;
writeln;
end.
Задача 3.
Напишите программу для решения следующей задачи. Камера наблюдения регистрирует в автоматическом режиме скорость проезжающих мимо неё автомобилей, округляя значения скорости до целых чисел. Необходимо определить минимальную зарегистрированную скорость автомобиля. Если скорость хотя бы одного автомобиля была больше 80 км/ч, выведите «YES», иначе выведите «NO».
Программа получает на вход число проехавших автомобилей N (1 ≤ N ≤ 30), затем указываются их скорости. Значение скорости не может быть меньше 1 и больше 300.Программа должна сначала вывести минимальную скорость, затем YES или NO.
Пример работы программы:
| Входные данные | Выходные данные |
| 4 74 69 63 96 | 63 YES |