Const n=10; var a:array[1..n] of integer; i,s,min:integer; begin writeln('Исходный массив:'); for i:=1 to n do begin a[i]:=random(21)-10; write(a[i]:4); end; writeln; s:=0; min:=a[1]; for i:=1 to n do begin if a[i]>0 then s:=s+a[i]; if a[i]<min then min:=a[i]; end; writeln('s = ',s,' min = ',min); for i:=1 to n do if a[i]>0 then a[i]:=s else if a[i]<0 then a[i]:=a[i]-min; writeln('Измененный массив:'); for i:=1 to n do write(a[i]:4); writeln; end.
y := (a * x + 2 * b * x * x) * Abs(Cos(x * x)) / (Pi * Exp(x));
y := (a * Ln(b * x)) ** (1 / 3) / (1 + Sqr(Sin(a * x)));
y := (Abs(Sin(x ** 3)) + a) * Exp(a) / (b * b + c * c) ** (1 / 3);
#2
begin
var (a, x) := ReadReal2('Введите a и x:');
var t := x ** 3 - a;
t := Sign(t) * Abs(t) ** (1 / 3);
var y := t + Sin(x * x) / a;
Print('y =', y)
end.
Операция возведения в степень ** в PascalABC.NET определена только для неотрицательного аргумента, поскольку она выполняется с использованием логарифма. В то же время, в математике операция извлечения корней нечетной степени для отрицательного аргумента опеределена и допустима. В соответствии с этим, извлечение кубического корня в программе производится из абсолютной величины аргумента и последующим присваиванием знака этого аргумента результату. Если имеется потребность вычислять подобные корни в нескольких местах программы, имеет смысл ввести для этого собственную функцию.
var a:array[1..n] of integer;
i,s,min:integer;
begin
writeln('Исходный массив:');
for i:=1 to n do
begin
a[i]:=random(21)-10;
write(a[i]:4);
end;
writeln;
s:=0;
min:=a[1];
for i:=1 to n do
begin
if a[i]>0 then s:=s+a[i];
if a[i]<min then min:=a[i];
end;
writeln('s = ',s,' min = ',min);
for i:=1 to n do
if a[i]>0 then a[i]:=s
else if a[i]<0 then a[i]:=a[i]-min;
writeln('Измененный массив:');
for i:=1 to n do write(a[i]:4);
writeln;
end.
Пример:
Исходный массив:
9 -3 -5 7 1 5 -6 9 -8 7
s = 38 min = -8
Измененный массив:
38 5 3 38 38 38 2 38 0 38
===== PascalABC.NET =====
#1
y := (a * x + 2 * b * x * x) * Abs(Cos(x * x)) / (Pi * Exp(x));
y := (a * Ln(b * x)) ** (1 / 3) / (1 + Sqr(Sin(a * x)));
y := (Abs(Sin(x ** 3)) + a) * Exp(a) / (b * b + c * c) ** (1 / 3);
#2
begin
var (a, x) := ReadReal2('Введите a и x:');
var t := x ** 3 - a;
t := Sign(t) * Abs(t) ** (1 / 3);
var y := t + Sin(x * x) / a;
Print('y =', y)
end.
Операция возведения в степень ** в PascalABC.NET определена только для неотрицательного аргумента, поскольку она выполняется с использованием логарифма. В то же время, в математике операция извлечения корней нечетной степени для отрицательного аргумента опеределена и допустима. В соответствии с этим, извлечение кубического корня в программе производится из абсолютной величины аргумента и последующим присваиванием знака этого аргумента результату. Если имеется потребность вычислять подобные корни в нескольких местах программы, имеет смысл ввести для этого собственную функцию.