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

  • Лабораторная работа

  • Тип Имя_массива [Размер1][Размер2]...[РазмерN];

  • [i][i]

  • № вар-та Задание Изображение

  • матрицы. Лаб_#5 Матрицы. Системы информационной безопасности


    Скачать 226.52 Kb.
    НазваниеСистемы информационной безопасности
    Анкорматрицы
    Дата20.10.2022
    Размер226.52 Kb.
    Формат файлаpptx
    Имя файлаЛаб_#5 Матрицы.pptx
    ТипЛабораторная работа
    #745318

    Тема: Многомерные массивы (матрицы)


    Дисциплина: Основы алгоритмизации и программирования

    Для студентов специальности:

    «Системы информационной безопасности»

    Автор: стар. преп. Бартосик Ф.М.


    Карагандинский технический университет

    Кафедра информационных технологий и безопасности

    Лабораторная работа

    Цель работы

    Получение практических навыков в работе с многомерными массивами в языке C/C++.

    Задачи работы

    Освоить следующие темы:

      • операторы цикла языка C/C++;
      • вложенные циклы;
      • матрицы.

    Содержание работы:

    • Создать квадратную матрицу целых чисел размером 9х9;
    • Если по условию задания матрицу следует заполнить случайными числами, рекомендуется выбирать эти числа из диапазона 0 - 99. Если по условию задания в матрицу следует записать линейную последовательность чисел, имеется в виду последовательность: 1, 2, 3, 4, 5, ... ;
    • Согласно варианта задания указано, какую обработку матрицы требуется выполнить;
    • Вывести на печать исходные данные и результат.
    • Порядок выполнения работы:

    • Ознакомление с теоретической частью;
    • Изучение типового примера;
    • Выполнение индивидуального задания;
    • Ответы на контрольные вопросы;
    • Оформление отчета.

    Многомерные массивы

    В C и C++ поддерживаются многомерные массивы. При объявлении многомерных массивов задается тип элементов массива, имя массива и затем, в отдельных квадратных скобках – количество элементов по каждой размерности:

    Тип Имя_массива [Размер1][Размер2]...[РазмерN];

    Пример.

    const int K=4;

    const int N=3;

    const int M=5;

    int one[N]; // одномерный массив

    int two[N][M]; // двумерный массив

    int three[K][N][M]; // трехмерный массив

    for (int i=0;i

    for (int p=0;p

    for (int q=0;q

    for (int i=0;i

    for (int p=0;p

    for (int q=0;q

    three[i][p][q]=one[i]+ two[p][q];

    Разбор типового варианта (алгоритм)

    Выполним следующее задание. Заполнить матрицу случайными числами. Отобразить главную и побочную диагонали симметрично относительно вертикальной оси.

    Вначале (первый блок программы) необходимо заполнить матрицу случайными числами и вывести ее на экран. Это можно сделать с помощью двух вложенных циклов.

    Затем (второй блок) – отобразить главную и побочную диагональ симметрично вертикальной оси. Обозначим размерность матрицы как s, номер строки как i, а номер столбца как j, и заметим, что нумерация строк и столбцов будет начинаться с 0, отсюда можно определить, что если элементы главной диагонали имеют индексы [i][i], то соответствующие элементы побочной диагонали имеют индексы [i][s-1-i]. Следовательно, алгоритм может состоять из перебора матрицы строка за строкой и сменой соответствующих элементов главной и побочной диагоналей местами (с помощью вспомогательной переменной x).

    Затем (третий блок) необходимо вывести на экран элементы новой матрицы.

    Разбор типового варианта (листинг)

    #include

    #include

    #include

    #include

    int main() {

    const int s = 9;

    int A[s][s];

    short i,j,x;

    srand(time(NULL));

    printf("\nOriginal matrix:\n\n");

    //заполняем и выводим матрицу

    for(i=0;i

    for(j=0;j

    A[i][j]=rand()%100;

    printf("%3d",A[i][j]);

    }

    putchar('\n');

    }

    Разбор типового варианта (листинг, продолжение)

    //меняем диагонали

    for(i=0;i

    x=A[i][i];

    A[i][i]=A[i][s-1-i];

    A[i][s-1-i]=x;

    }

    printf("\nNew matrix:\n\n");

    //выводим результирующую матрицу

    for(i=0;i

    for(j=0;j

    printf("%3d",A[i][j]);

    putchar('\n');

    }

    getch();

    return 0;

    }

    Правила отчетности студента

    Отчет должен содержать:

    • Титульный лист;
    • Цель работы;
    • Постановка задачи;
    • Текст программы (с комментариями);
    • Результат выполнения программы;
    • Ответы на контрольные вопросы.

    Контрольные вопросы:

    • Как происходит объявление статических многомерных массивов, и обращение к элементам таких массивов?
    • Представление статических массивов в памяти;
    • Генерация случайных чисел;
    • Вложенные циклы.

    Задания (варианты 1-4):


    № вар-та

    Задание

    Изображение

    1

    Заполнить матрицу случайными числами. Развернуть матрицу на 90° по часовой стрелке.

    2

    Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали

    3

    Заполнить матрицу линейной последовательностью чисел, от левого верхнего угла по спирали: вправо - вниз - влево - вверх.

    4

    Заполнить матрицу линейной последовательностью чисел, от центра по спирали: влево - вниз - вправо - вверх.

    Задания (варианты 5-8):


    № вар-та

    Задание

    Изображение

    5

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

    6

    Заполнить матрицу линейной последовательностью чисел, от левого верхнего угла по диагонали: вправо – вверх

    7

    Заполнить матрицу линейной последовательностью чисел, от левого нижнего угла по диагонали: влево - вверх.

    8

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

    Задания (варианты 9-12):


    № вар-та

    Задание

    Изображение

    9

    Заполнить секторы матрицы, которые лежат влево и вправо от главной и побочной диагоналей, линейной последовательностью чисел, от левого верхнего угла вниз - вправо. Остаток матрицы заполнить нулями.

    10

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

    11

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

    12

    Заполнить матрицу случайными числами. Отобразить верхнюю половину матрицы на нижнюю зеркально симметрично относительно горизонтальной оси.

    Задания (варианты 13-16):


    № вар-та

    Задание

    Изображение

    13

    Заполнить матрицу случайными числами. Розбить матрицу на квадраты размером 3х3. В центре каждого квадрата поместить сумму остальных элементов квадрата.

    14

    Заполнить матрицу случайными числами. Отобразить правую половину матрицы на левую зеркально симметрично относительно вертикальной оси.

    15

    Заполнить секторы матрицы, которые лежат влево и вправо от главной и побочной диагоналей линейной последовательностью чисел, от левого верхнего угла вправо - вниз. Остаток матрицы заполнить нулями.

    16

    Заполнить матрицу случайными числами. Развернуть матрицу на 90o против часовой стрелки.

    Задания (варианты 17-20):


    № вар-та

    Задание

    Изображение

    17

    Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно побочной диагонали

    18

    Заполнить матрицу линейной последовательностью чисел, от левого верхнего угла по спирали: вниз - вправо - вверх - влево.

    19

    Заполнить матрицу линейной последовательностью чисел, от центра по спирали: вниз - влево - вверх - вправо.

    20

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

    Список литературы:

    • Липачёв Е.К. Технология программирования. Базовые конструкции C/C++: учебно–справочное пособие / Е.К. Липачёв. – Казань: Казан. ун-т, 2012. - 142 с.
    • Сидорина, Татьяна Самоучитель Microsoft Visual Studio C++ и MFC / Татьяна Сидорина. - М.: "БХВ-Петербург", 2014. - 848 c.
    • Довбуш, Галина Visual C++ на примерах / Галина Довбуш, Анатолий Хомоненко. - М.: БХВ-Петербург, 2012. - 528 c.
    • Панюкова, Т. А. Языки и методы программирования. Создание простых GUI-приложений с помощью Visual С++. Учебное пособие / Т.А. Панюкова, А.В. Панюков. - Москва: Мир, 2015. - 144 c.

    Спасибо за внимание! Можно приступать к выполнению работы



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