С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 11.09.2018
Сообщений: 35
1

Класс «квадрат»

17.09.2018, 10:38. Показов 835. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите найти ошибку в коде

Создать класс «квадрат», такой, что:
а) его экземпляр содержит размер стороны квадрата.
b) его конструктор без параметра создает экземпляр со значением 0, а конструктор с
параметрами создает экземпляр с соответствующим значением стороны.
c) его методы позволяют получать и присваивать значения стороны и площади,
выполняя при этом соответствующие преобразования.
d) функция print_sqr () выводит на экран значение его площади.
e) дружественная функция frd в качестве параметров получает экземпляры двух квадратов и
возвращает новый квадрат, площадь которого равна сумме площадей этих двух квадратов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <cmath>
 
class Square {
private:
    double edge;
    double area;
public:
    Square();
    Square(const double);
    void set_edge(const double);
    void set_area(const double);
    void print_sqr();
    friend Square frd(const Square&, const Square&);
};
 
Square::Square (): Square(0.0) {}
Square::Square (double e): edge{e}, area{e*e} {
    if (e < 0)
        throw std::invalid_argument("Negative edge");
}
void Square::set_edge(double e) {
    if (e < 0)
        throw std::invalid_argument("Negative edge");
    edge = e;
    area = e*e;
}
 
void Square::set_area(double a) {
    if (a < 0)
        throw std::invalid_argument("Negative area");
    area = a;
    edge = std::sqrt(a);
}
 
void Square::print_sqr() {
    std::cout << area << std::endl;
}
 
Square frd (const Square& s1, const Square& s2) {
    return Square (std::sqrt(s1.area + s2.area));
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2018, 10:38
Ответы с готовыми решениями:

Класс «Квадрат»: можно ли вписать в объект-квадрат со стороной A окружность радиуса R
Люди помогите, сижу уже неделю, выходит какая-то фигня. Хочу научиться, но тяжеловато) Объясните...

Иерархия геометрических объектов: клас точка->класс квадрат->класс прямоугольник
Иерархия геометрических объектов: класс точка-&gt;класс квадрат-&gt;класс прямоугольник. Построить эту...

Наследование: базовый класс Квадрат, производный класс Пирамида
Помогите, пожалуйста!:cry: Добавлено через 6 минут Создать класс КВАДРАТ, член класса- длинна...

Класс квадрат
Всем добрый вечер. В общем у меня имеется 2 класса. Класс точки который рисует точку в консоли по...

15
1046 / 967 / 153
Регистрация: 10.08.2015
Сообщений: 5,221
17.09.2018, 11:04 2
#include <stdexcept>
?
0
0 / 0 / 0
Регистрация: 11.09.2018
Сообщений: 35
17.09.2018, 11:07  [ТС] 3
нет

Добавлено через 38 секунд
Просмотрите код пожалуйста и если можно обьеснение напишите
0
1046 / 967 / 153
Регистрация: 10.08.2015
Сообщений: 5,221
17.09.2018, 11:20 4
посмотрел, что дальше? Код нормально собирается, если добавить указанный заголовок
0
0 / 0 / 0
Регистрация: 11.09.2018
Сообщений: 35
17.09.2018, 11:21  [ТС] 5
можете кинуть код как вы собераете?
0
1046 / 967 / 153
Регистрация: 10.08.2015
Сообщений: 5,221
17.09.2018, 11:23 6
ну, как бэ добавить функцию main нужно
0
0 / 0 / 0
Регистрация: 11.09.2018
Сообщений: 35
17.09.2018, 20:28  [ТС] 7
добавьте пожалуйста и скиньте готовый код, буду благодарен

Добавлено через 9 часов 3 минуты
куда вставить? можно готовій код?
0
115 / 83 / 43
Регистрация: 19.01.2018
Сообщений: 484
17.09.2018, 20:37 8
Lucku_13,
Цитата Сообщение от Lucku_13 Посмотреть сообщение
добавьте пожалуйста и скиньте готовый код, буду благодарен
я понимаю, копипастить не самому писать, но как ты с такими знаниями собираешься получать зачет?

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <cmath>
 
class Square {
private:
    double edge;
    double area;
public:
    Square();
    Square(const double);
    void set_edge(const double);
    void set_area(const double);
    void print_sqr();
    friend Square frd(const Square&, const Square&);
};
 
Square::Square (): Square(0.0) {}
Square::Square (double e): edge{e}, area{e*e} {
    if (e < 0)
        throw std::invalid_argument("Negative edge");
}
void Square::set_edge(double e) {
    if (e < 0)
        throw std::invalid_argument("Negative edge");
    edge = e;
    area = e*e;
}
 
