Главная страница
Навигация по странице:

  • 3. ПОРЯДОК ВЫПОЛНЕНИЯ 1. Получить задание у преподавателя. 2. Выполнить задание в соответствии с вариантом. 3. Ответить на контрольные вопросы. 4. ЗАДАНИЕ

  • 0.5  (A 2 + A T ) 2. (A 2 + E)  6 3. T  T T + E 4. 3  (C 2

  • C + (E – 6  C 2 ) 18. A 2 – 2  (A + E) 19. 3  T T + E + T 2 20. 7  (A T

  •  (9  A – E) 25. C 2 – 8  (C + E) 26. A 2 + E – 3  A T 27. 2  T 2 – E + T T

  • Лабораторная работа № 8 Сортировка массивов 1. ЦЕЛЬ РАБОТЫ

  • 2. ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ Основные положения

  • Сортировка методом прямого выбора

  • информатика. Игнатьева Елена Александровна, Измайлова Елена Ивановна. Информатика. Электронный ресурс методические указания


    Скачать 4.32 Mb.
    НазваниеИгнатьева Елена Александровна, Измайлова Елена Ивановна. Информатика. Электронный ресурс методические указания
    Дата20.06.2022
    Размер4.32 Mb.
    Формат файлаpdf
    Имя файлаинформатика.pdf
    ТипМетодические указания
    #604814
    страница11 из 15
    1   ...   7   8   9   10   11   12   13   14   15
    Операции с матрицами
    Основные виды матриц
    В математике матрицей называют прямоугольную таблицу значений, упорядоченных по строкам и столбцам, например, мат- рица A размера n  m имеет вид:
    





    






    nm
    2
    n
    1
    n m
    2 22 21
    m
    1 12 11
    a a
    a a
    a a
    a a
    a
    A
    , где a ij
    – элемент матрицы А, расположенный в i-ой строке j- ого столбца; m, n – количество строк и столбцов матрицы соот- ветственно.
    Матрица характеризуется размерностью, то есть произведе- нием числа строк на число столбцов.
    Элементы a ii
    (i = j) образуют главную диагональ матрицы А.
    Если количество строк и столбцов матрицы совпадают, т.е. n = m то матрицу называют квадратной, если не совпадают – прямоугольной матрицей.

    136
    Матрица размером 1  m называется вектором-строкой, раз- мера n  1 – вектором столбцом.
    Нулевой называется матрица у которой элементы a ij
    = 0.
    0 0
    0 0
    0 0
    0 0
    0 0
    0 0
    0 0
    0 0












    Единичной называется квадратная матрица, у которой на главной диагонали стоят 1, а все остальные элементы равны 0.
    1 0
    0 0
    0 1
    0 0
    0 0
    1 0
    0 0
    0 1












    Диагональной является квадратная матрица, где все элементы
    (кроме элементов, расположенных на главной диагонали) равны
    0, т.е. a ij
    = 0 при i  j.
    2 0
    0 0
    0 8
    0 0
    0 0
    5 0
    0 0
    0 9












    Квадратная матрица A размерностью n  n называется сим- метричной (симметрической), если a ij
    = a ji
    1 2
    3 4
    2 5
    6 7
    3 6
    8 9
    4 7
    9 0












    Треугольной называется матрица порядка n  n, у которой одна часть элементов (либо над главной диагональю, либо под ней) равна 0.
    1 0
    0 0
    2 3
    0 0
    4 5
    6 0
    7 8
    9 10












    1 2
    3 4
    0 5
    6 7
    0 0
    8 9
    0 0
    0 10













    137
    Транспонированной матрицей A
    T
    , называется матрица у ко- торой строки полностью совпадают со столбцами исходной мат- рицы А, а столбцы – со строками матрицы А.
    Основные операции с матрицами
    Операции над матрицами определяются с помощью опера- ций над их элементами:
    1. Две матрицы А и В размерностью n  m равны друг другу
    (А = В) в том случае, если a ij
    = b ij
    ;
    2. Сумма матриц А и В размерностью n  m есть матрица
    C(n  m), то есть С = A + B = (a ij
    + b ij
    ) = c ij
    , где i = 1, 2, …, n; j = 1,
    2, …, m;
    3. Произведение матрицы А на скаляр  – есть матрица
    С =   A = (  a ij
    ) = c ij
    ;
    4. Произведение матрицы А размерностью n  m на матрицу
    В размерностью m  r – есть матрица С размерностью n  r, то есть






    m
    1
    k kj ik ij b
    a с
    , где i = 1, 2, …, n; j = 1, 2, …, m.
    Ввод матриц
    1. Блок схема формирования произвольной матрицы А раз- мерностью (n  m)приведена на рис 3.
    2. Блок-схема формирования нулевой матрицы А размерно- стью (n  m) приведена на рис. 4.
    3. Блок-схема формирования единичной матрицы А размер- ностью (n  n) приведена на рис. 5.

    138
    Рис. 3. Блок-схема формирования произвольной матрицы А(n ? m)
    Рис. 4. Блок-схема формирования нулевой матрицы А(n  m)
    4. Блок-схема формирования диагональной матрицы А размерностью (n  n) приведена на рис. 6.
    5. Блок-схема формирования симметричной матрицы А размерностью (n  n) представлена на рис. 7.
    6. Блок-схема формирования треугольной матрицы А раз- мерностью ( n  n ) представлена на рис. 8, 9.
    Ввод N, M
    I = 1, N, 1
    A(I, J) = 0
    J = 1, M, 1
    Ввод N, M
    I = 1, N, 1
    Ввод A(I, J)
    J = 1, M, 1

    139
    Рис. 5. Блок-схема формирования единичной матрицы А(n  n)
    Рис. 6. Блок-схема формирования диагональной матрицы А(n  n)
    Ввод N
    I = 1, N, 1
    J = 1, N, 1
    I < > J
    A(I, J)
    A(I, J)
    Ввод N
    I = 1, N, 1
    J = 1, N, 1
    I < > J
    A(I, J)
    Ввод A(I, J)

    140
    Рис. 7. Блок-схема формирования симметричной матрицы А(n  n)
    Рис. 8. Блок-схема формирования треугольной матрицы А(n  n) с нулями под главной диагональю
    Ввод N
    I = 1, N, 1
    J = 1, N, 1
    I > J
    A(I, J)
    Ввод A(I, J)
    Ввод N
    I = 1, N, 1
    J = I, N, 1
    I < > J
    A(J, I) = A(I,
    Ввод A(I, J)

    141
    Рис. 9. Блок-схема формирования треугольной матрицы
    А(n  n) с нулями над главной диагональю
    Вывод матриц
    На рис. 10 представлена блок-схема вывода матрицы
    А(n  n).
    Рис. 10. Блок-схема вывода матрицы А(n  n)
    I = 1, N, 1
    Вывод A(I, J)
    J = 1, M, 1
    Ввод N
    I = 1, N, 1
    J = 1, N, 1
    I  J
    A(I, J)
    Ввод A(I, J)

    142
    Операции над матрицами
    1. Блок-схема умножения матрицы А размерностью
    (n  m) на константу С и получения результирующей матрицы В представлена на рис. 11.
    Рис. 11. Блок-схема умножения матрицы А(n ? m) на константу С и получения результирующей матрицы В(n ? m)
    2. Блок-схема транспонирования матрицы А размерностью
    (n  n) представлена на рис. 12.
    Рис. 12. Блок-схема транспонирования матрицы А(n ? n)
    I = 1, N, 1
    J = 1, M, 1
    B(I, J) = A(I, J)C
    I = 1, N, 1
    J = I + 1,
    X = A(I, J)
    A(I, J) =
    A(J, I) = X

    143 3. Блок-схема сложения матриц А и В размерностями
    (n  m) и получения результирующей матрицы Стой же размер- ности представлена на рис. 13.
    Рис. 13. Блок-схема А(n  m) и В(n  m) и получения результирующей матрицы С(n  m)
    4. Блок-схема умножения матриц А(m  n) и В(n  l) и по- лучения результирующей матрицы С размерностью (m  l) пред- ставлена на рис. 14.
    Рис. 14. Блок-схема умножения матриц А(m  n) и В(n  l) и получения результирующей матрицы С(m  l)
    I = 1, N, 1
    J = 1, M, 1
    С(I, J) = A(I, J) +
    I = 1, M, 1
    J = 1, L, 1
    C(I, J) = 0
    C(I, J) = C(I, J) + A(I, K) 
    K = 1, N, 1

    144
    3. ПОРЯДОК ВЫПОЛНЕНИЯ
    1. Получить задание у преподавателя.
    2. Выполнить задание в соответствии с вариантом.
    3. Ответить на контрольные вопросы.
    4. ЗАДАНИЕ
    Варианты заданий для лабораторной работы по теме "мас- сивы"
    1. Дан массив натуральных чисел. Найти количество и сумму элементов, кратных заданному числу К.
    2. В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов.
    3. Дана последовательность натуральных чисел. Создать массив из четных чисел заданной последовательности. Если та- ких чисел нет, то вывести сообщение об этом.
    4. Дана последовательность действительных чисел. Заме- нить все ее члены, большие заданного числа К, этим числом.
    Подсчитать количество замен.
    5. Дан массив действительных чисел. Поменять местами наибольший и наименьший элементы заданного массива.
    6. Дан целочисленный массив. Напечатать те его элемен- ты, индексы которых являются степенями двойки (1, 2, 4, 8 и т. д.).
    7. В массиве целых чисел найти наиболее часто встречаю- щееся число. Если таких чисел несколько, то определить наи- меньшее из них.
    8. Дана последовательность целых чисел. Найти сумму ее членов, расположенных между максимальным и минимальным элементами (включая оба эти числа).
    9. Дана последовательность целых чисел. Вывести произ- ведения всех пар соседних чисел.
    10. В заданной последовательности определить максималь- ный элемент. Подсчитать количество элементов равных макси- мальному.
    11. В массиве, содержащем номер месяца рождения каждо- го студента группы, подсчитать количество всех студентов, кото- рые родились в заданном месяце К, и напечатать их номера.

    145 12. В области 10 районов. Заданы площади, засеваемые в каждом районе пшеницей, и урожай, собранный в каждом рай- оне. Определить среднюю урожайность пшеницы по каждому району и по области в целом.
    13. Известны значения ежедневной температуры воздуха в марте. Найти среднюю температуру и количество теплых дней
    (выше 0).
    14. Даны натуральные числа помощью X1, X2, . . ., X10; Y1,
    Y2, . . . , Y10. Определить количество точек с координатами
    (Xi, Yi), которые лежат в круге с центром (125, 96) и радиусом 50.
    15. Многочлен N-ой степени задан массивом своих коэф- фициентов. Определить коэффициенты первой производной за- данного многочлена.
    16. Дана последовательность действительных чисел. Ука- зать те ее элементы, которые принадлежат отрезку [c, d].
    17. Даны целые числа a
    1
    , a
    2
    , . . . , a n
    . Определить только те числа, для которых выполняется условие a i
     i.
    Варианты заданий для лабораторной работы по теме "элементарные операции с матрицами"
    1. 0.5  (A
    2
    + A
    T
    )
    2. (A
    2
    + E)  6
    3. T  T
    T
    + E
    4. 3  (C
    2
    + E)
    5. (A
    2
    - E)  A
    T
    6. (2  T + E)  T
    T
    7. 2  A + (A + E)
    2
    8. C  (5  C - E)
    9. (3  T
    2
    + E)
    T
    10. C
    2
    + 2  C + E
    11. A  (4  A
    T
    + E)
    12. (E + 7  T
    T
    )  T
    13. 5  (A + E)
    2
    14. 8  C
    2
    + E
    15. T  (3  T – E)
    16. (7  A
    2
    + E)
    T

    146 17. C + (E – 6  C
    2
    )
    18. A
    2
    – 2  (A + E)
    19. 3  T
    T
    + E + T
    2
    20. 7  (A
    T
    + E)
    2
    21. (E+C)  2 C
    22. A  (5  A
    T
    + E)
    23. T – (T
    T
    + E)
    2
    24. A
    T
     (9  A – E)
    25. C
    2
    – 8  (C + E)
    26. A
    2
    + E – 3  A
    T
    27. 2  T
    2
    – E + T
    T
    28. 2  (A - E)
    T
     A
    Обозначения: A, T, C, E – квадратные матрицы порядка N;
    A – произвольная матрица;
    T – треугольная матрица;
    C – симметричная матрица;
    E – единичная матрица.
    5. КОНТРОЛЬНЫЕ ВОПРОСЫ
    1. Что такое массив?
    2. Одномерные и двумерные массивы.
    3. Статические и динамические массивы.
    4. Описание статических массивов.
    5. Описание динамических массивов.
    6. Функция Rnd.
    7. Что такое матрица?
    8. Расскажите об основных видах матриц.
    9. Блок-схема формирования единичной матрицы.
    10. Блок-схема формирования симметричной матрицы
    11. Блок-схема транспонирования матрицы.
    12. Блок-схема умножения матрицы А(m  n) на матрицу
    В(n  l).

    147
    Лабораторная работа №
    8
    Сортировка массивов
    1. ЦЕЛЬ РАБОТЫ
    Целью работы является изучение методов сортировки и по- лучение практических навыков сортировки массивов.
    2. ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ
    Основные положения
    В общем случае сортировку следует понимать как процесс перегруппировки заданного множества объектов в некотором оп- ределенном порядке.
    Цель сортировки – облегчить последующий поиск элемен- тов в таком отсортированном множестве.
    Мы встречаемся с отсортированными объектами в телефон- ных книгах, в оглавлениях книг, в библиотеках, в словарях, на складах – почти везде, где нужно искать хранимые объекты. Да- же малышей учат держать свои вещи "в порядке", и они уже сталкиваются с некоторыми видами сортировки задолго до того, как ознакомятся с азами арифметики.
    Сортировка – пример задачи, которую можно решать с по- мощью многих различных алгоритмов, имеющих и свои достоин- ства, и свои недостатки. И выбирать алгоритмы, нужно исходя из конкретной постановки задачи.
    Введем некоторые обозначения и понятия.
    Если у нас есть элементы A
    1
    , A
    2
    ,…, A
    N
    , то сортировка есть перестановка этих элементов так, чтобы при некоторой упорядо- чивающей функции F выполнялись отношения: F(A
    K1
    ) ≤ F(A
    K2
    )
    … ≤ F(A
    KN
    ). Если сортировка происходит по убыванию, то знак отношения меняется на противоположный "≥". При решении практических задач упорядочивание массива, как правило, со- провождается некоторыми дополнительными действиями. На- пример, если A
    1
    ,Y
    1
    ; A
    2
    ,Y
    2
    ;…; A
    N
    ,Y
    N
    – это значения аргумента A и некоторой функции Y = f(A), то перестановка этих аргументов

    148 должна сопровождаться одновременной перестановкой и значе- ний функции.
    Рассмотрим методы сортировки.
    методом прямого включения
    Такой метод широко используется при игре в карты. Эле- менты (карты) мысленно делятся на уже "готовую" последова- тельность A
    1
    , A
    2
    ,…, A
    i-1
    , и "оставшуюся" (не сортированную) часть: A
    i
    , A
    i+1
    ,…, A
    N
    Суть метода заключается в том, что при каждом i-ом шаге
    (начиная с i = 2), из неотсортированной части извлекается i-ый элемент и помещается в "готовую" часть, при этом он вставляется на нужное место.
    Текстовый алгоритм метода:
    1. Начало.
    2. Выполнить цикл, пока i имеет значения от 2 до N, шаг = 1: а) i-ый элемент (A(i)) поместить в ячейку A(0); б) присвоить j = -1, то есть j равно номеру элемента, нахо- дящегося слева от испытуемого (i-го) и таким образом стоящего в "готовой" последовательности; в) если А(0) ≥ А(j), то элемент А(0) поместить в ячейку
    А(j+1), иначе элемент А(j) поместить в ячейку А(j+1), уменьшить значение j на единицу и вновь выполнить пункт в).
    3. Конец.
    На рис. 1 представлена блок-схема сортировки методом прямого включения.
    Метод работает следующим образом: на i-ом шаге (начиная с i = 2) i-ый элемент помещается в свободную ячейку (например,
    А(0)). Этот элемент сравнивается со стоящим в "готовой" части слева от него элементом. Если элемент А(0) меньше, то происхо- дит сдвиг вправо сравниваемого (j-го элемента) на одну позицию, после чего для сравнения берется следующий элемент. Если же элемент А(0) при сравнении оказывается не меньше, то он поме- щается на место, стоящее сразу за сравниваемым элементом.

    149
    Рис. 1. Блок-схема сортировки методом прямого включения
    На рис. 2 приведен пример выполнения сортировки методом прямого включения.
    Исходн ая последовател
    4 4
    5 5
    1 2
    4 2
    9 4
    1 8
    0 6
    6 7
    А
    (0)
    I
    = 2 4
    4 5
    5 1
    2 4
    2 9
    4 1
    8 0
    6 6
    7
    I
    = 3 4
    4 5
    5 1
    2 4
    2 9
    4 1
    8 0
    6 6
    7
    I
    = 4 1
    2 4
    4 5
    5 4
    2 9
    4 1
    8 0
    6 6
    7
    I
    = 5 1
    2 4
    2 4
    4 5
    5 9
    4 1
    8 0
    6 6
    7
    I
    = 6 1
    2 4
    2 4
    4 5
    5 9
    4 1
    8 0
    6 6
    7
    I
    = 7 1
    2 1
    8 4
    2 4
    4 5
    5 9
    4 0
    6 6
    7
    I
    = 8 0
    6 1
    2 1
    8 4
    2 4
    4 5
    5 9
    4 6
    7
    Резуль- тат
    0 6
    1 2
    1 8
    4 2
    4 4
    5 5
    6 7
    9 4
    Рис. 2. Пример сортировки методом прямого включения

    150
    Сортировка прямым включением больше подходит для слу- чая, когда сортируемые данные поступают последовательно (од- но за другим).
    Сортировка методом прямого выбора
    Суть метода заключается в следующем. Выбирается наи- меньший элемент в "оставшейся" (неотсортированной) части и меняется местами с первым элементом (в этой же неотсортиро- ванной части). После этого длина неотсортированной части уменьшается на один элемент (на первый), и весь процесс про- должается уже с (n – 1) элементами, затем с (n – 2) элементами и т.д., до тех пор, пока не останется один, самый большой элемент.
    Этот метод в некотором смысле противоположен методу прямого включения. В методе прямого включения на каждом ша- ге рассматривается только один очередной элемент и все элемен- ты уже "готовой" части последовательности, среди которых оты- скивается точка включения этого очередного элемента. А в мето- де прямого выбора для поиска одного (минимального) элемента просматривают все элементы неотсортированной части, и этот минимальный элемент помещается как очередной элемент в уже "готовую" часть.
    Текстовый алгоритм метода:
    1. Начало.
    2. Выполнить цикл, пока i имеет значения от 1 до N – 1, шаг = 1: а) поместим текущий (i-ый) элемент в какую-нибудь ячейку памяти (Х) и запомним порядковый номер (i) текущего элемента
    (в переменной К); б) выполнить цикл, пока j имеет значения от i + 1 (то есть от следующего за i элемента) до N, шаг = +1: тело цикла: если Х > А(j), то помещаем в ячейку Х элемент
    А(j) и запоминаем его номер в ячейке К; в) присвоить А(К) = А(i) и А(i) = Х.
    3. Конец.
    На рис. 3 приведен пример выполнения сортировки методом прямого выбора.

    151
    Исходн ая последовате
    4 4
    5 5
    1 2
    4 2
    9 4
    1 8
    0 6
    6 7
    I = 1 0
    6 5
    5 1
    2 4
    2 9
    4 1
    8 4
    4 6
    7
    I = 2 0
    6 1
    2 5
    5 4
    2 9
    4 1
    8 4
    4 6
    7
    I = 3 0
    6 1
    2 1
    8 4
    2 9
    4 5
    5 4
    4 6
    7
    I = 4 0
    6 1
    2 1
    8 4
    2 9
    4 5
    5 4
    4 6
    7
    I = 5 0
    6 1
    2 1
    8 4
    2 4
    4 5
    5 9
    4 6
    7
    I = 6 0
    6 1
    2 1
    8 4
    2 4
    4 5
    5 9
    4 6
    7
    I = 7 0
    6 1
    2 1
    8 4
    2 4
    4 5
    5 6
    7 9
    4
    Рис. 3. Пример сортировки методом прямого выбора
    На рисунке 4 приведена блок-схема сортировки методом прямого выбора.
    Рис. 4. Блок-схема сортировки методом прямого выбора
    Сортировка прямым выбором подходит для случая, когда все данные находятся в памяти, а отсортированные данные по- следовательно выводятся.
    A(k) = A(i)
    A(i) = X
    X = A(j)
    K = J i= 1, N - 1, 1
    X = A(i)
    K = i
    X ≥ A(j) j = i + 1, N, 1

    152
    1   ...   7   8   9   10   11   12   13   14   15


    написать администратору сайта