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

Заполнение змейкой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Можно ли спомощью такого цикла все элементы массива вывести в обратном порядке? http://www.cyberforum.ru/cpp-beginners/thread621470.html
можно ли спомощью такого цикла все элементы массива вывести в обратном порядке? for(i=n;i=0;i--)
C++ С одной cpp в другую Господа, вот ниже два куска кода, как сделать так чтобы результат ARB_multitexture_supported приходил во вторую cppшку? В общем как ее туда правильно перекинуть? bool SetUpARB_multitexture() { bool ARB_multitexture_supported=false; //Check for support char * extensionString=(char *)glGetString(GL_EXTENSIONS); char * extensionName="GL_ARB_multitexture"; char *... http://www.cyberforum.ru/cpp-beginners/thread621467.html
C++ Win32 API, LRESULT CALLBACK, ошибки
Помогите исправить ошибки #include<windows.h> #include<commctrl.h> const IDM_Enable_Disable=0; const IDM_Exit=1; const IDM_About=2; const IDP_File=3; const IDP_Help=4; char* pMessages=
C++ Сортировать массивы по возрастанию и по убыванию.
1. Дано одномерный массив, состоящий из 20и элементов. Сортировать эти массивы по возрастанию и по убыванию. Например: Дано:1 4 7 2 5 8 3 6 9 10 15 13 12 14 11 В Итоге: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
C++ Функции для работы с ole2 strorage http://www.cyberforum.ru/cpp-beginners/thread621455.html
Народ, кто-нибудь может подсказать функцию для работы с ole2 strorage, аналогичную StgOpenStorage(), которой можно было бы пользоваться под линуксом?
C++ Сортировать по возрастанию(по алфавиту) 2. Символьный массив, состоящий из 15и символов. Сортировать их по возрастанию(по алфавиту). Например: Дано: ф а п р б г д . . . . В итоге:а б г д п р ф . . . . подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
18.07.2012, 17:11     Заполнение змейкой
prettynetty, как я и говорил делаю всё всегда по своему
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
#include <string>
#include <fstream>
#include <iomanip>
#include <iostream>
using namespace std;
 
//Функция возвращает число строк считанных из потока ifstream
int getLines(ifstream &ifs);
//Функция загружает матрицу размером n x n из потока ifstream
double **LoadArr (ifstream &ifs, int n);
//Функция заполняет змейкой матрицу размером n x n
double **FillArr (int n);
//Функции вывод на экран
void Show(int n, double * vec);//Вектора
void Show(int n, double **arr);//Матрицы
//Очистка памяти
void Free(int n, double **arr);
 
 
int main()
{
    bool bMenu    = true;//Флаг отображения меню
    int iChoise   = 0;//Отвечает за выбор пользоваателя
    int n         = 0;//Будет содержать размерность матрицы
    double ** arr = NULL;//Указатель на вещественную матрицу
    ifstream ifs;
    while(bMenu)
    {
        cout<<"\t***MENU***\n";
        cout<<"1 - Load from file\n";
        cout<<"2 - Program fill\n";
        cout<<"0 - Exit\n";
        cout<<"Choise : ";cin>>iChoise;
        switch(iChoise)
        {
        case 1:
            ifs.open("matrix.txt");
            if(!ifs.is_open())
                cout<<"Error open matrix.txt\n";
            else
            {
                //Определили размер матрицы
                n   = getLines(ifs);
                arr = LoadArr (ifs, n);//Загрузили
                Show(n, arr);//Напечатеали
                Free(n, arr);//Вытерли из памяти
                ifs.close();
            }
            break;
        case 2:
            cout<<"Enter size of matrix : ";cin>>n;
            arr  = FillArr (n);//Сформировали
            Show(n, arr);//Напечатеали
            Free(n, arr);//Вытерли из памяти
            break;
        case 0:
            bMenu = false;
            break;
        };
    }
    return 0;
}
 
int getLines(ifstream &ifs)
{
    int n =0;//Будет содержать размер матрицы
    int i, j;//Счётчики
    string line;//Будет содержать элементы строки из файла
    while(getline(ifs,line))
        n = n + 1;
    ifs.clear();//Сбрасываем флаг EOF
    ifs.seekg(0,ios::beg);//Возвращаем поток вначало файла
    return n;
}
 
double **LoadArr (ifstream &ifs, int n)
{
    int i, j;//Счётчики
    //Выделяем память под указатели на стркои матрицы
    double ** arr = new double *[n];
    for(i = 0; i < n && !ifs.eof(); i++)
    {
        //Выделяем память под элементы i-й стркои матрицы
        arr[i] = new double [n];
        for(j = 0; j < n && !ifs.eof(); j++)
            ifs>>arr[i][j];
    }
    ifs.clear();//Сбрасываем флаг EOF
    ifs.seekg(0,ios::beg);//Возвращаем поток вначало файла
    return arr;
}
 
double **FillArr (int n)
{
    int i, j, k = 0;//Счётчики
    //Выделяем память под указатели на стркои матрицы
    double ** arr = new double *[n];
    for(i = 0; i < n; i++)
    {
        //Выделяем память под элементы i-й стркои матрицы
        arr[i] = new double [n];
    }
    //Собственно само заполнение змейкой по диагонали
    int diag = 0;
    for(diag = 0; diag < 2*n; diag++)
    {
        for(i = 0; i < n; i++)
        for(j = 0; j < n; j++)
        {
            if(diag + 1 == (i + 1) + (j + 1))
            {
                if(diag % 2)
                    arr[i][j] = k + 1;
                else
                    arr[j][i] = k + 1;
                k = k + 1;
            }
        }
    }
    return arr;
}
 
void Show(int n, double * vec)
{
    for(int i = 0; i < n; i++)
    {
        if(0 <= vec[i])
            cout<<" ";
        cout<<setprecision(3)
            <<setw(3)<<setfill(' ')
            <<vec[i]<<" ";
    }
    cout<<endl;
}
 
void Show(int n, double **arr)
{
    for(int i = 0; i < n; i++)
        Show(n, arr[i]);
}
 
void Free(int n, double **arr)
{
    for(int i = 0; i < n; i++)
        free((void *)arr[i]);
    arr = NULL;
}
Содержимое matrix.txt
1 3 4 10
2 5 9 11
6 8 12 15
7 13 14 16
Миниатюры
Заполнение змейкой  
 
Текущее время: 06:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru