Root /ArchiveAbout
()

Array 24 - 27

Array 24 - 27

На этой странице решаются задачи Array24 - Array27 из задачника Абрамяна.

Array24. Дан целочисленный массив размера N, не содержащий одинаковых чисел. Проверить, образуют ли его элементы арифметическую прогрессию (см. задание Array3). Если образуют, то вывести разность прогрессии, если нет — вывести 0.

var
  A: array[1..255] of integer;
  N, i: byte;
  d: smallint;
begin
  writeln(' Массив какого размера вы хотите задать? ');
  write('  N = ');
  readln(N);
  writeln(' Введите ', N, ' элементов массива(через пробел):');
  write('  ');
  for i := 1 to N do
   read(a[i]); //Вводим элементы массива
  {Находим разницу между первыми двумя числами массива:}
  d := a[2] - a[1];
  i := 2;
  {Сравниваем разницу между соседними 
    элементами массива с начальной:  }
  while (a[i] - a[i-1] = d) do //Если она совпадает,
    inc(i); //то увеличиваем номер на единицу.
  writeln(' Результат: ');
  {Если все разницы равны, то в конце
     будет i = N + 1, иначе i < N + 1}
  if i = N + 1 then
   write(' Этот массив - арифметическая прогрессия с разницей d = ', d)
  else
   begin
     writeln(' Это не арифметическая прогрессия: ');
     write('  0')
   end
 end.

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

var
  A: array[1..255] of integer;
  N, i: byte;
  q: real;
begin
  writeln(' Массив какого размера вы хотите задать? ');
  write('  N = ');
  readln(N);
  writeln(' Введите ', N, ' элементов массива(через пробел):');
  write('  ');
  for i := 1 to N do
   read(a[i]); //Вводим элементы массива
  {Находим частное между первыми двумя числами массива:}
  q := a[2] / a[1];
  i := 2;
  {Сравниваем частное между соседними элементами
    массива с начальным: }
  while (a[i] / a[i-1] = q) do //Если оно совпадает,
    inc(i); //то увеличиваем номер на единицу.
  writeln(' Результат: ');
  {Если все частные равны, то в конце
     будет i = N + 1, иначе i < N + 1}
  if i = N + 1 then 
   write(' Этот массив - геометрическая прогрессия');
   write(' с знаменателем q = ', q);
  else
   begin
     writeln(' Это не геометрическая прогрессия: ');
     write('  0')
   end
 end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 **type** real;: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 Array26. Дан целочисленный массив размера N. Проверить, чередуются ли в нем четные и нечетные числа. Если чередуются, то вывести 0, если нет, то вывести порядковый номер первого элемента,нарушающего закономерность.

var
  A: array[1..255] of integer;
  N, i: byte;
begin
  writeln(' Массив какого размера вы хотите задать? ');
  write('  N = ');
  readln(N);
  writeln(' Введите ', N, ' элементов массива(через пробел):');
  write('  ');
  for i := 1 to N do
   read(a[i]); //Вводим элементы массива
  i := 2;
  //Находим сумму двух соседних элементов массива: 
  while odd(a[i-1] + a[i]) do //Пока эта сумма нечетная,
    inc(i); //то увеличиваем номер на единицу.
  writeln(' Результат: ');
  if i > N then 
   write('  0(четные и нечетные числа чередуются)')
  else 
   begin
     write('  ', i, '-й элемент массива нарушил чередование');
     write(' четных и нечетных чисел')
   end
end.

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

var
  A: array[1..255] of integer;
  N, i: byte;
begin
  writeln(' Массив какого размера вы хотите задать? ');
  write('  N = ');
  readln(N);
  writeln(' Введите ', N, 'ненулевых элементов массива(через пробел):');
  write('  ');
  for i := 1 to N do
   read(a[i]); //Вводим элементы массива
  i := 2;
  //Находим произведение знаков двух соседних элементов массива.
  //Пока это произведение отрицательное,
  while sign(a[i-1]) * sign(a[i]) < 0 do 
    inc(i); //то увеличиваем номер на единицу.
  writeln(' Результат: ');
  if i > N then 
   write('  0(положительные и отрицательные числа чередуются)')
  else
   begin
     write('  ', i, '-й элемент массива нарушил чередование');
     write(' положительных и отрицательных чисел')
   end
end.

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