Программирование магических квадратов — КиберПедия 

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Программирование магических квадратов

2017-06-05 621
Программирование магических квадратов 0.00 из 5.00 0 оценок
Заказать работу

Разработать ООП для построения магического квадрата из последовательных натуральных чисел по методу коня в следующем варианте. Начальное значение 1 нужно записать в среднюю клетку нижней строки квадрата. Запись чисел в остальные клетки должна происходить по ходу шахматного коня на 2 клетки вверх и на 1 клетку вправо. Если эта клетка уже занята, то следующее число нужно записать на 1 клетку ниже, чем предыдущее. Когда число оказывается за границей квадрата, его необходимо перенести внутрь квадрата, изменив заграничную координату на порядок квадрата (рисунок 2). Результат построения квадрата должен быть отображен через стандартный вывод. Значение порядка квадрата должно передаваться программе через аргумент командной строки. При разработке программы нужно реализовать класс магического квадрата с приватными полями для матрицы и порядка квадрата, а также публичными методами его заполнения и отображения. Конструктор и деструктор класса должны обеспечивать динамическое распределение памяти квадрата (программа magic2.cc).

На рисунке 3 представлен результирующий магический квадрат, построенный по алгоритму коня.

 

Рисунок 2 – К постановке задачи построения магического квадрата

 

//Программирование магического квадрата нечетного порядка, некратного 3, //Византийским методом с индийским откатом

#include <stdlib.h>

#include <stdio.h>

class Magic {//класс магического квадрата

private:

unsigned** tab; // адрес таблицы квадрата

int row; // номер строки квадрата

int col; // номер столбца квадрата

int degree; // порядок квадрата

public:

Magic(int); // конструктор квадрата

~Magic(); // деструктор квадрата

void print();// печать таблицы квадрата

void horse3();//способ заполнения квадрата методом коня

int reflect(int); // правило отражения

}; // Magic

Magic::Magic(int n) {// конструктор магического квадрата

degree = n; // инициализация порядка квадрата

tab = new unsigned* [degree]; // распределить массив адресов строк

for(row=0; row < degree; row++)// динамически распределить память по

tab[row] = new unsigned [degree]; // адресам строк квадрата

for(row=0; row < degree; row++)// инициализация клеток квадрата

for(col=0; col < degree; col++)//по строкам

tab[row][col] = 0; // нулями

} // Magic

Magic::~Magic() {// деструктор магического квадрата

for(row=0; row < degree; row++)//освободить динамическую память

delete [] tab[row]; // по адресам строк квадрата

delete [] tab; // освободить динамическую память массива адресов строк

} // ~Magic

void Magic::print() {//Метод печати квадрата

int degree2; // максимальное число квадрата

int len = 0; // ширина поля вывода чисел

degree2 = (degree * degree);

while(degree2 > 0) {

degree2 /= 10;

len++;

} // while

for(row=0; row < degree; row++) {//построчная печать чисел квадрата

for(col=0; col < degree; col++)//с лидирующими нулями

printf("%0*d ", len, tab[row][col]); //в поле вывода

putchar('\n');

} // for-row

putchar('\n');

return; //завершение метода вывода

} // print

int Magic::reflect(int k) {//метод отражения чисел внутрь квадрата

if(k < 0) // выход за правую или левую границу квадрата

return(k + degree); // k += degree; //отражение вниз или вправо

if(k > (degree - 1)) // выход за правую или нижнюю границу квадрата

return(k - degree); // k = 0; //отражение влево или вверх

return(k); //нет нарушения границ квадрата и нет отражения

} // reflect

// метод византийского коня с индийским откатом

void Magic::horse3() {

int i; // расчетный индекс строк

int j; // расчетный индекс столбцов

int degree2 = (degree*degree); // максимальное число квадрата.

int z = 1;// текущее число квадрата 1<=z<=degree2

row = (degree - 1); //начальная строка заполнения

col = (degree / 2); //начальный столбец заполнения

tab[row][col] = z; //записать в начальную позицию значение z=1

while(z < degree2) {//цикл заполнения квадрата числами z>1

i = reflect(row - 2); // получить позицию числа по ходу коня (2 вверх)

j = reflect(col + 1); // и 1 вправо с отражением при нарушении границ

if(tab[i][j] > 0) { // проверка занятости клетки в расчетной позиции

i = reflect(row + 1);// индийский откат (1 вниз) от позиции числа z

j = reflect(col); //с отражением при нарушении границ

} // if

row = i; col = j; //фиксировать позицию следующего числа

++z; //взять следующее число

tab[row][col] = z; //записать очередное значение в квадрат

} // while

return; //завершить заполнение квадрата

} // horse3

 

int main(int argc, char* argv[]) {//основная функция

if(argc!= 2) //проверка формата командной строки

return(puts("Usage: magic degree"));

int n = atoi(argv[1]); //получить значение порядка квадрата

if((n % 2) == 0) //исключить четный порядок

{

puts("Usage: magic 5 (or 7, 11, 17, 19, 23,...)");

return(n);

} // if

Magic mag(n); //конструирование магического квадрата

mag.horse3();//заполнение квадрата методом коня

mag.print();//печать квадрата

return(n); //корректное завершение программы

} // main

 

 

Рисунок 3 – Результирующий магический квадрат

 

Варианты заданий для второй лабораторной работы

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по индийскому методу в следующем варианте. Начальное значение 1 необходимо записать в среднюю клетку верхней строки квадрата. Заполнение всех следующих клеток последовательными числами должно происходить направо и вверх по диагонали. Если очередная клетка уже занята, то следующее число нужно записать под предыдущим. Когда число оказывается за границами квадрата, его следует перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по указанным правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы необходимо реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует предусмотреть в производном классе.

M1

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по индийскому методу в следующем варианте. Начальное значение 1 необходимо записать в среднюю клетку верхней строки квадрата. Заполнение всех следующих клеток последовательными числами должно происходить налево и вверх по диагонали. Если очередная клетка уже занята, то следующее число нужно записать под предыдущим. Когда число оказывается за границами квадрата, его следует перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по указанным правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы необходимо реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует предусмотреть в производном классе.

M2

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по индийскому методу в следующем варианте. Начальное значение 1 необходимо записать в среднюю клетку нижней строки квадрата. Заполнение всех следующих клеток последовательными числами должно происходить налево и вниз по диагонали. Если очередная клетка уже занята, то следующее число нужно записать над предыдущим. Когда число оказывается за границами квадрата, его следует перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по указанным правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы необходимо реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует предусмотреть в производном классе.

М3

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по индийскому методу в следующем варианте. Начальное значение 1 необходимо записать в среднюю клетку нижней строки квадрата. Заполнение всех следующих клеток последовательными числами должно происходить направо и вниз по диагонали. Если очередная клетка уже занята, то следующее число нужно записать над предыдущим. Когда число оказывается за границами квадрата, его следует перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по указанным правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы необходимо реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует предусмотреть в производном классе.

М4

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по сиамскому методу в следующем варианте. Начальное значение 1 необходимо записать в клетку справа от центра квадрата. Заполнение следующих клеток последовательными числами должно происходить направо и вверх по диагонали. Если очередная клетка уже занята, то следующее число нужно записать на 2 клетки справа от предыдущего. Когда число оказывается за границей квадрата, его необходимо перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по указанным правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы следует реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует предусмотреть в производном классе.

М5

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по сиамскому методу в следующем варианте. Начальное значение 1 необходимо записать в клетку над центром квадрата. Заполнение следующих клеток последовательными числами должно происходить налево и вверх по диагонали. Если очередная клетка уже занята, то следующее число нужно записать на 2 клетки вверх от предыдущего. Когда число оказывается за границей квадрата, его необходимо перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по указанным правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы следует реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует предусмотреть в производном классе.

М6

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по сиамскому методу в следующем варианте. Начальное значение 1 необходимо записать в клетку слева от центра квадрата. Заполнение следующих клеток последовательными числами должно происходить налево и вниз по диагонали. Если очередная клетка уже занята, то следующее число нужно записать на 2 клетки слева от предыдущего. Когда число оказывается за границей квадрата, его необходимо перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по указанным правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы следует реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует предусмотреть в производном классе.

М7

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по сиамскому методу в следующем варианте. Начальное значение 1 необходимо записать в клетку под центром квадрата. Заполнение следующих клеток последовательными числами должно происходить направо и вниз по диагонали. Если очередная клетка уже занята, то следующее число нужно записать на 2 клетки вниз от предыдущего. Когда число оказывается за границей квадрата, его необходимо перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по указанным правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы следует реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует предусмотреть в производном классе.

М8

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по методу Москопула в следующем варианте. Начальное значение 1 необходимо записать в среднюю клетку нижней строки квадрата. Запись чисел в остальные клетки должна происходить по ходу шахматного коня на 2 клетки вверх и на 1 клетку вправо. Если эта клетка уже занята, то следующее число следует записать на 4 клетки выше предыдущего. Когда число оказывается за границами квадрата, его необходимо перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по этим правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы следует реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. В производном классе следует предусмотреть компонентные методы его заполнения и отображения.

М9

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по методу Москопула в следующем варианте. Начальное значение 1 необходимо записать в среднюю клетку нижней строки квадрата. Запись чисел в остальные клетки должна происходить по ходу шахматного коня на 2 клетки вверх и на 1 клетку влево. Если эта клетка уже занята, то следующее число следует записать на 4 клетки выше предыдущего. Когда число оказывается за границами квадрата, его необходимо перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по этим правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы следует реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. В производном классе следует предусмотреть компонентные методы его заполнения и отображения.

М10

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по методу Москопула в следующем варианте. Начальное значение 1 необходимо записать в среднюю клетку верхней строки квадрата. Запись чисел в остальные клетки должна происходить по ходу шахматного коня на 2 клетки вниз и на 1 клетку вправо. Если эта клетка уже занята, то следующее число следует записать на 4 клетки ниже предыдущего. Когда число оказывается за границами квадрата, его необходимо перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по этим правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы следует реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. В производном классе следует предусмотреть компонентные методы его заполнения и отображения.

М11

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по методу Москопула в следующем варианте. Начальное значение 1 необходимо записать в среднюю клетку верхней строки квадрата. Запись чисел в остальные клетки должна происходить по ходу шахматного коня на 2 клетки вниз и на 1 клетку влево. Если эта клетка уже занята, то следующее число следует записать на 4 клетки ниже предыдущего. Когда число оказывается за границами квадрата, его необходимо перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по этим правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы следует реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. В производном классе следует предусмотреть компонентные методы его заполнения и отображения.

М12

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по методу альфила в следующем варианте. Начальное значение 1 нужно записать над клеткой в левом нижнем углу квадрата. Запись чисел в остальные клетки должна происходить направо и вверх по диагонали через 1 клетку. Если эта клетка уже занята, то следующее число нужно записать на 1 клетку правее и на 3 клетки выше предыдущего. Когда число оказывается за границами квадрата, его следует перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по таким правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы следует реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует предусмотреть в производном классе.

М13

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по методу альфила в следующем варианте. Начальное значение 1 нужно записать над клеткой в правом нижнем углу квадрата. Запись чисел в остальные клетки должна происходить налево и вверх по диагонали через 1 клетку. Если эта клетка уже занята, то следующее число нужно записать на 1 клетку левее и на 3 клетки выше предыдущего. Когда число оказывается за границами квадрата, его следует перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по таким правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы следует реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует предусмотреть в производном классе.

М14

-------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по методу альфила в следующем варианте. Начальное значение 1 нужно записать под клеткой в левом верхнем углу квадрата. Запись чисел в остальные клетки должна происходить направо и вниз по диагонали через 1 клетку. Если эта клетка уже занята, то следующее число нужно записать на 1 клетку правее и на 3 клетки ниже предыдущего. Когда число оказывается за границами квадрата, его следует перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по таким правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы следует реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует предусмотреть в производном классе.

