Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.64
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
#1

Напишите программу, которая рассчитывает и печатает диаметр, длину окружности и площадь круга - C++

23.08.2011, 21:16. Просмотров 4269. Ответов 44
Метки нет (Все метки)

4.30. Напишите программу, которая читает радиус (как значение типа double),
рассчитывает и печатает диаметр, длину окружности и площадь круга. Для ?
используйте значение 3.14159.


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
#include "stdafx.h"
#include <iostream>
#include "lang.h"
 
using namespace std;
 
class circle
{
public:
    circle(double radius)
    {
    this->radius = radius; 
    }
    double printDiametr()
    {
        diameter = this->radius  * pi;
        return diameter;
    }
 private:
        double radius; 
    double pi;
        double diameter; 
        double length; 
        double area; 
};
 
int main()
{
        lang();
        double radius;
    double pi = 3.1415;
        circle One(radius);
        cout << "Введите радиус" << endl;
        cin >> radius;
    One.printDiametr();
 
        system("PAUSE");
        return 0;
}
Вроде как суть понял в прошлой задаче, немного прояснилось что к чему, решил сделать подобную
Вроде всё сделал правильно но радиус не выводится *цензура*.


Что не так, помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2011, 21:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Напишите программу, которая рассчитывает и печатает диаметр, длину окружности и площадь круга (C++):

Напишите программу, которая считывает радиус круга и печатает диаметр круга, длину окружности и площадь - C++
Добрый день. Продолжаю потихоньку решать задачи. Вот следующая. Напишите программу, которая считывает радиус круга и печатает диаметр...

Зная радиус, диаметр или длину окружности вычислить площадь круга - C++
2) Пусть элементами круга является радиус (первый элемент) , диаметр (второй элемент) и длина окружности (третий элемент). Составить...

Написать программу, вычисляющую площадь круга и длину окружности по ее радиусу - C++
Написать программу, вычисляющую площадь круга и длину окружности по ее радиусу. Основная программа запрашивает радиус и передает его в...

Вычислить площадь и длину окружности круга - C++
Вычислить площадь и длину окружности круга, радиус которого равен а.

Вычислить длину окружности и площадь круга - C++
Поступил на программиста,дали сразу лабораторную. Не знаю что делать. Вот Вопрос 1. Дан радиус окружности. Вычислить длину...

Вычислить длину окружности и площадь круга - C++
Вычислить длину окружности и площадь, заключенную в круге Формат входных данных Ввод содержит одно число R (0 ≤ R ≤ 10000) - радиус...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
grizlik78
Эксперт С++
1908 / 1440 / 111
Регистрация: 29.05.2011
Сообщений: 2,996
23.08.2011, 22:00 #31
Цитата Сообщение от lera8 Посмотреть сообщение
grizlik78,даже не знаю, обижать или нет )
lera8, обижай!
lera8
23.08.2011, 22:02
  #32

Не по теме:

grizlik78, ой)) Извините) Обижаться хотела написать)

TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
23.08.2011, 22:04  [ТС] #33
Кто нибудь подскажет что не так ?
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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
class circle
{
public:
    circle(double radius)
    {
    this->radius = radius; 
    }
    double printArea()
    {
        area = this->radius  * pi * 2;
        return area;
    }
 private:
        double radius; 
        double pi;
        double diameter; 
        double length; 
        double area; 
};
 
int main()
{       
        locale::global(locale("rus"));   
        double radius;
        double pi = 3.1415;
        cout << "Введите радиус" << endl;
        cin >> radius;
        circle One(radius);
 
        cout << One.printArea();
 
        system("PAUSE");
        return 0;
}
В классе написать static const double pi = 3.1415926;
не могу, выдаёт ошибку ( ms 2010 )
lera8
631 / 214 / 26
Регистрация: 03.11.2009
Сообщений: 488
23.08.2011, 22:05 #34
TBIKC, а давайте вы уточните что вам всё таки нужно? каким должен быть класс, какие методы и члены должны быть в нём
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
23.08.2011, 22:07  [ТС] #35
Всё должно остаться как есть, в смысле что вычисляется только площадь,
При попытке ввода радиуса выводиться непонятная площадь ( не соответствующая )
Скопируйте посмотрите, пожалуйста
grizlik78
Эксперт С++
1908 / 1440 / 111
Регистрация: 29.05.2011
Сообщений: 2,996
23.08.2011, 22:08 #36
В классе:
C++
1
static const double pi;
За пределами класса, после его объявления:
C++
1
const double circle::pi = 3.14159265;
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
23.08.2011, 22:11  [ТС] #37
Learn.cpp(32): error C2655: circle:i: недопустимое определение или повторное объявление в текущей области видимости
1> Learn.cpp(17): см. объявление "circle:i"
1>Learn.cpp(32): error C2086: const double circle:i: переопределение
1> Learn.cpp(17): см. объявление "pi"

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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
class circle
{
public:
    circle(double radius)
    {
    this->radius = radius; 
    }
    double printArea()
    {
        area = this->radius  * pi * 2;
        return area;
    }
    static const double pi;
 private:
        double radius; 
        double diameter; 
        double length; 
        double area; 
};
 
int main()
{       
    locale::global(locale("rus"));   
        double radius;
    cout << "Введите радиус" << endl;
        cin >> radius;
        circle One(radius);
    const double circle::pi = 3.14159265;
    cout << One.printArea();
 
        system("PAUSE");
        return 0;
}
lera8
631 / 214 / 26
Регистрация: 03.11.2009
Сообщений: 488
23.08.2011, 22:11 #38
TBIKC, потому что у вас значение pi-члена класса не устанавливается
напишите в вычисление площади вот так вот,зачем вам поле pi в классе?
C++
1
2
3
4
5
double printArea()
        {
                area = radius*radius  * 3.1415;
                return area;
        }
grizlik78
Эксперт С++
1908 / 1440 / 111
Регистрация: 29.05.2011
Сообщений: 2,996
23.08.2011, 22:13 #39
TBIKC, не, вот это
C++
1
const double circle::pi = 3.14159265;
должно быть не в main, а между main и классом.
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
23.08.2011, 22:16  [ТС] #40
ДА ДА ДА!! Грацио
Вот проблемная строчка была( ну точнее уже не проблемная )
area = this->radius * radius * 3.14;

Спасибо огромное, не могу нажать + спасибо ( лимит )

Добавлено через 50 секунд
Работает, спасибо, а почему так ?
grizlik78
Эксперт С++
1908 / 1440 / 111
Регистрация: 29.05.2011
Сообщений: 2,996
23.08.2011, 22:17 #41
Цитата Сообщение от TBIKC Посмотреть сообщение
а почему так ?
Почему так что?
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
23.08.2011, 22:20  [ТС] #42
Почему должно быть между классом и main()
lera8
631 / 214 / 26
Регистрация: 03.11.2009
Сообщений: 488
23.08.2011, 22:21 #43
TBIKC, в общем то это одно из решений проблемы,если вам нужно всё таки чтобы у ввас в классе было поле pi ,то нужно прислушаться к советам grizlik78
grizlik78
Эксперт С++
1908 / 1440 / 111
Регистрация: 29.05.2011
Сообщений: 2,996
23.08.2011, 22:23 #44
Ну потому, что статические члены должны инициализироваться до вызова main, в глобальном пространстве имён. Короче так надо
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
23.08.2011, 22:23  [ТС] #45
Полная реализация, работает всё, сделал всю задачу, спасибо за помощь
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
50
#include "stdafx.h"
#include <iostream>
 
using namespace std;
class circle
{
public:
    circle(double radius)
    {
    this->radius = radius; 
    }
    double printArea()
    {
        area = this->radius * radius * pi;
        return area;
    }
    double printDiameter()
    {
        diameter = this->radius + radius;
        return diameter;
    }
    double printLength()
    {
        length = this->radius * pi;
        return length;
    }
 private:
        static const double pi;
        double radius; 
        double diameter; 
        double length; 
        double area; 
};
 
const double circle::pi = 3.14159265;
 
int main()
{       
    locale::global(locale("rus"));   
        double radius;
    cout << "Введите радиус" << endl;
        cin >> radius;
        circle One(radius);
        cout << "Площадь " << One.printArea() << endl;
        cout << "Диаметр " << One.printDiameter() << endl;
        cout << "Длина окружности " << One.printLength() << endl;
 
        system("PAUSE");
        return 0;
}

Не по теме:

Господи сейчас начну решать следующую

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2011, 22:23
Привет! Вот еще темы с ответами:

Найти площадь круга, вписанного в треугольник с заданными сторонами. напишите программу которая работала бы ) - C++
Найти площадь круга, вписанного в треугольник с заданными сторонами. напишите программу которая работала бы )

Найти длину окружности и площадь круга заданного радиуса R - C++
1 Найти длину окружности и площадь круга заданного радиуса R. В качестве значения Pi использовать 3.14. Вывести полученные значения. ...

Определить площадь круга и длину окружности, ограничивающей круг - C++
Описать переменную &quot;круг&quot;, в которой содержатся все данные для построения круга на плоскости в декартовой системе координат.Определить...

Найти длину окружности и площадь круга заданного радиуса R - C++
Помогите решить задачи. Найти длину окружности и площадь круга заданного радиуса R. В качестве значения Pi использовать 3.14. Вывести...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.08.2011, 22:23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru