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

Вывод в файл - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача на функции http://www.cyberforum.ru/cpp-beginners/thread445977.html
Помогите решить задачи на функции. Имеются две связанных друг с другом задачи. Первая: Описать процедуру Minmax (A, B), записывающую в переменную А минимальное из значений А и В, а в переменную В - максимальное из этих значений (А и В - вещественные параметры, являющиеся одновременно входными и выходными). Использую четыре вызова этой процедуры, найти минимальное и максимальное из чисел А, B,...
C++ Изменить программу Спасайте :) - завтра нужно сдать все отчёты. Осталась одна программа: Общая постановка. Пользовательский класс String должен содержать необходимые элементы-данные, которые создаются в динамической области памяти. • Конструктор для создания строк: String (…); • Деструктор: ~String(); • Метод ввода исходной строки: Set(); • Метод печати: void print(…); Код методов – вне пространства... http://www.cyberforum.ru/cpp-beginners/thread445969.html
Динамический массив (классов) C++
Вот такой вопрос, почему так? #include <iostream> #include <string> using namespace std; class primer { public: primer (int _number, char _s1)
Динамическая строка и перегрузка операций C++
Всем доброго дня!!!Если есть минутка, помогите сделать эти задания!буду очень благодарен!! Вот сама задача!!!! 1. Длина L четная, то выделяется подстрока со второго пробела.
C++ Создать класс, для работы с динамическими векторами http://www.cyberforum.ru/cpp-beginners/thread445943.html
Создать класс, для работы с динамическими векторами, длины n. В класс реализовать операцию вычитания векторов ввода и вывода в поток. Проверить работу соответствующих операций.
C++ Задача на функции Помогите разобраться с задачей. Задание. Описать процедуру Minmax (A, B), записывающую в переменную А минимальное из значений А и В, а в переменную В - максимальное из этих значений (А и В - вещественные параметры, являющиеся одновременно входными и выходными). Использую четыре вызова этой процедуры, найти минимальное и максимальное из чисел А, B, C, D. Я понимаю, что написанная мной... подробнее

Показать сообщение отдельно
anton-mix
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 68
14.02.2012, 12:23     Вывод в файл
Всем привет, вот такая проблемка возникла. Хочу вывести матрицы в файл, но не получается...Файл оказывается пустым, как исправить?)
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
#include <iostream>
#include <fstream>
#include <cmath>
#include <vector>
#include <iomanip>
#include <stdio.h>
using namespace std;
 
//Вычисляем элементы a(ij)
vector<vector<double>>MATRICA(int n)
{
    vector<vector<double>>D;
    for(int i=1;i<n;i++)
    {
        vector<double>L;
        for (int j=1;j<n;j++)
        {
            L.push_back(1/((double)sin(double(i+j))*(double)sin(double(i+j))));
        }
        D.push_back(L);
    }
    return D;
};
//формируем матрицу R размером n*2n, левая половина которой матрица А
//правая половина - единичная матрица
vector<vector<double>>MATRICA_R(vector<vector<double>>D)
{
    vector<vector<double>>L;
    for(int i=0;i<D.size();i++)
    {
        vector<double>EDINICA;
        for(int j=0;j<D.size();j++)
        {
            //если i=j, то соответственно на диагонали будет 1
            if(i==j)
            {
                EDINICA.push_back(1);
            }
            else 
            {EDINICA.push_back(0);}
        }
        L.push_back(EDINICA);
    }
    for(int i=0;i<D.size();i++)
    {
        for(int j=0;j<D.size();j++)
        {
            D[i].push_back(L[i][j]);
        }
    }
    return D;
};
//метод Гаусса
vector<vector<double>>Gauss(vector<vector<double>>D)
{
    vector<vector<double>>GAUSS(D);
    vector<vector<double>>G2(D);
    double a;
    int n=D.size();
    for(int j=0;j<D.size();j++)
    {
 
        int nmax=j;
        double AMAX=D[j][j];
        for(int i=j;i<D.size();i++)
            //ищем наиболший элемент столбца
        {
            if(abs(D[i][j])>abs(AMAX))
            {
                AMAX=D[i][j];
                nmax=i;
            }
        }
        for(int i=0;i<D.size();i++)
            //Переставляем элементы местами в матрице
        {
            a=D[j][i];
            D[j][i]=D[nmax][i];
            D[nmax][i]=a;
        }
        for(int i=0;i<D.size();i++)
        {
            for(int j=0;j<D.size();j++)
            {
                GAUSS[i][j]=D[i][j];
            }
        }
        for(int i=j+1;i<D.size();i++)
        {
            for(int k=0;k<D.size();k++)
            {
                //конец прямого хода метода Гаусса
                D[i][k]=D[i][k]-GAUSS[j][k]*GAUSS[i][j]/GAUSS[j][j];
            }
        }
    }
    //Вычисляем неизвестные элементы матрицы R
    //соответсвующие j-му столбцу обратной матрице
    vector<vector<double>>L;
    for(int j1=0;j1<n;j1++)
    {
        vector<double>EDINICA;
        double *x=new double[n];
        double k=D[n-1][n+j1]/D[n-1][n-1];
        x[n-1]=k;
        double S=0;
        for(int i=n-2;i>=0;i--)
        {
            S=D[i][n+j1];
            for(int j=n-1;j>i;j--)
            {
                S=S-D[i][j]*x[j];
            }
            x[i]=S/D[i][i];
        }
        for(int i=0;i<n;i++)
        {
            EDINICA.push_back(x[i]);
        }
        L.push_back(EDINICA);
        delete[]x;
    }
    double d;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            d=L[i][j];
            L[i][j]=L[j][i];
            L[j][i]=d;
        }
    }
    return L;
};
void print(vector<vector<double>>D)
{
    
    for(int i=0;i<D.size();i++)
    {
        for (int j=0;j<D.size();j++)
        {
            cout<<D[i][j]<<" ";
        }
        cout<<endl;
    }
    cout<<endl;
 
}
int main()
{
    int n=9;
        ofstream fout("1.txt",ios::out,ios::binary);
    cout<<"MATRICA A\n";
    vector<vector<double>>D(MATRICA(n));
    print(D);
    vector<vector<double>>L(MATRICA_R(D));
    print(L);
    vector<vector<double>>GAUSS(Gauss(L));
    print(GAUSS);
    fout.close();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru