Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Лекция 7. Матрицы. Параметрический цикл (часть 1)

Лекция 7. Матрицы. Параметрический цикл (часть 1) (Воробьева И.А. «Информатика. Язык Питон» (2016))

PDF-файл Лекция 7. Матрицы. Параметрический цикл (часть 1) (Воробьева И.А. «Информатика. Язык Питон» (2016)) Информатика (51804): Лекции - 1 семестрЛекция 7. Матрицы. Параметрический цикл (часть 1) (Воробьева И.А. «Информатика. Язык Питон» (2016)) - PDF (51804) - СтудИзба2019-09-06СтудИзба

Описание файла

Файл "Лекция 7. Матрицы. Параметрический цикл (часть 1)" внутри архива находится в папке "Воробьева И.А. «Информатика. Язык Питон» (2016)". PDF-файл из архива "Воробьева И.А. «Информатика. Язык Питон» (2016)", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

1Воробьева И.А. «Информатика. Язык Питон»Массивы (продолжение-1)Одномерные массивы и матрицы. Простейшие алгоритмы в массивах: поиск,экстремумы, накопление сумм и произведений. Просмотр массива: полностью,по частям, с досрочным выходом.5.3. Матрицы и вложенный параметрический циклВложенный параметрический цикл встречается довольно частопри работе с различными двумерными структурами, например сдвумерными массивами (матрицами):for <cчетчик1> in <последовательность1> :<операции>for <cчетчик2> in <последовательность2> :<операция 1><операция 2>…# теловнутреннегоцикла 2# теловнешнегоцикла 1<операция M># внутренний цикл 2 окончен<операции># внешний цикл 1 оконченЧисло вложений не ограничивается иначе, чем соображениямиразумности кода.print(‘i j’)for i in range(2):for j in range(3):print(i, ‘,’ , j)на экране увидим i j0, 00, 10, 21, 01, 11, 22Воробьева И.А.

«Информатика. Язык Питон»Его изображение в блок-схемах выглядит следующим образом:началоi=0; n-1; ±шагоперация 1j=0; m-1; ±шагоперация 1…операция Mоперация 2…операция NконецМатрицей часто называют двумерный массив, как правило,числовой. На рисунке 5.3. показано схематически, как располагаютсяэлементы статических одномерных и двумерных массивов в памятикомпьютера. Обратите внимание, что число однотипных элементов вовсех трех массивах, а значит и занимаемая ими память, одинаково.адрес10200224МАССИВ_(6)3546501302410511521622612МАССИВ_(3,2)адрес13МАССИВ_(2,3)адрес1100201310411Рисунок 5.3. Схематический пример размещения в памяти компьютера одномерного массиваиз 6 элементов, двумерного размерности (2, 3) и двумерного размерности (3, 2).

Индексация3Воробьева И.А. «Информатика. Язык Питон»указана в соответствии с принятой в Python.Ниже показано, как массив и матрицы будут выглядеть впривычной математической форме. Вместо элементов написаныиндексы с поправкой на индексацию, принятую в Python. Как правило,в матрицах: первый индекс – это номер строки, а второй индекс – этономер столбца.Бывает полезно уметь вычислять связь между порядковым номером ( )элемента в одномерном представлении матрицы в памяти (как если бымы вычисляли номер элемента слева направо, сверху вниз) и егоиндексами в матричном представлении. Пусть – число строк, - числостолбцов, а и – индексы строк и столбцов, тогда.Действительно:− в массиве_(2,3) элемент [1,1] имеет номер− в массиве_(3,2) элемент [2,0] имеет номер;.4Воробьева И.А.

