Root /ArchiveAbout
()

Array 30 - 31

Array 30 - 31

На этой странице рассматриваем задачи Array30 - Array31 из задачника Абрамяна, в которых речь идет о количестве соседних элементах массива (левых и правых), удовлетворяющих указанному условию.

Сразу сделаем одно важное замечание: во всех следующих программах ввод данных по умолчанию определен как ручной (через оператор ввода read). Но если вы хотите ввод сделать автоматическим (через генератор случайных чисел random), то ввод данных в программе замените на следующий кусок кода:

///АВТОМАТИЧЕСКИЙ ВВОД ДАННЫХ
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;
  1. **procedure** Randomize;: Инициализирует датчик псевдослучайных чисел.2) **procedure** Randomize(seed: integer);: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности.
  2. **function** Random(maxValue: integer): integer;: Возвращает случайное целое в диапазоне от 0 до maxValue - 1.2) **function** Random(a,b: integer): integer;: Возвращает случайное целое в диапазоне от a до b.3) **function** Random: real;: Возвращает случайное вещественное в диапазоне [0..1).
  3. **function** Random(maxValue: integer): integer;: Возвращает случайное целое в диапазоне от 0 до maxValue - 1.2) **function** Random(a,b: integer): integer;: Возвращает случайное целое в диапазоне от a до b.3) **function** Random: real;: Возвращает случайное вещественное в диапазоне [0..1). В последнем случае вы получите массив случайно сгенерированных целых чисел с диапазона [-100, 100].

Array30. Дан массив размера N. Найти номера тех элементов массива, которые больше своего правого соседа, и количество таких элементов. Найденные номера выводить в порядке их возрастания.

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. 

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 Array31. Дан массив размера N. Найти номера тех элементов массива, которые больше своего левого соседа, и количество таких элементов. Найденные номера выводить в порядке их убывания.

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.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1