PascalABC.NET
Пример работы:
--- Python 3.8.3 ---
import typing
from typing import Callable
from typing import AnyStr
from typing import Any
from typing import Iterable
from typing import List
import random
#DEFINE User-Types
Numeric = typing.TypeVar('Numeric', int, float, complex)
#END
def ListTransform(Data: List[Any], Tranformer: Callable[[Any], Any], Selector: Callable[[Any], bool] = lambda p: True):
'''Трансформирует элементы list, удовлетворяющие условию, в соответствии с заданным правилом
По умолчанию трансформирует все элементы'''
for index, item in enumerate(Data):
if (Selector(item)):
Data[index] = Tranformer(item)
return Data
def Product(data: Iterable[Numeric]):
'''Перемножает значения числовой последовательности'''
p = 1
for i in data: p *= i
return p
def main():
N = int(input('Enter "N":\n'))
Lst = ListTransform([random.uniform(-99,99) for i in range(N)], lambda p: p + 1, lambda item: item == 0)
print(*Lst)
NewList = []
for index in range(len(Lst)):
NewList.append(Product(Lst[:index] + Lst[index+1:]))
print(*NewList)
if __name__ == "__main__":
main()
PascalABC.NET
uses School;beginvar a := ArrRandomReal(ReadInteger('n:'),1,99,2);var b := ArrGen(a.Length,i->a.Where((x,j)->i<>j).Product);a.Println;b.Printend.Пример работы:
--- Python 3.8.3 ---
import typing
from typing import Callable
from typing import AnyStr
from typing import Any
from typing import Iterable
from typing import List
import random
#DEFINE User-Types
Numeric = typing.TypeVar('Numeric', int, float, complex)
#END
def ListTransform(Data: List[Any], Tranformer: Callable[[Any], Any], Selector: Callable[[Any], bool] = lambda p: True):
'''Трансформирует элементы list, удовлетворяющие условию, в соответствии с заданным правилом
По умолчанию трансформирует все элементы'''
for index, item in enumerate(Data):
if (Selector(item)):
Data[index] = Tranformer(item)
return Data
def Product(data: Iterable[Numeric]):
'''Перемножает значения числовой последовательности'''
p = 1
for i in data: p *= i
return p
def main():
N = int(input('Enter "N":\n'))
Lst = ListTransform([random.uniform(-99,99) for i in range(N)], lambda p: p + 1, lambda item: item == 0)
print(*Lst)
NewList = []
for index in range(len(Lst)):
NewList.append(Product(Lst[:index] + Lst[index+1:]))
print(*NewList)
if __name__ == "__main__":
main()