87 lines
2.7 KiB
Markdown
87 lines
2.7 KiB
Markdown
|
# Задание семинара 1
|
|||
|
|
|||
|
Необходимо разработать класс Image
|
|||
|
```cpp
|
|||
|
#include <stream>
|
|||
|
|
|||
|
using namespace std;
|
|||
|
|
|||
|
class Image {
|
|||
|
int mx;
|
|||
|
int my;
|
|||
|
int data[100000];
|
|||
|
|
|||
|
public:
|
|||
|
Image (int tmx, int tmy) { // Должен инициализировать изображение 0
|
|||
|
for(int i=0;i<10000;i++)
|
|||
|
data[i] = 0;
|
|||
|
}
|
|||
|
|
|||
|
int getMx() {
|
|||
|
return mx;
|
|||
|
}
|
|||
|
|
|||
|
int getMy() {
|
|||
|
}
|
|||
|
|
|||
|
void show() { // Должен выдавать на экран изображение при помощи printf или std::cout
|
|||
|
// TODO реализовать
|
|||
|
}
|
|||
|
|
|||
|
int get(int x,int y) {
|
|||
|
// TODO реализовать логику
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
void set(int x,int y,int color) {
|
|||
|
// TODO реализовать логику
|
|||
|
}
|
|||
|
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
Image a(10,10);
|
|||
|
|
|||
|
int main() {
|
|||
|
return 0;
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
## Задание 1
|
|||
|
|
|||
|
Создать переменную типа Image и убедиться путем вставки отладочной печати, что конструктор вызывается.
|
|||
|
|
|||
|
## Задание 2.
|
|||
|
|
|||
|
### Вариант 1:
|
|||
|
|
|||
|
Реализовать методы get и set в предположение, что двумерное изображение помещается в одномерный массив data по строкам (перва строка, второая строка и т.д.)
|
|||
|
|
|||
|
### Вариант 2
|
|||
|
|
|||
|
Реализовать метод copy, получающий копирующий другое изображение и копирующий его в данное, а также метод compare, которые сравнивает текущее изображение с другим
|
|||
|
|
|||
|
## Задание 3.
|
|||
|
|
|||
|
Реализовать метод show и убедиться, при создании переменной дял изображение 10 на 10 на экран выводится правильрное изображение
|
|||
|
|
|||
|
## Задание 4.
|
|||
|
|
|||
|
### Вариант 1
|
|||
|
|
|||
|
Добавить в класс метод для рисования вертикальных линий. Убедиться, что они работают путем выдачи изображения на экран при помощи метода show.
|
|||
|
|
|||
|
### Вариант 2
|
|||
|
|
|||
|
Добавить в класс метод для горизонтальных линий. Убедиться, что они работают путем выдачи изображения на экран при помощи метода show.
|
|||
|
|
|||
|
|
|||
|
## Задание 5
|
|||
|
|
|||
|
### Вариант 1
|
|||
|
|
|||
|
Релизовать метод для сохранения изображения в файл
|
|||
|
|
|||
|
### Вариант 2
|
|||
|
|
|||
|
Релизовать метод для загрузки изображения из файла
|