М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
sasha1977al
sasha1977al
11.03.2022 16:22 •  Информатика

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


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

👇
Ответ:
208дитма802
208дитма802
11.03.2022

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

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

}


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

PascalABC

Объяснение:

1)

begin

   WriteLn('Введите размер массива N: ');

   var n := ReadInteger;;

   var a := ArrRandomInteger(n, -20, 20);

   a.PrintLn;

   WriteLn('Сумма элементов, которые оканчиваются на число 2, равна ', a.Where(x -> (x mod 10 = 2) or (x mod 10 = -2)).Sum);

end.

2)

begin

   var a := ArrRandomInteger(10, -10, 10);

   a.PrintLn;

   WriteLn('Индексы отрицательных нечетных элементов:');

   foreach var i in a.Indices do

     if (a[i].IsOdd) and (a[i] < 0) then Write(i, ', ');

end.

4,7(24 оценок)
Ответ:
Saaabiii
Saaabiii
11.03.2022

ответ: 1499 9949

Python:

def f(n):

   digits = [int(i) for i in str(n)]

   # 1

   first_sum = digits[0] + digits[1]

   # 2

   second_sum = digits[1] + digits[2]

   # 3

   third_sum = digits[2] + digits[3]

   # 4

   amounts = [first_sum, second_sum, third_sum]

   del amounts[amounts.index(min(amounts))]

   # 5

   amounts.sort()

   return int(str(amounts[0]) + str(amounts[1]))

numbers = []

for x in range(1000, 10000):

   if f(x) == 1318:

       numbers.append(x)

print(numbers[0], numbers[-1])

4,6(13 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