М15

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по методу альфила в следующем варианте. Начальное значение 1 нужно записать под клеткой в правом верхнем углу квадрата. Запись чисел в остальные клетки должна происходить налево и вниз по диагонали через 1 клетку. Если эта клетка уже занята, то следующее число нужно записать на 1 клетку левее и на 3 клетки ниже предыдущего. Когда число оказывается за границами квадрата, его следует перенести внутрь квадрата, изменив заграничную координату на порядок квадрата. Результат построения магического квадрата по таким правилам должен отображаться в поток стандартного вывода. Значение порядка квадрата должно передаваться программе аргументом командной строки. При разработке программы следует реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует реализовать в производном классе.

М16

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по методу террас Баше в следующем варианте. Сначала пустой квадрат заполняется снизу вверх по вертикалям последовательными натуральными числами. Затем его нужно повернуть на 45 градусов по часовой стрелке и наложить на пустой квадрат в основной ориентации. В результате клетки пустого квадрата будут заполнены в шахматном порядке числами из развернутого квадрата. В пустые клетки нужно отобразить все остальные числа развернутого квадрата, изменив их заграничные координаты на величину порядка квадрата. Полученный магический квадрат должен отображаться в поток стандартного вывода. Значение его порядка нужно передавать программе через аргумент командной строки. При разработке программы нужно реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует реализовать в производном классе.

М17

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по методу террас Баше в следующем варианте. Сначала пустой квадрат заполняется по горизонталям слева направо последовательными натуральными числами. Затем его нужно повернуть на 45 градусов по часовой стрелке и наложить на пустой квадрат в основной ориентации. В результате клетки пустого квадрата будут заполнены в шахматном порядке числами из развернутого квадрата. В пустые клетки нужно отобразить все остальные числа развернутого квадрата, изменив их заграничные координаты на величину порядка квадрата. Полученный магический квадрат должен отображаться в поток стандартного вывода. Значение его порядка нужно передавать программе через аргумент командной строки. При разработке программы нужно реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует реализовать в производном классе.

М18

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по методу террас Баше в следующем варианте. Сначала столбцы пустого квадрата заполняются последовательными натуральными числами снизу вверх. Затем квадрат нужно повернуть на 45 градусов против часовой стрелки и наложить на пустой квадрат в основной ориентации. В результате клетки пустого квадрата будут заполнены в шахматном порядке числами из развернутого квадрата. В пустые клетки нужно отобразить все остальные числа развернутого квадрата, изменив их заграничные координаты на величину порядка квадрата. Полученный магический квадрат должен отображаться в поток стандартного вывода. Значение его порядка нужно передавать программе аргументом командной строки. При разработке программы следует реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует реализовать в производном классе.

М19

--------------------------------------------------------------------------------------------------------------------

Разработать объектно-ориентированную программу для построения магического квадрата любого нечетного порядка из последовательных натуральных чисел по методу террас Баше в следующем варианте. Сначала строки пустого квадрата в порядке снизу вверх заполняются натуральными числами справа налево. Затем квадрат нужно повернуть на 45 градусов по часовой стрелке и наложить на пустой квадрат в основной ориентации. В результате клетки пустого квадрата будут заполнены в шахматном порядке числами из развернутого квадрата. В пустые клетки нужно отобразить все остальные числа развернутого квадрата, изменив их заграничные координаты на величину порядка квадрата. Полученный магический квадрат должен отображаться в поток стандартного вывода. Значение его порядка нужно передавать программе аргументом командной строки. При разработке программы следует реализовать базовый класс квадратной матрицы и производный от него класс магического квадрата. Конструктор базового класса должен обеспечивать динамическое распределение памяти по защищенному адресу для двумерного массива. Компонентные методы для его заполнения и отображения следует реализовать в производном классе.

М20

--------------------------------------------------------------------------------------------------------------------

Статический полиморфизм

Статический полиморфизм реализуется на этапе компиляции с помощью перегрузки функций и операций. Под перегрузкой функций в С++ понимается описание в одной области видимости нескольких функций с одним и тем же именем. О перегрузке операций в С++ говорят в том случае, если в некоторой области видимости по-является описание функции с именем operator <обозначение_операции_С++>, задающее интерпретацию заданной операции [5-6,8-9].


Поделиться с друзьями:

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.