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

Как убрать глобальные переменные в коде? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подсчитать, сколько пpошло воскpесений за период http://www.cyberforum.ru/cpp-beginners/thread1649327.html
Подсчитать, сколько пpошло воскpесений от начала текущего кваpтала до последнего пpаздничного дня этого кваpтала. Известна текущая дата d.m.g. STL и Boost не знаю не учил) Есть мысль проверять текущую дату на наличие воскресения, и по 7 дней отталкиваться. Посоветуйте что нибудь. Была еще мысль расписывать каждое воскресение с помощью switch ну она слишком сложна в реализации и не практично.
C++ Как программно запросить информацию с сайта? Подскажите как сделать взаимодействие c++ с браузером. Например,запускаем консольное приложение,вводим адрес страницы сайта, к примеру yandex.ru, и сохраняем весь код в текстовый документ для дальнейшего взаимодействия. Или 2 вариант , сразу взять с сайта интересующую нас информацию, к примеру курс доллара и так же записать это значение в текстовый документ. Если можно сделайте подробный... http://www.cyberforum.ru/cpp-beginners/thread1649324.html
Что не так в коде? Рассчитать значение у для значений х. Code::Blocks выдает ошибку. C++
рассчитать значение у для значений х, равных 4, 5, ..., 28,. на формулу не смотрите, фишка в том что код блокс выдает ошибку но в коде я уже проверял все вроде нормально #include<iostream> #include<cmath> using namespace std; int main() { int y,x,t; for(x=4;x<=28;x++) { t=x+2;
Выполняя задания из книги Стенли Липпмана допустил ошибку. Не могу понять где. C++
Выполняя задания из книги Стенли Липпмана не могу понять где ошибка в коде с оператором While /*#include<iostream> using namespace std; int main() { int sum = 0; // сложить числа от 1 до 10 включительно
C++ Вычислить значение площади по формуле http://www.cyberforum.ru/cpp-beginners/thread1649263.html
Вообщем, ни как не могу понять, как записать и вычислить значение площади в программе с помощью такой формулы. X и Y - координаты точек, я записал их в два отдельных массива - один masX, с координатой Х каждой точки по порядку, и второй masY соответственно. Вот сама формула: S=1/2*\left|\sum_{k=1}^{n}\left({X}_{k}+{X}_{k+1} \right)*\left({Y}_{k}-{Y}_{k+1} \right) \right| , где {X}_{0} , {Y}_{0}...
C++ Умножение комплексных чисел в алгебраическом ввиде Умножение комплексных чисел в алгебраическом ввиде Помогите с кодом на с++. Просьба в простом виде бы код, а не в сложном. подробнее

Показать сообщение отдельно
EVP
314 / 236 / 41
Регистрация: 14.12.2010
Сообщений: 457
28.01.2016, 13:03     Как убрать глобальные переменные в коде?
Цитата Сообщение от JohnDoe321 Посмотреть сообщение
Проблема в том, что я не знаю, как это будет происходить.
Научись пользоваться классами и прячь всё внутрь класса.
Это даст возможность передавать неявно весь локальный контекст для связанных методов.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <stdlib.h>
#include <math.h>
#include <assert.h>
#include <iostream>
using namespace std;
 
class Application {
protected:
    static const int MAXROW = 5;
    static const int MAXCOL = 5;
    int A[MAXROW][MAXCOL];
    int newarr[MAXROW + 1][MAXCOL + 1];
 
public:
    Application() :A{ 0 }, newarr{0}
    {}
 
    void runCase(char da)
    {
        switch (da)
        {
        case '1': {
            system("cls");
            case1();
        } break;
 
        case '2': {
            //system("cls"); 
            case2();
        } break;
 
        case '3': {
            //system("cls"); 
            case3();
        } break;
 
        case '4': {
            //system("cls"); 
            case4();
        } break;
 
        case '5': {
            //system("cls"); 
            case5();
        } break;
        }
    }
 
protected:
    void case1()
    {
 
 
        for (int r = 0; r < MAXROW; ++r)
            for (int c = 0; c < MAXCOL; ++c) {
                cout << "\n A[" << r << "][" << c << "]= ";
                cin >> A[r][c];
            }
 
    }
 
    void case2()
    {
 
        int max[MAXCOL] = { 0 };
 
        for (int r = 0; r < MAXROW; ++r) {
            int minr = A[r][0];
            for (int c = 0; c < MAXCOL; ++c) {
                newarr[r][c] = A[r][c];
                if (minr > A[r][c])
                    minr = A[r][c];
 
                if (max[c] < A[r][c])
                    max[c] = A[r][c];
            }
            newarr[r][MAXCOL] = minr;
        }
 
        for (int c = 0; c < MAXCOL; ++c)
            newarr[MAXROW][c] = max[c];
 
        for (int r = 0; r < MAXROW + 1; ++r) {
            for (int c = 0; c < MAXCOL + 1; ++c)
                newarr[r][c] ? cout << newarr[r][c] << "\t" : cout << " \t";
 
            cout << "\n";
        }
    }
 
 
    void case3()
    {
        int negNumber = 0;
        double average = 0;
 
        for (int r = 0; r < 6; ++r) {
            for (int c = 0; c < 6; ++c) {
                if (newarr[r][c] < 0) {
                    ++negNumber;
                    average += newarr[r][c];
                }
 
            }
        }
        if (negNumber > 0) {
            average /= negNumber;
            cout << "Average of negatives: \n" << average;
        }
        else
            cout << "No negatives.\n";
 
 
    }
 
    void case4()
    {//Find product of number different from 0
        int count = 0;
        int product = 1;
 
 
        for (int r = 0; r < 6; ++r)
            for (int c = 0; c < 6; ++c)
                if (newarr[r][c] != 0)
                {
                    ++count;
                    product *= newarr[r][c];
 
                }
 
 
        if (count != 0)
            cout << "\n Procut: \n" << product << endl;
        else
            cout << "All elements = 0";
 
    }
 
    void case5()
    {
        for (int r = 0; r < MAXROW + 1; ++r) {
            for (int c = 0; c < MAXCOL + 1; ++c)
                newarr[r][c] ? cout << newarr[r][c] << "\t" : cout << " \t";
 
            cout << "\n";
        }
    }
};
 
int main()
{
    Application app;
    char da;
 
    do//menu
    {
        cout << "\n\nMENU\n";
        cout << "1. : \n";
        cout << "2. : \n";
        cout << "3.: \n";
        cout << "4.  \n";
        cout << "5. \n";
        cout << "6.Exit.\n\n";
 
        cin >> da;
        app.runCase(da);
    } while (da != '6');
 
    return 0;
}
 
Текущее время: 08:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru