Предмет: Информатика, автор: Аноним

С++ ООП Очень срочно, прошу

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

Приложения:

restIess: Код текстом нет возможности прикрепить?
Аноним: прикрепить нет, разве что сейчас просто в кометах написать
Аноним: или задать новый вопрос, только уже написать код текстом

Ответы

Автор ответа: restIess
1

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

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

}

Приложения:

restIess: Я никак не могу помочь исправить то, чего не вижу, у меня то всё работает)
Аноним: хорошо тогда ещё один вопросик (извините что так к вам прицепилась) Вы уже в майне присвоили значение переменым, а0 и d, но нужно чтобы мы потом после запуска программы вводили им значение. Точнее после сin
restIess: Изменил содержимое мейна
Аноним: спасибо большое)
restIess: Могу код файлом прикрепить, если надо
Аноним: ооо, была б очень вам благодарна
restIess: Даже можно иначе, на компе, где ты код пишешь ж есть выход в интернет?
Аноним: есть
restIess: Файл прикрепил
Mihals: Прошу, помогите пожалуйста https://znanija.com/task/45806723
Похожие вопросы