Вычислить значения 39 элементов одномерного целочисленного массива F в заданном интервале - Pascal ABC
Формулировка задачи:
можете помочь доделать остальные пункты?
сделал первый пункт 1) вычислить значения 39 элементов одномерного целочисленного массива F в интервале (-10,10) с использованием генератора случайных чисел.
вот остальные: 2) вычислить среднегеометрическое значение четных по значению элементов второй четверти массива;
3) определить значение самое близкое к заданному числу С среди положительных элементов всего массива;
4) упорядочить положительные элементы второй половины массива по убыванию модулей обратных значений.
Решение задачи: «Вычислить значения 39 элементов одномерного целочисленного массива F в заданном интервале»
textual
Листинг программы
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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д