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

как намутить - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ K-D дерево http://www.cyberforum.ru/cpp-beginners/thread736066.html
Доброго времени суток! Задача такова: построить K-D дерево. Конкретных условий нету, написание программы входит в задание РГР с темой "K-D дерево". Я так думаю, программа должна выполнять функции, что написаны в Вики - поиск диапазона и поиск ближайшего соседа. Прошу помощи
C++ Рандом в границах нужен рандом, выдающий числа от 58 до 64. Именно через стандартрую рандом или рандомайз.. http://www.cyberforum.ru/cpp-beginners/thread736060.html
Код, скомпилированный с помощью RAD sdudio или С++ Builder 6, не открывается на других компьютерах, C++ Builder
Доброго времени суток, файл, скомпилированный с помощью RAD sdudio или С++ Builder 6, не открывается на других компьютерах, т. к. "отсутствует CC3260MT.DLL", что посоветуете?
C++ масив данных
Здравствуйте. Помагите пожалуйсто создать список, я предпологаю что это будет масив но не понимаю как в масив засунуть не числа, не слова, а формы на подобие... struct clientData { int accNum; char Name; char Sur; float balance; };
C++ Ошибка в программе http://www.cyberforum.ru/cpp-beginners/thread736045.html
нужно найти кол-во нулевых элементов в массиве #include "stdafx.h" #include <iostream> #include <conio.h> #include <math.h> using namespace std; void main() { setlocale(LC_ALL,"Russian"); double a={{1.,3.,5.,7.,8.,0.,-6.},{3.,5.,-1.,0.,7.,9.,-1.},{-2.,-5.,6.,7.,8.,1.,0},{1.,5.,6.,7.,8.,5.,-1.},{-1.,6.,7.,8.,2.,6.,9.},{1.,0.,0.,3.,-6.,8.,9.},{-5.,-6.,8.,0.,-1.,6.,8.}},k,tmp;
C++ Вставить новый элемент после последнего положительного Помогите с задачкой разобраться,а то я что-то навертела,теперь понять не могу(( Вставить новый элемент после последнего положительного #include<iostream> using namespace std; int main() { int n,pp; int x; cout<<"x=";cin>>x; подробнее

Показать сообщение отдельно
Skillet102
1 / 1 / 0
Регистрация: 17.10.2012
Сообщений: 88
17.12.2012, 23:26     как намутить
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
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
делаю прогу по комплексным числам
3ий день бьюсь над ошибкой
не могу разобраться
подскажить,плиз,кто в курсе
#include "Stdafx.h"
#include <iostream>
#include <fstream>
 
using namespace std;
 
class Complex
    {
    private:
        double real;    // Действительная часть
        double image;   // Мнимая часть
    public:
        Complex() {};   // Конструктор по умолчанию
        Complex(double r) { real = r; image = 0; } // Конструктор
        Complex(double r, double i) { real = r, image = i; }    // Конструктор
        ~Complex() {}   // Деструктор
        Complex operator+(Complex &);   // Перегрузка оператора сложения
        Complex operator-(Complex &);    // Перегрузка оператора вычитания
        Complex operator*(Complex &);   // Перегрузка оператора умноженя
        Complex operator/(Complex &);    // Перегрузка оператора деления
        bool operator==(Complex &); // Перегрузка оператора сравнения
        // Перегрузка функции-оператора << для вывода класса Complex
        friend ostream &operator<<(ostream &, Complex &);
        // Перегрузка функции-оператора >> для ввода класса Complex
        friend istream &operator>>(istream &, Complex &);
    };
 
// Перегрузка +
Complex Complex::operator+(Complex &fp1)
{
    fp1.real = real + fp1.real;
    fp1.image = image + fp1.image;
    return fp1;
}
 
// Перегрузка -
Complex Complex::operator-(Complex &fp1)
    {
    fp1.real = real - fp1.real;
    fp1.image = image - fp1.image;
    return fp1;
    }
 
// Перегрузка оператора ==
bool Complex::operator==(Complex &fp1)
{
     if ((real == fp1.real) && (image == fp1.image))
     {
         return true;
     }
     else
     {
         return false;
     }
     return this;
}
 
// Перегрузка *
Complex Complex::operator*(Complex &fp1)
{
    double i, j;
    i = real * fp1.real - image * fp1.image;
    j = real * fp1.image + fp1.real * image;
    fp1.real = i;
    fp1.image = j;
    return fp1;
}
 
// Перегрузка /
Complex Complex::operator/(Complex &fp1)
    {
    double k, i, j;
    k = fp1.real * fp1.real + fp1.image * fp1.image;
    i = (real * fp1.real + image * fp1.image) / k;
    j = (fp1.real * image - real * fp1.image) / k;
    fp1.real = i;
    fp1.image = j;
    return fp1;
    }
 
// Перегрузка оператора <<
ostream &operator<< (ostream &fo, Complex &fp)
{
    if (fp.image < 0) fo << fp.real << "+i(" << fp.image << ")";
    else fo << fp.real << "+i" << fp.image;
    return fo;
}
 
// Перегрузка оператора >>
istream &operator>>(istream &fi, Complex &fp)
{
    fi >> fp.real;
    fi >> fp.image;
    return fi;
}
 
void program1(char *file_name_razmer, char *file_name_matrix)//считывание двумерного массива
{
    int m;//размер матрицы
    ifstream read(file_name_razmer);//открываем файл с размерностью матрицы
    if (read.fail())//проверяем установку связи
    {
        cout<<"\a\a\a\tОШИБКА!!! ФАЙЛ НЕ СУЩЕСТВУЕТ!!!"<<endl<<endl<<endl;
        system("pause");
        exit(0);
    }
    read>>m;//считываем с файла размерность
    read.close();//закрываем файл
    ifstream readmassiv(file_name_matrix);//открываем файл с матрицей
    if (readmassiv.fail())//если не удается открыть выводим на экран ошибку
    {
        cout<<"\a\a\a\tОШИБКА!!! ФАЙЛ НЕ СУЩЕСТВУЕТ!!! "<<endl<<endl<<endl;
        system("pause");
        exit(0);
    }
                int i,j;
                Complex sum1=0,sum2=0,sum3=0,sum4=0;
                Complex **mas = NULL;
    Complex **massiv=new Complex*[m];//создаем двумерный массив
    for (i=0; i<m; i++)
    {
        massiv[i]=new Complex[m];
    }
    for (i=0; i<m; i++)//считываем массив из файла
    {
        for (j=0; j<m; j++)
        {
            readmassiv>>massiv[i][j];
        }
    }
    readmassiv.close();//закрываем файл
    
    cout<<endl;
    for (i=0; i<m; i++)//вывод массива на экран
    {
        cout<<"\t";
        for (j=0; j<m; j++)
        {
            cout<<massiv[i][j]<<" ";
        }
        cout<<endl<<endl;
    }
 
//определяем является ли матрица Х-образной
    /*int kol1=0;
    Complex zero(0,0);
    for (i=0; i<m; i++)
    {
        for (j=0; j<m; j++)
        {
            if (massiv[i][j]==zero)
            {
                kol1=kol1++;//увеличиваем kol1 на единицу при каждой итерации
            }
        }
    }
    if (kol1==0)
    {
        cout<<endl<<"Матрица не является Х-образной";
        goto b;
    }
    if (m%2==0 & kol1>m+m || kol1>m+m-1 & m%2!=0 || kol1<m+m)
    {
        cout<<"Матрица не является Х-образной";
        goto b;
    }
    int kol=0;//объявляем переменную kobuil для подсчета количества нулей на диагоналях
    for (i=0; i<m; i++)
    {
        for (j=0; j<m; j++)
        {
            if (massiv[i][j]==zero && j==m-i-1)//побочная диагональ
            {
                kol=kol++;//увеличиваем kol на единицу при каждой итерации
            }
            if (massiv[i][j]==zero && i==j)//главная диагональ
            {
                kol=kol++;//увеличиваем kol на единицу при каждой итерации
            }
        }
    }
    if (kol==m+m)//количество нулей должно быть равно сумме строк и столбцов
    {
        cout<<endl<<"\tМатрица является X-образной"<<endl;
        for (j=0; j<m; j++)
        {
            Complex sum(0,0);
            for (i=0; i<m; i++)
            {
                sum=sum+massiv[i][j];//подсчитываем сумму элементов в каждом столбце
            }
            cout<<endl<<"Сумма элементов столбца №"<<j+1<<" = "<<sum;
        }
    }
    b:delete []massiv;//очищаем выделенную под массив память
    cout<<endl<<endl;
    system("pause");
    system("cls");*/
    //1-ая четверть
    Complex zero(0,0);
    Complex sum(0,0);
    for(i =   0; i < m/2; i++)
    for(j = m/2; j < m  ; j++)
        sum1 =sum+ mas[i][j];
 
    //2-ая четверть
    for(i = 0; i < m/2; i++)
    for(j = 0; j < m/2; j++)
        sum2=sum+ mas[i][j];
 
    //3-я четверть
    for(i = m/2; i < m  ; i++)
    for(j = 0  ; j < m/2; j++)
        sum3=sum+ mas[i][j];
 
    for(i = m/2; i < m; i++)
    for(j = m/2; j < m; j++)
       sum4=sum+ mas[i][j];
  
    printf
    (
        "1-ая четверть : %1.f\n" 
        "2-ая четверть : %1.f\n"
        "3- я четверть : %1.f\n"
        "4- я четверть : %1.f\n",
        sum1,sum2,sum3,sum4
    );
 
    Complex sums[] = {sum1, sum2, sum3, sum4};
    for(i = 0; i < 4; i++)
    for(j = 0; j < 4; j++)
    {
        if(sums[i] == sums[j])
        {
            sums[i] =sum+ sums[j];
            sums[j] = sums[i] - sums[j];
            sums[i] = sums[i] - sums[j];
        }
    }
    printf("Отcортированные суммы : %1.f %1.f %1.f %1.f",
        sums[0], sums[1], sums[2], sums[3]);
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int vvod=0;
    while (vvod!=2)
    {
        z:cout<<"\a\tОбработка  массивов комплексных чисел"<<endl<<endl<<endl
            <<"Выберите пункт меню:"<<endl<<endl
            <<"\t1 - Решение задания"<<endl
            <<"\t2 - Выход из программы"<<endl<<endl
            <<"Ваш выбор: ";
        cin>>vvod;
        if (vvod<1 || vvod>2)//в меню только 2 пункта: пункт1 и пункт2
        {
                cout<<endl<<"\a\a\aНЕВЕРНЫЙ ПУНКТ МЕНЮ!!! ПОВТОРИТЕ ПОПЫТКУ."<<endl<<endl;
                system("pause");//задержка экрана
                system("cls");//очищение экрана
                goto z;
        }
        system("cls");//очищение экрана
        //имена файлов с данными
        char file_name_razmer[20]={0};
        char file_name_matrix[20]={0};
        if (vvod==1)
        {
            cout<<"\a\tРешение задания"<<endl<<endl
                <<"Введите имя файла с размером матрицы: ";
            cin>>file_name_razmer;
            cout<<"Введите имя файла с элементами матрицы: ";
            cin>>file_name_matrix;
            program1(file_name_razmer, file_name_matrix);
        }
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru