Проверяем в конструкторе значения на данные признаки, если мы получаем ошибку инициализации, то даем переменным нулевые значения, дабы избежать ошибок в других функция. (грубо говоря, чтобы вся программа не легла из-за конструктора, благодаря выводу текстового сообщения мы будем знать где конкретно ошибка)
#include <iostream>
#include <cmath>
class Progression {
private:
float first;
int second;
public:
Progression(float a0, int d) {
if (a0 == round(a0)) {
std::cout << "Инициализация первого члена прогрессии с конструктора не удалась, первый элемент не должен быть целыми числом!\n";
this->first = 0;
}
else {
this->first = a0;
std::cout << "Инициализация первого члена прогрессии успешно!\n";
}
if (d < 0) {
std::cout << "Инициализация разности прогрессии с конструктора не удалась, разность должна быть положительной!\n";
1) Определяем общее количество бит: 16 х 640 х 480 = 4 915 200 С учетом того, что в байте 8 бит, а 1 КБ=1024 Б получим 4 915 200 / 8 / 1024 = 600 (КБ)
2) Определяем общее количество бит с учетом того, что в палитре True Color для цвета отводится 24 бита: 1600 х 1200 х 24 = 46 080 000 (бит). После преобразования файла для Интернет он будет представлен в восьмибитной палитре ( 256 = 2⁸ ) и займет объем 1400 х 900 х 256 = 10 080 000 (бит). Разница в объемах составит 46 080 000 - 10 080 000 = 36 000 000 бит. С учетом того, что в байте 8 бит, а в мегабайте 1024 х 1024 байт получим, что пространство на диске сократиться на 36 000 000 / (8 х 1024 х 1024) ≈ 4.29 (МБ)
Проверяем в конструкторе значения на данные признаки, если мы получаем ошибку инициализации, то даем переменным нулевые значения, дабы избежать ошибок в других функция. (грубо говоря, чтобы вся программа не легла из-за конструктора, благодаря выводу текстового сообщения мы будем знать где конкретно ошибка)
#include <iostream>
#include <cmath>
class Progression {
private:
float first;
int second;
public:
Progression(float a0, int d) {
if (a0 == round(a0)) {
std::cout << "Инициализация первого члена прогрессии с конструктора не удалась, первый элемент не должен быть целыми числом!\n";
this->first = 0;
}
else {
this->first = a0;
std::cout << "Инициализация первого члена прогрессии успешно!\n";
}
if (d < 0) {
std::cout << "Инициализация разности прогрессии с конструктора не удалась, разность должна быть положительной!\n";
this->second = 0;
}
else {
this->second = d;
std::cout << "Иницализация разности успешно!\n";
}
}
float operator()(int j){
return this->first + this->second * (j - 1);
}
};
signed main() {
setlocale(LC_ALL, "Rus");
float a;
int b;
std::cout << "Введите значение a0 и d: ";
std::cin >> a >> b;
Progression p1(a, b);
std::cout << p1(2);
return 0;
}
С учетом того, что в байте 8 бит, а 1 КБ=1024 Б получим
4 915 200 / 8 / 1024 = 600 (КБ)
2) Определяем общее количество бит с учетом того, что в палитре True Color для цвета отводится 24 бита: 1600 х 1200 х 24 = 46 080 000 (бит).
После преобразования файла для Интернет он будет представлен в восьмибитной палитре ( 256 = 2⁸ ) и займет объем
1400 х 900 х 256 = 10 080 000 (бит).
Разница в объемах составит 46 080 000 - 10 080 000 = 36 000 000 бит.
С учетом того, что в байте 8 бит, а в мегабайте 1024 х 1024 байт получим, что пространство на диске сократиться на
36 000 000 / (8 х 1024 х 1024) ≈ 4.29 (МБ)