Есть ответ 👍

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

231
437
Посмотреть ответы 2

Ответы на вопрос:


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

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

}


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

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

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS