Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

У майл ру групп опять антиспамщик сломался на почтах, активизации могут не доходить, пишите сюда - alarforum@yandex.ru буду активизировать вручную. Или используйте другие почты.
Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 10.12.2019, 17:49   #1
SmaximaS
Новичок
Джуниор
 
Регистрация: 10.12.2019
Сообщений: 3
По умолчанию Проблемы с массивом

Здравствуйте

Имеется данное задание:

Даны действительные числа b1,…, b15 . В действительной матрице [ aij ] , i=1,…,17; j=1,…,10 первая и последняя строки заполнены нулями: a1,1 = a1,2 = … = a1,10 = a17,1 = a17,2 = … = a17,10 =0 . Элементы a2,1 , a3,1 , … a16,1 первого столбца соответственно равны b1,…, b15 . Известно, что при 2≤i≤16 , 2≤j≤10 имеет место ai,j = 0.5⁢ ( a i+1,j-1 + a i-1,j-1 ) . Требуется определить a2,10 , a3,10 , … , a16,10

Вот что накодил:
Код:
matrix = list()
matrix.append([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
for i in range(15):
    line = list()
    line.append(int(input("Введите b[" + str(i+1) + "]: ")))
    matrix.append(line)
matrix.append([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
for i in range(1, 16):
    for j in range(1, 10):
        matrix[i].append(0.5 * (matrix[i+1][j-1] + matrix[i-1][j-1]))    
print("Последний столбец:")
for i in range(1,16):
    print(matrix[i][9])
Всё бы ничего, но ругается(выход за границы) на строку "matrix[i].append(0.5 * (matrix[i+1][j-1] + matrix[i-1][j-1]))", а конкретно на "[i+1]".
Последняя использующаяся строка - №16, а строк в массиве - 17(последняя заполнена нулями).
А если убрать "+1", то происходит всё так, как должно происходить, если не использовать 17 строку.
Уже множество раз проверил, но всё равно не могу понять в чём ошибка.
Что посоветуете? С Python знаком 2 недели.
Спасибо.
SmaximaS вне форума Ответить с цитированием
Старый 10.12.2019, 18:51   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,726
По умолчанию

Цитата:
Сообщение от SmaximaS Посмотреть сообщение
не могу понять в чём ошибка.
Ошибка в порядке циклов
Код:
for j in range(1, 10):
    for i in range(1, 16):
        matrix[i].append(0.5 * (matrix[i+1][j-1] + matrix[i-1][j-1]))
Black Fregat вне форума Ответить с цитированием
Старый 10.12.2019, 19:05   #3
SmaximaS
Новичок
Джуниор
 
Регистрация: 10.12.2019
Сообщений: 3
По умолчанию

Верно
Большое спасибо.
SmaximaS вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с массивом elements формы MrQuestion JavaScript, Ajax 7 10.06.2016 00:40
Проблемы с vba (проблемы создания макросов) Leojse Microsoft Office Excel 4 26.12.2013 19:09
txt, массивом.... Predator199 PHP 1 26.10.2012 01:12
проблемы с двумерным массивом pancho Общие вопросы Delphi 10 29.01.2009 21:24
Проблемы с массивом Шура Помощь студентам 4 20.11.2008 18:06


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840