Реализуйте несколько классов, вычисляющих суммы следующих последовательностей натуральных чисел от 1 до N:
1+2+3...+n
1^2+2^2+3^2...+n^2
1^3+2^3+3^3...+n^3
Сделайте это с наследования.
Базовым классом будет Summator, который реализует методы transform(n) и sum(N).
Метод transform(n) выполняет преобразование элемента последовательности. Для класса Summator это будет тождественное преобразование, т.е. transform(n) == n. Метод transform(n) будет переопределяться в производных классах.
Метод sum(N) должен вычислять сумму значений transform(n) для всех значений n от 1 до N.
Производные классы должны переопределять метод transform(n):
SquareSummator: transform(n) == n ** 2
CubeSummator: transform(n) == n ** 3
Метод sum(N) переопределять не нужно.
Мой код:
class Summator:
def transform(self, n):
return n
def sum(self, N):
count = 0
for i in range(N + 1):
count += self.transform(int(i))
return count
class SquareSummator(Summator):
def transform(self, n):
return n ** 2
class CubeSummator(Summator):
def transform(self, n):
return n ** 3
Объяснение:
Компью́терная гра́фика — область деятельности, в которой компьютеры наряду со специальным программным обеспечением используются в качестве инструмента как для создания и редактирования изображений, так и для оцифровки визуальной информации, полученной из реального мира, с целью дальнейшей её обработки и хранения.
Применяется компьютерная графика во многих областях, так как цифровая графика, лазерная графика, цифровая живопись и фотография, практично всегда ее используют в фильмах, а также при создании компьютерных игр.
program z1;
var a:array [1..10] of integer;
i,sp,so:integer;
begin
randomize;
sp:=0;
so:=0;
write('Массив: ');
for i:=1 to 10 do
begin
a[i]:=random(41)-20;
if a[i] > 0 then sp:=sp+a[i]
else so:=so+a[i];
write(a[i],' ')
end;
writeln;
writeln('Сумма положительных элементов: ',sp);
writeln('Сумма отрицательных элементов: ',so)
end.
Объяснение:
Задаём элементы массива через random
Если элемент больше 0, то считаем сумму положительных элементов, в противном случае считаем сумму отрицательных элементов (0 на сумму не влияют)
Выводим значение элемента на экран
Выводим суммы
Если 0 очень важны, то меняем строки:
if a[i] > 0 then sp:=sp+a[i]
else so:=so+a[i];
на:
if a[i] > 0 then sp:=sp+a[i];
if a[i] < 0 then so:=so+a[i];