Презентация на тему: Разработка программного проекта для заполнения квадратной матрицы порядка n,

Реклама. Продолжение ниже
Разработка программного проекта для заполнения квадратной матрицы порядка n, числами, заданными функцией F(n) при ее разных значениях.
Постановка задачи
Математическое описание задачи
Приёмы алгоритмизации задачи
Приёмы алгоритмизации задачи
Список разрабатываемых функций
Блок-схема главной программы
Результаты тестирования программы
Заключение
Спасибо за внимание
1/10
Средняя оценка: 4.7/5 (всего оценок: 91)
Код скопирован в буфер обмена
Скачать (185 Кб)
Реклама. Продолжение ниже
1

Первый слайд презентации: Разработка программного проекта для заполнения квадратной матрицы порядка n, числами, заданными функцией F(n) при ее разных значениях

Исполнитель: Иванов Станислав Андреевич, гр. ПИ-1-17 1

Изображение слайда
1/1
2

Слайд 2: Постановка задачи

Разработать проект, который заполняет квадратную матрицу порядка n числами, заданными функцией F(n), записывая их в нее «по спирали» a) по часовой стрелке, б) против часовой стрелки. Под функцией F будем понимать функцию, в качестве параметра которой передается текущий заполняемый порядковый номер элемента матрицы. В функции происходят определенные вычисления и возвращаемое из неё число записывается в матрицу. После заполнения матрицы, её необходимо вывести на экран. 2

Изображение слайда
1/1
3

Слайд 3: Математическое описание задачи

Для проверки правильности работы разработанных алгоритмов проверим заполненные матрицы порядка 5 с заданными вручную (тестовая функция при этом будет иметь вид f ( n )= n ). При обходе по часовой стрелке требуется сравнить полученную матрицу с матрицей: double t1[5][5] = {{1,2,3,4,5}, {16,17,18,19,6}, {15,24,25,20,7}, {14,23,22,21,8}, {13,12,11,10,9}}; При обходе против часовой стрелки требуется сравнить полученную матрицу с матрицей: double t2[5][5] = {{1,16,15,14,13}, {2,17,24,23,12}, {3,18,25,22,11}, {4,19,20,21,10}, {5,6,7,8,9} }; 3

Изображение слайда
1/1
4

Слайд 4: Приёмы алгоритмизации задачи

Для заполнения квадратной матрицы порядка n значениями функции F по спирали по часовой стрелке воспользуемся следующим алгоритмом: повторяем по числу витков – k (текущий номер витка), число которых равно ( n +1)/2 заполняем верхнюю часть витка, индексы для каждого витка следующие: по y – значение постоянное и равно k (нумерация начинается с 0), по x – значения меняются в интервале [ k ; n - k ) заполняем правую часть витка, индексы для каждого витка следующие: по x – значение постоянное и равно n-1- k, по y – значения меняются в интервале [ k +1; n - k ) заполняем нижнюю часть витка, индексы для каждого витка следующие: по y – значение постоянное и равно n-1- k, по x – значения меняются в интервале [ n -2- k ; k ] заполняем левую часть витка, индексы для каждого витка следующие: по x – значение постоянное и равно k, по y – значения меняются в интервале [n-2-k; k ) 4

Изображение слайда
1/1
5

Слайд 5: Приёмы алгоритмизации задачи

Для заполнения квадратной матрицы порядка n значениями функции F по спирали против часовой стрелки воспользуемся следующим алгоритмом: повторяем по числу витков – k (текущий номер витка), число которых равно ( n +1)/2 заполняем левую часть витка, индексы для каждого витка следующие: по x – значение постоянное и равно k (нумерация начинается с 0), по y – значения меняются в интервале [ k ; n - k ) заполняем нижнюю часть витка, индексы для каждого витка следующие: по y – значение постоянное и равно n-1- k, по x – значения меняются в интервале [ k +1; n - k ) заполняем правую часть витка, индексы для каждого витка следующие: по x – значение постоянное и равно n-1- k, по y – значения меняются в интервале [ n -2- k ; k ] заполняем верхнюю часть витка, индексы для каждого витка следующие: по y – значение постоянное и равно k, по x – значения меняются в интервале [n-2-k; k ) Как видно из описанных выше алгоритмов их можно объединить в один. Введя параметр – направление заполнения матрицы и в зависимости от него меняя индексы x и y. 5

Изображение слайда
1/1
6

Слайд 6: Список разрабатываемых функций

void get _ pos ( int & coord _ y, int & coord _ x, int x, int y, DIR dir ) – в зависимости от направления заполнения матрицы, по разному выполняет присваивание параметрам coord_y и coord_ x, переданные значения x и y. void fill _ mas _ clockwise ( int ** mas, func f, int n, DIR dir ) – заполняет двумерный массив порядка n числами, полученными из функции f, спиралью по направлению dir. void print ( int ** mas, int n ) – вывод на экран матрицы порядка n. С помощью функции потокового вывода [3]. int F ( int n ) – функция расчета элемента матрицы, в зависимости от порядкого номера элемента n. int test _ func ( int n ) – функция расчета элемента матрицы, в зависимости от порядкого номера элемента n (для функции test ). int test () – функция проводит тесты корректности алгоритмов, если тестирование успешно, то возвращается 1, иначе 0. 6

Изображение слайда
1/1
7

Слайд 7: Блок-схема главной программы

7 Ход соответствующей программы Выводы: 1. Код главной программы имеет линейную структуру, значит, разработанный проект удовлетворяет требованиям структурного подхода. 2. Программа выводит на экран 2 матрицы порядка n, заполненных по спирали на основании функции F. Первая матрица – обход по часовой стрелке, вторая – против. int main() int n ; cout <<"Введите порядок матрицы: "; cin >> n ; for( int i =0; i <n; i ++) mas [ i ]=new int [n]; fill_mas_clockwise ( mas,&F,n,CLOCK ); print ( mas,n ); fill_mas_clockwise ( mas,&F,n,ANTICLOCK ; print ( mas,n ); for( int i =0; i <n; i ++) delete[] mas [ i ]; delete[] mas ; system (" pause "); return 0; }

Изображение слайда
Изображение для работы со слайдом
1/2
Реклама. Продолжение ниже
8

Слайд 8: Результаты тестирования программы

Как видно программа запустилась без сообщений об ошибках. Это означает, что функция test () завершилась успешно. То есть сгенерированная спиральные матрицы порядка 1 и 5 оказалась равными заданным вручную матрицам. Также видно, что для введенного порядка 3 результат также верен. 8 Вывод: Результаты расчётов по программе полностью воспроизводят контрольный пример, следовательно программа работает верно и может быть применена для массовых расчётов.

Изображение слайда
Изображение для работы со слайдом
1/2
9

Слайд 9: Заключение

В данной работе была создана программа, позволяющая заполнять квадратную матрицу порядка n числами, заданными функцией F( n ), записывая их в нее «по спирали» a ) по часовой стрелке, б) против часовой стрелки. Перед началом процесса программирования, на этапе алгоритмизации были словесно описаны шаги алгоритма, которые в дальнейшем были представлены в виде блок-схем. После этого был осуществлен процесс программирования, т.е. запись алгоритма решаемой задачи на конкретном языке программирования, в данной работе язык программирования был С++. В конечном итоге, была произведена отладка и тестирование написанной программы на основе контрольных примеров. Все поставленные задачи были выполнены, соответственно цель работы была достигнута. 9

Изображение слайда
1/1
10

Последний слайд презентации: Разработка программного проекта для заполнения квадратной матрицы порядка n,: Спасибо за внимание

10

Изображение слайда
1/1