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

Нужно сделать задание по c++! Через 3 часа нужно сдать! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Считать из файла две строки, определить количество вхождений первой во вторую. Записать полученный числовой ре http://www.cyberforum.ru/cpp-beginners/thread1213019.html
Используя низкоуровневые ф-ции работы с файлами, прочитать из файла 2 строки : S1 и S2. Определить количество вхождений строки S2 в строку S1. Записать полученный числовой результат в другой файл.
C++ Рекурсия Привет, помогите пожалуйста надо вычислить рекурсивную функцию : (x+a(x+(a-1)(x+(a-2)(x+...2(x+1)^2)^2)^2)^2)^2. Помогите пожалуйста , Спасибо . И если можно С комментариями http://www.cyberforum.ru/cpp-beginners/thread1213018.html
Целочисленная матрица C++
Всем хей. Нужна помощь. Есть готовая программа, но немного не то, что нужно. Задание: Характеристикой строки целочисленной матрица А(NxM) назовём сумму всех положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом их характеристик. Собственно вот код. #include <iostream> #include <locale> #include <iomanip> using namespace std; int...
C++ В двумерном массиве А[5, 4] найти в каждом столбце наибольший (максимальный элемент)
В двумерном массиве А найти в каждом столбце наибольший (максимальный элемент). После этого определить столбец у которого максимальный элемент больше максимально остальных.
C++ Как хранить и обрабатывать массив больших элементов http://www.cyberforum.ru/cpp-beginners/thread1212990.html
Всем привет Есть некоторый буфер объёма 1 350 000 байт (значение конкретное в конкретном времени и месте, в принципе, возможно другое), в котором хранится некоторая информация по одному событию. Допустим нам нужно хранить сто таких буферов. Вопрос первый - что стоит использовать - массив указателей или вектора? Второй мой вопрос - Если нам захотелось выкинуть первый, всё сдвинуть и в...
C++ Укоротить строку до определенной длины Здравствуйте. Не могли бы подсказать как можно укоротить строчку до определенной длины?? подробнее