void Square::set_area(double a) {
    if (a < 0)
        throw std::invalid_argument("Negative area");
    area = a;
    edge = std::sqrt(a);
}
 
void Square::print_sqr() {
    std::cout << area << std::endl;
}
 
Square frd (const Square& s1, const Square& s2) {
    return Square (std::sqrt(s1.area + s2.area));
}
 
int main()
{
    return 0;
}


Цитата Сообщение от vlisp Посмотреть сообщение
#include <stdexcept>
без него же тоже работает, исключения же простые.
0
0 / 0 / 0
Регистрация: 11.09.2018
Сообщений: 35
17.09.2018, 20:39  [ТС] 9
я не изучал С++ и потому прошу помощи, если можешь то отредактируй код и скинь
0
115 / 83 / 43
Регистрация: 19.01.2018
Сообщений: 484
17.09.2018, 20:47 10
Lucku_13, отредактируй? Он же рабочий, я же выше просто функцию меин дописал
0
0 / 0 / 0
Регистрация: 11.09.2018
Сообщений: 35
17.09.2018, 20:48  [ТС] 11
на екран ничего не выводит
0
115 / 83 / 43
Регистрация: 19.01.2018
Сообщений: 484
17.09.2018, 20:49 12
Lucku_13, нужно что б выводило? Если да, то что именно? В задании ничего не сказано.
0
0 / 0 / 0
Регистрация: 11.09.2018
Сообщений: 35
17.09.2018, 20:51  [ТС] 13
Создать класс «квадрат», такой, что:
а) его экземпляр содержит размер стороны квадрата.
b) его конструктор без параметра создает экземпляр со значением 0, а конструктор с
параметрами создает экземпляр с соответствующим значением стороны.
c) его методы позволяют получать и присваивать значения стороны и площади,
выполняя при этом соответствующие преобразования.
d) функция print_sqr () выводит на экран значение его площади.
e) дружественная функция frd в качестве параметров получает экземпляры двух квадратов и
возвращает новый квадрат, площадь которого равна сумме площадей этих двух квадратов
0
115 / 83 / 43
Регистрация: 19.01.2018
Сообщений: 484
17.09.2018, 20:54 14
Lucku_13, а где сказано про вывод? класс у тебя готовый, функции я не проверял, но код рабочий.
Цитата Сообщение от Lucku_13 Посмотреть сообщение
Помогите найти ошибку в коде
Ошибки никакой нет (для компиляции).
0
0 / 0 / 0
Регистрация: 11.09.2018
Сообщений: 35
17.09.2018, 20:56  [ТС] 15
функция print_sqr () выводит на экран значение его площади.Чтобы это вывело
0
115 / 83 / 43
Регистрация: 19.01.2018
Сообщений: 484
17.09.2018, 21:01 16
Lucku_13,
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <cmath>
 
class Square {
private:
    double edge;
    double area;
public:
    Square();
    Square(const double);
    void set_edge(const double);
    void set_area(const double);
    void print_sqr();
    friend Square frd(const Square&, const Square&);
};
 
Square::Square (): Square(0.0) {}
Square::Square (double e): edge{e}, area{e*e} {
    if (e < 0)
        throw std::invalid_argument("Negative edge");
}
void Square::set_edge(double e) {
    if (e < 0)
        throw std::invalid_argument("Negative edge");
    edge = e;
    area = e*e;
}
 
void Square::set_area(double a) {
    if (a < 0)
        throw std::invalid_argument("Negative area");
    area = a;
    edge = std::sqrt(a);
}
 
void Square::print_sqr() {
    std::cout << area << std::endl;
}
 
Square frd (const Square& s1, const Square& s2) {
    return Square (std::sqrt(s1.area + s2.area));
}
 
int main()
{
    Square sq(15);
    sq.print_sqr();
    return 0;
}
0
17.09.2018, 21:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.09.2018, 21:01
Помогаю со студенческими работами здесь

Класс SQUARE (квадрат)
Создайте класс SQUARE (квадрат). Класс имеет атрибут length. Он имеет функции, которые вычисляют...

Создать класс «квадрат»
Создать класс «квадрат», такой, что: а) его экземпляр содержит размер стороны квадрата. b) его...

Описать класс квадрат и пятиугольник
Помогите пожалуйста!Нужно описать классы квадрат и пятиугольник и написать функции их пересечения и...

Класс описывающий квадрат, перегрузка
Здравствуйте, помогите пожалуйста. Создать класс, описывающий квадрат. Перегрузить операцию...

Создать класс типа квадрат
Создать класс типа &quot;квадрат&quot;. Поля - координаты сторон квадрата. Функции члены вычисляют площадь,...

Магический квадрат (через производный класс)
Здравствуйте! Знаю, что на форуме неоднократно рассматривалась проблема разработки программы для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru