Задача — Сколько элементов массива больше по модулю максимального
— программирование на Pascal, Си, Кумир, Basic-256, Python
Создать массив из 20 элементов в диапазоне значений от -15 до 14 включительно. Определить количество элементов по модулю больших, чем максимальный.
Суть задачи сводится к тому, что сначала надо найти максимальный элемент массива, а затем сравнить с ним абсолютные значения отрицательных элементов и посчитать те, которые окажутся больше него.
По факту код программы получается проще, если сравнивать с максимумом все элементы массива. В результате алгоритм решения задачи сводится к следующему:
- Присвоить переменной, в которой будет храниться максимум, значение меньше, чем возможное в массиве (в данном случае -16).
- Перебрать все элементы массива. Если очередной элемент больше значения, которое хранится в переменной для максимума, то поменять значение этой переменной на текущий элемент.
- Присвоить переменной для подсчета элементов больших по модулю максимальный значение 0.
- Перебрать все элементы массива. Если абсолютное значение текущего элемента больше того, что записано в переменной для максимума, то увеличить переменную-счетчик (из предыдущего пункта) на 1.
Pascal const N = 20;
var
a: array[1..N] of integer;
max: integer;
i, count: byte;
begin
randomize;
max := -16;
for i:=1 to N do begin
a[i] := random(30)-15;
write(a[i],’ ‘);
if a[i] > max then max := a[i];
end;
writeln;
count := 0;
for i:=1 to N do
if abs(a[i]) > max then
count := count + 1;
writeln(count);
end. 1 -6 -13 12 -3 12 -8 11 12 5 -7 -4 -9 -13 -13 -5 -6 0 -5 1
3
В примере максимум равен 12. Больше него по модулю число -13, которое в массиве встречается 3 раза.
Язык Си #include <stdio.h>
#define N 20
main() {
int a[N];
int i, max, count, d;
srand(time(NULL));
max = -16;
for (i=0; i < N; i++) {
a[i] = rand()%30 — 15;
printf("%d ", a[i]);
if (a[i] > max) max = a[i];
}
printf("n");
count = 0;
for (i=0; i < N; i++)
if (abs(a[i]) > max) count += 1;
printf("%dn", count);
} -3 2 -8 -14 0 11 -7 10 5 3 5 -6 9 -3 10 9 5 1 -13 8
2
В этом примере максимальный элемент — число 11. Больше него по модулю -14 и -13.
Python from random import random
N = 20
a = [0]*N
m = -16
for i in range(N):
a[i] = int(random()*30)-15
print(a[i],end=’ ‘);
if a[i] > m: m = a[i]
print()
count = 0
for i in range(N):
if abs(a[i]) > m:
count += 1
print(count) -10 -2 -15 -2 5 7 -13 5 -4 -1 2 0 11 -1 2 2 -12 -7 11 14
1
Максимальный 14. Больше него по модулю только -15.
КуМир алг больше по модулю максимального
нач
цел N = 20
цел таб a[1:N]
цел mx, i, count
mx := -16
нц для i от 1 до N
a[i] := int(rand(-15,15))
вывод a[i], " "
если a[i] > mx то mx:=a[i] все
кц
вывод нс
count := 0
нц для i от 1 до N
если abs(a[i]) > mx то
count := count + 1
все
кц
вывод count
кон 2 -2 -7 5 5 -13 -8 -7 -10 2 -15 11 -6 -15 14 -12 -6 -14 -3 13
2
Максимальное 14. Больше него по модулю два числа -15.
Basic-256 N = 20
dim a(N)
max = -16
for i=0 to N-1
a[i] = int(rand*30)-15
print a[i] + " ";
if a[i] > max then max = a[i] next i
print
c = 0
for i=0 to N-1
if abs(a[i]) > max then c = c+1
next i
print(c) -2 -15 11 11 10 -10 -7 7 -10 13 8 -13 -1 -10 -12 7 -14 -3 -10 -1
2
Максимальный элемент равен 13. Больше него по модулю -15 и -14.