1) Вычислить значения 34 эл-тов одномерного целочисленного массива W в интервале (-10,10) с использованием генератора случайных чисел.
2) Вычислить среднегармоническое значение нечетных по значению элементов второй четверти массива.
3) определить наименьший по модулю элемент среди ненулевых элементов всего массива.
4) Упорядочить отрицательные элементы первой четверти массива по убыванию модулей обратных значений.
Code
program N4;
uses crt;
type mas = array[1..34] of integer; определяем тип: массив из 34 эл-тов
var w: mas; объявляем переменные. массив
z4: array[1..8] of integer; массив из 8 эл-тов
i, j, n, tmp, minW, minI: integer;
sum : real;
sort : boolean;
begin
clrscr;
writeln('Zadacha 1');
randomize; инициализируем датчик случайных чисел
n := 0;
for i := 1 to 34 do в цикле от 1 до 34 выполняем
begin
w[i] := random(20) - 10; значение массива – случайное число от -10 до 10
write(w[i], '; '); выводим на экран
end; конец цикла
writeln; перевод строки
writeln;
writeln('Zadacha 2:');
sum := 0;
n := 0;
for i := 9 to 17 do begin цикл
if i mod 2 = 1 then begin если I – нечетное, то
if w[i] <> 0 then sum := sum + 1/w[i]; если Эл-т<>0,то суммируем его обратное значение
n := n + 1;
write ('w[', i, '] = ', w[i], '; ')
end; конец если
end; конец цикла
writeln;
writeln('srednegarm = ', 1/((1/n)*sum):5:2); вывод среднегарм.значения
writeln;
writeln('Zadacha 3:');
minW := 10; задаем минимально значении =максимально возможному в массиве
for i := 1 to 34 do begin цикл по всему массиву
if (w[i] <> 0) and (minW > abs(w[i])) then begin если эл-т<>0 и меньше чем текущее минимально значение, то
minW := abs(w[i]); задаем новое мин. значение
minI := i; запоминаем номер Эл-та
end; конец если
end; конец цикла
writeln('minimalnyi po modulu - el-t(',minI, ') = ', minW);
writeln;
writeln('Zadacha 4:');
sort := false; признак сортировки = ложь (массив не отсортирован)
j := 0;
for i := 1 to 8 do begin цикл по первым 8 эл-там исходного массива
write(w[i], '; ');
if w[i] < 0 then begin если Эл-т<0, то заполняем массив z4 этим Эл-том
j := j + 1;
z4[j] := w[i];
end;
end;
writeln;
if j = 0 then если j=0 значит отриц-х Эл-тов нет
writeln('Elementov < 0 net!')
else begin иначе
while sort = false do begin цикл, пока массив не отсортирован
sort := true; вначале считаем, что массив отсортирован
for i := 1 to j - 1 do begin в цикле по массиву выполняем проверку
if abs(1/z4[i]) < abs(1/z4[i+1]) then если обратное знач-е Эл-та меньше, чем у следующего, то
begin
tmp := z4[i]; меняем
z4[i] := z4[i+1]; их
z4[i+1] := tmp; местами
sort := false; считаем массив неотсортированным
end; конец если
end; конец цикла
end; конец цикла
end; конец если
for i := 1 to j do begin в цикле выводим отсортированный массив на экран
write(z4[i], '; ');
end;
writeln;
readkey; ждем нажатия клавиши
end.