В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История

С++ ООП Очень вот мой код который считает арифметической прогрессию, но нужно чтобы первое значение было дробовое а разница всегда положительной. Я сделала проверку через if, но она в Майне, а должна быть в конструкторе publice . Как это реализовать?


С++ ООП Очень вот мой код который считает арифметической прогрессию, но нужно чтобы первое значение

Показать ответ
Ответ:
zveriok
zveriok
09.10.2021 20:40

Проверяем в конструкторе значения на данные признаки, если мы получаем ошибку инициализации, то даем переменным нулевые значения, дабы избежать ошибок в других функция. (грубо говоря, чтобы вся программа не легла из-за конструктора, благодаря выводу текстового сообщения мы будем знать где конкретно ошибка)

#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;

}


С++ ООП Очень вот мой код который считает арифметической прогрессию, но нужно чтобы первое значение
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота