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

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

Войти
Регистрация
Восстановить пароль
 
Tewe
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 22
#1

Избавиться от глобальной переменной - C++

26.01.2012, 19:03. Просмотров 1216. Ответов 3
Метки нет (Все метки)

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
#include <iostream>                     // подключаем ввод/вывод
#include <cmath>                        // подключаем математические функции
#include <conio.h>                      // подключаем для использования getch()
 
using namespace std;                    // пространство имен std
#define PI 3.1415926535                 // макрос. в коде PI будет автоматически заменяться на 3.1415926535
void inputValues();                     // прототип функции ввода значений
double space();                         // прототип функции для вычисления объема
double area();                          // прототип функции для вычисления прощади боковой поверхности
// структура Конуса
struct Cone {
    double R;                 // радиус большего круга
    double r;                 // радиус меньшего круга
    double h;                 // высота усеченного конуса
    double l;                 // образующая усеченного конуса
};
Cone cone;                    // создаем один объем структуры Cone
// функция main, с которой начинается исполнение программы
int main()
{
    inputValues();            // вызов функции для ввода данных
    cout << "\nОбъём конуса равен: " << space() << "." << endl;         // вызов функции для вычисления объема и вывод результатов
    cout << "Площадь боковой поверхности конуса равна: " << area() << "." << endl;             // вызов функции для вычисления площади боковой поверхности и вывод результатов
    getch();                  // ожидание нажатия клавиши
    return 0;                 // успешное завершение программы
}
// функция для ввода данных
void inputValues()
{
    do {
        cout << "Введите радиус большого круга и радиус малого круга: ";
        cin >> cone.r >> cone.R;
    } while( cone.r <= 0 || cone.R <= 0 || cone.r >= cone.R );        // проверка правильности введенных данных
    do {
        cout << "Введите высоту усечённого конуса и образующую усечённого конуса: ";
        cin >> cone.h >> cone.l;
    } while( cone.h <= 0 || cone.l <= 0 || cone.h >= cone.l );        // проверка правильности введенных данных
}
// функция для вычисления объема усеченного конуса
double space()
{
    return ( PI * cone.h * ( pow( cone.R, 2 ) + pow( cone.r, 2 ) + cone.R * cone.r ) ) / 3;
}
// функция для вычисления площади боковой поверхности усеченного конуса
double area()
{
    return PI * cone.l * ( cone.R + cone.r );
}
Как избавиться от глобальной переменной Cone cone и выполнить передачу параметров по значению?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2012, 19:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Избавиться от глобальной переменной (C++):

Различие глобальной и глобальной статической переменной - C++
у нас есть заголовочный файл со стражами, допустим global.h , его используют несколько других хейдеров и с++ файлов . когда там описаны...

Инициализация глобальной переменной - C++
Здравствуйте, мне необходимо в программе по решению СНАУ добавить возможность задавать коэфициенты при неизвестных вводом через консоль. ...

Работа с глобальной переменной типа bool - C++
ок, я создала глобальную переменную типа bool (да, лучше этого избегать и все такое, но сейчас так надо) пусть будет bool abc; в main...

Можно ли обратиться к перекрытой глобальной переменной? - C++
int x; void f(int x); int main() { f(2); return 0; }; void f(int x) { x=x; // здесь я хочу скопировать праметр в...

Как сделать матрицу глобальной переменной? - C++
int main() {randomize(); int N,M; cout&lt;&lt;&quot;Vvedit rozmirnist matrici NxM:\n&quot;; cin&gt;&gt;N; cin&gt;&gt;M; cout&lt;&lt;&quot;Matricu sformovano\n&quot;; ...

Увеличение значения переменной, обявленной в глобальной области - C++
Начал изучать CUDA, т. к. надо пистаь курсач... И вот у меня появился вопрос. Допустим я выделил в глобальной памяти интовую переменную....

3
dimcoder
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,137
26.01.2012, 19:06 #2
Её надо объявить динамической. Так:
C++
1
2
3
4
5
int * Glob;
Glob = new int;
                          //Ипользуете глобальную переменную Glob
delete Glob;          //Избавляемся, но учитываем что указатель остается
Glob = NULL;         //Да что бы меньше косяков в дальнейшем было
0
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
26.01.2012, 19:11 #3
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
51
52
#include <iostream>                     // подключаем ввод/вывод
#include <cmath>                        // подключаем математические функции
#include <conio.h>                      // подключаем для использования getch()
 
using namespace std;    
 
struct Cone {
    double R;                 // радиус большего круга
    double r;                 // радиус меньшего круга
    double h;                 // высота усеченного конуса
    double l;                 // образующая усеченного конуса
};// пространство имен std
#define PI 3.1415926535                 // макрос. в коде PI будет автоматически заменяться на 3.1415926535
void inputValues(Cone &cone);            
                                                    // прототип функции ввода значений
double space(Cone &cone);                         // прототип функции для вычисления объема
double area(Cone &cone);                          // прототип функции для вычисления прощади боковой поверхности
// структура Конуса
 
                   // создаем один объем структуры Cone
// функция main, с которой начинается исполнение программы
int main()
{
    Cone cone;
    inputValues(cone);            // вызов функции для ввода данных
    cout << "\nОбъём конуса равен: " << space(cone) << "." << endl;         // вызов функции для вычисления объема и вывод результатов
    cout << "Площадь боковой поверхности конуса равна: " << area(cone) << "." << endl;             // вызов функции для вычисления площади боковой поверхности и вывод результатов
    getch();                  // ожидание нажатия клавиши
    return 0;                 // успешное завершение программы
}
// функция для ввода данных
void inputValues(Cone &cone)
{
    do {
        cout << "Введите радиус большого круга и радиус малого круга: ";
        cin >> cone.r >> cone.R;
    } while( cone.r <= 0 || cone.R <= 0 || cone.r >= cone.R );        // проверка правильности введенных данных
    do {
        cout << "Введите высоту усечённого конуса и образующую усечённого конуса: ";
        cin >> cone.h >> cone.l;
    } while( cone.h <= 0 || cone.l <= 0 || cone.h >= cone.l );        // проверка правильности введенных данных
}
// функция для вычисления объема усеченного конуса
double space(Cone &cone)
{
    return ( PI * cone.h * ( pow( cone.R, 2 ) + pow( cone.r, 2 ) + cone.R * cone.r ) ) / 3;
}
// функция для вычисления площади боковой поверхности усеченного конуса
double area(Cone &cone)
{
    return PI * cone.l * ( cone.R + cone.r );
}
0
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
26.01.2012, 19:11 #4
C++
1
2
3
4
5
6
7
8
9
10
int main()
{
    Cone cone;
    InputValues(cone);
    //...
}
void InputValues(Cone &cone)
{
    //...
}
0
26.01.2012, 19:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2012, 19:11
Привет! Вот еще темы с ответами:

Как изменить значение глобальной переменной в процедуре? - C++
Как изменить значение глобальной переменной в процедуре? #include &lt;iostream&gt; using std:: cin; using std:: cout; using std::...

Класс памяти по умолчанию для глобальной переменной - C++
Здравствуйте! Прочитала такую вещь тут Вот что-то не укладывается мне в голове пункт 2 и следующий после него абзац, а точнее...

Cоздание глобальной переменной типа объект для Form - C++
Суть проблемы заключается в том что я хочу созадать глобальную переменную перед классом форм, мне это нужно для того что бы во всех...

Задать значения глобальной переменной при разных условиях - C++
Как глобально задать значение переменной при разных условиях, а потом обращаться к этим значениям из других функций? Нужно что-то...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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