HLPL2/Sem1/readme.md

87 lines
2.7 KiB
Markdown
Raw Normal View History

2020-09-07 06:22:51 +00:00
# Задание семинара 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
Релизовать метод для загрузки изображения из файла