Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 17, 2015 20:06:32

C++MC
Зарегистрирован: 2015-01-17
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Пожалуйста, переведите с С++ на Питон

Условие задачи:
Ввести с клавиатуры вещественную матрицу размерностью 5x5. Определить:
1) сумму отрицательных элементов в четных столбцах;
2) сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.
Решение на С++:

const x=5,y=5;
int i,j;
float sum=0, massiv,st=0; //описание массива
cout<<RUS("Введите massiv\n");
for(i=0;i<x;i++) //ввод массива
for(j=0;j<y;j++) cin>>massiv;
cout<<"massiv\n“;
for(i=0;i<x;i++) //вывод массива
{cout<<”\n"; for(j=0;j<y;j++) cout<<' '<<massiv;}

for(j=1;j<x;j=j+2)
{ for(i=0;i<y;i++)
{if(massiv<0)
{sum=massiv+sum;}
}
}
cout<<“\n Summa=”<<sum<<'\n';

for(int i=0;i<x;i++)
{
for(int j=0;j<y;j++)
if (massiv<0)
{
for(int j=0;j<y;j++)
st=massiv+st;break;
}
}
cout<<“\Summa ”<<st;

Если что, я в 9 классе)
Заранее большое СПАСИБО!

Офлайн

#2 Янв. 17, 2015 20:53:06

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Пожалуйста, переведите с С++ на Питон

matrix = [[input('matrix[{}][{}]: '.format(i+1, j+1)) for j in range(5)] for i in range(5)]
sum([sum([row[x] for row in matrix if row[x] < 0]) for x in range(len(matrix[0])) if x % 2 == 1])
sum([sum(row) for row in matrix if any([x < 0 for x in row])])

>>> matrix
[[1.0, -2.1, 3.2, -4.3, 5.0],
[1.1, 2.0, 3.3, 4.5, 6.7],
[-1.99, 2.33, -3.33, 4.46, -7.89],
[11.2, 22.1, -3.22, 4.44, 5.98],
[4.5, 1.2, -3.4, 5.3, -9.876]]
>>> sum([sum([row[x] for row in matrix if row[x] < 0]) for x in range(len(matrix[0])) if x % 2 == 1])
-6.4
>>> sum([sum(row) for row in matrix if any([x < 0 for x in row])])
34.604

Отредактировано botinag (Янв. 17, 2015 20:59:31)

Офлайн

#3 Янв. 17, 2015 21:49:44

C++MC
Зарегистрирован: 2015-01-17
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Пожалуйста, переведите с С++ на Питон

Почему-то программа не работает.. Подскажите, пожалуйста, в чём дело? Пишет
builtins.TypeError: unorderable types: str() < int()
выделяет строчку
sum([sum([row for row in matrix if row < 0]) for x in range(len(matrix)) if x % 2 == 1])

Прикреплённый файлы:
attachment инфо.JPG (102,5 KБ)

Офлайн

#4 Янв. 17, 2015 23:46:54

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Пожалуйста, переведите с С++ на Питон

у вас 3 питон? тогда пробуйте так:

matrix = [[float(input('matrix[{}][{}]: '.format(i+1, j+1))) for j in range(5)] for i in range(5)]
sum([sum([row[x] for row in matrix if row[x] < 0]) for x in range(len(matrix[0])) if x % 2 == 1])
sum([sum(row) for row in matrix if any([x < 0 for x in row])])

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version