Форум сайта python.su
0
Условие задачи:
Ввести с клавиатуры вещественную матрицу размерностью 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 классе)
Заранее большое СПАСИБО!
Офлайн
16
Если по аналогии с С++.
a = 5 b = 5 otr_v_nechet_stb=0.0 mas = [] def CheckFloat(s): # проверка значения на корректность try: float(s) return True except ValueError: return False # ввод значений for x in range(a): mas.append([]) for y in range(b): print("Введите значение mas[%d,%d]"%(x,y)) r = input() while(CheckFloat(r)==False): print("Введите корректное значение mas[%d,%d]"%(x,y)) r = input() mas[x].append(float(r)) # вывод в читаемом виде for y in range(b): print(mas[y]) # сама задача for y in range(b): if(min(mas[y])<0): print("Строка %d содержит отрицательное значение и сумма её равна %f"%(y,sum(mas[y]))) for x in range(a): if(mas[y][x])<0 and x%2==0: otr_v_nechet_stb+=mas[y][x] print("Сумма отрицательных элементов в четных столбцах равна %f"%(otr_v_nechet_stb))
Отредактировано alexbadaloff (Янв. 20, 2015 15:23:16)
Офлайн
103
alexbadaloff
вот немного ваш код переделал
a, b = 5, 5 otr_v_nechet_stb=0.0 mas = [] # ввод значений for x in range(a): mas.append([]) for y in range(b): r = input("Введите значение mas[%d,%d] - "%(x,y)) while(not r.replace('.','',1).isdigit()): r = input("Введите корректное значение mas[%d,%d] - "%(x,y)) mas[x].append(float(r)) # вывод в читаемом виде print(*mas, sep='\n') # сама задача for y in range(b): if min(mas[y]) < 0: print("Строка %d содержит отрицательное значение и сумма её равна %f"%(y,sum(mas[y]))) for x in range(0, a, 2): if mas[y][x] < 0: otr_v_nechet_stb += mas[y][x] print("Сумма отрицательных элементов в четных столбцах равна %f"%(otr_v_nechet_stb))
Отредактировано terabayt (Янв. 20, 2015 11:36:41)
Офлайн
16
terabaytЯ изначально так написал и это не работает для отрицательных значений.
.isdigit()):
>>> Введите значение mas[0,0] - -2 Введите корректное значение mas[0,0] - 2
Офлайн
103
alexbadaloffи снова написал ответ не проверяя ))
Я изначально так написал и это не работает для отрицательных значений.
r = input("Введите значение mas[%d,%d] - "%(x,y)).replace('-','',1) while(not r.replace('.','',1).isdigit()):
Офлайн