Домашнее задание#
Требования к оформлению отчета
Все отчеты оформляются шрифтом Times New Roman, размер шрифта для основного тектса 14,
для названия глав и пунктов - 16. Межстрочный интервал у текста - 1.5пт.
Все рисунки подписываются по центру снизу в формате Рис. Номер рисунка. Название Рисунка
Все таблицы подписываются сверху справа в формате Таблица. Номер таблицы. Название таблицы.
Все вставки с кодом подписываются сверху справа в формате Листинг. Номер листинга. Название листинга.
- Согласно вашему номеру по списку реализуйте графическое приложение со следующими характеристиками: (см. Методические указания по реализации кода)
- Создайте экран 500 на 500 пикселей
- Отрисуйте 10 ячеек (размер ячейчки 50 на 50 пикселей)
-
Разработайте алгоритм с использованием цикла for для закрашивания ячеек, согласно вашему варианту
-
Отчет оформите в Word файле формата *.doc или *.docx
Стурктура отчета:
- Титульный лист, офрмленный согласно шаблону. Лабораторная работа №3 "Разработка графического приложения с использованием циклов"
- Номер задания. Добавляете рисунок по вашему варианту из таблицы ниже.
- Даете ссылку на Гитхаб. Прикладываете скрин реализации (работающего интерфейса).
- Листинг 1 с фрагментом кода прилоежния, где описывается логика выбора ячеек (цикл for)
Подготовьтесь к защите проекта.
Ход выполнения#
Методические указания по определению ячеек#
Рассмотрим подробно основные свойства элементов матриц. Для этого введем индексы i и j для обозначения строки и столбца.
Индексирование начнем с элементы (0,0) до (N, N) элемента.

Главная диагональ проходит через элементы, у которых номер строки совпадает с номером столбца:
i = j
Пример для матрицы размерности 5x5:
| 1 | 2 | 3 | 4 | 5 | |
|---|---|---|---|---|---|
| 1 | 1,1 | ||||
| 2 | 2,2 | ||||
| 3 | 3,3 | ||||
| 4 | 4,4 | ||||
| 5 | 5,5 |
Побочная диагональ проходит через элементы, у которых сумма индексов строки и столбца равна размерности матрицы плюс один:
i + j = n + 1
Пример:
| 1 | 2 | 3 | 4 | 5 | |
|---|---|---|---|---|---|
| 1 | 1,5 | ||||
| 2 | 2,4 | ||||
| 3 | 3,3 | ||||
| 4 | 4,2 | ||||
| 5 | 5,1 |
Диагонали, параллельные главной, подчиняются правилу:
i - j = p
где p — смещение относительно главной диагонали.
Пример для диагонали выше главной диагонали (p = -1):
| 1 | 2 | 3 | 4 | 5 | |
|---|---|---|---|---|---|
| 1 | 1,2 | ||||
| 2 | 2,3 | ||||
| 3 | 3,4 | ||||
| 4 | 4,5 | ||||
| 5 |
Диагонали параллельны побочной, если соблюдается следующее:
i + j = p + k
где p — смещение относительно побочной диагонали, а k — константа.
Пример диагонали со смещением p = 1:
i + j = 7 (i + j = n + 1 + p)
| 1 | 2 | 3 | 4 | 5 | |
|---|---|---|---|---|---|
| 1 | 1,4 | ||||
| 2 | 2,3 | ||||
| 3 | 3,2 | ||||
| 4 | 4,1 | ||||
| 5 |
Чтобы выводить "области" достаточно сделать неравенства, заменив = на < или > (>=, <=)
Например, элементы над главной диагональю подчиняются неравенству:
i < j
Пример для матрицы 5x5:
| 1 | 2 | 3 | 4 | 5 | |
|---|---|---|---|---|---|
| 1 | 1,2 | 1,3 | 1,4 | 1,5 | |
| 2 | 2,3 | 2,4 | 2,5 | ||
| 3 | 3,4 | 3,5 | |||
| 4 | 4,5 | ||||
| 5 |
Пример реализации кода (без графического интерфейса)#
#include <iostream>
using namespace std;
int main() {
int n = 5; // размерность матрицы
// Главная диагональ
cout << "Главная диагональ: " << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == j) {
cout << "(" << i + 1 << ", " << j + 1 << ") ";
}
}
}
cout << endl << endl;
// Побочная диагональ
cout << "Побочная диагональ: " << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i + j == n - 1) {
cout << "(" << i + 1 << ", " << j + 1 << ") ";
}
}
}
cout << endl << endl;
// Над главной диагональю (i < j)
cout << "Элементы над главной диагональю: " << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i < j) {
cout << "(" << i + 1 << ", " << j + 1 << ") ";
}
}
}
cout << endl << endl;
return 0;
}
Варианты#
| Вариант | Матрицы |
|---|---|
| 1 | ![]() |
| 2 | ![]() |
| 3 | ![]() |
| 4 | ![]() |
| 5 | ![]() |
| 6 | ![]() |
| 7 | ![]() |
| 8 | ![]() |
| 9 | ![]() |
| 10 | ![]() |
| 11 | ![]() |
| 12 | ![]() |
| 13 | ![]() |
| 14 | ![]() |
| 15 | ![]() |
| 16 | ![]() |
| 17 | ![]() |
| 18 | ![]() |
| 19 | ![]() |
| 20 | ![]() |
| 21 | ![]() |
| 22 | ![]() |
| 23 | ![]() |
| 24 | ![]() |
| 25 | ![]() |
| 26 | ![]() |
| 27 | ![]() |
| 28 | ![]() |
| 29 | ![]() |
| 30 | ![]() |





























