ВВЕРХ
ВНИЗ
  • Home
  • Array
  • Array 30 - 31

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.


Яндекс.Метрика