Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
4 / 4 / 0
Регистрация: 21.11.2012
Сообщений: 54
1

Двумерные массивы и процедуры

21.11.2012, 22:08. Показов 2675. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго всем времени суток! При решение задачи столкнулся с ошибкой решение которой мне не известно, единственное, что я понимаю что что то не так с процедурой обработки массива.Подскажите пожалуйста как исправить программу.
Задание ( Из матрицы размером n на m удалить строки, максимальный элемент которых равен y. Удаление реализовать как «затирание» текущей строки нижележащими строками. )
Traceback (most recent call last):
File "C:/Users/pw^fuck_you/Desktop/лаба 6", line 48, in <module>
obrabot(g,ma)
File "C:/Users/pw^fuck_you/Desktop/лаба 6", line 28, in obrabot
if ma[i,j]==g:
TypeError: list indices must be integers, not tuple
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# -*- coding: cp1251 -*-
def vvod():
    n = int (raw_input('Введите количество строк (n):'))
    m = int (raw_input('Введите количество столбцов (m):'))
    i =0
    j =0
    matr= []
    while i<n :
        mass = []
        j=0
        while j < m :
            k = int (raw_input('Введите элемент:'))
            mass.insert(j,k)
            j+=1
        matr.insert(i,mass)
        i+=1
    return matr
def print_m(matr):
    for mass in matr:
        for i in mass :
            print i,
        print ''
def obrabot(g,ma):
    i=1
    j=1
    while i<4:
        while j<4:
            if ma[i,j]==g:
                g=i
                j=j+1
            i=i+1
                #break
    j=1
    while g<5:
        while j<5:
            ma[g,j]=ma[g+1,j]
            g=g+1
            j=j+1
    return ma
comanda = 1         
while comanda != 9 :
    print '1 ввод 2 обработка 3 печать'
    comanda = int (raw_input ('Введите число от 1 до 4:  '))
    if comanda == 1:
        ma=vvod()
    if comanda == 2:
        g=int(raw_input('введите Y'))
        obrabot(g,ma)
    if comanda == 3:
        print_m(ma)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2012, 22:08
Ответы с готовыми решениями:

Двумерные массивы
Пожалуйста, помогите решить задачу. Завтра сдавать :help: Дана целочисленная прямоугольная матрица...

Двумерные массивы
Создать массив с элементами {a}_{kn}=n f(k)+sin(k)g(n) где k,n=1,2,3,4; ...

Двумерные массивы
Здравствуйте, можете мне объяснить следующий код: arr = (n ^ i ^ j) &amp; 1 Здесь значение массива...

Двумерные массивы
Вычислить значение функции Результат записать в массив В(m,n)

Двумерные массивы
почему выводит одно число,а не двумерный массив n = int(input()) m = int(input()) ...

5
42 / 42 / 7
Регистрация: 15.07.2012
Сообщений: 98
21.11.2012, 23:12 2
ma[g,j] -> ma[g][j]
0
4 / 4 / 0
Регистрация: 21.11.2012
Сообщений: 54
22.11.2012, 01:09  [ТС] 3
Цитата Сообщение от s0rg Посмотреть сообщение
ma[g,j] -> ma[g][j]
изменил, теперь выдает следующую ошибку
Traceback (most recent call last):
line 48, in <module>
obrabot(g,ma)
line 28, in obrabot
if ma[i][j]==g:
IndexError: list index out of range
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
22.11.2012, 02:32 4
в 24-25 строках индексы должны начинаться с нулей
в 26-27 строках откуда-то цифры, а должны быть переменные m и n, взятые из поданной матрицы
1
4 / 4 / 0
Регистрация: 21.11.2012
Сообщений: 54
22.11.2012, 05:52  [ТС] 5
Цитата Сообщение от accept Посмотреть сообщение
в 24-25 строках индексы должны начинаться с нулей
в 26-27 строках откуда-то цифры, а должны быть переменные m и n, взятые из поданной матрицы
исправил, но ошибка все равно осталась
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
22.11.2012, 05:59 6
функцию obrabot() скопируй сюда
0
22.11.2012, 05:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2012, 05:59
Помогаю со студенческими работами здесь

Двумерные массивы
Добрый вечер! У меня возникли проблемы с задачей( если можно с описанием программы) Сама задача:...

Двумерные массивы
Добрый вечер! У меня возникли проблемы с задачей Сама задача: В группе учатся N студентов, каждый...

Двумерные массивы
Здравствуйте, помогите, пожалуйста, с заданием. Задание Дана целочисленная прямоугольная матрица....

Двумерные массивы
Всем привет! Прошу вас помочь решить задачку по двумерным массивам в python. Задание звучит так: ...

Двумерные массивы
def reorg(arr): R= Z= for i in arr: if i&gt;0: R.append(i) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru