Вычислить значения 39 элементов одномерного целочисленного массива F в заданном интервале - Pascal ABC

  1. можете помочь доделать остальные пункты? сделал первый пункт 1) вычислить значения 39 элементов одномерного целочисленного массива F в интервале (-10,10) с использованием генератора случайных чисел. вот остальные: 2) вычислить среднегеометрическое значение четных по значению элементов второй четверти массива; 3) определить значение самое близкое к заданному числу С среди положительных элементов всего массива; 4) упорядочить положительные элементы второй половины массива по убыванию модулей обратных значений.


textual

Код к задаче: «Вычислить значения 39 элементов одномерного целочисленного массива F в заданном интервале - Pascal ABC»

const n = 39;
var f: array [0..n] of integer;
    i, j, k, p: integer;
    sg, c: real;
begin
  randomize;
  Writeln ('1) Генерируем одномерный массив из ', n + 1, ' элементов в интервале (-10, 10):');
  for i := 0 to n do
    begin
       f[i] := -10 + random(21);
       write(f[i]:4)
    end;
  writeln;
  writeln('2) Вычисляем среднее геометрическое чётных по значению элементов 2 четверти:');
  sg := 1;
  p := 0;
  k := (n + 1) div 4;
  for i := k to k * 2 - 1 do
    if not odd(f[i])
      then begin
        sg := sg * f[i];
        inc(p);
      end;
  if p = 0
    then writeln('Не найдено чётных по значению элементов во 2 четверти массива')
    else if not odd(p) and (sg < 0)
      then begin
        writeln('Среднее геометрическое не вычислено, ошибка:');
        writeln('попытка вычисления корня степени ', p, ' из числа ', sg:0:0)
      end
      else begin
        if sg > 0
          then sg := exp(ln(sg) / p)
          else if sg < 0
            then sg := -exp(ln(-sg) / p);
        writeln('Среднее геометрическое чётных по значению элементов 2 четверти массива:');
        writeln(sg:0:10)
      end;
  writeln;
  writeln('3) Определяем ближайшее к числу С значение среди положительных элементов');
  p := 0;
  write('C = ');
  readln(c);
  for i := 0 to n do
    if f[i] > 0
      then if p = 0
        then p := i
        else if abs(f[i] - c) < abs(f[p] - c)
          then p := i;
  if p = 0
    then writeln('Положительных элементов массива не найдено')
    else writeln('Ближайшее к числу C значение среди положительных элементов: ', f[p]);
  writeln;
  writeln('4) упорядочиваем положительные элементы 2 половины массива');
  writeln('   по убыванию модулей обратных значений');
  for i := (n + 1) div 2 to n - 1 do
    if f[i] > 0
      then begin
        k := i;
        for j := i + 1 to n do if (f[j] > 0) and (abs(1 / f[k]) < abs(1 / f[j])) then k := j;
        if k > i
          then begin
            p := f[i];
            f[i] := f[k];
            f[k] := p
          end
      end;
  writeln('Упорядоченный массив:');
  for i := 0 to n do write(f[i]:4);
  writeln;
  write('Нажмите клавишу <Enter> для выхода из программы');
  readln
end.

СДЕЛАЙТЕ РЕПОСТ

11   голосов, оценка 4.000 из 5



Похожие ответы
  1. Вычислить сумму ряда

  1. Ввести трехзначное число .Вычислить корень квадратный второй цифры

  1. Помогите составить программу вычисления функции при заданных значениях аргументов. Или хотя бы каким алгоритмом руководствоваться при написание?

  1. Помогите решить, пожалуйста Вычислить y=tg(x+2)+ctg^2x(ctg(x+1)-tgx), при х=30 градусов, оформив в виде функций вычисление тангенса и котангенса.

  1. Нужно написать программу, в которой пользователь вводит альфа(alpha), а программа бы считывала z1=cos в квадрате от разности ((3/8)*pi-(alpha/4))-cos в квадрате от суммы ((11/8)*pi+(alpha/4)) z2=(корень из 2-х/2)*sin от дроби (alpha/2)

  1. Вычислить значение выражения. При этом найти область определения функций и обеспечить необходимую реакцию программы на некорректные ситуации.

  1. Определить и вывести сумму элементов, значения которых находятся в диапазоне от А до В. Количество элементов массива:14 Тип Элемента массива: Int Результат вывести в виде: A[1]=........ A[2]=......... A[3]=......... Большое спасибо, за помощь!

  1. Вычислить значение выражения. При этом найти область определения функций и обеспечить необходимую реакцию программы на некорректные ситуации.

  1. Треугольник задан координатами своих вершин. Вычислить длины сторон треугольника. Для нахождения длин сторон треугольника воспользуемся формулой нахождения расстояния между двумя данными точками s = ((x2 - x1)^2+(y2-y1)^2)^(1/2), где (x1,y1) и (x2, y2) - это координаты начала и конца отрезка. Пожалуйста помогите решить)