«Информатика. Язык Питон»Примеры объявлений матриц# РАЗДЕЛ КОНСТАНТN=10M=9SIZE=3# РАЗДЕЛ ПЕРЕМЕННЫХ# изменяемая матрица из (N*M) вещественных чисел. После создания всеэлементы равны нулюDub = [0.0]*N # сначала укажем число N строкfor i in range(N): Dub[i]=[0.0]*M # а в каждой строке число M столбцов# изменяемая квадратная матрица из (3,3) целых чисел. После создания всеэлементы равны «10»Numb = [10]*SIZE # сначала укажем число SIZE строкfor i in range(SIZE):Numb[i]=[10]*SIZE # а в каждой строке число SIZE столбцов# изменяемая матрица из (25, 10) строковых переменных. После создания всеэлементы равны «пустой строке»Kod = [‘’]*25for i in range(25): Kod[i]=[‘’]*10# изменяемая матрица из (N,M) КОМПЛЕКСНЫХ чисел. Послесоздания все элементы равны «0+0j» нулю равны и действительнаяи мнимая части числаC = [0+0j]*Nfor i in range(N): C[i]=[0+0j]*M# ---------------- явное объявление матриц-переменных -----------------Points = [ [0.0, -1.0, 1.5],# 1-я строка[0.0, 75.2, -1.5] ]# 2-я строка# объявлена матрица (2, 3) из вещественных чиселPnt = [ [0 + 2j,-j, 1.5-4j],[ 0j, 75.2+2j, -1.5+0j] ]# 1-я строка# 2-я строка# объявлена матрица (2, 3) из КОМПЛЕКСНЫХ чисел5Воробьева И.А.

«Информатика. Язык Питон»# ---------------- объявление матриц-констант ----------------------Kol = ( (0, 1, 5, -5, 2),# 1-я строка(0, 0, 0, 0, 0),# 2-я строка(-10, 1, 3, -5, -2) )# 3-я строка# объявлена целочисленная матрица (3, 5)Name = ( (‘Николай’, ‘Мария’, ‘Иосиф’), (‘Никита’, ‘Михаил’, ‘Инга’) )# объявлена матрица (2, 3) из строкДоступ к элементам матрицы осуществляется по имени с указаниеминдексов строки и столбца, на пересечении которых расположенэлемент, индексы нумеруются с нуля (см. рис.5.3):ИМЯ [индекс_строки][индекс_столбца]ПримерыA=Dub[2][ 1]# вещественная переменная A равна значениюэлемента из 3-й строки и 2-го столбца матрицы DubPoints[0][0]=Pints[1][2]# значение элемента из 1-й строки и1-го столбца, заменяется значением элемента из2-ой строки и 3-го столбца, т.е.

теперь они будутравны по значению числу «-1.5»Kod[24][9]=’Елена’С[1][2]=35.7 + 1.5j# запись строки в последний элементматрицы Kod# запись комплексного числав последнюю ячейку матрицы СПусть i=5 и j=2, тогдаprint(Dub[i][j])# вывод на экран вещественного значенияэлемента из 6-й строки и 3-го столбца матрицы Dubprint(Dub[i]) # вывод на экран 6-й строки матрицы Dub полностьюDub[i][j]=float(input(‘ Dub[i, j]: ’) ) # ввод c клавиатуры вещественногозначения в 6-ю строку и 3-й столбец матрицы Dub6Воробьева И.А.

«Информатика. Язык Питон»Типичные операции с матрицами ввод матрицы; вывод матрицы; присвоение матриц; обмен содержимым между двумя элементами матрицы; поиск MAX (MIN) элемента в матрице; поиск заданного элемента матрицы;операции с элементами, расположенными над (или под) главнойдиагональю квадратной матрицы.Пример ввода пямоугольной матрцы (n, m) с клавиатуры:ЕслиTmp(n,m) – матрица из строк илиTmp(n,m) – матрица из целых чисел илиTmp(n,m) – матрица из вещественных чисел илиTmp(n,m) – матрица из КОМПЛЕКСНЫХ чиселТогдаfor i in (n) : # цикл по строкам, i=0,1,….n-1for j in (m) : # считываем i-строку по j=0,1,….m-1 столбцамTmp[i][ j]=input (‘ввод: ‘) # для строковых типов илиTmp[i][j]=int(input (‘ввод: ‘)) # для целых типов илиTmp[i][ j]=float(input (‘ввод: ‘)) # для вещественных типов илиTmp[i][ j]=complex(input (‘ввод: ‘)) # для КОМПЛЕКСНЫХ типов# внутренний цикл закончен  переходим на следующую строку# внешний цикл закончен  ввод завершен7Воробьева И.А.

