Из заданных массивов сформировать новый массив по заданному правилу - Pascal
Формулировка задачи:
Напишите программу используя функции и процедуры.
Даны массивы X(8), Z(10), W(15), элементы которых определяются по формулам:
X(i)=a1i2-a2(5-i);
Z(i)=c1(i-4)+c2sin2(1,5i);
W(i)=d1ln(0,1i)+d2cos3(i-2,5).
Мои значения коэффициентов:
а1=4, а2=8, c1=2, c2=7, d1=8, d2=6.
Сформируйте массив из разностей между суммами положительных элементов с чётными и нечётными индексами в массивах Х, Z, W.
Решение задачи: «Из заданных массивов сформировать новый массив по заданному правилу»
textual
Листинг программы
const nx=8;
nz=10;
nw=15;
a1=4;
a2=8;
c1=2;
c2=7;
d1=8;
d2=6;
var x,z,w,y:array [1..nw] of real;
sc,sn:real;
i:integer;
begin
writeln('Массив X');
sc:=0;
sn:=0;
for i:=1 to nx do
begin
x[i]:=a1*i*i-a2*(5-i);
write(x[i]:6:1);
if x[i]>0 then
if odd(i) then sn:=sn+x[i]
else sc:=sc+x[i];
end;
y[1]:=sc-sn;
writeln('');
writeln('Массив Z');
sc:=0;
sn:=0;
for i:=1 to nz do
begin
z[i]:=c1*(i-4)+c2*sqr(sin(1.5*i));
write(z[i]:5:1);
if z[i]>0 then
if odd(i) then sn:=sn+z[i]
else sc:=sc+z[i];
end;
y[2]:=sc-sn;
writeln('');
writeln('Массив W');
sc:=0;
sn:=0;
for i:=1 to nw do
begin
w[i]:=d1*ln(0.1*i)+d2*sqr(cos(i-2.5))*cos(i-2.5);
write(w[i]:5:1);
if w[i]>0 then
if odd(i) then sn:=sn+w[i]
else sc:=sc+w[i];
end;
y[3]:=sc-sn;
writeln('');
writeln('Массив разностей сумм положительных с четными индексами и с нечетными индексами');
for i:=1 to 3 do
write(y[i]:6:1);
end.
Объяснение кода листинга программы
- Объявляются и инициализируются константы:
nxравно 8nzравно 10nwравно 15a1равно 4a2равно 8c1равно 2c2равно 7d1равно 8d2равно 6
- Объявляются переменные массивы:
xмассив действительных чисел с размером nwzмассив действительных чисел с размером nzwмассив действительных чисел с размером nwyмассив действительных чисел с размером 3scпеременная типа real (действительное число) для хранения суммы положительных чиселsnпеременная типа real (действительное число) для хранения суммы положительных чиселiпеременная типа integer (целое число) для использования в циклах
- Вычисляют и заполняют массив X:
- Заполняются элементы массива X по формуле для каждого i от 1 до nx
- Вычисляется сумма положительных чисел с четными и нечетными индексами и записывается в переменные sc и sn соответственно
- Вычисляют и заполняют массив Z:
- Заполняются элементы массива Z по формуле для каждого i от 1 до nz
- Вычисляется сумма положительных чисел с четными и нечетными индексами и записывается в переменные sc и sn соответственно
- Вычисляют и заполняют массив W:
- Заполняются элементы массива W по формуле для каждого i от 1 до nw
- Вычисляется сумма положительных чисел с четными и нечетными индексами и записывается в переменные sc и sn соответственно
- Вычисляют массив разностей сумм положительных с четными индексами и нечетными индексами:
- Вычисляются разности sc-sn и записываются в массив Y
- Выводятся значения массива Y.