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

Как лучше переделать программу чтобы отсутствовали глобальных переменных - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа работы с файлами. Информация о студентах. http://www.cyberforum.ru/cpp-beginners/thread1050652.html
Нужно создать программу, которая обрабатывала б базы данных, считывала информацию с файла, редактирвала эту информацию, удаляла часть инфы, и сохраняла обратно в файл, а так же поиск в базе по фамилии. В базе данных использовать информацию о студентах, а именно: ФИО, адресс, возраст и группу. Я сделал часть, где нужно считать с файла и поиск по фамилии. А вот остальное я пока не знаю как. Код...
C++ Найти все целые положительные числа a,b,c из промежутка 3) Найти все целые положительные числа a,b,c из промежутка (0,100) такие что a^3+b^2=c^2. P.S. в первой и второй задаче желателен вод с клавиатуры. Заранее благодарю. http://www.cyberforum.ru/cpp-beginners/thread1050646.html
Задача про двумерный массив C++
Вот условие: Дана целая матрица размером (n*m) n, m <=10. Упорядочить (переставить) строки матрицы по возрастанию количества положительных элементов в одной строке. #include<stdio.h> #include<math.h> int main(){ int n,m,i,j,a,k, masO, l, z, b, c, v, masP; do { printf("Vvedite razmer matrici NxM<=10\n"); scanf("%d%d",&n,&m); } while((n>10)||(m>10)||(n<=0)||(m<=0)); for (i=0; i<n; i++)...
Нужно объяснение кода про нахождение количества решений для латинского квадрата C++
Я не могу понять код, который мне нужно будет уже послезавтра объяснить. Задача состоит в том, чтобы найти количество решений для латинского квадрата и вывести эти квадраты на экран: int Factorial(int n) {if (n<=1) return 1; else return n*Factorial(n-1); } const int N = 4; const int Nf = Factorial(N); struct strN { int mas_;
C++ как написать вывод? http://www.cyberforum.ru/cpp-beginners/thread1050609.html
Как написать вывод объема тетраэдра (тема класс)? //На вход подается некоторое количество тетраэдров(координаты вершин). //Отсортировать и вывести их по возрастанию объемов. #include <iostream> #include <stdio.h> #include <locale> #include <math.h> using namespace std;
C++ как написать вывод? как написать в классах чтобы он выводил объем тетраэдра? //На вход подается некоторое количество тетраэдров(координаты вершин). //Отсортировать и вывести их по возрастанию объемов. #include <iostream> #include <stdio.h> #include <locale> #include <math.h> using namespace std; подробнее

Показать сообщение отдельно
outoftime
║XLR8║
506 / 428 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
23.12.2013, 13:41     Как лучше переделать программу чтобы отсутствовали глобальных переменных
Кликните здесь для просмотра всего текста
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
#include <stdio.h>
#include <stdlib.h>
 
void init_matrix(char (*matrix)[3]);
void get_player_move(char (*matrix)[3]);
void get_computer_move(char (*matrix)[3]);
void disp_matrix(const char (*matrix)[3]);
char check(const char (*matrix)[3]);
 
int main(int argc, char *argv[])
{
    char done = ' ', matrix[3][3];  
    init_matrix(matrix);
 
    printf("Eto - igra v kpestiki noliki.\n");
    printf("Vi bydete igrat' s kompyterom.\n");
 
 
    do
    {
        disp_matrix(&matrix[0]);
        get_player_move(&matrix[0]);
        done = check(&matrix[0]);
        if (done != ' ') break;
        get_computer_move(&matrix[0]);
        done = check(&matrix[0]);
    } while (done == ' ');
 
    if (done == 'X') printf("Vi pobedili!\n");
    else printf("Ya viygral!!!\n");
 
    disp_matrix(&matrix[0]);
 
    return EXIT_SUCCESS;
}
 
void init_matrix(char (*matrix)[3])
{
     for (int i = 0; i < 3; ++i) // c99 strick allows this trick
         for (int j = 0; j < 3; ++j) 
            matrix[i][j] = ' ';
}                         
 
void get_player_move(char (*matrix)[3])
{
    int x, y;
 
    printf("Vvedite koopdinati X,Y: ");
    scanf("%d%*c%d", &x, &y);
 
    --x; --y;
 
    if (matrix[x][y] != ' ')
    {
        printf("Neveriy xod, popitaytes' ewe.\n");
        get_player_move(matrix);
    }
    else matrix[x][y] = 'X';
}
 
void get_computer_move(char (*matrix)[3])
{
    int i, j;
 
    for(i = 0; i < 3; ++i)
    {
        for (j = 0; j < 3; ++j)
            if (matrix[i][j]== ' ') break;
        if (matrix[i][j]== ' ') break;
    }
 
    if (i * j == 9) 
    {
        printf("Nichya\n");
        exit(EXIT_SUCCESS);
    }
    else matrix[i][j] = 'O';
}
 
void disp_matrix(const char (*matrix)[3])
{
    for (int t = 0; t < 3; ++t) 
    {
        printf("%c | %c | %c ", matrix[t][0], matrix[t][1], matrix [t][2]);
        if (t != 2) printf("\n---|---|---\n");
    }
    printf("\n");
}
 
char check(const char (*matrix)[3])
{
    for (int i = 0; i < 3; ++i) /* Provepka strok */
        if(matrix[i][0] == matrix[i][1] && matrix[i][0] == matrix[i][2]) 
            return matrix[i][0];
 
    for (int i = 0; i < 3; ++i) /* Provepka stolbcov */
        if(matrix[0][i] == matrix[1][i] && matrix[0][i] == matrix[2][i]) 
            return matrix[0][i];
 
    /* Provepka Diagonaley */
    if (matrix[0][0] == matrix[1][1] && matrix[1][1] == matrix[2][2])
        return matrix[0][0];
 
    if (matrix[0][2] == matrix[1][1] && matrix[1][1] == matrix[2][0])
        return matrix[0][2];
 
    return ' ';
}

morphex, без понятия как const хавает компилятор с98, но g++ с флагом -std=c++98 хавает без проблем.

Добавлено через 4 минуты
С gcc в MinGW у меня проблемы, так что точно не скажу...
 
Текущее время: 02:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru