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

  • Разработка программы на Pascal 7.0

  • Задание по курсовому проектированию Разработать программу зеркального отображения двухмерного массива

  • Зеркальное отображение элементов двухмерного массива относительно горизонтальной оси симметрии».

  • Математическая формулировка задачи

  • 3. Алгоритмизация задачи

  • Идентификаторы программы

  • 5. Блок-схема алгоритма 5.1. Блок-схема алгоритма головной программы

  • 5.2 Блок-схема алгоритма подпрограммы–процедуры Otraz ( a , n )

  • 6. Текст исходной программы P rogram

  • Begin for j := 1 to n dofor i := 1 to n div 2 dobegin

  • ReadKey; ClrScr;

  • 9. Инструкция по работе с программой

  • Список использованных источников

  • Зеркальное отображения двухмерного массива (NN) относительно горизонтальной оси симметрии. Пояснительная записа. Инструкция по работе с программой Заключение


    Скачать 0.63 Mb.
    НазваниеИнструкция по работе с программой Заключение
    АнкорЗеркальное отображения двухмерного массива (NN) относительно горизонтальной оси симметрии
    Дата08.01.2023
    Размер0.63 Mb.
    Формат файлаdocx
    Имя файлаПояснительная записа.docx
    ТипИнструкция
    #876401

    Министерство образования Республики Беларусь

    Белорусский национальный технический университет

    Кафедра «Горные машины»
    КУРСОВАЯ РАБОТА

    по дисциплине «Информатика»

    Разработка программы на Pascal 7.0


    ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

    Руководитель Витушко Е.А.
    Исполнитель студент группы 30205121

    Щипачёв Д.С.
    2022
    Задание по курсовому проектированию

    Разработать программу зеркального отображения двухмерного массива (N*N) относительно горизонтальной оси симметрии.

    Содержание

    Введение……………………………………………………………… 3

    1. Постановка задачи…………………………………………………….. 4

    2. Математическая формулировка задачи……………………………… 5

    3. Алгоритмизация задачи …………………………………………...…. 10

    4. Идентификаторы программы………………………………………… 11

    5. Блок – схема алгоритма………………………………………………. 12

    6. Текст исходной программы………………………………………….. 15

    7. Результаты выполнения программы………………………………… 18

    8. Анализ результатов……………………………………………...……. 20

    9. Инструкция по работе с программой…………………………...…… 21

    Заключение……………………………………………………………. 22

    Список использованных источников……… ……………………….. 23

    Введение

    Перед выполнением работы необходимо изучить правила описания и использования переменных типа массив, типизированных констант типа массив.

    В данной пояснительной записке проводится описание последовательности шагов по составлению программы на алгоритмическом языке Turbo Pascal 7.0 и результаты применения этой программы для вычисления «Зеркального отображения элементов двухмерного массива относительно горизонтальной оси симметрии».

    Рассматриваются вопросы математической формулировки и алгоритмизации задачи, разработки блок-схемы алгоритма её решения, составления исходной Pascal-программы и реализации вычислений по составленной программе.

    Ввод исходных данных и вывод результатов вычисления выполняется в отдельном для каждого вычисления окне.



    1. Постановка задачи


    Ставится задача составить программу вычисления на алгоритмическом языке Turbo Pascal 7.0. «Зеркальное отображение элементов двухмерного массива относительно горизонтальной оси симметрии».



    1. Математическая формулировка задачи

    Массив - это структурированный тип данных, который используется для описания упорядоченной совокупности фиксированного числа элементов одного типа, имеющих общее имя. Для обозначения элементов массива используются имя переменной-массива и индекс. Массив - это структура однотипных данных, расположенная в памяти одним неразрывным блоком.



    Рис.1. Расположение одномерного массива в памяти

    Многомерные массивы хранятся точно также.



    Рис.2. Расположение двухмерного массива в памяти

    Знание этого позволяет нам по-другому обращаться к элементам массива.

    Изображения - это целый комплекс из разных заголовков и информации о изображении, и самого изображения хранящемся в виде двухмерного массива.

    Для того чтобы перевернуть изображение по горизонтали нужно всего лишь читать массив, в котором оно содержится сверху вниз и справа налево.

    Зеркальная (отражающая) матрица - это матричное преобразование в плоскости измерения n-1 в n-мерном пространстве. Распространенными сценариями применения являются обработка изображений в 2D-пространстве и преобразование сцены в 3D-пространстве. Сначала посмотрим на эффект зеркального преобразования:



    Рис.3. Зеркальная (отражающая) матрица.

    После интуитивного ощущения эффекта зеркального преобразования давайте посмотрим, как выглядит математическое выражение этого преобразования. Прежде всего, зеркальное преобразование n-мерного пространства основано на определенной n-1 плоскости измерений (прямая линия для 2-мерного измерения). Знание линейной алгебры знает, что в n-1 плоскости измерений n-мерного пространства есть нормальные векторы. u=(u1,u2,...,un). Чтобы сделать единичный вектор нормали плоскости зеркала, единичный вектор нормали || u || = 1, определить матрицу зеркала Q = I -2uuT.

    1. Q является симметричным и стандартным ортогональным, QT = (I -2uuT)T = I - 2uuT . Q симметричен. QTQ = I - 4uuT+4uuTuuT=I. Q является стандартным ортогональным. Принципы матричных операций, мы также можем расширить Q:



    Из формы расширения матрицы Q ясно, что Qij = Qji = -2uiuj, i≠ j, Значит, Q симметричен. Стандартное ортогональное: qi, qj. Это два столбца Q, которые определены стандартной ортогональностью и должны удовлетворять следующим условиям:



    2. Q2 = QTQ = I, Это свойство отражает характеристики зеркального отображения, зеркальное отображение в два раза больше исходного пространства.

    Выше приведено определение матрицы зеркального отображения и некоторых ее свойств и производных, поэтому давайте подумаем немного глубже: почему выражение зеркального отображения является матричным преобразованием, и если я выполняю вращение, это матричное преобразование? Прежде всего, ответ на вопрос 2: ДА, матрица преобразования вращения в 2-мерном пространстве имеет вид:



    Для задачи 1 суть матричного преобразования можно понимать как преобразование системы координат. Для зеркалирования и вращения мы используем новые координаты для векторов в исходной системе координат (точки в системе координат могут быть выражены как вектор, в котором начало координат указывает на точку). Основы в системе показаны. Например, базовыми векторами координат двумерной прямоугольной системы координат x, y являются (1, 0) и (0, 1). Если вы используете матрицу для представления: . Базовый вектор - это вектор-столбец матрицы, координаты (x, y)(1,1) системы координат точки задаются системой уравнений. * = . Найти(x, y) = (1,1), потому что в исходной системе координат предположим, что мы зеркально отражаем точку (1, 1) вдоль оси X. Зеркало здесь очень простое. Ось X совпадает с исходной системой координат. Y Ось противоположна исходной системе координат, поэтом базовые векторы новой системы координат после зеркального отображения равны (1,0) и (0, -1) (Если вы можете получить тот же ответ через приведенную выше формулу зеркального отображения, u = (0, 1)), матричное представление новой системы координат Координаты точки (1,1) в исходной системе координат в новой системе координат имеют уравнения = Find (x, y) = (1, -1), что совпадает с нашим интуитивным восприятием.

    Зеркально отразим некую прямую линию в 2-мерном пространстве. Предположим, что единичный вектор нормали u (x, y) прямой по Q = I-2uuT. Рассчитаем зеркальную матрицу в 2-мерном пространстве:



    3. Алгоритмизация задачи

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

    Алгоритм работы головной программы следующий:

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

    2. Создать окно для ввода исходных данных.

    3. Ввести значение n.

    4. Присвоить первоначальному значению n максимальный размер матрицы а[1;n].

    5. Организовать цикл для заполнения исходной матрицы а[1;n] не больше nmax = 15;

    6. Выполнить. Заполняем случайными числами матрицу.

    7. Вызов процедуры для горизонтального отражения матрицы Otraz(a, n).

    8. Вывести результаты вычислений в новом окне.

    9. Закончить выполнение программы.



    1. Идентификаторы программы


    Для указания соответствия обозначений переменных в формулах математической формулировки и их идентификаторов в программе сведем их в таблицу 1:
    Таблица 1

    Обозначение параметров


    Смысл параметра

    В формулах

    В программе

    Q

    mtr

    Исходная матрица для преобразования

    Q2

    a

    Матрица для преобразованная

    i

    n

    Индекс матрицы

    j

    n

    Индекс матрицы


    5. Блок-схема алгоритма

    5.1. Блок-схема алгоритма головной программы





    5.2 Блок-схема алгоритма подпрограммы–процедуры Otraz (a, n)



    6. Текст исходной программы

    Program Kursovik;

    Uses

    CRT;

    Const // Описание константы максимального размера матрицы

    nmax = 15;

    Type // Описание матрицы

    mtr = array[1..nmax, 1..nmax] of integer;

    Procedure Otraz(var a: mtr; n: byte); // Описание процедуры зеркального отражения

    Var

    i, j: byte;

    x: integer;

    Begin

    for j := 1 to n do

    for i := 1 to n div 2 do

    begin

    x := a[i, j];

    a[i, j] := a[n - i + 1, j];

    a[n - i + 1, j] := x;

    end;

    End;

    Var // Описание переменных основной программы

    a: mtr;

    n, i, j: byte;

    Begin // Основная программ

    ClrScr; // Очистка экрана

    writeln(' '); // Заставка

    writeln(' Министерство образования Республики Беларусь');

    writeln(' Белорусский национальный технический университет');

    writeln;

    writeln;

    writeln(' Программа вычисления зеркального отображения');

    writeln(' элементов двухмерного массива');

    writeln(' относительно горизонтальной оси симметрии ряда');

    writeln;

    writeln;

    writeln;

    writeln;

    writeln(' Курсовая работа ');

    writeln(' по дисциплине "Информатика" ');

    writeln;

    writeln;

    writeln(' Руководитель: Витушко Е.А.');

    writeln(' Исполнитель: Щипачёв Д.С.');

    writeln(' гр. 30205121');

    writeln;

    writeln;

    writeln;

    writeln(' Минск 2022 ');

    writeln;

    writeln(' Для продолжения нажмите любую клавишу... ');

    ReadKey;

    ClrScr; // Очистка экрана

    Randomize; // Запуск генератора случайных чисел

    repeat // цикл с постусловием

    write('Размер матрицы до ', nmax, ' n=');

    readln(n);

    until n in [1..nmax]; // условие цикла

    writeln('Исходная матрица:');

    for i := 1 to n do

    begin

    for j := 1 to n do

    begin

    a[i, j] := Random(20); // Заполняем случайными числами матрицу

    write(a[i, j]:4);

    end;

    writeln;

    end;

    writeln;

    Otraz(a, n);// Вызов процедуры для горизонтального отражения матрицы

    writeln('Отраженная по горизонтальной оси:');

    for i := 1 to n do

    begin

    for j := 1 to n do

    write(a[i, j]:4);

    writeln;

    end;

    writeln('Для продолжения нажмите любую клавишу... ');

    ReadKey

    End.

    7. Результаты работы программы

    После запуска программы в соответствии с поставленной задачей на проектирование выводится окно заставки. Как показано на рисунке 1.


    Рисунок 1. Окно заставки.
    После нажатия любой клавиши появится предложение сделать ввода значения n, т.е. размер нашей матрицы (N*N).


    Рисунок 2. Ввод значения.
    После ввода определённого значения 5, получаем результаты, приведённые на рисунке 3.


    Рисунок 3.

    8. Анализ результатов

    Для анализа результатов вводим значение n = 5. Т.е. нечетное - видим, что наша программа выполнила свою задачу. Смогла преобразовать исходную матрицу в зеркально отображенную по горизонтали. Программ устойчива к вводу целых чисел. Прекрасно отображает результат в новом «Окне», после завершает свою работу.

    Для анализа результатов вводим любое целое значение не больше 15, и проверяем. Больше 15 не увидим в окне ВЫВОДА.

    9. Инструкция по работе с программой

    Файл Kursav.PAS с исходным текстом Паскаль - программы находится по адресу c:\My_Kyrsach\. Результат компиляции исходной программы Kursav.exe находится в той же папке.

    Необходимо запустить на выполнение Kursav.exe либо загрузить Turbo Pascal 7.0, сделать текущим каталог, открыть файл с исходной Паскаль - программой Kursav.pas и запустить ее на выполнение командой Run.

    После вывода заставки программы нажать любую клавишу для перехода в окно ввода значения. Результаты вычисления выводятся в новом окне.

    Для продолжения следует ответить на запрос программы нажатием любой клавиши.

    Заключение
    В данной курсовой работе разработана блок-схема и реализована средствами языка программирования Турбо-Паскаль программа, позволяющая вычислить зеркальное отображение элементов двухмерного массива относительно горизонтальной оси симметрии.
    Программа обладает дружеским интерфейсом, по запросу пользователя сообщает общие сведения по работе с программой и производит вычисления, ввод осуществляется с клавиатуры по запросу программы.

    Из анализа результатов вычисления можно сделать вывод работу. Работает программа и при указанных условиях. Нельзя нарушать «Зеркало».


    Список использованных источников

    1. Кудинов, Ю.И. Основы современной информатики: учеб. пособие / Ю.И. Кудинов, Ф.Ф. Пащенко. – Санкт-Петербург: Лань, 2009. – 256 с.

    2. Кудинов, Ю.И. Практикум по основам современной информатики: учеб. пособие / Ю.И. Кудинов, Ф.Ф. Пащенко, А.Ю. Келина. – Санкт-Петербург: Лань, 2011. – 326 с.

    3. Лучников, В.А. Программирование на языке Паскаль: учеб. пособие / В.А. Лучников – Иркутск: ирГУПС, 2014. – 168 с.

    4. Меркулова, Н.Ф. Электронный учебник ABC Pascal / Н.Ф. Меркулова –http://videouroki.net.

    5. Цветков, А.С. Язык программирования PASCAL. – Система программирования ABC Pascal: учеб. пособие / А.С. Цветков. – Санкт-Петербург: Павловск. –2013. – 46 с.

    6. Письменный Д. Т. Часть 2 // Конспект лекций по высшей математике. — 6-е изд. — М.: Айрис-пресс, 2008.

    7. Савельева Р. Ю. Высшая математика. Теория рядов.


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