«Информатика. Язык Питон»Пример простого вывода пямоугольной матрцы (n, m) на экран:способ 1for i in (n) : # цикл по строкам, i=0,1,….n-1for j in (m) :# вывод i-строкиprint(Tmp[i, j], end=’, ‘) # параметр end=’, ‘ подавляет переводкаретки и заменяет его на два символа «,» и «пробел»print() # переход на следующую строку на экранеДля n=2, m=3 получим:20, -3, 0,-2, -3, 1,Если бы мы не использовали параметр end=’, ‘ в функции print(), тоувидели бы следующее вместо удобного матричного вида:20-30-2-31способ 2 (используем способность Python выводить массивы, но приэтом стоит помнить, что мы будем лишены возможностиформатировать вывод, во-первых, и такую возможность дает далеко невсякий язык, во-вторых)for i in (n) : # цикл по строкам, i=0,1,….n-1print(Tmp[i]) # вывод i-строки целикомДля n=2, m=3 получим:[20, -3, 0][-2, -3, 1]способ 3(используем способность Python выводить любые массивы,при этом внешний вид становится крайне неудобный, зато можнобыстро посмотреть содержимое массива)print(Tmp)# вывод матрицы полностьюДля n=2, m=3 получим:[[20, -3, 0], [-2, -3, 1]]8Воробьева И.А.

«Информатика. Язык Питон»Пример блок-схемы вложенного параметрического циклаввода/вывода прямоугольной матрицы.началоi=0; n-1; +1j=0; m-1; +1ввод Tmp[i][j]конецЗамечание 5.2. Обратите внимание, что нарушение диапазона (выходза границы индексации) является самой распространенной ошибкойпри работе с массивами.5.4. Поиск в массивах и матрицахАлгоритм поиска MAX (MIN) элемента в массиве (матрице)примитивен. Считаем MAX (MIN) элементом – первый элементмассива. Начинаем сравнивать с ним последовательно всеэлементы, начиная со второго 1 .

Если очередной элемент строгобольше (меньше) максимального (минимального), тогда этотэлемент становится MAX (MIN).1В матрицах придется начинать поиск сравнение с первого элемента из-за использования «двойного» параметрического цикла. В противном случае из поиска может оказаться вычеркнута целая строка или целый столбец. Подумайте сами почему.9Воробьева И.А. «Информатика.

Язык Питон»В массиве может быть несколько элементов (хоть все элементымассива) с одинаковыми значениями. В этом случае нужно определитьточно в задаче – ищем мы первый или последний MAX (MIN). Если присравнении мы используем строгие условия (“>” или “<”), тогда найдемпервый MAX (MIN) из одинаковых экстремумов, а если мы используемнестрогие условия (“≥” или “≤”), то найдем последние MAX (MIN) изодинаковых экстремумов.Пример. Поиск первого максимального элемента и его номерав массиве.Дан целочисленный массив с числом элементовпервый максимальный элементи его номер.

Ищем в нем.Считаем, что массив уже заполнен любым известным способом.!началоБлок-схема (алгоритм)решения задачи.Dmax=D[0]; Nmax=0Forдаi=1; kol-1; +1if D[i] > DmaxнетDmax=D[i]; Nmax=iконец10Воробьева И.А. «Информатика. Язык Питон»Алгоритм поиска MAX (MIN) с условиемЗадача 5.1. Найти последний минимальный элементи егономерсреди положительных элементов целочисленногомассиваразмерности. Альтернатива: если положительныхэлементов в нет, то сообщить об этом.Метод. Для обозначения «найдены или нет» положительныеэлементы введем логическую переменную=True, то положительные элементы есть, еслито положительные элементы не найдены.o Начальное значениепока нет);.Если=False,= False (положительных элементовo Начинаем перебор всех элементов , начиная с первого(). Если очередной элемент больше нуля, то проверим. Если= False, значит найден первый положительный элемент и он же пока минимальный.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5168
Авторов
на СтудИзбе
438
Средний доход
с одного платного файла
Обучение Подробнее