Информатика програмирование пайтон - Компьютерные вопросы

Вопрос Информатика програмирование пайтон

Регистрация
22 Окт 2013
Сообщения
71
Репутация
0
Спасибо
0
Монет
0
«А»: Напишите программу, которая заполняет массив из 10 элементов случайными числами на отрезке [-5; 5] и находит сумму положительных элементов. «В»: Напишите программу, которая заполняет массив из 10 элементов случайными числами на отрезке [-2; 2] и находит произведение ненулевых элементов. «С»: Напишите программу, которая заполняет массив из 20 элементов случайными числами на отрезке [100; 1000] и находит отдельно сумму элементов в первой и во второй половинах массива.
 
Регистрация
16 Сен 2013
Сообщения
99
Репутация
0
Спасибо
0
Монет
0
«A» from random import randint as r
A = [r(-5, 5) for i in range(10)]; print(*A)
print('Сумма положительных элементов:',\
sum([a for a in A if a > 0])) «B» from math import prod
from random import randint as r
A = [r(-2, 2) for i in range(10)]; print(*A)
print('Произведение ненулевых элементов:',prod([a for a in A if a])) «C» from math import prod
from random import randint as r
A = [r(100, 1000) for i in range(20)]; print(*A)
print('Сумма первой половины списка:', sum(A[:10]))
print('Сумма второй половины списка:', sum(A[10:])) P.S. Во всех случаях списки предполагаются целочисленными. А выводить списки в консоль - обязательно, иначе непонятно что откуда берётся и даже корректность работы кода нельзя проверить...
 
Регистрация
31 Май 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
A: import random;print(sum(x*(x>0)for x in[random.randint(-5,5)for _ in[0]*10]))
B:

import random,math;print(math.prod(x for x in[random.randint(-2,2)for _ in[0]*10]if x)) C: import random;l=[random.randint(100,1000)for _ in[0]*20];print(sum(l[:10]),sum(l[10:]))
 
Регистрация
29 Май 2013
Сообщения
65
Репутация
0
Спасибо
0
Монет
0
from random import *

# A
n = []
for _ in range(10):
n.append(randint(-5, 5))
s = 0
for a in n:
if a > 0:
s += a
print(s)

# B
n = []
for _ in range(10):
n.append(randint(-2, 2))
s = 1
for a in n:
if a != 0:
s *= a
print(s)

# C
n = []
for _ in range(20):
n.append(randint(100, 1000))
s1 = 0
s2 = 0
p = 0
l = len(n) // 2
for a in n:
if p <= l:
s1 += a
else:
s2 += a
p += 1
print(s1, " ", s2)
 
Сверху Снизу