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

Запись и считывание в/из ФАЙЛА - C++

Восстановить пароль Регистрация
 
andreyananas
 Аватар для andreyananas
17 / 17 / 5
Регистрация: 15.10.2013
Сообщений: 804
27.05.2014, 23:07     Запись и считывание в/из ФАЙЛА #1
Есть программа По вычислению СЛАУ методом Гаусса.
Помогите сделать так, что бы можно было считывать и записывать в ФАЙЛ: СЛАУ и его решения.
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
#include <iostream>
#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <math.h>
 
using namespace std;
 
void Show(int, double*);
void PryamojHod(int, double**, double*);
void ObratnyHod(int, double**, double*, double*);
 
int main()
{
    SetConsoleOutputCP(1251);
    int n;
    cout << "\n Введите количество переменных: ";
    while(!(cin >> n) || (cin.peek() != '\n') || (n <=0))
    {
        cin.clear();
        while(cin.get() != '\n');
        cout << "\n\a Ошибка! \n для новой попытки, нажмите любую кнопку...";
        getch();
        system("cls");
        cout << "\n Введите количество переменных: ";
    }
 
    // выдиляем память под матрицу А и векторы В и Х
    double **a = new double *[n];
    for (int i = 0; i < n; i++)
        a[i] = new double [n];
    double *b = new double [n];
    double *x = new double [n];
 
    // ввод данных
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            cout << " Введите " << (j+1) << "й коэффициент " << (i+1) << "го уравнения: ";
            while(!(cin >> a[i][j]) || (cin.peek() != '\n'))
            {
                cin.clear();
                while(cin.get() != '\n');
                cout << "\n Ошибка ввода!\n для новой попытки, нажмите любую кнопку...";
                getch();
                system("cls");
                cout << " Введите " << (j+1) << "й коэффициент " << (i+1) << "го уравнения: ";
            }
        }
        cout << " Введите " << (i+1) << "й свободный член " << (i+1) << "го уравнения: ";
        while(!(cin >> b[i]) || (cin.peek() != '\n'))
        {
            cin.clear();
            while(cin.get() != '\n');
            cout << "\n Ошибка ввода!\n для новой попытки, нажмите любую кнопку...";
            getch();
            system("cls");
            cout << " Введите " << (i+1) << "й свободный член " << (i+1) << "го уравнения: ";
        }
    }
 
    // вывод СЛАУ
    cout << "\n Матрица А: " << endl;
    for(int i = 0; i < n; i++)
        Show(n, a[i]);
    cout << "\n Вектор B: " << endl;
    Show(n, b);
 
 
    PryamojHod(n, a, b);
    ObratnyHod(n, a, b, x);
 
    cout << "\n Результат: " << endl;
    Show(n, x);
 
    // освобождаем память
    for (int i = 0; i < n; i++)
        delete [] a[i];
    delete [] a;
    delete [] b;
    delete [] x;
 
    return 0;
}
 
void Show(int n, double *vec)
{
    for(int i = 0; i < n; i++)
    {
        cout << "\t" << vec[i];
    }
    cout << endl;
}
 
void PryamojHod(int n, double **a, double *b)
{
    double v = 0;
    for(int k(0), im; k < n; k++)
    {
        im = k;
        for(int i = k+1; i < n; i++)
        {
            if(fabs(a[im][k]) < fabs(a[i][k]))
                im = i;
        }
        if(im != k)
        {
            for(int j(0); j < n; j++)
            {
                v = a[im][j];
                a[im][j] = a[k][j];
                a[k][j] = v;
            }
            v = b[im];
            b[im] = b[k];
            b[k] = v;
        }
        for(int i = k + 1; i < n; i++)
        {
            v = 1.0*a[i][k]/a[k][k];
            a[i][k] = 0;
            b[i] = b[i]-v*b[k];
            if(v != 0)
            {
                for(int j = k + 1; j < n; j++)
                    a[i][j] = a[i][j]-v*a[k][j];
            }
        }
    }
}
 
void ObratnyHod(int n, double **a, double *b, double *x)
{
    double s = 0;
    x[n-1]=1.0*b[n-1]/a[n-1][n-1];
    for(int i = n - 2; i >= 0; i--)
    {
        s = 0;
        for(int j = i + 1; j < n; j++)
        {
            s=s+a[i][j]*x[j];
        }
        x[i]=1.0*(b[i]-s)/a[i][i];
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gelo123321
 Аватар для Gelo123321
21 / 21 / 4
Регистрация: 05.01.2012
Сообщений: 279
Завершенные тесты: 1
27.05.2014, 23:28     Запись и считывание в/из ФАЙЛА #2
andreyananas
#include <fstream>

ifstream save_file("file1.txt");
save_file<<Записываем нужные нам данные.;

ofstream read_file("file1.txt");
read_file>>Выводим значения куда нужно.;
andreyananas
 Аватар для andreyananas
17 / 17 / 5
Регистрация: 15.10.2013
Сообщений: 804
27.05.2014, 23:45  [ТС]     Запись и считывание в/из ФАЙЛА #3
Цитата Сообщение от Gelo123321 Посмотреть сообщение
#include <fstream>
ifstream save_file("file1.txt");
save_file<<Записываем нужные нам данные.;
ofstream read_file("file1.txt");
read_file>>Выводим значения куда нужно.;
Если я записал в файл СЛАУ и его решение и так три раза.
Как мне в следующий раз считать с файла только СЛАУ?!
Gelo123321
 Аватар для Gelo123321
21 / 21 / 4
Регистрация: 05.01.2012
Сообщений: 279
Завершенные тесты: 1
28.05.2014, 00:06     Запись и считывание в/из ФАЙЛА #4
andreyananas,
С помощью оператора get можно считывать с файла каждый символ, и если имеется например двоеточие ":", тогда, то, что после него выводить.
C++
1
2
ifstream file1("file1.txt");
while(!file1.eof()) if(file1.get()==':') {// }
andreyananas
 Аватар для andreyananas
17 / 17 / 5
Регистрация: 15.10.2013
Сообщений: 804
28.05.2014, 10:24  [ТС]     Запись и считывание в/из ФАЙЛА #5
Можешь показать на каком то примере?

Добавлено через 9 часов 2 минуты
ап хелп плс
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
28.05.2014, 11:59     Запись и считывание в/из ФАЙЛА #6
в чём проблема? как ты изменил программу для работы с файлами?
покажи пример своего файла с уравнением?
P.S. что такое СЛАУ?
andreyananas
 Аватар для andreyananas
17 / 17 / 5
Регистрация: 15.10.2013
Сообщений: 804
28.05.2014, 12:23  [ТС]     Запись и считывание в/из ФАЙЛА #7
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
в чём проблема? как ты изменил программу для работы с файлами?
еще никак

Добавлено через 27 секунд
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
что такое СЛАУ?
Система линейных алгебраических уравнений
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2014, 12:30     Запись и считывание в/из ФАЙЛА
Еще ссылки по теме:

Запись и считывание из бинарного файла C++
Построчная запись и считывание из файла C++
C++ Считывание\запись int из файла\в файл

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
28.05.2014, 12:30     Запись и считывание в/из ФАЙЛА #8
Цитата Сообщение от andreyananas Посмотреть сообщение
еще никак
Ну дык в чём же вопрос тогда? Изменяй! покажи, какой текст из файла читаешь. Я покажу, где ошибка, как прочитать.
Yandex
Объявления
28.05.2014, 12:30     Запись и считывание в/из ФАЙЛА
Ответ Создать тему
Опции темы

Текущее время: 22:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru