Array 30 - 31
На этой странице рассматриваем задачи Array30 - Array31 из задачника Абрамяна, в которых речь идет о количестве соседних элементах массива (левых и правых), удовлетворяющих указанному условию.
Сразу сделаем одно важное замечание: во всех следующих программах ввод данных по умолчанию определен как ручной (через оператор ввода read). Но если вы хотите ввод сделать автоматическим (через генератор случайных чисел random), то ввод данных в программе замените на следующий кусок кода:
1
2
3
4
5
6
7
8
9
10
11
12 | ///АВТОМАТИЧЕСКИЙ ВВОД ДАННЫХ
randomize; //генератор псевдослучайных чисел
N := 10 + random(191); //количество чисел в массиве
writeln('Массив ', N, ' случайных целых чисел:');
writeln;
for i := 1 to N do
begin
mass[i] := -100 + random(201);
write(' ', mass[i]); //выводим элементы массива
end;
writeln;
writeln; |
|
В последнем случае вы получите массив случайно сгенерированных целых чисел с диапазона [-100, 100].
Array30. Дан массив размера N. Найти номера тех элементов массива, которые больше своего правого соседа, и количество таких элементов. Найденные номера выводить в порядке их возрастания.
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 | var
Mass: array[1..100] of integer;
i, N, Q: byte;
begin
write(' N = ');
readln(N);
writeln('Введите ', N, ' целых чисел:');
writeln;
for i := 1 to N do
read(mass[i]); //вводим элементы массива
writeln;
Q := 0; //количество элементов, больших своего правого соседа
write('Результат: ');
{ Элементы проверяем в порядке возрастания их номеров: }
for i := 1 to N - 1 do
if mass[i] > mass[i + 1] then //i-й элемент больше (i + 1)-го
begin
inc(Q); //увеличиваем количество таких элементов на 1
write(' ', i) //и выводим номер элемента
end;
writeln;
if Q > 0 then
write('Количество элементов больших правого соседа: ', Q)
else write('Таких элементов нет.')
end. |
|
Array31. Дан массив размера N. Найти номера тех элементов массива, которые больше своего левого соседа, и количество таких элементов. Найденные номера выводить в порядке их убывания.
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 | var
Mass: array[1..100] of integer;
i, N, Q: byte;
begin
write(' N = ');
readln(N);
writeln('Введите ', N, ' целых чисел:');
writeln;
for i := 1 to N do
read(mass[i]); //вводим элементы массива
writeln;
Q := 0; //количество элементов, больших своего левого соседа
write('Результат: ');
{ Элементы проверяем в порядке убывания их номеров: }
for i := N downto 2 do
if mass[i] > mass[i - 1] then //i-й элемент больше (i - 1)-го
begin
inc(Q); //увеличиваем количество таких элементов на 1
write(' ', i) //и выводим номер элемента
end;
writeln;
if Q > 0 then
write('Количество элементов больших левого соседа: ', Q)
else write('Таких элементов нет.')
end. |
|