Показать сообщение отдельно
UnsKneD
алкокодер
 Аватар для UnsKneD
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
20.06.2014, 13:45     Нужно сделать задание по c++! Через 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
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ChM_Lab2_C_sharp
{
 
 
 
class Matrix
{
 
#region Описание переменных
int i, j, m, n, nSize, PosColumn, PosRow;
double[,] nArray = new double[MAXSIZE, MAXSIZE + 1];
double[,] nMatrix = new double[MAXSIZE, MAXSIZE + 1];
int[] nOrder = new int[MAXSIZE];
double[] dTotal = new double[MAXSIZE];
double[] e = new double[MAXSIZE];
double dMax1, dMax2, dSum;
public const double EPS = 0.00000000001;
public const int MAXSIZE = 25; //максимально возможный размер матрицы
#endregion
 
// Конструктор
public Matrix()
{
//ввод размерности массива
do
{
Console.Write("Введите размерность массива: ");
nSize = Convert.ToInt32(Console.ReadLine());
 
 
//проверка размерности массива
if (nSize > MAXSIZE)
{
Console.WriteLine("Размерность выходит за границу допустимого диапазона!");
Console.ReadKey();
 
}
} while (nSize > MAXSIZE);
}
 
 
 
#region Ввод данных
public void InputFromKeyboard()
{
for (i = 0; i < nSize; i++)
for (j = 0; j <= nSize; j++)
nArray[i, j] = Convert.ToDouble(Console.ReadLine());
 
VariableOrder();
}
 
 
 
public void InputFromVariant()
{
nSize = 5;
 
nArray[0, 0] = 5; nArray[0, 1] = 1.2; nArray[0, 2] = -2; nArray[0, 3] = 2.4; nArray[0, 4] = 1; nArray[0, 5] = 9;
nArray[1, 0] = 1.8; nArray[1, 1] = 5; nArray[1, 2] = 1; nArray[1, 3] = 2.2; nArray[1, 4] = 4; nArray[1, 5] = 7;
nArray[2, 0] = 3; nArray[2, 1] = 1.8; nArray[2, 2] = 1; nArray[2, 3] = 1.6; nArray[2, 4] = 1; nArray[2, 5] = 2.5;
nArray[3, 0] = 4.5; nArray[3, 1] = 2; nArray[3, 2] = 4; nArray[3, 3] = 2.6; nArray[3, 4] = 2; nArray[3, 5] = 9;
nArray[4, 0] = 7; nArray[4, 1] = 1; nArray[4, 2] = 2.4; nArray[4, 3] = 0; nArray[4, 4] = 9; nArray[4, 5] = -8;
 
VariableOrder();
}
 
 
public void InputRandom()
{
Random rand = new Random();
int k = rand.Next(-1, 3);
 
for (i = 0; i < nSize; i++)
for (j = 0; j <= nSize; j++)
nArray[i, j] = rand.Next(-100, 100) / Math.Pow(10, k);
 
VariableOrder();
 
}
 
public void VariableOrder()
{
//заполнение промежуточного массива для хранения порядка переменных
for (i = 0; i < nSize; i++)
nOrder[i] = i;
}
 
#endregion
 
//Вывод матрицы на экран
public void Output()
{
for (i = 0; i < nSize; i++)
{
for (j = 0; j <= nSize; j++)
Console.Write("{0:F2}\t", nArray[i, j]);
Console.WriteLine();
}
}
 
 
 
//замена рядов в массиве
public void ReplaceRows(int i, int n)
{
double Temp;
for (j = 0; j <= nSize; j++)
{
Temp = nArray[i, j];
nArray[i, j] = nArray[n, j];
nArray[n, j] = Temp;
}
}
 
 
//замена столбцов в массиве
public void ReplaceColumns(int i, int n)
{
double Temp;
for (j = 0; j < nSize; j++)
{
Temp = nArray[j, i];
nArray[j, i] = nArray[j, n];
nArray[j, n] = Temp;
}
 
//фиксируем перестановку столбцов
int Elem = nOrder[i];
nOrder[i] = nOrder[n];
nOrder[n] = Elem;
}
 
//пересохранение исходного массива для проверки в конце
public void Save()
{
for (i = 0; i < nSize; i++)
for (j = 0; j <= nSize; j++)
nMatrix[i, j] = nArray[i, j];
}
 
//Решение методом Гауса
public void Solve()
{
for (i = 0; i < nSize; i++)
{
//поиск максимального по модулю элемента в массиве(подмассиве)
dMax1 = nArray[i, i];
dMax2 = nArray[i, i];
PosColumn = i;
PosRow = i;
 
for (n = i; n < nSize; n++)
{
for (m = i; m < nSize; m++)
 
if (Math.Abs(nArray[n, m]) > Math.Abs(dMax1))
{
dMax2 = dMax1;
dMax1 = nArray[n, m];
PosColumn = m;
PosRow = n;
}
}
 
 
//условие, когда система несовместна
if (dMax1 == 0 && dMax2 == 0)
{
Console.WriteLine("Система не имеет решения");
Console.ReadKey();
Environment.Exit(0);
}
 
//замена в случае необходимости строк
if (PosColumn != i)
ReplaceColumns(i, PosColumn);
 
 
//замена в случае необходимости столбцов
if (PosRow != i)
ReplaceRows(i, PosRow);
 
//делим i-ю строку на диагональный элемент
for (n = i; n <= nSize; n++)
if (nArray[i, n] == 0 && dMax1 < 0)
nArray[i, n] = 0;
else
nArray[i, n] /= dMax1;
//обнуляем все элементы, стоящие под диагональным
for (j = nSize - 1; j > i; j--)
if (nArray[j, i] != 0)
{
double dElem = nArray[j, i];
for (n = i; n <= nSize; n++)
{
if (nArray[j, n] == 0 && dElem < 0)
nArray[j, n] = 0;
else
nArray[j, n] /= dElem;
 
if (Math.Abs(nArray[j, n] - nArray[i, n]) < EPS)
nArray[j, n] = 0;
else
nArray[j, n] -= nArray[i, n];
}
}
}
 
//Вывод треугольной матрицы
Console.WriteLine("Треугольная матрица:");
Output();
 
//получение корня, стоящего в последнем столбце значимой матрицы
dTotal[nSize - 1] = nArray[nSize - 1, nSize] / nArray[nSize - 1, nSize - 1];
 
//получение всех остальных корней
for (i = nSize - 2; i >= 0; i--)
{
dSum = 0;
for (j = nSize - 1; j > i; j--)
dSum += nArray[i, j] * dTotal[j];
if (Math.Abs(nArray[i, nSize] - dSum) < EPS)
dTotal[i] = 0;
else
dTotal[i] = (nArray[i, nSize] - dSum) / nArray[i, i];
}
 
//восстановление порядка переменных
for (i = 0; i < nSize; i++)
for (j = 0; j < nSize; j++)
if (i == nOrder[j])
e[i] = dTotal[j];
 
//вывод вектора с решением системы
Console.WriteLine("Решение системы:");
for (i = 0; i < nSize; i++)
Console.WriteLine("{0:F2}", e[i]);
 
//проверка полученных результатов
Console.WriteLine("Ответ:");
for (i = 0; i < nSize; i++)
{
double dSum = 0;
for (j = 0; j < nSize; j++)
dSum += nMatrix[i, j] * e[j];
dTotal[i] = dSum;
Console.WriteLine("{0:F2}", dTotal[i]);
}
}
}
}
 
Текущее время: 14:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru